OSDN Git Service

PR target/41810
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-11-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2
3         PR target/41810
4         * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
5         [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
6         __extension__ to allow cast from function pointer to object
7         pointer in C++.
8         * doc/install.texi (--enable-threads): Clarify use of Solaris
9         threads.
10
11 2009-11-27  Steven Bosscher  <steven@gcc.gnu.org>
12
13         * config/ia64/itanium1.md: Remove.
14         * config/ia64/ia64.md: Do not include it.
15         * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
16         "itanium1", and "merced" from the processor alias table.
17         (clocks, add_cycles): Remove global variables.
18         (ia64_sched_reorder2): Don't set/use them.
19         (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
20         (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
21
22 2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23
24         * config/s390/s390.c (last_scheduled_insn): New variable.
25         (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
26         functions.
27         (s390_sched_reorder, s390_sched_variable_issue): New functions.
28         (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
29         defined.
30
31 2009-11-27  Michael Matz  <matz@suse.de>
32
33         PR c++/41906
34         * tree-eh.c (lower_catch): Stop after expanding a catch-all.
35
36 2009-11-27  Richard Guenther  <rguenther@suse.de>
37
38         * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
39         TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
40         * loop-init.c (pass_rtl_move_loop_invariants): Use
41         TV_LOOP_MOVE_INVARIANTS.
42         (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
43         (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
44         (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
45
46 2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
47
48         * emit-rtl.c (next_active_insn, prev_active_insn): Correct
49         comment.
50
51 2009-11-27  Jakub Jelinek  <jakub@redhat.com>
52
53         * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
54         unused insn variable.
55         * genemit.c (output_peephole2_scratches): Only declare and initialize
56         _regs_allocated if it will be ever used.
57         * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
58         succ_bb variable.
59         (create_empty_loop_on_edge): Remove unused freq and cnt variables.
60         * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
61         variable.
62
63         * opts.c (decode_options): If optimize is bigger than 255,
64         set it to 255.
65
66 2009-11-26  Richard Henderson  <rth@redhat.com>
67
68         * config/i386/sse.md (mulv16qi3): Change back from an expander
69         to an insn-and-split.
70         (mulv4si): Mention AVX not XOP for AVX exception.
71         (*sse2_mulv4si3): Likewise.
72         (mulv2di3): Use vmulld not vpmacsdd for XOP expansion.  Tidy.
73
74 2009-11-26  Bernd Schmidt  <bernd.schmidt@analog.com>
75
76         * cfgexpand (n_stack_vars_conflict): New static variable.
77         (triangular_index): Reduce likelyhood of overflow by performing
78         the division before the multiplication.
79         (resize_stack_vars_conflict): Call fatal_error if overflow
80         occurred in triangular_index.  Update n_stack_vars_conflict.
81
82         PR rtl-opt/38582
83         * regrename.c (struct du_chain): Remove member earlyclobber.
84         (scan_rtx_reg): Don't set it.  Remove argument earlyclobber,
85         all callers changed.
86         (scan_rtx): Remove argument earlyclobber, all callers changed.
87         (hide_operands, restore_operands, record_out_operands): New functions,
88         broken out of build_def_use.
89         (build_def_use): Call them as necessary.
90
91         * regrename.c (struct du_head): New members id, conflicts,
92         hard_conflicts and cannot_rename.
93         (enum scan_actions): Remove terminate_all_read and
94         terminate_overlapping_read; add mark_all_read.
95         (scan_actions_name): Likewise.
96         (du_head_p): New typedef.  Define a vector type for it.
97         (id_to_chain): New static variable.
98         (note_sets, clear_dead_regs): Delete functions.
99         (free_chain_data): New function.
100         (merge_overlapping_regs): Simply walk the conflicts bitmap.
101         Remove argument B, all callers changed.
102         (regrename_optimize): Allocate id_to_chain.  Ignore chains that have
103         the cannot_rename bit set.  Update regno and nregs of a renamed chain.
104         Call free_chain_data when done.
105         (do_replace): Remove death notes when the renamed reg is set in the
106         last insn; add them if not.
107         (mark_conflict, note_sets_clobbers): New static function.
108         (fail_current_block, current_id, open_chains_set, live_hard_regs): New
109         static variables.
110         (scan_rtx_reg): Keep track of conflicts between chains, and between
111         chains and hard regs.  Don't terminate chains when we find a read we
112         can't handle, mark it unrenameable instead.  For terminate_write,
113         terminate chains that are written with an exact match or a superset
114         of registers.  Set fail_current_block if multi-word lifetimes are too
115         complex to handle.
116         (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
117         (build_def_use): Initialize current_id, live_chains and live_hard_regs;
118         free memory for them when done.
119         Rearrange the steps so that earlyclobbers are noted before reads
120         are processed.  Add new steps to keep track of hard register lifetimes
121         outside insn operands.
122
123 2009-11-26  Richard Guenther  <rguenther@suse.de>
124
125         * tree-ssa-dce.c (nr_walks): New variable.
126         (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
127         (perform_tree_ssa_dce): Init nr_walks.
128
129 2009-11-26  Michael Matz  <matz@suse.de>
130
131         PR tree-optimization/41905
132         * tree-eh.c (lower_eh_constructs_2): Don't add assignments
133         below statements that can't fall thru.
134
135 2009-11-26  Michael Matz  <matz@suse.de>
136
137         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
138         expand_builtin_sprintf): Remove.
139         (expand_builtin): Don't call them.
140
141 2009-11-26  Richard Guenther  <rguenther@suse.de>
142
143         * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
144
145 2009-11-26  Nick Clifton  <nickc@redhat.com>
146
147         * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
148         being used incorrectly.
149         (rx_function_ok_for_sibcall): New function.  Do not allow indirect
150         sibcalls, or sibcalls from interrupt functions.
151         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
152         * config/rx/rx.md (sibcall): Convert to a define_expand.  Check
153         for a MEM inside a MEM.
154         (sibcall_value): Likewise.
155         (sibcall_internal): New pattern containing old sibcall pattern.
156         (sibcall_value_internal): Likewise.
157
158 2009-11-25  Richard Henderson  <rth@redhat.com>
159
160         * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
161         optional 3rd argument to define the mode.
162         * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
163         (V2UDI, V4USI, V8UHI, V16UQI): New.
164         (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
165         V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
166         V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
167         * config/i386/i386-modes.def: Rearrange for double-wide AVX.
168         * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
169         * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
170         (bdesc_args): Add the builtin definitions to match.
171         (ix86_expand_builtin): Expand them.
172         (ix86_builtin_vectorization_cost): Rename from
173         x86_builtin_vectorization_cost.
174         (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
175         doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
176         expand_vec_perm_blend, expand_vec_perm_vpermil,
177         expand_vec_perm_pshufb, expand_vec_perm_1,
178         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
179         expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
180         expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
181         ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
182         ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
183         ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
184         TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
185         * sse.md (SSEMODE_EO): New.
186         (vec_extract_even<mode>): Use SSEMODE_EO and
187         ix86_expand_vec_extract_even_odd.
188         (vec_extract_odd<mode>): Likewise.
189         (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
190         vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
191
192 2009-11-25  Richard Henderson  <rth@redhat.com>
193
194         * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
195         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
196         * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
197         * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
198         the vector constant here...
199         (vect_transform_slp_perm_load): ... do it here instead.  Validate
200         that the permutation vector is implementable by the target.
201
202 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
203
204         * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
205         * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
206
207         * print-rtl.c (print_rtx): When printing newline, append
208         print_rtx_head and indentation after the newline.
209
210         PR target/42165
211         * config/i386/i386.c (print_operand): For 32-byte memory use
212         YMMWORD in -masm=intel mode.  Use TBYTE instead of XWORD.
213         * config/i386/i386.md (crc32modesuffix): Expand to nothing
214         in -masm=intel mode.
215         (sse4_2_crc32di): Print just crc32 instead of crc32q in
216         -masm=intel mode.
217         * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
218         memory operand in -masm=intel mode.
219         * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
220         *sse2_pinsrw): Likewise.
221         (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
222         q suffix in -masm=intel mode.
223
224 2009-11-25  Eric Botcazou  <ebotcazou@adacore.com>
225
226         PR target/10127
227         PR ada/20548
228         PR middle-end/42004
229         * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
230         (dwarf2out_stack_adjust): ...this.  Do not adjust the arg size for
231         ACCUMULATE_OUTGOING_ARGS targets.  Rename former version to...
232         (dwarf2out_notice_stack_adjust): ...this.  Adjust for above renaming.
233         (dwarf2out_frame_debug_expr): Revert previous change and adjust for
234         above renaming.
235         (dwarf2out_frame_debug): Add ??? comment.  Adjust for above renaming.
236
237 2009-11-25  Uros Bizjak  <ubizjak@gmail.com>
238
239         * config/i386/predicates.md (emms_operation): New predicate.
240         (vzeroupper_operation): Ditto.
241         (vzeroall_operation): Improve pattern recognition.
242         * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
243         (avx_vzeroupper): Change insn pattern to expander.
244         (*avx_vzeroupper): New insn pattern.  Use vzeroupper_operation
245         predicate.
246         (*avx_vzeroall): Remove operands 1 and 2.
247         * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
248         (mmx_femms): Ditto.
249         (*mmx_emms): New insn pattern.  Use emms_operation predicate.
250         (*mmx_femms): Ditto.
251         * config/i386/i386.c (enum ix86_builtins)
252         <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
253         (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
254         Remove initailization.
255         <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
256         
257 2009-11-25  Paul Brook  <paul@codesourcery.com>
258
259         * config/arm/arm.md (consttable_4): Handle (high ...).
260
261 2009-11-25  Robert Nelson  <robert.nelson@digikey.com>
262             Richard Earnshaw  <rearnsha@arm.com>
263
264         * arm.h (enum vfp_reg_type): Add VFP_NONE.
265         * arm.c (all_fpus): Use it for floating point units that aren't based
266         on the VFP architecture.
267         (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
268         enum machine_mode.
269
270 2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
271
272         * alias.c: Remove trailing white spaces.
273         * alloc-pool.c: Likewise.
274         * alloc-pool.h: Likewise.
275         * attribs.c: Likewise.
276         * auto-inc-dec.c: Likewise.
277         * basic-block.h: Likewise.
278         * bb-reorder.c: Likewise.
279         * bt-load.c: Likewise.
280         * builtins.c: Likewise.
281         * builtins.def: Likewise.
282         * c-common.c: Likewise.
283         * c-common.h: Likewise.
284         * c-cppbuiltin.c: Likewise.
285         * c-decl.c: Likewise.
286         * c-format.c: Likewise.
287         * c-lex.c: Likewise.
288         * c-omp.c: Likewise.
289         * c-opts.c: Likewise.
290         * c-parser.c: Likewise.
291         * c-pretty-print.c: Likewise.
292         * c-tree.h: Likewise.
293         * c-typeck.c: Likewise.
294         * caller-save.c: Likewise.
295         * calls.c: Likewise.
296         * cfg.c: Likewise.
297         * cfganal.c: Likewise.
298         * cfgexpand.c: Likewise.
299         * cfghooks.c: Likewise.
300         * cfghooks.h: Likewise.
301         * cfglayout.c: Likewise.
302         * cfgloop.c: Likewise.
303         * cfgloop.h: Likewise.
304         * cfgloopmanip.c: Likewise.
305         * cfgrtl.c: Likewise.
306         * cgraph.c: Likewise.
307         * cgraph.h: Likewise.
308         * cgraphbuild.c: Likewise.
309         * cgraphunit.c: Likewise.
310         * cif-code.def: Likewise.
311         * collect2.c: Likewise.
312         * combine.c: Likewise.
313         * convert.c: Likewise.
314         * coverage.c: Likewise.
315         * crtstuff.c: Likewise.
316         * cse.c: Likewise.
317         * cselib.c: Likewise.
318         * dbgcnt.c: Likewise.
319         * dbgcnt.def: Likewise.
320         * dbgcnt.h: Likewise.
321         * dbxout.c: Likewise.
322         * dce.c: Likewise.
323         * ddg.c: Likewise.
324         * ddg.h: Likewise.
325         * defaults.h: Likewise.
326         * df-byte-scan.c: Likewise.
327         * df-core.c: Likewise.
328         * df-problems.c: Likewise.
329         * df-scan.c: Likewise.
330         * df.h: Likewise.
331         * dfp.c: Likewise.
332         * diagnostic.c: Likewise.
333         * diagnostic.h: Likewise.
334         * dominance.c: Likewise.
335         * domwalk.c: Likewise.
336         * double-int.c: Likewise.
337         * double-int.h: Likewise.
338         * dse.c: Likewise.
339         * dwarf2asm.c: Likewise.
340         * dwarf2asm.h: Likewise.
341         * dwarf2out.c: Likewise.
342         * ebitmap.c: Likewise.
343         * ebitmap.h: Likewise.
344         * emit-rtl.c: Likewise.
345         * et-forest.c: Likewise.
346         * except.c: Likewise.
347         * except.h: Likewise.
348         * expmed.c: Likewise.
349         * expr.c: Likewise.
350         * expr.h: Likewise.
351         * final.c: Likewise.
352         * flags.h: Likewise.
353         * fold-const.c: Likewise.
354         * function.c: Likewise.
355         * function.h: Likewise.
356         * fwprop.c: Likewise.
357         * gcc.c: Likewise.
358         * gcov-dump.c: Likewise.
359         * gcov-io.c: Likewise.
360         * gcov-io.h: Likewise.
361         * gcov.c: Likewise.
362         * gcse.c: Likewise.
363         * genattr.c: Likewise.
364         * genattrtab.c: Likewise.
365         * genautomata.c: Likewise.
366         * genchecksum.c: Likewise.
367         * genconfig.c: Likewise.
368         * genflags.c: Likewise.
369         * gengtype-parse.c: Likewise.
370         * gengtype.c: Likewise.
371         * gengtype.h: Likewise.
372         * genmddeps.c: Likewise.
373         * genmodes.c: Likewise.
374         * genopinit.c: Likewise.
375         * genpreds.c: Likewise.
376         * gensupport.c: Likewise.
377         * ggc-common.c: Likewise.
378         * ggc-page.c: Likewise.
379         * ggc-zone.c: Likewise.
380         * ggc.h: Likewise.
381         * gimple-iterator.c: Likewise.
382         * gimple-low.c: Likewise.
383         * gimple-pretty-print.c: Likewise.
384         * gimple.c: Likewise.
385         * gimple.def: Likewise.
386         * gimple.h: Likewise.
387         * gimplify.c: Likewise.
388         * graphds.c: Likewise.
389         * graphite-clast-to-gimple.c: Likewise.
390         * gthr-nks.h: Likewise.
391         * gthr-posix.c: Likewise.
392         * gthr-posix.h: Likewise.
393         * gthr-posix95.h: Likewise.
394         * gthr-single.h: Likewise.
395         * gthr-tpf.h: Likewise.
396         * gthr-vxworks.h: Likewise.
397         * gthr.h: Likewise.
398         * haifa-sched.c: Likewise.
399         * hard-reg-set.h: Likewise.
400         * hooks.c: Likewise.
401         * hooks.h: Likewise.
402         * hosthooks.h: Likewise.
403         * hwint.h: Likewise.
404         * ifcvt.c: Likewise.
405         * incpath.c: Likewise.
406         * init-regs.c: Likewise.
407         * integrate.c: Likewise.
408         * ipa-cp.c: Likewise.
409         * ipa-inline.c: Likewise.
410         * ipa-prop.c: Likewise.
411         * ipa-pure-const.c: Likewise.
412         * ipa-reference.c: Likewise.
413         * ipa-struct-reorg.c: Likewise.
414         * ipa-struct-reorg.h: Likewise.
415         * ipa-type-escape.c: Likewise.
416         * ipa-type-escape.h: Likewise.
417         * ipa-utils.c: Likewise.
418         * ipa-utils.h: Likewise.
419         * ipa.c: Likewise.
420         * ira-build.c: Likewise.
421         * ira-color.c: Likewise.
422         * ira-conflicts.c: Likewise.
423         * ira-costs.c: Likewise.
424         * ira-emit.c: Likewise.
425         * ira-int.h: Likewise.
426         * ira-lives.c: Likewise.
427         * ira.c: Likewise.
428         * jump.c: Likewise.
429         * lambda-code.c: Likewise.
430         * lambda-mat.c: Likewise.
431         * lambda-trans.c: Likewise.
432         * lambda.h: Likewise.
433         * langhooks.c: Likewise.
434         * lcm.c: Likewise.
435         * libgcov.c: Likewise.
436         * lists.c: Likewise.
437         * loop-doloop.c: Likewise.
438         * loop-init.c: Likewise.
439         * loop-invariant.c: Likewise.
440         * loop-iv.c: Likewise.
441         * loop-unroll.c: Likewise.
442         * lower-subreg.c: Likewise.
443         * lto-cgraph.c: Likewise.
444         * lto-compress.c: Likewise.
445         * lto-opts.c: Likewise.
446         * lto-section-in.c: Likewise.
447         * lto-section-out.c: Likewise.
448         * lto-streamer-in.c: Likewise.
449         * lto-streamer-out.c: Likewise.
450         * lto-streamer.c: Likewise.
451         * lto-streamer.h: Likewise.
452         * lto-symtab.c: Likewise.
453         * lto-wpa-fixup.c: Likewise.
454         * matrix-reorg.c: Likewise.
455         * mcf.c: Likewise.
456         * mode-switching.c: Likewise.
457         * modulo-sched.c: Likewise.
458         * omega.c: Likewise.
459         * omega.h: Likewise.
460         * omp-low.c: Likewise.
461         * optabs.c: Likewise.
462         * optabs.h: Likewise.
463         * opts-common.c: Likewise.
464         * opts.c: Likewise.
465         * params.def: Likewise.
466         * params.h: Likewise.
467         * passes.c: Likewise.
468         * plugin.c: Likewise.
469         * postreload-gcse.c: Likewise.
470         * postreload.c: Likewise.
471         * predict.c: Likewise.
472         * predict.def: Likewise.
473         * pretty-print.c: Likewise.
474         * pretty-print.h: Likewise.
475         * print-rtl.c: Likewise.
476         * print-tree.c: Likewise.
477         * profile.c: Likewise.
478         * read-rtl.c: Likewise.
479         * real.c: Likewise.
480         * recog.c: Likewise.
481         * reg-stack.c: Likewise.
482         * regcprop.c: Likewise.
483         * reginfo.c: Likewise.
484         * regmove.c: Likewise.
485         * regrename.c: Likewise.
486         * regs.h: Likewise.
487         * regstat.c: Likewise.
488         * reload.c: Likewise.
489         * reload1.c: Likewise.
490         * resource.c: Likewise.
491         * rtl.c: Likewise.
492         * rtl.def: Likewise.
493         * rtl.h: Likewise.
494         * rtlanal.c: Likewise.
495         * sbitmap.c: Likewise.
496         * sched-deps.c: Likewise.
497         * sched-ebb.c: Likewise.
498         * sched-int.h: Likewise.
499         * sched-rgn.c: Likewise.
500         * sched-vis.c: Likewise.
501         * sdbout.c: Likewise.
502         * sel-sched-dump.c: Likewise.
503         * sel-sched-dump.h: Likewise.
504         * sel-sched-ir.c: Likewise.
505         * sel-sched-ir.h: Likewise.
506         * sel-sched.c: Likewise.
507         * sel-sched.h: Likewise.
508         * sese.c: Likewise.
509         * sese.h: Likewise.
510         * simplify-rtx.c: Likewise.
511         * stack-ptr-mod.c: Likewise.
512         * stmt.c: Likewise.
513         * stor-layout.c: Likewise.
514         * store-motion.c: Likewise.
515         * stringpool.c: Likewise.
516         * stub-objc.c: Likewise.
517         * sync-builtins.def: Likewise.
518         * target-def.h: Likewise.
519         * target.h: Likewise.
520         * targhooks.c: Likewise.
521         * targhooks.h: Likewise.
522         * timevar.c: Likewise.
523         * tlink.c: Likewise.
524         * toplev.c: Likewise.
525         * toplev.h: Likewise.
526         * tracer.c: Likewise.
527         * tree-affine.c: Likewise.
528         * tree-affine.h: Likewise.
529         * tree-browser.def: Likewise.
530         * tree-call-cdce.c: Likewise.
531         * tree-cfg.c: Likewise.
532         * tree-cfgcleanup.c: Likewise.
533         * tree-chrec.c: Likewise.
534         * tree-chrec.h: Likewise.
535         * tree-complex.c: Likewise.
536         * tree-data-ref.c: Likewise.
537         * tree-data-ref.h: Likewise.
538         * tree-dfa.c: Likewise.
539         * tree-dump.c: Likewise.
540         * tree-dump.h: Likewise.
541         * tree-eh.c: Likewise.
542         * tree-flow-inline.h: Likewise.
543         * tree-flow.h: Likewise.
544         * tree-if-conv.c: Likewise.
545         * tree-inline.c: Likewise.
546         * tree-into-ssa.c: Likewise.
547         * tree-loop-distribution.c: Likewise.
548         * tree-loop-linear.c: Likewise.
549         * tree-mudflap.c: Likewise.
550         * tree-nested.c: Likewise.
551         * tree-nomudflap.c: Likewise.
552         * tree-nrv.c: Likewise.
553         * tree-object-size.c: Likewise.
554         * tree-optimize.c: Likewise.
555         * tree-outof-ssa.c: Likewise.
556         * tree-parloops.c: Likewise.
557         * tree-pass.h: Likewise.
558         * tree-phinodes.c: Likewise.
559         * tree-predcom.c: Likewise.
560         * tree-pretty-print.c: Likewise.
561         * tree-profile.c: Likewise.
562         * tree-scalar-evolution.c: Likewise.
563         * tree-ssa-address.c: Likewise.
564         * tree-ssa-alias.c: Likewise.
565         * tree-ssa-ccp.c: Likewise.
566         * tree-ssa-coalesce.c: Likewise.
567         * tree-ssa-copy.c: Likewise.
568         * tree-ssa-copyrename.c: Likewise.
569         * tree-ssa-dce.c: Likewise.
570         * tree-ssa-dom.c: Likewise.
571         * tree-ssa-dse.c: Likewise.
572         * tree-ssa-forwprop.c: Likewise.
573         * tree-ssa-ifcombine.c: Likewise.
574         * tree-ssa-live.c: Likewise.
575         * tree-ssa-live.h: Likewise.
576         * tree-ssa-loop-ch.c: Likewise.
577         * tree-ssa-loop-im.c: Likewise.
578         * tree-ssa-loop-ivcanon.c: Likewise.
579         * tree-ssa-loop-ivopts.c: Likewise.
580         * tree-ssa-loop-manip.c: Likewise.
581         * tree-ssa-loop-niter.c: Likewise.
582         * tree-ssa-loop-prefetch.c: Likewise.
583         * tree-ssa-loop-unswitch.c: Likewise.
584         * tree-ssa-loop.c: Likewise.
585         * tree-ssa-math-opts.c: Likewise.
586         * tree-ssa-operands.c: Likewise.
587         * tree-ssa-operands.h: Likewise.
588         * tree-ssa-phiopt.c: Likewise.
589         * tree-ssa-phiprop.c: Likewise.
590         * tree-ssa-pre.c: Likewise.
591         * tree-ssa-propagate.c: Likewise.
592         * tree-ssa-reassoc.c: Likewise.
593         * tree-ssa-sccvn.c: Likewise.
594         * tree-ssa-sink.c: Likewise.
595         * tree-ssa-structalias.c: Likewise.
596         * tree-ssa-ter.c: Likewise.
597         * tree-ssa-threadedge.c: Likewise.
598         * tree-ssa-threadupdate.c: Likewise.
599         * tree-ssa-uncprop.c: Likewise.
600         * tree-ssa.c: Likewise.
601         * tree-ssanames.c: Likewise.
602         * tree-switch-conversion.c: Likewise.
603         * tree-tailcall.c: Likewise.
604         * tree-vect-data-refs.c: Likewise.
605         * tree-vect-generic.c: Likewise.
606         * tree-vect-loop-manip.c: Likewise.
607         * tree-vect-loop.c: Likewise.
608         * tree-vect-patterns.c: Likewise.
609         * tree-vect-slp.c: Likewise.
610         * tree-vect-stmts.c: Likewise.
611         * tree-vectorizer.c: Likewise.
612         * tree-vectorizer.h: Likewise.
613         * tree-vrp.c: Likewise.
614         * tree.c: Likewise.
615         * tree.def: Likewise.
616         * tree.h: Likewise.
617         * treestruct.def: Likewise.
618         * unwind-compat.c: Likewise.
619         * unwind-dw2-fde-glibc.c: Likewise.
620         * unwind-dw2.c: Likewise.
621         * value-prof.c: Likewise.
622         * value-prof.h: Likewise.
623         * var-tracking.c: Likewise.
624         * varasm.c: Likewise.
625         * varpool.c: Likewise.
626         * vec.c: Likewise.
627         * vec.h: Likewise.
628         * vmsdbgout.c: Likewise.
629         * web.c: Likewise.
630         * xcoffout.c: Likewise.
631
632 2009-11-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
633
634         * pa.c (output_call): Only use sr4 for long interspace calls if
635         call binds local and generating non PIC code.
636         (attr_length_call): Adjust length calculation for above.
637
638 2009-11-25  Uros Bizjak  <ubizjak@gmail.com>
639
640         * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
641         (add<mode>3_carry): Change operand order of plus RTX.
642         (*add<mode>3_carry): Ditto.
643         (*addsi3_carry_zext): Ditto.
644         (*add<dwi>3_doubleword): Update for changed operand order.
645         (*negti2_1 splitter): Ditto.
646         (*negdi2_1 splitter): Ditto.
647         (<plusminus_insn><mode>3_carry): Macroize expander from
648         {add,sub}<mode>3_carry patterns using plusminus code iterator.
649         (*<plusminus_insn><mode>3_carry): Macroize insn from
650         *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
651         (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
652         patterns using SDWIM mode iterator.
653         (*neg<dwi>2_doubleword): New insn_and_split pattern.  Macroize
654         pattern from *neg{di,ti}2_1 patterns and corresponding splitters
655         using DWIH mode iterator.
656         (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
657         using SWI mode iterator.
658         (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
659         (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
660         patterns using SWIM mode iterator.
661         (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
662         patterns using SWI248 mode iterator.
663         (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
664         patterns using SWI mode iterator.
665         (*one_cmpl<mode>2_2 splitter): Macroize splitter from
666         one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
667
668 2009-11-24  Michael Matz  <matz@suse.de>
669
670         * expr.c (set_storage_via_libcall): Fix build_call_expr call.
671
672 2009-11-24  David Binderman  <dcb314@hotmail.com>
673
674         * expr.c (store_field): Remove set but not used local variable
675         width_mask.
676         (expand_expr_real_2): Remove treeop2.
677         * gcse.c (update_ld_motion_stores): Remove new_rtx.
678         * haifa-sched.c (max_issue): Remove points.
679         (sched_create_recovery_edges): Remove e.
680         * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
681
682 2009-11-24  Nick Clifton  <nickc@redhat.com>
683
684         * config/v850/v850.c (function_arg): Fix handling of zero-length
685         function arguments.
686
687 2009-11-24  Michael Matz  <matz@suse.de>
688
689         * tree.h (union tree_ann_d): Don't declare.
690         (tree_base): Remove ann field.
691         (struct var_ann_d): Declare forward.
692         (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
693         (DECL_VAR_ANN_PTR): New macro.
694         * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
695         accept only VAR, PARM or RESULT decls.
696         (create_tree_common_ann): Remove.
697         (remove_referenced_var): Use DECL_VAR_ANN_PTR.
698         * tree-eh.c (lookup_expr_eh_lp): Remove.
699         * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
700         DECL_VAR_ANN_PTR.
701         (ann_type, tree_common_ann, get_tree_common_ann): Remove.
702         * tree-flow.h (enum tree_ann_type): Remove.
703         (struct tree_ann_common_d): Remove.
704         (struct var_ann_d): Remove common field.
705         (union tree_ann_d): Remove.
706         (tree_ann_t, tree_ann_common_t): Remove typedefs.
707         (tree_common_ann, get_tree_common_ann, ann_type,
708         create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
709         * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
710         * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
711         * builtins.c (expand_builtin_memcpy): Use
712         currently_expanding_gimple_stmt instead of tree annotation.
713         (expand_builtin_memset_args): Ditto.
714         * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
715         (expand_call_stmt): Don't set tree annotation.
716         (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
717         * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
718         * gimple.h (currently_expanding_gimple_stmt): Declare.
719
720 2009-11-24  Paolo Carlini  <paolo.carlini@oracle.com>
721
722         * dwarf2out.c (add_location_or_const_value_attribute): Remove
723         useless NOTE_VAR_LOCATION_STATUS call.
724         * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
725
726 2009-11-24  Rafael Avila de Espindola  <espindola@google.com>
727
728         * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
729         being called recursively.
730
731 2009-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
732
733         * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
734         $(MD5_H) params.def params.h prefix.h tree-inline.h.
735
736 2009-11-24  Paul Brook  <paul@codesourcery.com>
737
738         * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
739         typo.
740
741 2009-11-24  Julian Brown  <julian@codesourcery.com>
742             Paul Brook  <paul@codesourcery.com>
743
744         * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
745         (arm_dwarf_register_span): New function.
746         (arm_dbx_register_number): Add VFPv3 dwarf numbering.
747
748 2009-11-24  David Binderman  <dcb314@hotmail.com>
749
750         * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
751         local variable bb_note.
752         * dominance.c (get_dominated_by): Likewise local var n.
753         (output_file_names): Likewise local var idx.
754         (add_location_or_const_value_attribute): Likewise local var status.
755         * dwarf2out.c (gen_variable_die): Likewise local var field.
756         * emit-rtl.c (no_line_numbers): Remove.
757         (init_emit_once): Remove line_numbers parameter.
758         * rtl.h (init_emit_once): Adjust prototype.
759         * toplev.c (backend_init): Adjust init_emit_once call.
760
761 2009-11-24  Richard Guenther  <rguenther@suse.de>
762
763         PR tree-optimization/42142
764         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
765         Handle iv-dependent (non-)kills properly.
766         (mark_aliased_reaching_defs_necessary): Pass the basic-block
767         of the reference statement to mark_aliased_reaching_defs_necessary_1.
768
769 2009-11-24  Martin Jambor  <mjambor@suse.cz>
770
771         PR tree-optimization/42154
772         * tree-sra.c (struct access): Added comments.
773         (sra_modify_expr): Build references to the old aggregate with
774         build_ref_for_offset instead of reusing access->expr.
775         (load_assign_lhs_subreplacements): Likewise.
776
777 2009-11-24  Uros Bizjak  <ubizjak@gmail.com>
778
779         * config/i386/i386.md (add<mode>3_carry): Change insn pattern
780         to expander.
781         (sub<mode>3_carry): Ditto.
782         (x86_mov<mode>cc_0_m1): Ditto.
783         (*add<mode>3_carry): New insn pattern.  Use VOIDmode match_operator
784         for ix86_carry_flag_operator operator predicate.
785         (*sub<mode>3_carry): Ditto.
786         (*x86_mov<mode>cc_0_m1): Ditto.
787         (*addsi3_carry_zext): Use VOIDmode match_operator for
788         ix86_carry_flag_operator operator predicate.
789         (*subsi3_carry_zext): Ditto.
790         (*x86_mov<mode>cc_0_m1_s): Ditto.
791         (*x86_mov<mode>cc_0_m1_neg): Ditto.
792         * config/i386/predocates.md (ix86_carry_flag_operator): Do not
793         check operator sub-expressions for FLAGS_REG and const0_rtx.
794         * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
795         (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
796         (ix86_expand_int_addcc): Update calls to
797         gen_{add,sub}{qi,hi,si,di}3_carry.  Do not set mode of compare_op.
798         (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
799         Do not set mode of compare operation.
800
801 2009-11-23  Jan Hubicka  <jh@suse.cz>
802
803         PR middle-end/42151
804         * ipa-inline.c (inline_transform): Avoid ICE when transform is called
805         twice.
806
807 2009-11-23  Jan Hubicka  <jh@suse.cz>
808
809         * ipa-cp.c (ipcp_compute_node_scale): Work around completely
810         wrong profile updates.
811         * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
812         having largest frequency.
813         * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
814         used uninitalized warning.
815         * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
816         frequencies.
817
818 2009-11-23  Uros Bizjak  <ubizjak@gmail.com>
819
820         * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
821         of gen_rtx_REG to generate operand 5.
822         (*cmp_ssub_sidi): Ditto.
823
824 2009-11-23  Richard Henderson  <rth@redhat.com>
825
826         * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
827         mismatch.
828
829 2009-11-23  Paul Brook  <paul@codesourcery.com>
830
831         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
832         case for noreturn functions.
833         (arm_compute_save_reg_mask): Remove special noreturn handling.
834
835 2009-11-23  Richard Guenther  <rguenther@suse.de>
836
837         * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
838         size for DECL bases.
839
840 2009-11-22  Richard Henderson  <rth@redhat.com>
841
842         * i386.c (avx_vpermilp_parallel): New function.
843         * i386-protos.h: Declare it.
844         * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
845         avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
846         * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
847         (ssescalarnum, ssedoublesizemode): Add AVX modes.
848         (vpermilbits): Remove.
849         (avx_vpermil<mode>): Change insns to expanders.
850         (*avx_vpermil<mode>): New.  Use vec_select.
851
852 2009-11-22  Richard Earnshaw  <rearnsha@arm.com>
853
854         * opts.c (decode_options): Don't enable flag_schedule_insns
855         when optimizing for size.
856         * doc/invoke.texi: Document change.
857
858 2009-11-22  Uros Bizjak  <ubizjak@gmail.com>
859
860         PR target/42113
861         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
862         of scratch register to SImode.
863         (*cmp_sadd_sidi): Ditto.
864         (*cmp_ssub_si): Ditto.
865         (*cmp_ssub_sidi): Ditto.
866
867 2009-11-21  Ian Lance Taylor  <iant@google.com>
868
869         * Makefile.in (HOST_LIBS): Move higher in file.
870         (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
871         is not empty, set to $(CC) and $(CFLAGS).
872
873 2009-11-22  Martin Jambor  <mjambor@suse.cz>
874
875         * tree-cfg.c (verify_types_in_gimple_reference): Error out on
876         V_C_E of an SSA_NAME or an invariant if lvalue is required.
877         (verify_gimple_call): Verify LHS also with with
878         verify_types_in_gimple_reference.
879
880 2009-11-21  Martin Jambor  <mjambor@suse.cz>
881
882         PR middle-end/42025
883         * tree-sra.c (access_precludes_ipa_sra_p): New function.
884         (splice_param_accesses): Check all accesses by calling
885         access_precludes_ipa_sra_p.
886         (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
887         not convert types if it is true.
888         (sra_ipa_modify_assign): Convert types in case of mismatch.
889
890 2009-11-21  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
891
892         * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
893         for operand 1.
894
895 2009-11-21  Adam Nemet  <adambnemet@gmail.com>
896
897         * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
898         (mips_mulsidi3_gen_fn): Declare new function.
899         * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
900         * config/mips/mips.md (<u>mulsidi3): Change condition to use
901         mips_mulsidi3_gen_fn.  Use mips_mulsidi3_gen_fn to generate the insn.
902         (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
903         (mulsidi3_64bit_dmul): New define_insn.
904
905 2009-11-21  Ben Elliston  <bje@au.ibm.com>
906
907         * gengtype-lex.l: Enable noinput flex option.
908         (YY_NO_INPUT): Remove define.
909
910 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
911
912         * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
913         (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
914         (insert_debug_temps_for_defs): Handle PHI nodes.
915         * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
916         SSA names.
917
918 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
919
920         * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
921         after remove_phi_node.
922
923 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
924
925         PR tree-optimization/42078
926         * gimple.h (gimple_replace_lhs): New declaration.
927         * gimple.c (gimple_replace_lhs): New function.
928         * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
929         modifying the call.
930
931 2009-11-20  Sebastian Pop  <sebastian.pop@amd.com>
932
933         * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
934         (xop_mulv2div2di3_low): Same.
935         (*xop_pmacsdqh_mem): Same.
936
937 2009-11-20  Richard Henderson  <rth@redhat.com>
938
939         * config/i386/i386-builtin-types.awk: New file.
940         * config/i386/i386-builtin-types.def: New file.
941         * config/i386/t-i386: Use them to build i386-builtin-types.inc.
942         * config/i386/i386.c: Include it.
943         (ix86_builtin_type_tab, ix86_get_builtin_type): New.
944         (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
945         (struct builtin_isa): Remove GTY marker.  Replace tree type with
946         ix86_builtin_func_type; add set_and_not_built_p.
947         (def_builtin): Change type parameter to tcode; use
948         ix86_get_builtin_func_type; update all callers.  Accept zero mask
949         to mean the builtin is unconditionally available.
950         (ix86_add_new_builtins): Use set_and_not_built_p instead of type
951         being set to NULL.
952         (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
953         Update some users to rationalized enumeration codes from new include.
954         (enum multi_arg_type): Remove.  Replace all enumeration values
955         with defines to new ix86_builtin_func_type.
956         (ix86_init_mmx_sse_builtins): Don't build any types here.  Defer
957         all type resolution to def_builtin.
958         (ix86_init_builtin_types): Split out from ...
959         (ix86_init_builtins): ... here.  Use ix86_get_builtin_func_type.
960
961 2009-11-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
962
963         PR target/41787
964         * config/rs6000/rs6000.c (struct machine_function): Revert
965         2009-10-23 change to set VRSAVE to non-0 if we use VSX.
966         (rs6000_expand_to_rtl_hook): Ditto.
967         (rs6000_check_vector_mode): Ditto.
968         (compute_vrsave_mask): Ditto.
969
970 2009-11-20  Paul Brook  <paul@codesourcery.com>
971
972         * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
973         * config/arm/arm-cores.def: Add cortex-a5.
974         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
975         * config/arm/arm-tune.md: Regenerate.
976
977 2009-11-20 Olga Golovanevsky <olga@il.ibm.com>
978
979         PR middle-end/39960
980         * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
981         (ref_pos): New field in structure.
982         (insert_new_var_in_stmt): New function.
983
984
985 2009-11-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
986
987         * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
988         * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
989         (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
990         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
991         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
992         INT_LEAST64_TYPE): Define.
993         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
994         UINT_LEAST64_TYPE): Define.
995         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
996         INT_FAST64_TYPE): Define.
997         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
998         UINT_FAST64_TYPE): Define.
999         (INTPTR_TYPE, UINTPTR_TYPE): Define.
1000
1001 2009-11-20  Julian Brown  <julian@codesourcery.com>
1002
1003         * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
1004         specially for Thumb-1.
1005         (ASM_OUTPUT_REG_POP): Likewise.
1006
1007 2009-11-19  Jason Merrill  <jason@redhat.com>
1008
1009         * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
1010
1011 2009-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
1012             Rafael Avila de Espindola  <espindola@google.com>
1013
1014         * doc/plugins.texi (Plugin initialization): Added advices for
1015         retrieving the version of GCC at plugin compilation and loading times.
1016
1017 2009-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
1018
1019         * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
1020         (dump_active_plugins): output to file everything. Use
1021         internationalized dump & FMT_FOR_PLUGIN_EVENT.
1022
1023 2009-11-19  Richard Guenther  <rguenther@suse.de>
1024
1025         * gimple.c (canonicalize_cond_expr_cond): Strip conversions
1026         around truth-valued expressions.
1027         * tree.c (free_lang_data): Untangle check for LTO frontend.
1028
1029 2009-11-19  Jakub Jelinek  <jakub@redhat.com>
1030
1031         * tree.c (need_assembler_name_p): Use cgraph_get_node instead
1032         of cgraph_node_for_decl.
1033         * cgraph.h (cgraph_node_for_decl): Remove prototype.
1034         * cgraph.c (cgraph_node_for_decl): Remove.
1035         (cgraph_get_node): Just return NULL if !cgraph_hash.
1036
1037 2009-11-19  Paul Brook  <paul@codesourcery.com>
1038
1039         * config.gcc: Add new ARM --with-fpu options.
1040         * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
1041         * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
1042
1043 2009-11-18  Richard Guenther  <rguenther@suse.de>
1044
1045         * gimple.h (union gimple_statement_d): Add gsmembase member.
1046         (gimple_vuse_op): Use gsmembase for access.
1047         (gimple_vdef_op): Likewise.
1048         (gimple_vuse): Likewise.
1049         (gimple_vdef): Likewise.
1050         (gimple_vuse_ptr): Likewise.
1051         (gimple_vdef_ptr): Likewise.
1052         (gimple_set_vuse): Likewise.
1053         (gimple_set_vdef): Likewise.
1054         * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
1055
1056 2009-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
1057
1058         * doc/arm-neon-intrinsics.texi: Regenerated.
1059
1060 2009-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
1061
1062         * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
1063
1064 2009-11-18  Paul Brook  <paul@codesourcery.com>
1065             Daniel Jacobowitz  <dan@codesourcery.com>
1066
1067         * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
1068         (arm_arch7em): New variable.
1069         (all_architectures): Add armv7e-m.
1070         (arm_override_options): Set arm_arch7em.
1071         * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
1072         Include arm_arch7em.
1073         (arm_arch7em): Declare.
1074
1075 2009-11-18  Richard Guenther  <rguenther@suse.de>
1076
1077         * lto-streamer-in.c (input_gimple_stmt): Assert that we find
1078         a valid field decl if checking is enabled.
1079
1080 2009-11-18  Martin Jambor  <mjambor@suse.cz>
1081
1082         * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
1083         (lto_ipa_fixup_call_notes): Declare.
1084         * ipa-prop.c (ipa_note_param_call): Store gimple uid.
1085         (update_call_notes_after_inlining): Copy call stmt uid to the new
1086         edge.
1087         (ipa_write_param_call_note): New function.
1088         (ipa_read_param_call_note): New function
1089         (ipa_write_node_info): Write also param call notes.  Removed a bogus
1090         comment, reformatted to fit 80 columns.
1091         (ipa_read_node_info): Read also param call notes. Removed a bogus
1092         comment.  Remove ipa_edge_args_vector growth.
1093         (lto_ipa_fixup_call_notes): New function.
1094         * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
1095         * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
1096         inlining regardless of flag_wpa.
1097         (cgraph_decide_inlining_of_small_functions): Likewise.
1098         (cgraph_decide_inlining): Likewise.
1099         (inline_read_summary): Likewise.
1100
1101 2009-11-18  Jan Hubicka  <jh@suse.cz>
1102
1103         * predict.c (compute_function_frequency): Export.
1104         * predict.h (compute_function_frequency): Declare.
1105         * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
1106
1107 2009-11-18  Martin Jambor  <mjambor@suse.cz>
1108
1109         * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
1110         on all nodes we write summaries for.
1111
1112 2009-11-18  Shujing Zhao  <pearly.zhao@oracle.com>
1113
1114         PR middle-end/22201
1115         * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
1116         (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
1117         (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
1118         (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
1119         (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
1120         (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
1121         (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
1122         description string.
1123
1124 2009-11-18  Jakub Jelinek  <jakub@redhat.com>
1125
1126         * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
1127         unnecessarily.
1128         (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
1129
1130         PR c++/3187
1131         * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
1132         fields.
1133         (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
1134         prototypes.
1135         * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
1136         cgraph_materialize_all_clones): Handle same_body aliases.
1137         * cgraph.c (cgraph_allocate_node): New function.
1138         (cgraph_create_node): Use it.
1139         (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
1140         cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
1141         (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
1142         functions.
1143         * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
1144         (input_node): Stream in same_body aliases.
1145         * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
1146         for same_body aliases.
1147         (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
1148
1149 2009-11-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1150
1151         PR other/39888
1152         * config/darwin.h: Use the extension stub libraries to access
1153         current libgcc_s features.
1154
1155 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
1156
1157         PR debug/41926
1158         * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
1159         (vect_transform_loop): Call it.
1160
1161 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
1162
1163         * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
1164         released SSA names.
1165
1166 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
1167
1168         PR debug/41888
1169         PR debug/41886
1170         * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
1171         are ok.
1172         * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
1173         (try_generate_gimple_bb): Skip debug stmts when finding data refs.
1174         * sese.c (sese_build_liveouts_bb): Skip debug stmts.
1175         (sese_bad_liveouts_use): New.
1176         (sese_reset_debug_liveouts_bb): New.
1177         (sese_build_liveouts): Use it.
1178         (rename_variables_in_stmt): Reset debug stmts rather than creating
1179         new vars for them.
1180         (expand_scalar_variable_stmt): Likewise.
1181
1182 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
1183
1184         * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
1185         (df_ref_remove): Likewise.
1186
1187 2009-11-17  Jan Hubicka  <jh@suse.cz>
1188
1189         * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
1190         info.
1191
1192 2009-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1193
1194         * toplev.c (process_options): Remove dead code.
1195         * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
1196
1197 2009-11-17  Rafael Avila de Espindola  <espindola@google.com>
1198
1199         * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
1200         nodes.
1201
1202 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1203
1204         PR tree-optimization/41857
1205         * tree-ssa-address.c (move_hint_to_base): Use void pointer to
1206         TYPE's address space instead of pointer to TYPE.
1207
1208 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1209
1210         * reload.c (find_reloads_address): Fix typo.
1211
1212 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1213
1214         * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
1215         registers in leaf functions if possible.
1216
1217 2009-11-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
1218
1219         * config/m68k/m68k-devices.def: Add MCF5441x family.
1220
1221 2009-11-17  Jan Hubicka  <jh@suse.cz>
1222
1223         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
1224         removed node.
1225         * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
1226
1227 2009-11-17  Uros Bizjak  <ubizjak@gmail.com>
1228
1229         * config/i386/predicates.md (x86_64_szext_general_operand): Do not
1230         nest ior expressions.
1231         (x86_64_szext_nonmemory_operand): Ditto.
1232         (call_insn_operand): Ditto.
1233
1234 2009-11-16  Alexandre Oliva  <aoliva@redhat.com>
1235
1236         * stmt.c (expand_asm_stmt): Get locus from stmt.
1237
1238 2009-11-16  Alexandre Oliva  <aoliva@redhat.com>
1239
1240         * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
1241         Create the decl label for the new dest block on demand.  Require
1242         a fallthrough edge if no asm labels were redirected.
1243
1244 2009-11-16  Uros Bizjak  <ubizjak@gmail.com>
1245
1246         * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
1247         operand 1 predicate.
1248         (cstoresi4): Ditto for operand 2.
1249         (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
1250         patterns using SDWIM mode iterator.
1251         (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
1252         using SWIM mode iterator.
1253         (cmpdi_1): Rename from cmpdi_1_rex64.
1254         (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
1255         SWI48 mode iterator.
1256         (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
1257         using SWI mode iterator.
1258         (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
1259         (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
1260         (*cmpqi_ext_3_insn): Make private.
1261         (*cmpqi_ext_3_insn_rex64): Make private.
1262         (cmpstrnsi): Update for renamed cmpdi_1_rex64.
1263         * config/i386/predicates.md (cmpsi_operand): Remove.
1264
1265 2009-11-16  Paul Brook  <paul@codesourcery.com>
1266
1267         * doc/invoke.texi: Document ARM VFPv4 based FPUs.
1268         * config/arm/arm.c (all_fpus): Add VFPv4 entries.
1269
1270 2009-11-14  Jan Hubicka  <jh@suse.cz>
1271
1272         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
1273         ENTRY_BLOCK_PTR.
1274         * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
1275         zero out all callees.
1276         * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
1277         frequency and count match.
1278         * ipa-inline.c (update_noncloned_frequencies): New function.
1279         (cgraph_clone_inlined_nodes): Use it.
1280         * tree-inline.c (copy_bb): Fix frequency scaling; output
1281         diagnostic on frequency mismatches to dump file.
1282         (initialize_cfun): Do not scale frequency; fix count scaling;
1283         initialize entry and exit block frequencies; copy profile info.
1284         (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
1285         (copy_body): Use frequency_scale as argument.
1286         (expand_call_inline): Compute frequency scale and output diagnostic
1287         to dump file.
1288         (delete_unreachable_blocks_update_callgrah): Remove checking that
1289         has to be done after edge redirection.
1290         (tree_function_versioning): Update initialize_cfun and copy_body call.
1291
1292 2009-11-14  Jan Hubicka  <jh@suse.cz>
1293
1294         * cgraph.c (cgraph_release_function_body): Update use of
1295         ipa_transforms_to_apply.
1296         (cgraph_remove_node): Remove ipa_transforms_to_apply.
1297         * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
1298         * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
1299         copied body.
1300         (cgraph_materialize_clone): Remove original if dead.
1301         * lto-streamer-in.c (lto_read_body): Remove FIXME and
1302         ipa_transforms_to_apply hack.
1303         * function.h (struct function): Add ipa_transforms_to_apply.
1304         * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
1305         * tree-inline.c (copy_bb): Update sanity check.
1306         (initialize_cfun): Do not copy ipa_transforms_to_apply.
1307         (expand_call_inline): remove dead clone originals.
1308         (tree_function_versioning): Merge transformation queues.
1309         * passes.c (add_ipa_transform_pass): Remove.
1310         (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
1311         tracking.
1312         (execute_all_ipa_transforms): Update.
1313         (execute_one_pass): Update.
1314
1315 2009-11-14  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
1316
1317         PR target/21078, 21080
1318         * config/avr/avr.c (avr_return_addr_rtx): New function for
1319         builtin_return_address.
1320         (expand_prologue): Calculate stack usage.
1321         (avr_asm_function_end_prologue): Output stack size and offset label.
1322         * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
1323         (machine_function): Add stack_usage.
1324         * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
1325
1326 2009-11-14  Anatoly Sokolov  <aesok@post.ru>
1327
1328         * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
1329         new 'outgoing' argument.
1330         (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
1331         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1332         * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
1333         iq2000_function_value_regno_p.
1334         (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1335         * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
1336         Declare.
1337
1338 2009-11-14  Richard Earnshaw  <rearnsha@arm.com>
1339
1340         PR target/42031
1341         * arm.md (adddi_sesidi_di): Place tied contraint first.
1342         (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
1343         (subdi_zesidi_di, subdi_sesidi_di): Likewise.
1344         (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
1345         (mulsi3addsi, mulsi3addsi_compare0): Likewise.
1346         (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
1347         (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
1348         (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
1349         (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
1350         (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
1351
1352 2009-11-14  Uros Bizjak  <ubizjak@gmail.com>
1353
1354         * config/i386/predicates.md (call_register_no_elim_operand):
1355         New predicate.  Reject stack register as valid call operand
1356         for 32bit targets.
1357         (call_insn_operand): Use call_register_no_elim_operand.
1358
1359 2009-11-13  Richard Henderson  <rth@redhat.com>
1360
1361         * function.c (stack_protect_prologue): Don't bypass expand_expr
1362         for stack_protect_guard and guard_decl.
1363         (stack_protect_epilogue): Likewise.
1364
1365 2009-11-13  Jan Hubicka  <jh@suse.cz>
1366
1367         * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
1368         when to PUBLIC is set.
1369
1370 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
1371
1372         PR middle-end/42029
1373         * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
1374         tmp_load if needed.
1375
1376 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
1377
1378         PR target/41900
1379         * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
1380         *call_value_1): Use "lsm" as operand 1 constraint.
1381         * config/i386/predicates.md (call_insn_operand): Depend on
1382         index_register_operand to avoid %esp register.
1383
1384 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
1385
1386         Revert:
1387         2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
1388
1389         PR target/41900
1390         * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
1391         (TARGET_CALL_ESP): New define.
1392         * config/i386/i386.c (initial_ix86_tune_features): Initialize
1393         X86_ARCH_CALL_ESP.
1394         * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
1395         *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
1396         *call_1, *call_value_pop_1 and *call_value_1.  Depend on
1397         TARGET_CALL_ESP.
1398         (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
1399         New patterns, use "lsm" as operand 1 constraint.
1400         * config/i386/predicates.md (call_insn_operand): Depend on
1401         index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
1402
1403 2009-11-13  Jason Merrill  <jason@redhat.com>
1404
1405         PR debug/26965
1406         * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
1407         Don't emit a second declaration at any scope.
1408
1409 2009-11-13  Andrey Belevantsev  <abel@ispras.ru>
1410
1411         PR rtl-optimization/41697
1412         * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
1413         a conditional jump has a single successor.
1414
1415 2009-11-13  Andrey Belevantsev  <abel@ispras.ru>
1416
1417         * sched-deps.c (init_deps): New parameter lazy_reg_last.  Don't
1418         allocate reg_last when in case lazy_reg_last is true.
1419         (init_deps_reg_last): New.
1420         (free_deps): When max_reg is 0, this context is already freed.
1421         * sched-int.h (init_deps_reg_last): Export.
1422         (init_deps): Update prototype.
1423         * sched-ebb.c (schedule_ebb): Update the call to init_deps.
1424         * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
1425         * ddg.c (build_intra_loop_deps): Likewise.
1426         * sel-sched-ir.c (copy_deps_context, create_deps_context,
1427         reset_deps_context, deps_init_id): Likewise.
1428         (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
1429         (free_data_for_scheduled_insn): New, break down from ...
1430         (free_first_time_insn_data): ... here.
1431         (has_dependence_p): Allocate reg_last now, when it is needed.
1432         (extend_insn_data): When maximal LUID is big enough, allocate
1433         per-insn data in smaller chunks.
1434         * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
1435         * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
1436         in scheduled insn.
1437
1438 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
1439
1440         * config/i386/i386.md (call_value): Fix comment.
1441         (sibcall_value): Ditto.
1442
1443 2009-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1444
1445         * config/i386/linux-unwind.h (x86_frob_update_context): New function.
1446         (MD_FROB_UPDATE_CONTEXT): Define.
1447
1448 2009-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1449             Laurent GUERBY  <laurent@guerby.net>
1450
1451         * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
1452         Do not schedule an %sp restore.  Compensate for RETURN_ADDR_OFFSET.
1453         (sparc_fallback_frame_state): Tidy.  Compensate for RETURN_ADDR_OFFSET.
1454
1455 2009-11-12  Jan Hubicka  <jh@suse.cz>
1456
1457         * ipa.c (function_and_variable_visibility): Fix my accidentail commit
1458         and clear DECL_COMMON on localized declarations.
1459
1460 2009-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
1461
1462         PR rtl-opt/38582
1463         * regrename.c (struct du_head): New structure; some elements moved
1464         from...
1465         (struct du_chain): ... this one.
1466         (open_chains, closed_chains): Now of type struct du_head *.
1467         (do_replace): Accept du_head argument, not du_chain.  All callers
1468         changed.  Modified code to match new data structures.
1469         (build_def_use): Return a list of du_head structures.  Modified code
1470         to match new data structures.
1471         (dump_def_use_chain): Accept du_head argument, not du_chain.  All
1472         callers changed.  Modified code to match new data structures.
1473         (merge_overlapping_regs): Accept du_head argument, not du_chain.  All
1474         callers changed.  Modified code to match new data structures.
1475         (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
1476         Allocate a du_head structure as well as a du_chain when creating a
1477         new chain.  Modified other code to match new data structures.
1478
1479 2009-11-12  Jan Hubicka  <jh@suse.cz>
1480
1481         * cgraph.h (varpool_node_name): Declare.
1482         * cgraphunit.c (process_function_and_variable_attributes): Set
1483         force_output flag on used variables.
1484         * ipa.c (function_and_variable_visibility): Dump externally visible
1485         and needed variables.
1486         * varpool.c (varpool_node_name): Export.
1487         (decide_is_variable_needed): Check COMDAT for externally visible vars;
1488         ignore needed flag.
1489
1490 2009-11-12  Uros Bizjak  <ubizjak@gmail.com>
1491
1492         PR middle-end/41930
1493         * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
1494         processing if XEXP (x, i) is NULL.
1495
1496 2009-11-12  Jan Hubicka  <jh@suse.cz>
1497
1498         * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
1499         imply PUBLIC || EXTERNAL.
1500
1501 2009-11-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
1502
1503         PR middle-end/41440
1504         * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
1505         single successor block, ending with jump created by RTL expander.
1506
1507 2009-11-11  Jan Hubicka  <jh@suse.cz>
1508
1509         PR middle-end/41729
1510         * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
1511         and WEAK variables at -fwhole-program.
1512
1513         PR middle-end/41735
1514         * ipa.c (whole_program_function_and_variable_visility): COMDAT
1515         functions/variables are not needed even if they are externally visible.
1516
1517 2009-11-11  Jan Hubicka  <jh@suse.cz>
1518
1519         (patch by Richard Guenther)
1520         * lto-streamer-out.c (output_function): Output head of argument list
1521         earlier.
1522         * lto-streamer-in.c (input_function): Re-map arguments into merged
1523         declaration.
1524
1525 2009-11-11  Jan Hubicka  <jh@suse.cz>
1526
1527         * lto-cgraph.c: Include gcov-io.h
1528         (output_profile_summary): New function.
1529         (output_cgraph): Use it.
1530         (input_profile_summary): New function.
1531         (input_cgraph): Use it.
1532         * coverage.c (build_ctr_info_value): Use varpool; initalize
1533         DECL_ASSEMBLER_NAME.
1534         (create_coverage): Likewise.
1535         * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
1536         (tree_init_edge_profiler): Likewise.
1537         * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
1538
1539 2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
1540
1541         * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
1542         * c-pragma.c (def_pragma_macro_value): Likewise.
1543         (def_pragma_macro): Likewise.
1544         (pushed_macro_table): Likewise.
1545         (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
1546         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
1547
1548 2009-11-11  Basile Starynkevitch  <basile@starynkevitch.net>
1549
1550         * doc/plugins.texi (Registering custom attributes): section
1551         renamed as (Registering custom attributes or pragmas).
1552         Mentions custom attributes & pragmas, and c_register_pragma, with
1553         a small example.
1554         * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
1555         pragmas.
1556         * doc/extend.texi (Function Attributes): Mentions that plugin can
1557         provide their attributes.
1558
1559 2009-11-11  Jon Beniston  <jon@beniston.com>
1560
1561         * config.gcc: Add lm32 elf and uclinux targets.
1562         * config/lm32: New directory.
1563         * config/lm32/lm32.c: New file.
1564         * config/lm32/lm32.h: New file.
1565         * config/lm32/lm32.md: New file.
1566         * config/lm32/lm32.opt: New file.
1567         * config/lm32/lm32-protos.h: New file.
1568         * config/lm32/constraints.md: New file.
1569         * config/lm32/predicates.md: New file.
1570         * config/lm32/sfp-machine.h: New file.
1571         * config/lm32/t-fprules-softfp: New file.
1572         * config/lm32/uclinux-elf.h: New file.
1573         * doc/invoke.texi: Document lm32 options.
1574         * doc/contrib.texi: Document lm32 porter.
1575         * doc/install.texi: Document lm32 targets.
1576
1577 2009-11-11  Martin Jambor  <mjambor@suse.cz>
1578
1579         PR lto/41932
1580         * ipa-prop.c (ipa_update_after_lto_read): Call
1581         ipa_check_create_node_params and ipa_check_create_edge_args.  Also
1582         call ipa_initialize_node_params instead of ipa_populate_param_decls.
1583
1584 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
1585
1586         * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
1587         (neon_expand_vector_init): Use them.  Also handle non-constant
1588         vectors with identical elements and vectors with only one
1589         non-constant element.
1590         (arm_print_operand): Handle 'y' modifier.
1591         * config/arm/arm-protos.h (neon_make_constant): Declare.
1592         * config/arm/neon.md (neon_vdup_n<mode>): Split into two
1593         patterns.  Use VX instead of VDQW for the first one.  Allow
1594         a VFP alternative and V32 modes for the second one.
1595         * config/arm/neon.ml (shape_elt): Add Alternatives.
1596         (ops): Use Alternatives for vdup lane instructions.
1597         * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
1598         * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
1599
1600 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
1601
1602         * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
1603         operands.
1604         (movti, mov<mode>): Call force_reg on one operand if required.
1605         * config/arm/vec-common.md (mov<mode>): Likewise.
1606
1607 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
1608
1609         * config/arm/arm.c (arm_override_options): Enable scheduling for
1610         Thumb-2.
1611
1612 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1613
1614         PR target/10127
1615         PR ada/20548
1616         * expr.h (anti_adjust_stack_and_probe): Declare.
1617         * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
1618         parameter and rewrite head comment.
1619         (allocate_dynamic_stack_space): Adjust call to above function.
1620         * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
1621
1622         * tree.h (dwarf2out_args_size): Delete.
1623         * dwarf2out.c (dwarf2out_args_size): Make static and move around.
1624         (dwarf2out_args_size_adjust): Delete prototype and move around.
1625         (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
1626         ACCUMULATE_OUTGOING_ARGS targets.
1627
1628 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1629
1630         * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
1631         DECL_SIZE of DECL_RESULT before evaluating it.
1632
1633 2009-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1634
1635         PR tree-optimization/41987
1636         * fold-const.c (const_binop): Avoid using fold_buildN().
1637
1638 2009-11-10  Martin Jambor  <mjambor@suse.cz>
1639
1640         * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
1641         (execute_all_ipa_stmt_fixups): Declare.
1642         * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
1643         * ipa-inline.c (pass_ipa_inline): Likewise.
1644         * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
1645         * ipa-reference.c (pass_ipa_reference): Likewise.
1646         * ipa.c (pass_ipa_whole_program_visibility): Likewise.
1647         * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
1648         (pass_ipa_lto_finish_out): Likewise.
1649         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
1650         * passes.c (execute_ipa_stmt_fixups): New function.
1651         (execute_all_ipa_stmt_fixups): New function.
1652         * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
1653
1654 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1655
1656         PR ada/20548
1657         * explow.c (probe_stack_range): Fix typo.
1658         * config/sparc/sparc.md (probe_stack): New expander.
1659
1660 2009-11-09  Dave Korn  <dave.korn.cygwin@gmail.com>
1661
1662         * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
1663
1664 2009-11-09  Jason Merrill  <jason@redhat.com>
1665
1666         * gdbinit.in (pgq): New function for printing gimple sequence.
1667
1668 2009-11-09  Paul Brook  <paul@codesourcery.com>
1669             Daniel Jacobowitz  <dan@codesourcery.com>
1670             Sandra Loosemore  <sandra@codesourcery.com>
1671
1672         * doc/extend.texi (Half-Precision): Update wording to reflect
1673         that there are now multiple -mfpu options that enable fp16
1674         hardware support.
1675         * doc/invoke.texi: Update list of ARM -mfpu= options.
1676         * config.gcc: Update ARM --with-fpu option list.
1677         * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
1678         vfpv3xd and vfpv3xd-fp16.
1679         (use_vfp_abi): New function.
1680         (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
1681         when undesirable.
1682         (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
1683         aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
1684         (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
1685         arm_9e_rtx_costs): Only expect double-precision operations if the FPU
1686         provides them.
1687         (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
1688         NEON.
1689         (arm_print_operand): Handle 'p' modifier.
1690         (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
1691         TARGET_FP16.
1692         * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
1693         (TARGET_FP16): Define.
1694         * config/arm/vfp.md: Disable double-precision patterns if the FPU
1695         does not provide them.
1696         (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
1697         double-precision values on a single-precision FPU.
1698         (movdf_vfp, thumb2_movdf_vfp): Likewise.  Use "Dy" for
1699         double-precision constants.
1700         (movhf_vfp_neon): New pattern (was movhf_vfp).
1701         (movhf_vfp): Remove NEON instructions.
1702         * config/arm/constraints.md: Add new "Dy" constraint for
1703         double-precision constants.  Update description of "Dv".
1704         * config/arm/arm.md: Disable double-precision patterns if the FPU
1705         does not provide them
1706
1707 2009-11-09  Jakub Jelinek  <jakub@redhat.com>
1708
1709         * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
1710         (print_operand) <case 'Y'>: Likewise.  Fix a pasto in operand lossage
1711         diagnostics.
1712
1713 2009-11-08  H.J. Lu  <hongjiu.lu@intel.com>
1714
1715         * collect2.c (main): Search PLUGIN_LD for plugin linker.
1716
1717         * configure.ac (--with-plugin-ld): New.  Default to ld.
1718         * configure: Regenerated.
1719         * config.in: Likewise.
1720
1721         * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
1722         (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
1723
1724 2009-11-08  Jonathan Gray  <jsg@openbsd.org>
1725
1726         * config/openbsd-stdint.h: Change to reflect what
1727         c_common_nodes_and_builtins expects.
1728
1729 2009-11-08  Paolo Carlini  <paolo.carlini@oracle.com>
1730
1731         * builtins.c (apply_args_reg_offset): Remove commented out delaration.
1732
1733 2009-11-08  Jakub Jelinek  <jakub@redhat.com>
1734
1735         PR target/41985
1736         * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
1737         function contains at least one local dynamic name.
1738         (print_operand) <case '&'>: Instead output operand lossage diagnostics
1739         here if that happens.
1740
1741 2009-11-08  Zbigniew Chamski  <zbigniew.chamski@gmail.com>
1742             Joern Rennecke  <amylaar@spamcop.net>
1743
1744         * cfgrtl.c (pass_free_cfg): Add pass name.
1745         * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
1746         (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
1747         * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
1748         * df-core.c (pass_df_initialize_no_opt): Likewise.
1749         * except.c (pass_rtl_eh): Likewise.
1750         * function.c (pass_init_function, pass_leaf_regs): Likewise.
1751         * gcse.c (pass_rtl_pre): Change pass name.
1752         * passes.c (pass_postreload): Add pass name.
1753         (make_pass_instance): Don't use duplicate-tracking logic for
1754         names starting with '*'.
1755         (next_pass_1): Assert that pass has a name.
1756         (register_one_dump_file): If there is an space in the name,
1757         skip past it.
1758         * predict.c (pass_strip_predict_hints): Add pass name.
1759         * reg-stack.c (pass_stack_regs): Likewise.
1760         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
1761         * tree-cfg.c (pass_warn_function_return,
1762         pass_warn_function_noreturn): Add pass name.
1763         * tree-dfa.c (pass_referenced_vars): Likewise.
1764         * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
1765         Fix whitespace before comment.
1766         (pass_fixup_cfg): Add pass name, fix whitespace before comment.
1767         (pass_init_datastructures): Add pass name.
1768         * tree-ssa-loop.c (pass_record_bounds): Likewise.
1769         * tree-ssa.c (pass_early_warn_uninitialized,
1770         pass_late_warn_uninitialized): Likewise.
1771         * tree.c (pass_ipa_free_lang_data): Likewise.
1772         * doc/passes.texi (pass manager): Document how to disambiguate
1773         pass names.
1774
1775 2009-11-08  Paolo Bonzini  <bonzini@gnu.org>
1776
1777         * df-problems.c: Fix documentation for forward simulation of LR.
1778         (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
1779         (df_simulate_finalize_forwards): Remove.
1780         * df.h (df_simulate_finalize_forwards): Remove.
1781
1782 2009-11-08  Richard Guenther  <rguenther@suse.de>
1783
1784         * tree-ssa-structalias.c (build_succ_graph): Properly make
1785         variables escape if they are stored to anything.
1786
1787 2009-11-08  Richard Guenther  <rguenther@suse.de>
1788
1789         PR rtl-optimization/41928
1790         * loop-invariant.c (free_loop_data): If we didn't allocate
1791         loop data do not try to free it.
1792
1793 2009-11-07  Jason Merrill  <jason@redhat.com>
1794
1795         * tree.c (reconstruct_complex_type): Preserve attributes.
1796
1797 2009-11-07  Richard Guenther  <rguenther@suse.de>
1798
1799         * tree-ssa-structalias.c (build_succ_graph): Feed stores
1800         to anything only to variables that can take pointers.
1801         (get_constraint_for_ssa_var): Properly exclude full
1802         variables from expanding.
1803         (first_vi_for_offset): Avoid overflow in arithmetic.
1804         (first_or_preceding_vi_for_offset): Likewise.
1805         (count_num_arguments): Fix implementation.
1806         (gate_ipa_pta): Do not run when not optimizing.
1807
1808 2009-11-07  David Binderman <dcb314@hotmail.com>
1809
1810         * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
1811         expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
1812         set but not used variables.
1813         (apply_args_reg_offset): Comment out as unused.
1814         * calls.c (flags_from_decl_or_type): Likewise.
1815         * genautomata.c (check_regexp_units_distribution): Likewise.
1816
1817 2009-11-07  Uros Bizjak  <ubizjak@gmail.com>
1818
1819         * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
1820         xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
1821         *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
1822         xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
1823         xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
1824         xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
1825         operand alternatives.
1826
1827 2009-11-06  Michael Matz  <matz@suse.de>
1828
1829         PR middle-end/41963
1830         * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
1831         of a potential reciprocal to really be reciprocals.
1832
1833 2009-11-06  Jakub Jelinek  <jakub@redhat.com>
1834
1835         * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
1836         lwpintrin.h after immintrin.h.
1837         * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
1838         typedefs.
1839
1840         PR middle-end/41935
1841         * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
1842         or non-constant index, allow index one past the last element and
1843         allow exceeding array bound in arrays that might be used as flexible
1844         array members.
1845
1846 2009-11-05  Richard Henderson  <rth@redhat.com>
1847
1848         * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
1849
1850 2009-11-05  Paul Brook  <paul@codesourcery.com>
1851
1852         * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
1853         (arm_fpu_desc): New.
1854         (all_fpus): Add FPU details.
1855         (fp_model_for_fpu): Remove.
1856         (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
1857         (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
1858         (arm_file_start): Use arm_fpu_desc.
1859         * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
1860         TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
1861         arm_fpu_desc.
1862         (TARGET_FPA_EMU2): Define.
1863         (arm_fp_model, fputype, arm_fpu_tune): Remove.
1864         (vfp_reg_type, arm_fpu_desc): New.
1865         * config/arm/arm.md (attr fpu): Simplify.
1866         * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
1867         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
1868         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
1869         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
1870         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
1871
1872 2009-11-05  Michael Matz  <matz@suse.de>
1873
1874         * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
1875         on TARGET_RECIP.
1876         * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
1877         for 1/sqrtf.
1878
1879 2009-11-04  Jason Merrill  <jason@redhat.com>
1880
1881         PR c++/36912
1882         * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
1883         or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
1884         (output_constant): Avoid crash after error.
1885
1886 2009-11-05  Martin Jambor  <mjambor@suse.cz>
1887
1888         * tree-sra.c (struct access): Changed comment of next_sibling field.
1889         (analyze_modified_params): Loop over accesses of a group rather than
1890         over all with the ame base, pass a common bitmap to
1891         walk_aliased_vdefs.
1892         (unmodified_by_ref_scalar_representative): Build link lists of
1893         accesses of a group.
1894         (splice_param_accesses): Likewise.
1895
1896 2009-11-04  Kenneth Zadeck  <zadeck@naturalbridge.com>
1897
1898         * df-scan.c (df-uses-record): Add case zero_extract of mem.
1899
1900 2009-11-04  Eric Botcazou  <ebotcazou@adacore.com>
1901
1902         PR target/10127
1903         PR ada/20548
1904         * config/i386/i386.md (probe_stack): New expander.
1905         (logical operation peepholes): Do not split stack checking probes.
1906
1907 2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
1908             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1909
1910         * doc/invoke.texi (-mlwp): Add documentation.
1911         * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
1912         * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
1913         (x86_64-*-*): Ditto.
1914         * config/i386/lwpintrin.h: New file, provide x86 compiler
1915         intrinisics for LWP.
1916         * config/i386/cpuid.h (bit_LWP): Define LWP bit.
1917         * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
1918         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1919         ISA_FLAG for LWP.
1920         * config/i386/i386.h (TARGET_LWP): New macro for LWP.
1921         * config/i386/i386.opt (-mlwp): New switch for LWP support.
1922         * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
1923         (OPTION_MASK_ISA_LWP_UNSET): New.
1924         (ix86_handle_option): Handle -mlwp.
1925         (isa_opts): Handle -mlwp.
1926         (enum pta_flags): Add PTA_LWP.
1927         (override_options): Add LWP support.
1928         (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
1929         (IX86_BUILTIN_LLWPCB32): Ditto.
1930         (IX86_BUILTIN_LLWPCB64): Ditto.
1931         (IX86_BUILTIN_SLWPCB16): Ditto.
1932         (IX86_BUILTIN_SLWPCB32): Ditto.
1933         (IX86_BUILTIN_SLWPCB64): Ditto.
1934         (IX86_BUILTIN_LWPVAL16): Ditto.
1935         (IX86_BUILTIN_LWPVAL32): Ditto.
1936         (IX86_BUILTIN_LWPVAL64): Ditto.
1937         (IX86_BUILTIN_LWPINS16): Ditto.
1938         (IX86_BUILTIN_LWPINS32): Ditto.
1939         (IX86_BUILTIN_LWPINS64): Ditto.
1940         (enum  ix86_special_builtin_type): Add LWP intrinsic support.
1941         (builtin_description): Ditto.
1942         (ix86_init_mmx_sse_builtins): Ditto.
1943         (ix86_expand_special_args_builtin): Ditto.
1944         * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
1945         LWP support.
1946         (UNSPEC_SLWP_INTRINSIC): Ditto.
1947         (UNSPECV_LWPVAL_INTRINSIC): Ditto.
1948         (UNSPECV_LWPINS_INTRINSIC): Ditto.
1949         (lwp_llwpcbhi1): New lwp pattern.
1950         (lwp_llwpcbsi1): Ditto.
1951         (lwp_llwpcbdi1): Ditto.
1952         (lwp_slwpcbhi1): Ditto.
1953         (lwp_slwpcbsi1): Ditto.
1954         (lwp_slwpcbdi1): Ditto.
1955         (lwp_lwpvalhi3): Ditto.
1956         (lwp_lwpvalsi3): Ditto.
1957         (lwp_lwpvaldi3): Ditto.
1958         (lwp_lwpinshi3): Ditto.
1959         (lwp_lwpinssi3): Ditto.
1960         (lwp_lwpinsdi3): Ditto.
1961
1962 2009-11-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1963             Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1964
1965         PR rtl-opt/41833
1966         * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
1967         a vec_duplicate.
1968
1969 2009-11-04  Richard Guenther  <rguenther@suse.de>
1970             Rafael Avila de Espindola  <espindola@google.com>
1971
1972         * gcc.c (process_command): Handle arguments name@offset.
1973
1974 2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
1975             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1976
1977         * config.gcc (i[34567]86-*-*): Include xopintrin.h.
1978         (x86_64-*-*): Ditto.
1979         * config/i386/xopintrin.h: New file, provide common x86 compiler
1980         intrinisics for XOP.
1981         * config/i386/cpuid.h (bit_XOP): Define XOP bit.
1982         * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
1983         * config/i386/i386-c.c(ix86_target_macros_internal): Check
1984         ISA_FLAG for XOP.
1985         * config/i386/i386.h(TARGET_XOP): New macro for XOP.
1986         * config/i386/i386.opt (-mxop): New switch for XOP support.
1987         * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
1988         (UNSPEC_XOP_TRUEFALSE)
1989         (UNSPEC_XOP_PERMUTE)
1990         (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
1991         (PPERM_*): New constants for vpperm instruction.
1992         (xop_pcmov_<mode>): Add XOP conditional mov instructions.
1993         * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
1994         (OPTION_MASK_ISA_XOP_UNSET): New.
1995         (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
1996         (ix86_handle_option): Handle -mxop.
1997         (isa_opts): Handle -mxop.
1998         (enum pta_flags): Add PTA_XOP.
1999         (override_options): Add XOP support.
2000         (print_operand): Add code for XOP compare instructions.
2001         (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
2002         (ix86_expand_int_vcond): Extend for XOP compare instruction.
2003
2004         (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
2005         (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
2006         (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
2007         (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
2008         (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
2009         (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
2010         (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
2011
2012         (IX86_BUILTIN_VPCMOV256): Ditto.
2013         (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
2014         (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
2015         (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
2016         (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
2017         (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
2018         (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
2019
2020         (IX86_BUILTIN_VPPERM): Ditto.
2021
2022         (IX86_BUILTIN_VPMACSSWW): Ditto.
2023         (IX86_BUILTIN_VPMACSWW): Ditto.
2024         (IX86_BUILTIN_VPMACSSWD): Ditto.
2025         (IX86_BUILTIN_VPMACSWD): Ditto.
2026         (IX86_BUILTIN_VPMACSSDD): Ditto.
2027         (IX86_BUILTIN_VPMACSDD): Ditto.
2028         (IX86_BUILTIN_VPMACSSDQL): Ditto.
2029         (IX86_BUILTIN_VPMACSSDQH): Ditto.
2030         (IX86_BUILTIN_VPMACSDQL): Ditto.
2031         (IX86_BUILTIN_VPMACSDQH): Ditto.
2032         (IX86_BUILTIN_VPMADCSSWD): Ditto.
2033         (IX86_BUILTIN_VPMADCSWD): Ditto.
2034
2035         (IX86_BUILTIN_VPHADDBW): Ditto.
2036         (IX86_BUILTIN_VPHADDBD): Ditto.
2037         (IX86_BUILTIN_VPHADDBQ): Ditto.
2038         (IX86_BUILTIN_VPHADDWD): Ditto.
2039         (IX86_BUILTIN_VPHADDWQ): Ditto.
2040         (IX86_BUILTIN_VPHADDDQ): Ditto.
2041         (IX86_BUILTIN_VPHADDUBW): Ditto.
2042         (IX86_BUILTIN_VPHADDUBD): Ditto.
2043         (IX86_BUILTIN_VPHADDUBQ): Ditto.
2044         (IX86_BUILTIN_VPHADDUWD): Ditto.
2045         (IX86_BUILTIN_VPHADDUWQ): Ditto.
2046         (IX86_BUILTIN_VPHADDUDQ): Ditto.
2047         (IX86_BUILTIN_VPHSUBBW): Ditto.
2048         (IX86_BUILTIN_VPHSUBWD): Ditto.
2049         (IX86_BUILTIN_VPHSUBDQ): Ditto.
2050
2051         (IX86_BUILTIN_VPROTB): Ditto.
2052         (IX86_BUILTIN_VPROTW): Ditto.
2053         (IX86_BUILTIN_VPROTD): Ditto.
2054         (IX86_BUILTIN_VPROTQ): Ditto.
2055         (IX86_BUILTIN_VPROTB_IMM): Ditto.
2056         (IX86_BUILTIN_VPROTW_IMM): Ditto.
2057         (IX86_BUILTIN_VPROTD_IMM): Ditto.
2058         (IX86_BUILTIN_VPROTQ_IMM): Ditto.
2059
2060         (IX86_BUILTIN_VPSHLB): Ditto.
2061         (IX86_BUILTIN_VPSHLW): Ditto.
2062         (IX86_BUILTIN_VPSHLD): Ditto.
2063         (IX86_BUILTIN_VPSHLQ): Ditto.
2064         (IX86_BUILTIN_VPSHAB): Ditto.
2065         (IX86_BUILTIN_VPSHAW): Ditto.
2066         (IX86_BUILTIN_VPSHAD): Ditto.
2067         (IX86_BUILTIN_VPSHAQ): Ditto.
2068
2069         (IX86_BUILTIN_VFRCZSS): Ditto.
2070         (IX86_BUILTIN_VFRCZSD): Ditto.
2071         (IX86_BUILTIN_VFRCZPS): Ditto.
2072         (IX86_BUILTIN_VFRCZPD): Ditto.
2073         (IX86_BUILTIN_VFRCZPS256): Ditto.
2074         (IX86_BUILTIN_VFRCZPD256): Ditto.
2075
2076         (IX86_BUILTIN_VPCOMEQUB): Ditto.
2077         (IX86_BUILTIN_VPCOMNEUB): Ditto.
2078         (IX86_BUILTIN_VPCOMLTUB): Ditto.
2079         (IX86_BUILTIN_VPCOMLEUB): Ditto.
2080         (IX86_BUILTIN_VPCOMGTUB): Ditto.
2081         (IX86_BUILTIN_VPCOMGEUB): Ditto.
2082         (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
2083         (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
2084
2085         (IX86_BUILTIN_VPCOMEQUW): Ditto.
2086         (IX86_BUILTIN_VPCOMNEUW): Ditto.
2087         (IX86_BUILTIN_VPCOMLTUW): Ditto.
2088         (IX86_BUILTIN_VPCOMLEUW): Ditto.
2089         (IX86_BUILTIN_VPCOMGTUW): Ditto.
2090         (IX86_BUILTIN_VPCOMGEUW): Ditto.
2091         (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
2092         (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
2093
2094         (IX86_BUILTIN_VPCOMEQUD): Ditto.
2095         (IX86_BUILTIN_VPCOMNEUD): Ditto.
2096         (IX86_BUILTIN_VPCOMLTUD): Ditto.
2097         (IX86_BUILTIN_VPCOMLEUD): Ditto.
2098         (IX86_BUILTIN_VPCOMGTUD): Ditto.
2099         (IX86_BUILTIN_VPCOMGEUD): Ditto.
2100         (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
2101         (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
2102
2103         (IX86_BUILTIN_VPCOMEQUQ): Ditto.
2104         (IX86_BUILTIN_VPCOMNEUQ): Ditto.
2105         (IX86_BUILTIN_VPCOMLTUQ): Ditto.
2106         (IX86_BUILTIN_VPCOMLEUQ): Ditto.
2107         (IX86_BUILTIN_VPCOMGTUQ): Ditto.
2108         (IX86_BUILTIN_VPCOMGEUQ): Ditto.
2109         (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
2110         (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
2111
2112         (IX86_BUILTIN_VPCOMEQB): Ditto.
2113         (IX86_BUILTIN_VPCOMNEB): Ditto.
2114         (IX86_BUILTIN_VPCOMLTB): Ditto.
2115         (IX86_BUILTIN_VPCOMLEB): Ditto.
2116         (IX86_BUILTIN_VPCOMGTB): Ditto.
2117         (IX86_BUILTIN_VPCOMGEB): Ditto.
2118         (IX86_BUILTIN_VPCOMFALSEB): Ditto.
2119         (IX86_BUILTIN_VPCOMTRUEB): Ditto.
2120
2121         (IX86_BUILTIN_VPCOMEQW): Ditto.
2122         (IX86_BUILTIN_VPCOMNEW): Ditto.
2123         (IX86_BUILTIN_VPCOMLTW): Ditto.
2124         (IX86_BUILTIN_VPCOMLEW): Ditto.
2125         (IX86_BUILTIN_VPCOMGTW): Ditto.
2126         (IX86_BUILTIN_VPCOMGEW): Ditto.
2127         (IX86_BUILTIN_VPCOMFALSEW): Ditto.
2128         (IX86_BUILTIN_VPCOMTRUEW): Ditto.
2129
2130         (IX86_BUILTIN_VPCOMEQD): Ditto.
2131         (IX86_BUILTIN_VPCOMNED): Ditto.
2132         (IX86_BUILTIN_VPCOMLTD): Ditto.
2133         (IX86_BUILTIN_VPCOMLED): Ditto.
2134         (IX86_BUILTIN_VPCOMGTD): Ditto.
2135         (IX86_BUILTIN_VPCOMGED): Ditto.
2136         (IX86_BUILTIN_VPCOMFALSED): Ditto.
2137         (IX86_BUILTIN_VPCOMTRUED): Ditto.
2138
2139         (IX86_BUILTIN_VPCOMEQQ): Ditto.
2140         (IX86_BUILTIN_VPCOMNEQ): Ditto.
2141         (IX86_BUILTIN_VPCOMLTQ): Ditto.
2142         (IX86_BUILTIN_VPCOMLEQ): Ditto.
2143         (IX86_BUILTIN_VPCOMGTQ): Ditto.
2144         (IX86_BUILTIN_VPCOMGEQ): Ditto.
2145         (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
2146         (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
2147
2148         (enum multi_arg_type): New enum for describing the various XOP
2149         intrinsic argument types.
2150         (bdesc_multi_arg): New table for XOP intrinsics.
2151         (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
2152         (ix86_expand_multi_arg_builtin): New function for creating XOP
2153         intrinsics.
2154
2155         * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
2156         (xop_pmacsww): Ditto.
2157         (xop_pmacssww): Ditto.
2158         (xop_pmacsdd): Ditto.
2159         (xop_pmacssdd): Ditto.
2160         (xop_pmacssdql): Ditto.
2161         (xop_pmacssdqh): Ditto.
2162         (xop_pmacsdql): Ditto.
2163         (xop_pmacsdql_mem): Ditto.
2164         (xop_mulv2div2di3_low): Ditto.
2165         (xop_pmacsdqh): Ditto.
2166         (xop_pmacsdqh_mem): Ditto.
2167         (xop_mulv2div2di3_high): Ditto.
2168         (xop_pmacsswd): Ditto.
2169         (xop_pmacswd): Ditto.
2170         (xop_pmadcsswd): Ditto.
2171         (xop_pmadcswd): Ditto.
2172         (xop_pcmov_<mode>): Ditto.
2173         (xop_pcmov_<mode>256): Ditto.
2174         (xop_phaddbw): Ditto.
2175         (xop_phaddbd): Ditto.
2176         (xop_phaddbq): Ditto.
2177         (xop_phaddwd): Ditto.
2178         (xop_phaddwq): Ditto.
2179         (xop_phadddq): Ditto.
2180         (xop_phaddubw): Ditto.
2181         (xop_phaddubd): Ditto.
2182         (xop_phaddubq): Ditto.
2183         (xop_phadduwd): Ditto.
2184         (xop_phadduwq): Ditto.
2185         (xop_phaddudq): Ditto.
2186         (xop_phsubbw): Ditto.
2187         (xop_phsubwd): Ditto.
2188         (xop_phsubdq): Ditto.
2189         (xop_pperm): Ditto.
2190         (rotl<mode>3): Ditto.
2191         (rotr<mode>3): Ditto.
2192         (xop_rotl<mode>3): Ditto.
2193         (xop_rotr<mode>3): Ditto.
2194         (vrotr<mode>3): Ditto.
2195         (vrotl<mode>3): Ditto.
2196         (xop_vrotl<mode>3): Ditto.
2197         (vlshr<mode>3): Ditto.
2198         (vashr<mode>3): Ditto.
2199         (vashl<mode>3
2200         (xop_ashl<mode>3): Ditto.
2201         (xop_lshl<mode>3): Ditto.
2202         (ashlv16qi3): Ditto.
2203         (lshlv16qi3): Ditto.
2204         (ashrv16qi3): Ditto.
2205         (ashrv2di3): Ditto.
2206         (xop_frcz<mode>2): Ditto.
2207         (xop_vmfrcz<mode>2): Ditto.
2208         (xop_frcz<mode>2256): Ditto.
2209         (xop_maskcmp<mode>3): Ditto.
2210         (xop_maskcmp_uns<mode>3): Ditto.
2211         (xop_maskcmp_uns2<mode>3): Ditto.
2212         (xop_pcom_tf<mode>3): Ditto.
2213
2214         * doc/invoke.texi (-mxop): Add documentation.
2215         * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
2216
2217 2009-11-03  Mark Mitchell  <mark@codesourcery.com>
2218
2219         PR driver/11810
2220         * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
2221         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
2222         * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
2223
2224 2009-11-04  Richard Earnshaw  <rearnsha@arm.com>
2225
2226         PR target/40835
2227         * arm.md (peephole2 patterns for move and compare): New.
2228
2229 2009-11-04  Nick Clifton  <nickc@redhat.com>
2230
2231         * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
2232         Make sure that it does not allow CONST_DOUBLEs.
2233         * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
2234         * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
2235         * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
2236         * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
2237         * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
2238         * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
2239         * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
2240         * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
2241         * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
2242         * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
2243         * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
2244         * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
2245         * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
2246         * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
2247         * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
2248
2249 2009-11-04  Richard Guenther  <rguenther@suse.de>
2250
2251         PR tree-optimization/41919
2252         * tree-vrp.c (test_for_singularity): Properly compare values.
2253
2254 2009-11-04  Revital Eres  <eres@il.ibm.com>
2255
2256         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2257         Consider peeling for alignment only for stores and remove
2258         redundant assignment.
2259
2260 2009-11-04  Maxim Kuvyrkov  <maxim@codesourcery.com>
2261
2262         PR target/41302
2263         * config/m68k/m68k.c (m68k_reg_present_p): New static function.
2264         (m68k_ok_for_sibcall_p): Handle different result return locations.
2265
2266 2009-11-04  Richard Guenther  <rguenther@suse.de>
2267
2268         * c-opts.c (c_common_post_options): Move LTO option processing
2269         code ...
2270         * opts.c (decode_options): ... here.
2271
2272 2009-11-04  Jakub Jelinek  <jakub@redhat.com>
2273
2274         * c-common.c (fold_offsetof_1): Use %wd instead of
2275         HOST_WIDE_INT_PRINT_DEC.
2276
2277 2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>
2278
2279         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
2280         __pic__ or __PIC__.
2281
2282 2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>
2283
2284         * config.gcc (vax-*-linux*): Keep the original contents of
2285         tmake_file while adding vax/t-linux.
2286
2287 2009-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2288
2289         PR target/10127
2290         PR ada/20548
2291         * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
2292         (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
2293         (STACK_CHECK_MOVING_SP): Likewise.
2294         * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
2295         * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
2296         Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
2297         * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
2298         Document PROBE_STACK.
2299         * explow.c (anti_adjust_stack_and_probe): New function.
2300         (allocate_dynamic_stack_space): Do not directly allocate space if
2301         STACK_CHECK_MOVING_SP, instead invoke above function.
2302         (emit_stack_probe): Handle probe_stack insn.
2303         (PROBE_INTERVAL): New macro.
2304         (STACK_GROW_OPTAB): Likewise.
2305         (STACK_GROW_OFF): Likewise.
2306         (probe_stack_range): Use Pmode and memory_address consistently.  Fix
2307         loop condition in the small constant case.  Rewrite in the general
2308         case to be immune to wraparounds.  Make sure the address of probes
2309         is valid.  Try to use [base + disp] addressing mode if possible.
2310         * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
2311         checking is enabled and STACK_CHECK_MOVING_SP.
2312         * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
2313         return 1 for volatile references to the stack pointer.
2314         * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
2315         __builtin_alloca if stack checking is enabled.
2316         * unwind-dw2.c (uw_identify_context): Take into account whether the
2317         context is that of a signal frame or not.
2318         * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
2319         * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
2320
2321 2009-11-03  Jakub Jelinek  <jakub@redhat.com>
2322
2323         PR rtl-optimization/41917
2324         * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
2325         operand isn't known to be 0, return 1.
2326
2327 2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
2328
2329         * config/mips/mips.md: Fix typos.
2330
2331 2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
2332
2333         * doc/invoke.texi: Fix typo.
2334
2335 2009-11-03  Paul Brook  <paul@codesourcery.com>
2336
2337         * config/arm/neon.ml (vectype): Add T_floatSF.
2338         (string_of_vectype): Ditto.
2339         * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
2340         (deftypes): Use float for float32_t.
2341         * config/arm/arm_neon.h: Regenerate.
2342
2343 2009-11-03  Nick Clifton  <nickc@redhat.com>
2344             Kevin Buettner  <kevinb@redhat.com>
2345
2346         * config/rx/predicates.md (rx_store_multiple_vector): Reverse
2347         order of expected registers.
2348         (rx_load_multiple_vector): Likewise.
2349         (rx_rtsd_vector): Likewise.
2350         * config/rx/rx.c (rx_cpu_type): New variable.
2351         (rx_print_operand): Fix bug printing 64-bit constant values.
2352         (rx_emit_stack_pushm): Reverse order of pushed registers.
2353         (gen_rx_store_vector): Likewise.
2354         (is_fast_interrupt_func): Only accept "fast_interrupt" as the
2355         attribute name.
2356         (is_exception_func): Rename to is_interrupt_func and only accept
2357         "interrupt" as the attribute name.
2358         (rx_get_stack_layout): Use new function name.
2359         (rx_func_attr_inlinable): Likewise.
2360         (rx_attribute_table): Remove "exception".
2361         (rx_expand_prologue): If necessary push the accumulator register
2362         in the prologue of interrupt functions.
2363         (rx_expand_epilogue): If necessary pop the accumulator.
2364         (rx_builtins): Add RX_BUILTIN_MVTIPL.
2365         (rx_expand_builtin_stz): Remove.
2366         (rx_expand_builtin_mvtipl): New function.
2367         (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
2368         (rx_expand_builtin): Likewise.
2369         (rx_enable_fpu): New variable.
2370         (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
2371         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
2372         on rx_cpu_type.  Define __RX_FPU_INSNS__ if FPU insns are allowed.
2373         (enum rx_cpu_types): Define.
2374         (ASM_SPEC): Pass -m32bit-doubles on to assembler.
2375         (INCOMING_FRAME_SP_OFFSET): Define.
2376         (ARG_POINTER_CFA_OFFSET): Define.
2377         (FRAME_POINTER_CFA_OFFSET): Define.
2378         (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
2379         (ALLOW_RX_FPU_INSNS): Define.
2380         * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
2381         fast_math_flags_set_p.
2382         (UNSPEC_BUILTIN_MVTIPL): Define.
2383         (revl): Rename to bswapsi2.
2384         (bswaphi2): New pattern.
2385         (mvtachi): Mark as volatile because it uses a register unknown to GCC.
2386         (mvtaclo): Likewise.
2387         (racw): Likewise.
2388         (mvtc): Remove clobber of cc0.
2389         (mvtcp): Delete.
2390         (opecp): Delete.
2391         * config/rx/rx.opt (mieee): Remove.
2392         (fpu): Add.
2393         (nofpu): Add.
2394         (mcpu=): Add.
2395         (patch=): Add.
2396         (msave-acc-in-interrupts): Add.
2397         * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
2398         (MULTILIB_DIRS): Likewise.
2399         (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
2400         * doc/extend.texi: Remove description of "exception" function
2401         attribute.
2402         * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
2403         -msave-acc-in-interrupts options.
2404
2405 2009-11-03  Richard Guenther  <rguenther@suse.de>
2406
2407         * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
2408
2409 2009-11-03  Dodji Seketeli  <dodji@redhat.com>
2410
2411         PR c++/38699
2412         * c-common.c (fold_offsetof_1): Issue errors when the member
2413         designator of the offsetof expression is not legitimate.
2414
2415 2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
2416
2417         * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
2418         names instead of numerical constants.
2419         (sse_prologue_save): Ditto.
2420         (*sse_prologue_save_insn): Ditto.
2421
2422 2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
2423
2424         PR target/41900
2425         * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
2426         (TARGET_CALL_ESP): New define.
2427         * config/i386/i386.c (initial_ix86_tune_features): Initialize
2428         X86_ARCH_CALL_ESP.
2429         * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
2430         *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
2431         *call_1, *call_value_pop_1 and *call_value_1.  Depend on
2432         TARGET_CALL_ESP.
2433         (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
2434         New patterns, use "lsm" as operand 1 constraint.
2435         * config/i386/predicates.md (call_insn_operand): Depend on
2436         index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
2437
2438 2009-11-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2439
2440         PR tree-optimization/41857
2441         * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
2442         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
2443         to create_mem_ref.
2444         * tree-ssa-address.c (move_hint_to_base): New function.
2445         (most_expensive_mult_to_index): Add TYPE argument.  Use mode and
2446         address space associated with TYPE.
2447         (addr_to_parts): Add TYPE and BASE_HINT arguments.  Pass TYPE to
2448         most_expensive_mult_to_index.  Call move_hint_to_base.
2449         (create_mem_ref): Add BASE_HINT argument.  Pass BASE_HINT and
2450         TYPE to addr_to_parts.
2451
2452 2009-11-02  Martin Jambor  <mjambor@suse.cz>
2453
2454         PR tree-optimization/41750
2455         * tree-sra.c (analyze_modified_params): Loop over all
2456         representatives of components of a parameter.
2457
2458 2009-11-02  Jakub Jelinek  <jakub@redhat.com>
2459
2460         PR tree-optimization/41841
2461         * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
2462         local variables of not yet materialized clones.
2463
2464         PR debug/41893
2465         * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
2466         for a VOIDmode variable.
2467
2468         PR c++/41774
2469         * c-pragma.c (visstack): Change into vector of ints rather than
2470         enum symbol_visibility.
2471         (push_visibility): Add kind argument, push default_visibility together
2472         with kind.
2473         (pop_visibility): Add kind argument, return true if successful, fail
2474         if visibility stack is empty or if stack top is of different kind.
2475         (handle_pragma_visibility): Don't check length of visstack, instead
2476         call pop_visibility and issue diagnostics if it failed.  Pass 0
2477         as last argument to push_visibility and pop_visibility.
2478         * c-pragma.h (push_visibility): Add kind argument.
2479         (pop_visibility): Likewise.  Return bool instead of void.
2480
2481 2009-11-01  Eric Botcazou  <ebotcazou@adacore.com>
2482
2483         * tree.def (TARGET_MEM_REF): Update comment.
2484         * alias.c (get_alias_set): Retrieve the original memory reference for
2485         a TARGET_MEM_REF before proceeding.
2486
2487 2009-10-31  Anatoly Sokolov  <aesok@post.ru>
2488
2489         * config/frv/frv.c (frv_function_value, frv_libcall_value,
2490         frv_function_value_regno_p): New functions.
2491         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2492         * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2493         (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
2494         * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
2495
2496 2009-10-31  Anatoly Sokolov  <aesok@post.ru>
2497
2498         * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
2499         new 'outgoing' argument.
2500         (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
2501         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2502         * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2503         LIBCALL_VALUE): Remove.
2504         (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
2505         * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
2506         (mh10300_function_value_regno_p): Declare.
2507
2508 2009-10-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2509
2510         * config/arm/cortex-a9.md: New - integer pipeline description.
2511
2512 2009-10-31  Eric Botcazou  <ebotcazou@adacore.com>
2513
2514         * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
2515         aborting if the sizes of the two references don't match.
2516
2517 2009-10-31  Toon Moene  <toon@moene.org>
2518
2519         * ipa-inline.c (cgraph_decide_inlining):
2520         Include reason for not inlining called-once functions in dump file.
2521
2522 2009-10-30  Daniel Gutson  <dgutson@codesourcery.com>
2523
2524         * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
2525         * config/arm/bpapi.h (BE8_LINK_SPEC): New define.
2526         (LINK_SPEC): BE_LINK_SPEC added.
2527
2528 2009-10-30  Richard Guenther  <rguenther@suse.de>
2529
2530         PR lto/41858
2531         * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
2532
2533 2009-10-30  Nathan Sidwell  <nathan@codesourcery.com>
2534
2535         * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
2536         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
2537         label.
2538
2539 2009-10-30  Martin Jambor  <mjambor@suse.cz>
2540
2541         * tree-sra.c (build_ref_for_offset_1): Remove a comment.
2542
2543 2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>
2544
2545         PR target/40838
2546         * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
2547         first.  Move assert on stack_alignment_estimated just before
2548         setting stack_realign_needed.
2549         (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
2550         Don't call update_stack_boundary.
2551
2552         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
2553         (verride_options): Don't check ix86_force_align_arg_pointer here.
2554         (ix86_function_ok_for_sibcall): Use it.
2555         (ix86_update_stack_boundary): Likewise.
2556
2557         * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
2558
2559 2009-10-30  Richard Earnshaw  <rearnsha@arm.com>
2560
2561         * arm.md (QHSI): New mode iterator.
2562         (movqi): If generating for thumb, then truncate any immediate to
2563         8 bits.
2564         * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
2565         with...
2566         (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
2567         version.
2568
2569 2009-10-29  Cary Coutant  <ccoutant@google.com>
2570
2571         PR debug/41700
2572         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
2573         locations in the source).
2574         (store_vcall_insn): New function.
2575         (lookup_vcall_insn): New function.
2576         (dwarf2out_virtual_call_token): Use store_vcall_insn.
2577         (dwarf2out_copy_call_info): New function.
2578         (dwarf2out_virtual_call): Use lookup_vcall_insn.
2579         * emit-rtl.c (try_split): Call copy_call_info debug hook.
2580         * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
2581         * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
2582         (debug_nothing_rtx_rtx): New dummy hook.
2583         * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
2584         (xcoff_debug_hooks): Likewise.
2585         * sdbout.c (sdb_debug_hooks): Likewise.
2586         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2587
2588 2009-10-29  David Daney  <ddaney@caviumnetworks.com>
2589
2590         * doc/invoke.texi (mmcount-ra-address): Document new command line
2591         option.
2592         * config/mips/mips.opt (mmcount-ra-address): New option.
2593         * config/mips/mips-protos.h (mips_function_profiler): Declare new
2594         function.
2595         * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
2596         member.
2597         (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
2598         (mips_function_profiler): Moved from FUNCTION_PROFILER, and
2599         rewritten.
2600         * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
2601         mips_function_profiler.
2602
2603 2009-10-29  Steve Ellcey  <sje@cup.hp.com>
2604
2605         PR middle-end/37565
2606         PR target/38018
2607         * doc/tm.texi (OVERRIDE_OPTIONS): Update.
2608         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
2609         * optc-gen.awk (cl_target_option_restore): Include call to
2610         targetm.override_options_after_change.
2611         * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
2612         * target.h (override_options_after_change): New.
2613         * c-common.c (parse_optimize_options): Call
2614         targetm.override_options_after_change.
2615         * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
2616         (ia64_override_options_after_change): New.
2617         (ia64_override_options) Add call to above.
2618
2619 2009-10-29  Michael Matz  <matz@suse.de>
2620
2621         * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
2622         (gate_convert_to_rsqrt): Ditto.
2623         (pass_convert_to_rsqrt): Ditto.
2624         * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
2625         * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
2626         to pass list.
2627
2628         * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
2629
2630 2009-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2631
2632         * config/arm/arm.c (find_best_start): Fix type of remainder to be
2633         unsigned.
2634
2635 2009-10-29  Martin Jambor  <mjambor@suse.cz>
2636
2637         PR tree-optimization/41775
2638         * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
2639         (generate_subtree_copies): Do not unshare agg.
2640         (load_assign_lhs_subreplacements): Do not unshare rhs.
2641         (sra_modify_assign): Do not unshare exprs.
2642         (propagate_subacesses_accross_link): Renamed to
2643         propagate_subaccesses_across_link.
2644
2645 2009-10-29  Richard Earnshaw  <rearnsha@arm.com>
2646
2647         * arm.c (count_insns_for_constant): Rework to support counting for
2648         thumb2 immediates as well.
2649         (find_best_start): Split out from arm_gen_constant.
2650         (arm_gen_constant): Rework to support XOR with immediate.
2651
2652 2009-10-29  Chao-ying Fu  <fu@mips.com>
2653
2654         * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
2655         functions.
2656         (mips_expand_synci_loop):  Use the length rtx to control the
2657         synci loop from the begin rtx that points to the first byte of
2658         the cache line.
2659
2660 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
2661
2662         * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
2663
2664 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
2665
2666         * dbxout.c (dbxout_common_check): Accept non public trees.
2667         * dwarf2out.c (fortran_common): Accept non public trees.
2668
2669 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
2670
2671         * common.opt (fuse-linker-plugin): New option.
2672         * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
2673         fuse-linker-plugin.
2674         * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
2675
2676 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
2677
2678         PR rtl-optimization/39715
2679         * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
2680         (gen_cstoresi_ltu_thumb1): New splitter.
2681
2682 2009-10-28  Richard Guenther  <rguenther@suse.de>
2683
2684         PR lto/41808
2685         PR lto/41839
2686         * tree-ssa.c (useless_type_conversion_p): Do not treat
2687         conversions to pointers to incomplete types as useless.
2688         * gimple.c (gimple_types_compatible_p): Compare struct tags,
2689         not typedef names.
2690
2691 2009-10-28  Jakub Jelinek  <jakub@redhat.com>
2692
2693         * var-tracking.c (emit_note_insn_var_location): Don't call the second
2694         vt_expand_loc unnecessarily when location is not a register nor
2695         memory.
2696
2697         PR middle-end/41837
2698         * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
2699         fields don't have DECL_NAME.
2700
2701         PR debug/41801
2702         * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
2703         call convert_memory_address on addr.
2704
2705         PR target/41762
2706         * config/i386/i386.c (ix86_pic_register_p): Don't call
2707         rtx_equal_for_cselib_p for VALUEs discarded as useless.
2708
2709 2009-10-28  Richard Sandiford  <rdsandiford@googlemail.com>
2710
2711         * var-tracking.c (emit_note_insn_var_location): Get the mode of
2712         a variable part from its REG, MEM or VALUE.
2713
2714 2009-10-28  Richard Guenther  <rguenther@suse.de>
2715
2716         * gimple.c (gimple_get_alias_set): Fix comment typo.
2717
2718 2009-10-28  Richard Guenther  <rguenther@suse.de>
2719
2720         * tree.c (free_lang_data_in_type): Do not call get_alias_set.
2721         (free_lang_data): Unconditionally compute alias sets for all
2722         standard integer types.  Bail out if gate bailed out previously.
2723         Do not reset the types_compatible_p langhook.
2724         (gate_free_lang_data): Remove.
2725         (struct pass_ipa_free_lang_data): Enable unconditionally.
2726         * gimple.c (gimple_get_alias_set): Use the same alias-set for
2727         all pointer types.
2728
2729 2009-10-28  Richard Guenther  <rguenther@suse.de>
2730
2731         PR middle-end/41855
2732         * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
2733         (ref_maybe_used_by_call_p_1): Fix bcopy handling.
2734         (call_may_clobber_ref_p_1): Likewise.
2735         * tree-ssa-structalias.c (find_func_aliases): Likewise.
2736         * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
2737
2738 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
2739
2740         PR rtl-optimization/41812
2741
2742         Revert:
2743         2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2744
2745         * df-problems.c (df_md_scratch): New.
2746         (df_md_alloc, df_md_free): Allocate/free it.
2747         (df_md_local_compute): Only include live registers in init.
2748         (df_md_transfer_function): Prune the in-set computed by
2749         the confluence function, and the gen-set too.
2750
2751 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
2752
2753         PR rtl-optimization/39715
2754         * combine.c (simplify_comparison): Use extensions to
2755         widen comparisons.  Try an ANDing first.
2756
2757 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
2758
2759         PR rtl-optimization/40741
2760         * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
2761         a small constant is cheap.
2762         * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
2763         force_reg on the LHS.
2764         (xorsi3): Likewise, and split the XOR if the constant is complex
2765         and not in Thumb mode.
2766
2767 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
2768
2769         * expmed.c (emit_store_flag): Check costs before
2770         transforming to the opposite representation.
2771
2772 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
2773
2774         * config/sh/sh.md (cbranchfp4_media): Remove hack extending
2775         cstore result to DImode.
2776
2777 2009-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2778
2779         * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
2780         inside the unspec vector.
2781
2782 2009-10-27  Richard Henderson  <rth@redhat.com>
2783
2784         * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
2785
2786 2009-10-27  Richard Henderson  <rth@redhat.com>
2787
2788         PR c++/41819
2789         * tree-eh.c (eh_region_may_contain_throw_map): Rename from
2790         eh_region_may_contain_throw; update users.
2791         (eh_region_may_contain_throw): New function.
2792         (lower_catch): Check flag_exceptions before creating exception region.
2793         (lower_eh_filter, lower_eh_must_not_throw): Likewise.
2794         (lower_cleanup): Tidy existing flag_exceptions check to match.
2795
2796 2009-10-27  Kai Tietz <kai.tietz@onevision.com>
2797
2798         PR/41799
2799         * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
2800         * config/i386/mingw.opt: Add fset-stack-executable.
2801         * config/i386/i386.c (ix86_trampoline_init): Make call to
2802         emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
2803         defined and its value is not zero.
2804         * doc/invoke.texi
2805
2806 2009-10-27  Richard Guenther  <rguenther@suse.de>
2807
2808         * tree-ssa-structalias.c (find_func_aliases): In IPA mode
2809         handle calls to externally visible functions like in regular mode.
2810         (create_variable_info_for): Do not create function infos here.
2811         (have_alias_info): Remove write-only variable.
2812         (solve_constraints): New function split out from common code
2813         in compute_points_to_sets and ipa_pta_execute.
2814         (compute_points_to_sets): Adjust.
2815         (ipa_pta_execute): Likewise.  Handle clones and externally visible
2816         functions like in non-IPA mode.
2817
2818 2009-10-27  Jakub Jelinek  <jakub@redhat.com>
2819
2820         PR c/41842
2821         * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
2822         error_mark_node.
2823
2824 2009-10-27  Richard Guenther  <rguenther@suse.de>
2825
2826         * tree-complex.c (expand_complex_div_wide): Check for
2827         INTEGER_CST, not TREE_CONSTANT on comparison folding result.
2828
2829 2009-10-27  Revital Eres  <eres@il.ibm.com>
2830
2831         PR tree-optimization/40648
2832         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2833         Change decision of when to peel for alignment.
2834
2835 2009-10-27  Richard Guenther  <rguenther@suse.de>
2836
2837         PR lto/41821
2838         * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
2839
2840 2009-10-27  Aldy Hernandez  <aldyh@redhat.com>
2841
2842         PR bootstrap/41451
2843         * fold-const.c (fold_binary_loc): Do not call
2844         protected_set_expr_location.
2845
2846 2009-10-27  Wei Guozhi  <carrot@google.com>
2847
2848         PR target/41705
2849         * target.h (have_conditional_execution): Add a new target hook
2850         function.
2851         * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
2852         * targhooks.h (default_have_conditional_execution): Likewise.
2853         * targhooks.c (default_have_conditional_execution): Likewise.
2854         * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
2855         * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
2856         (arm_have_conditional_execution): New function.
2857         * ifcvt.c (noce_process_if_block, find_if_header,
2858         cond_exec_find_if_block, dead_or_predicable): Change the usage of
2859         macro HAVE_conditional_execution to a target hook call.
2860         * recog.c (peephole2_optimize): Likewise.
2861         * sched-rgn.c (add_branch_dependences): Likewise.
2862         * final.c (asm_insn_count, final_scan_insn): Likewise.
2863         * bb-reorder.c (HAVE_conditional_execution): Remove it.
2864
2865 2009-10-26  Ben Elliston  <bje@au.ibm.com>
2866             Michael Meissner  <meissner@linux.vnet.ibm.com>
2867             Ulrich Weigand  <uweigand@de.ibm.com>
2868
2869         * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
2870         * config/spu/spu_cache.h: New file.
2871
2872         * config/spu/cachemgr.c: New file.
2873         * config/spu/cache.S: New file.
2874
2875         * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
2876         (ADDR_SPACE_EA): Define.
2877         (TARGET_ADDR_SPACE_KEYWORDS): Define.
2878         * config/spu/spu.c (EAmode): New macro.
2879         (TARGET_ADDR_SPACE_POINTER_MODE): Define.
2880         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
2881         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
2882         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
2883         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
2884         (TARGET_ADDR_SPACE_CONVERT): Likewise.
2885         (TARGET_ASM_SELECT_SECTION): Likewise.
2886         (TARGET_ASM_UNIQUE_SECTION): Likewise.
2887         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
2888         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
2889         (ea_symbol_ref): New function.
2890         (spu_legitimate_constant_p): Handle __ea qualified addresses.
2891         (spu_addr_space_legitimate_address_p): New function.
2892         (spu_addr_space_legitimize_address): Likewise.
2893         (cache_fetch): New global.
2894         (cache_fetch_dirty): Likewise.
2895         (ea_alias_set): Likewise.
2896         (ea_load_store): New function.
2897         (ea_load_store_inline): Likewise.
2898         (expand_ea_mem): Likewise.
2899         (spu_expand_mov): Handle __ea qualified memory references.
2900         (spu_addr_space_pointer_mode): New function.
2901         (spu_addr_space_address_mode): Likewise.
2902         (spu_addr_space_subset_p): Likewise.
2903         (spu_addr_space_convert): Likewise.
2904         (spu_section_type_flags): Handle "._ea" section.
2905         (spu_select_section): New function.
2906         (spu_unique_section): Likewise.
2907         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
2908         and __EA64__ predefined macros.
2909         * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
2910         -matomic-updates switches.
2911
2912         * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
2913         (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
2914         libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
2915         libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
2916         ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
2917         ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
2918         $(T)cache128k.o): Likewise.
2919         ($(T)libgcc_%.a): Likewise.
2920
2921         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
2922         * config/spu/spu.opt (-mea32/-mea64): Add switches.
2923         (-maddress-space-conversion): Likewise.
2924         (-mcache-size=): Likewise.
2925         (-matomic-updates): Likewise.
2926         * doc/invoke.texi (-mea32/-mea64): Document.
2927         (-maddress-space-conversion): Likewise.
2928         (-mcache-size=): Likewise.
2929         (-matomic-updates): Likewise.
2930
2931 2009-10-26  Ben Elliston  <bje@au.ibm.com>
2932             Michael Meissner  <meissner@linux.vnet.ibm.com>
2933             Ulrich Weigand  <uweigand@de.ibm.com>
2934
2935         * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.
2936
2937         * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
2938         defined, add the named address space keywords.
2939         (c_addr_space_name): New function.
2940         (complete_array_type): Preserve named address space.
2941         (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
2942         instead of targetm.valid_pointer_mode.
2943
2944         * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
2945         RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
2946         (ADDR_SPACE_KEYWORD): New macro.
2947         (c_addr_space_name): Add prototype.
2948
2949         * c-tree.h (struct c_declspecs): Add address_space member.
2950         (declspecs_add_addrspace): Add prototype.
2951
2952         * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.
2953
2954         * c-parser.c (c_parse_init): Add assertion.
2955         (typedef enum c_id_kind): Add C_ID_ADDRSPACE.
2956         (c_lex_one_token): Handle address space keywords.
2957         (c_token_starts_typename): Likewise.
2958         (c_token_starts_declspecs): Likewise.
2959         (c_parser_declspecs): Likewise.
2960         (c_parser_postfix_expression_after_paren_type): Diagnose compound
2961         literal within function qualified with named address space.
2962
2963         * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
2964         address space qualifiers.
2965         (shadow_tag_warned): Warn about useless address space qualifiers.
2966         (quals_from_declspecs): Handle address space qualifiers.
2967         (grokdeclarator): Likewise.
2968         (build_null_declspecs): Likewise.
2969         (declspecs_add_addrspace): New function.
2970
2971         * c-typeck.c (addr_space_superset): New function.
2972         (qualify_type): Handle named address spaces.
2973         (composite_type): Likewise.
2974         (common_pointer_type): Likewise.
2975         (comp_target_types): Likewise.
2976         (build_conditional_expr): Likewise.
2977         (handle_warn_cast_qual): Likewise.
2978         (build_c_cast): Likewise.
2979         (convert_for_assignment): Likewise.
2980         (build_binary_op): Likewise.
2981         (pointer_diff): Handle named address spaces.  Use intermediate
2982         integer type of sufficient size if required.
2983
2984 2009-10-26  Ben Elliston  <bje@au.ibm.com>
2985             Michael Meissner  <meissner@linux.vnet.ibm.com>
2986             Ulrich Weigand  <uweigand@de.ibm.com>
2987
2988         * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
2989         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
2990         (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
2991
2992         * target.h (struct target_def): Add pointer_mode, address_mode,
2993         and valid_pointer_mode to addr_space substructure.
2994         * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
2995         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
2996         (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
2997         (TARGET_ADDR_SPACE_HOOKS): Add them.
2998         * targhooks.c (target_default_pointer_address_modes_p): New function.
2999         * target.h (target_default_pointer_address_modes_p): Add prototype.
3000         * targhooks.c (default_addr_space_pointer_mode): New function.
3001         (default_addr_space_address_mode): Likewise.
3002         (default_addr_space_valid_pointer_mode): Likewise.
3003         * targhooks.h (default_addr_space_pointer_mode): Add prototype.
3004         (default_addr_space_address_mode): Likewise.
3005         (default_addr_space_valid_pointer_mode): Likewise.
3006         * output.h (default_valid_pointer_mode): Move to ...
3007         * targhooks.h (default_valid_pointer_mode): ... here.
3008         * varasm.c (default_valid_pointer_mode): Move to ...
3009         * targhooks.c (default_valid_pointer_mode): ... here.
3010
3011         * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
3012         instead of targetm.valid_pointer_mode.
3013
3014         * fold-const.c (fit_double_type): Use int_or_pointer_precision.
3015         * tree.c (integer_pow2p): Likewise.
3016         (tree_log2): Likewise.
3017         (tree_floor_log2): Likewise.
3018         (signed_or_unsigned_type_for): Support pointer type of different size.
3019         (int_or_pointer_precision): New function.
3020         * tree.h (int_or_pointer_precision): Add prototype.
3021         * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
3022         * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
3023         incoming pointer type instead of POINTER_SIZE.
3024
3025         * tree.c (build_pointer_type): Use appropriate pointer mode
3026         instead of ptr_mode.
3027         (build_reference_type): Likewise.
3028         * expr.c (store_expr): Likewise.
3029         (expand_expr_addr_expr): Likewise.
3030         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
3031         * cfgexpand.c (expand_debug_expr): Likewise.
3032
3033         * auto-inc-dec.c: Include "target.h".
3034         (try_merge): Use appropriate address mode instead of Pmode.
3035         (find_inc): Likewise.
3036         * combine.c (find_split_point): Likewise.
3037         * cselib.c (cselib_record_sets): Likewise.
3038         * dse.c (replace_inc_dec): Likewise.
3039         (canon_address): Likewise.
3040         * var-tracking.c (replace_expr_with_values): Likewise.
3041         (count_uses): Likewise.
3042         (add_uses): Likewise.
3043         (add_stores): Likewise.
3044         * emit-rtl.c: Include "target.h".
3045         (adjust_address_1): Use appropriate address mode instead of Pmode.
3046         (offset_address): Likewise.
3047         * explow.c (break_out_memory_refs): Likewise.
3048         (memory_address_addr_space): Likewise.
3049         (promote_mode): Likewise.
3050         * expr.c (move_by_pieces): Likewise.
3051         (emit_block_move_via_loop): Likewise.
3052         (store_by_pieces): Likewise.
3053         (store_by_pieces_1): Likewise.
3054         (expand_assignment): Likewise.
3055         (store_constructor): Likewise.
3056         (expand_expr_addr_expr): Likewise.
3057         (expand_expr_real_1): Likewise.
3058         * cfgexpand.c (expand_debug_expr): Likewise.
3059         * ifcvt.c (noce_try_cmove_arith): Likewise.
3060         * regcprop.c (kill_autoinc_value): Likewise.
3061         * regmove.c (try_auto_increment): Likewise.
3062         * reload.c (find_reloads): Likewise.
3063         (find_reloads_address): Likewise.
3064         (find_reloads_address_1): Likewise.
3065         * sched-deps.c: Include "target.h".
3066         (sched_analyze_1): Use appropriate address mode instead of Pmode.
3067         (sched_analyze_2): Likewise.
3068         * sel-sched-dump.c: Include "target.h".
3069         (debug_mem_addr_value): Use appropriate address mode instead of Pmode.
3070         * stor-layout.c (layout_type): Likewise.
3071         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
3072         (multiplier_allowed_in_address_p): Likewise.
3073         (get_address_cost): Likewise.
3074         * varasm.c (make_decl_rtl): Likewise.
3075
3076         * expr.c (expand_assignment): Always convert offsets to appropriate
3077         address mode.
3078         (store_expr): Likewise.
3079         (store_constructor): Likewise.
3080         (expand_expr_real_1): Likewise.
3081
3082         * reload.h (form_sum): Add MODE argument.
3083         * reload.c (form_sum): Add MODE argument, use it instead of Pmode.
3084         Update recursive calls.
3085         (subst_indexed_address): Update calls to form_sum.
3086
3087         * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
3088         * tree-ssa-address.c: Include "target.h".
3089         (templates): Replace by ...
3090         (mem_addr_template_list): ... this new vector.
3091         (TEMPL_IDX): Handle address space numbers.
3092         (gen_addr_rtx): Add address mode argument, use it instead of Pmode.
3093         (addr_for_mem_ref): Add ADDRSPACE argument.  Use per-address-space
3094         instead of global cache.  Update call to gen_addr_rtx.
3095         (valid_mem_ref_p): Update call to addr_for_mem_ref.
3096         * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
3097
3098         * rtl.h (convert_memory_address_addr_space): Add prototype.
3099         (convert_memory_address): Define as macro.
3100         * explow.c (convert_memory_address): Rename to ...
3101         (convert_memory_address_addr_space): ... this.  Add ADDRSPACE argument.
3102         Use appropriate pointer and address modes instead of ptr_mode / Pmode.
3103         Update recursive calls.
3104         (memory_address_addr_space): Call convert_memory_address_addr_space.
3105         * expmed.c (make_tree): Likewise.
3106         * expr.c (expand_assignment): Likewise.
3107         (expand_expr_addr_expr_1): Likewise.  Also, add ADDRSPACE argument.
3108         (expand_expr_addr_expr): Likewise.  Also, update call.
3109
3110         * alias.c (find_base_value): Guard pointer size optimizations.
3111         (find_base_term): Likewise.
3112         * rtlanal.c (nonzero_bits1): Likewise.
3113         (num_sign_bit_copies1): Likewise.
3114         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3115
3116         * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
3117         (emit-rtl.o): Likewise.
3118         (auto-inc-dec.o): Likewise.
3119         (sched-deps.o): Likewise.
3120
3121 2009-10-26  Ben Elliston  <bje@au.ibm.com>
3122             Michael Meissner  <meissner@linux.vnet.ibm.com>
3123             Ulrich Weigand  <uweigand@de.ibm.com>
3124
3125         * doc/extend.texi (Named Address Spaces): New section.
3126         * coretypes.h (addr_space_t): New type.
3127         (ADDR_SPACE_GENERIC): New define.
3128         (ADDR_SPACE_GENERIC_P): New macro.
3129
3130         * doc/tm.texi (Named Address Spaces): New section.
3131         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
3132         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
3133         (TARGET_ADDR_SPACE_SUBSET_P): Document.
3134         (TARGET_ADDR_SPACE_CONVERT): Document.
3135         * target.h (struct gcc_target): Add addr_space substructure.
3136         * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
3137         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
3138         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
3139         (TARGET_ADDR_SPACE_CONVERT): Likewise.
3140         (TARGET_ADDR_SPACE_HOOKS): Likewise.
3141         (TARGET_INITIALIZER): Initialize addr_space hooks.
3142         * targhooks.c (default_addr_space_legitimate_address_p): New function.
3143         (default_addr_space_legitimize_address): Likewise.
3144         (default_addr_space_subset_p): Likewise.
3145         (default_addr_space_convert): Likewise.
3146         * targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
3147         (default_addr_space_legitimize_address): Likewise.
3148         (default_addr_space_subset_p): Likewise.
3149         (default_addr_space_convert): Likewise.
3150
3151         * doc/rtl.texi (MEM_ADDR_SPACE): Document.
3152         * rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
3153         (MEM_ADDR_SPACE): New macro.
3154         * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
3155         address space memory attribute.
3156         (mem_attrs_htab_hash): Handle address space memory attribute.
3157         (mem_attrs_htab_eq): Likewise.
3158         (set_mem_attributes_minus_bitpos): Likewise.
3159         (set_mem_alias_set): Likewise.
3160         (set_mem_align): Likewise.
3161         (set_mem_expr): Likewise.
3162         (set_mem_offset): Likewise.
3163         (set_mem_size): Likewise.
3164         (adjust_address_1): Likewise.
3165         (offset_address): Likewise.
3166         (widen_memoy_address): Likewise.
3167         (get_spill_slot_decl): Likewise.
3168         (set_mem_attrs_for_spill): Likewise.
3169         (set_mem_addr_space): New function.
3170         * emit-rtl.h (set_mem_addr_space): Add prototype.
3171         * print-rtl.c (print_rtx): Print address space memory attribute.
3172         * expr.c (expand_assignment): Set address space memory attribute
3173         of generated MEM RTXes as appropriate.
3174         (expand_expr_real_1): Likewise.
3175         * cfgexpand.c (expand_debug_expr): Likewise.
3176         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
3177
3178         * tree.h (struct tree_base): Add address_space bitfield.  Reduce
3179         size of "spare" bitfield.
3180         (TYPE_ADDR_SPACE): New macro.
3181         (ENCODE_QUAL_ADDR_SPACE): Likewise.
3182         (DECODE_QUAL_ADDR_SPACE): Likewise.
3183         (CLEAR_QUAL_ADDR_SPACE): Likewise.
3184         (KEEP_QUAL_ADDR_SPACE): Likewise.
3185         (TYPE_QUALS): Encode type address space.
3186         (TYPE_QUALS_NO_ADDR_SPACE): New macro.
3187         * tree.c (set_type_quals): Set type address space.
3188         (build_array_type): Inherit array address space from element type.
3189         * print-tree.c (print_node_brief): Print type address space.
3190         (print_node): Likewise.
3191         * tree-pretty-print.c (dump_generic_node): Likewise.
3192
3193         * explow.c (memory_address): Rename to ...
3194         (memory_address_addr_space): ... this.  Add ADDRSPACE argument.
3195         Use address-space aware variants of memory address routines.
3196         * recog.c (memory_address_p): Rename to ...
3197         (memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
3198         Use address-space aware variants of memory address routines.
3199         (offsettable_address_p): Rename to ...
3200         (offsettable_address_addr_space_p): ... this.  Add ADDRSPACE argument.
3201         Use address-space aware variants of memory address routines.
3202         * reload.c (strict_memory_address_p): Rename to ...
3203         (strict_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
3204         Use address-space aware variants of memory address routines.
3205         (maybe_memory_address_p): Rename to ...
3206         (maybe_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
3207         Use address-space aware variants of memory address routines.
3208         * expr.h (memory_address_addr_space): Add prototype.
3209         (memory_address): Define as macro.
3210         * recog.h (memory_address_addr_space_p): Add prototype.
3211         (memory_address_p): Define as macro.
3212         (offsettable_address_addr_space_p): Add prototype.
3213         (offsettable_address_p): Define as macro.
3214         (strict_memory_address_addr_space_p): Add prototype.
3215         (strict_memory_address_p): Define as macro.
3216
3217         * combine.c (find_split_point): Use address-space aware variants
3218         of memory address routines.
3219         * emit-rtl.c (operand_subword): Likewise.
3220         (change_address_1): Likewise.
3221         (adjust_address_1): Likewise.
3222         (offset_address): Likewise.
3223         * expr.c (emit_move_insn): Likewise.
3224         (expand_assignment): Likewise.
3225         (expand_expr_real_1): Likewise.
3226         * recog.c (verify_changes): Likewise.
3227         (general_operand): Likewise.
3228         (offsettable_memref_p): Likewise.
3229         (offsettable_nonstrict_memref_p): Likewise.
3230         (constrain_operands): Likewise.
3231         * reload.c (get_secondary_mem): Likewise.
3232         (find_reloads_toplev): Likewise.
3233         (find_reloads_address): Likewise.
3234         (find_reloads_subreg_address): Likewise.
3235         * reload1.c (reload): Likewise.
3236         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
3237         * rtl.h (address_cost): Add ADDRSPACE argument.
3238         * rtlanal.c (address_cost): Add ADDRSPACE argument.  Use address-space
3239         aware variant of memory address routines.
3240         * loop-invariant.c (create_new_invariant): Update address_cost call.
3241         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
3242         * fwprop.c (should_replace_address): Add ADDRSPACE argument.
3243         Use address-space aware variant of memory address routines.
3244         (propagate_rtx_1): Update call to should_replace_address.
3245         * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
3246         argument.
3247         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
3248         ADDRSPACE argument.  Use per-address-space instead of global cache.
3249         Use address-space aware variant of memory address routines.
3250         (get_address_cost): Likewise.
3251         (get_computation_cost_at): Update calls.
3252         * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
3253         Use address-space aware variant of memory address routines.
3254         (create_mem_ref_raw): Update call to valid_mem_ref_p.
3255         (most_expensive_mult_to_index): Update call to
3256         multiplier_allowed_in_address_p.
3257
3258         * dwarf2out.c (modified_type_die): Output DW_AT_address_class
3259         attribute to indicate named address spaces.
3260
3261         * varasm.c (get_variable_section): DECLs in named address spaces
3262         cannot be "common".
3263
3264         * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
3265         for addresses in a non-generic address space.
3266
3267         * expr.c (emit_block_move_hints): Do not use libcalls for
3268         memory in non-generic address spaces.
3269         (clear_storage_hints): Likewise.
3270         (expand_assignment): Likewise.
3271
3272         * fold-const.c (operand_equal_p): Expressions refering to different
3273         address spaces are not equivalent.
3274
3275         * rtl.c (rtx_equal_p_cb): MEMs refering to different address
3276         spaces are not equivalent.
3277         (rtx_equal_p): Likewise.
3278         * cse.c (exp_equiv_p): Likewise.
3279         * jump.c (rtx_renumbered_equal_p): Likewise.
3280         * reload.c (operands_match_p): Likewise.
3281
3282         * alias.c (nonoverlapping_memrefs_p): MEMs refering to different
3283         address spaces may alias.
3284         (true_dependence): Likewise.
3285         (canon_true_dependence): Likewise.
3286         (write_dependence_p): Likewise.
3287
3288         * dse.c (canon_address): Handle named address spaces.
3289         * ifcvt.c (noce_try_cmove_arith): Likewise.
3290
3291         * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
3292         * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
3293         * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
3294         to handle conversions between different address spaces.
3295         * fold-const.c (fold_convert_loc): Likewise.
3296         (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
3297         * tree-pretty-print.c (dump_generic_node): Likewise.
3298         * gimple-pretty-print.c (dump_unary_rhs): Likewise.
3299         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
3300         * tree-inline.c (estimate_operator_cost): Likewise.
3301         * tree-ssa.c (useless_type_conversion_p): Conversions between pointers
3302         to different address spaces are not useless.
3303
3304 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
3305
3306         PR bootstrap/41345
3307         * cfgcleanup.c (trivially_empty_bb_p): New function.
3308         (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.
3309
3310         PR debug/41828
3311         * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
3312         add_name_and_src_coords_attributes, gen_namespace_die,
3313         dwarf2out_set_name): Handle dwarf2_name returning NULL.
3314
3315 2009-10-26  Nick Clifton  <nickc@redhat.com>
3316
3317         * config.gcc: Add support for RX target.
3318         * config/rx: New directory.
3319         * config/rx/constraints.md: New file.
3320         * config/rx/predicates.md: New file.
3321         * config/rx/rx.c: New file.
3322         * config/rx/rx.h: New file.
3323         * config/rx/rx.md: New file.
3324         * config/rx/rx.opt: New file.
3325         * config/rx/rx-protos.h: New file.
3326         * config/rx/t-rx: New file.
3327         * doc/extend.texi: Document RX function attributes.
3328         * doc/invoke.texi: Document RX specific command line options.
3329         * doc/contrib.texi: Document RX contribution.
3330         * doc/md.texi: Document RX constraints.
3331         * doc/install.texi: Document RX support.
3332
3333 2009-10-26  Michael Matz  <matz@suse.de>
3334
3335         PR tree-optimization/41783
3336         * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
3337         case for simple diamonds.
3338         * tree-ssa-alias.h (get_continuation_for_phi): Declare.
3339         * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
3340         argument, use alias oracle to skip some vdefs.
3341         (phi_translate_1): Change call to above, don't allocate new
3342         value ids if they can stay the same.
3343         (compute_avail): Allow vuse walking when looking up references.
3344
3345 2009-10-26  Richard Guenther  <rguenther@suse.de>
3346
3347         PR tree-optimization/41826
3348         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
3349         access to re-allocated vector fields.
3350
3351 2009-10-26  Richard Guenther  <rguenther@suse.de>
3352
3353         * graphite-sese-to-poly.c (check_poly_representation): Fix
3354         compile without checking.
3355
3356 2009-10-26  Janus Weil  <janus@gcc.gnu.org>
3357
3358         PR fortran/41714
3359         * gimple.h (tree_annotate_all_with_location): Remove prototype.
3360         * gimplify.c (tree_should_carry_location_p,
3361         tree_annotate_one_with_location,tree_annotate_all_with_location):
3362         Remove obsolete functions.
3363
3364 2009-10-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3365
3366         PR target/41813
3367         * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.
3368
3369 2009-10-25  Richard Guenther  <rguenther@suse.de>
3370
3371         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3372         Stream DECL_RESTRICTED_P.
3373         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3374
3375 2009-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
3376
3377         * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
3378         a note when expanding to nothing.
3379
3380 2009-10-25  Richard Guenther  <rguenther@suse.de>
3381
3382         PR middle-end/41814
3383         * tree.c (find_decls_types_r): Deal with Java overloading
3384         BINFO_VIRTUALS for its own purpose.
3385
3386 2009-10-24  Adam Nemet  <anemet@caviumnetworks.com>
3387
3388         * config/mips/predicates.md (hilo_operand): New predicate.
3389         * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
3390         define_insn.  Correct !ISA_HAS_EXT_INS length from 24 to 28.  Move
3391         splitter part from here ...:
3392         (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here.  Swap
3393         op0 and op4 to match the DINS case.
3394         (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.
3395
3396 2009-10-24  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
3397
3398         PR middle-end/19154
3399         * avr.md (QIDI): Add new mode iterator.
3400         (sbrx_branch<mode>): Create new zero extract bit, test and jump
3401         patterns for all QI thru DI modes combinations.
3402         (sbrx_and_branch<mode>): Create new and based bit test and jump
3403         patterns for QI thru SI modes.
3404         avr.c (avr_out_sbxx_branch): Use only bit number.
3405
3406 2009-10-24  Jan Hubicka  <jh@suse.cz>
3407
3408         * ipa-reference.c (check_call): Noreturn notrhow calls do not write
3409         to memory.
3410         (analyze_function): When analyzing noreturn nothrow call, do not
3411         compute written stats; free bitmaps of vars early if possible.
3412         (generate_summary): Only update bitmaps if computed.
3413         (propagate): Only dump bitmaps if computed.
3414         (ipa_reference_read_summary): Fix pasto.
3415
3416 2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3417
3418         * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
3419         (aliasing_component_refs_p): ...this.  Return true if there is no
3420         common base and the base access types have the same alias set.
3421         (indirect_ref_may_alias_decl_p): Adjust for above renaming.
3422         (indirect_refs_may_alias_p): Likewise.
3423
3424 2009-10-23  Joseph Myers  <joseph@codesourcery.com>
3425
3426         PR c/40033
3427         * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
3428         a C_MAYBE_CONST_EXPR.
3429
3430 2009-10-23  Michael Meissner  <meissner@linux.vnet.ibm.com>