OSDN Git Service

gcc:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-06-03  Richard Henderson  <rth@redhat.com>
2             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3
4         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
5         (sigill_hdlr): Correct insn, insn size.
6         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7
8 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9
10         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
11         t-slibgcc-dummy.
12         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
13         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
14         * config/mips/t-iris: Remove.
15         * config/mips/t-irix6: New file.
16         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
17
18 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19
20         * Makefile.in (LIB2ADDEHDEP): Remove.
21         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
22         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
23         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
24         * config/t-darwin (LIB2ADDEHDEP): Remove.
25         * config/t-freebsd (LIB2ADDEHDEP): Remove.
26         * config/t-linux (LIB2ADDEHDEP): Remove.
27
28 2011-06-03  Diego Novillo  <dnovillo@google.com>
29
30         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
31         (lto_register_var_decl_in_symtab): Likewise.
32         (lto_register_function_decl_in_symtab): Likewise.
33         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
34         logic to lto_read_decls.
35
36 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37
38         * config/alpha/t-osf5: Remove.
39         * config/alpha/t-osf-pthread: Remove.
40         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
41         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
42
43 2011-06-03  Julian Brown  <julian@codesourcery.com>
44
45         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
46         (strongarm1110): Use strongarm tuning.
47         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped
48         field.
49         * config/arm/arm.c (arm_strongarm_tune): New.
50         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
51         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
52         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
53         setting, using previous defaults or 1 for Cortex-A5.
54         (arm_option_override): Set max_insns_skipped from current tuning.
55
56 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
57
58         * doc/install.texi (Options specification): Document --with-specs.
59
60 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
61
62         * config/arm/neon.md (orndi3_neon): Actually split it.
63
64 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
65
66         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
67         * var-tracking.c (reverse_op): Limite recurse depth to 5.
68
69 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
70
71         PR debug/47590
72         * target.def (delay_sched2, delay_vartrack): New.
73         * doc/tm.texi.in: Update.
74         * doc/tm.texi: Rebuild.
75         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
76         * var-tracking.c (gate_handle_var_tracking): Likewise.
77         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
78         (bfin_flag_var_tracking): Drop.
79         (output_file_start): Don't save and override flag_var_tracking.
80         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
81         (bfin_reorg): Test original variables.
82         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
83         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
84         (ia64_flag_var_tracking): Drop.
85         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
86         (ia64_file_start): Don't save and override flag_var_tracking.
87         (ia64_override_options_after_change): Ditto
88         flag_schedule_insns_after_reload.
89         (ia64_reorg): Test original variables.
90         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
91         (picochip_flag_var_tracking): Drop.
92         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
93         (picochip_option_override): Don't save and override
94         flag_schedule_insns_after_reload.
95         (picochip_asm_file_start): Ditto flag_var_tracking.
96         (picochip_reorg): Test original variables.
97         * config/spu/spu.c (spu_flag_var_tracking): Drop.
98         (TARGET_DELAY_VARTRACK): Define.
99         (spu_var_tracking): New.
100         (spu_machine_dependent_reorg): Call it.
101         (asm_file_start): Don't save and override flag_var_tracking.
102
103 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
104
105         PR target/49163
106         * config/sh/predicates.md (general_movsrc_operand): Return 0
107         for memory and memory subreg of which address is an invalid
108         indexed address for QI and HImode.
109         (general_movdst_operand): Likewise.
110
111 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
112
113         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
114         edges only, when there is a non-local label in the function.
115         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
116
117 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
118
119         * config/i386/constraints.md (Y3): New register constraint.
120         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
121         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
122         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
123         *sse2_interleave_lowv2df.
124
125 2011-06-02  Julian Brown  <julian@codesourcery.com>
126
127         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
128         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
129         (arm_cortex_a5_tune): New.
130
131 2011-06-02  Julian Brown  <julian@codesourcery.com>
132
133         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
134         * config/arm/arm.c (arm_default_branch_cost): New.
135         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
136         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
137         (arm_fa726_tune): Set branch_cost field using
138         arm_default_branch_cost.
139         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
140         current_tune structure.
141         * dojump.c (tm_p.h): Include file.
142
143 2011-06-02  Julian Brown  <julian@codesourcery.com>
144
145         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
146         tuning.
147         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
148         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
149         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
150         field.
151         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
152         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
153         (arm_fa726te_tune): Add prefer_constant_pool setting.
154         (arm_v6t2_tune, arm_cortex_tune): New.
155         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
156         prefer_constant_pool setting.
157
158 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
159
160         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
161         switch statement.
162         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
163         (*movdf_internal) <case 6,7,8>: Ditto.
164
165         * config/i386/constraints.md (Y4): New register constraint.
166         * config/i386/sse.md (vec_set<mode>_0): Merge with
167         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
168         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
169         *vec_extractv2di_1_sse.
170         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
171         and *vec_concatv2di_rex64_sse.
172
173 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
174
175         PR target/48807
176         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
177         of cgraph_local_info for null before attempting to use it.
178
179 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
180
181         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
182         (current_function_dynamic_alloc_count): Delete.
183         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
184         (expand_builtin_nonlocal_goto): Remove obsolete comment.
185         (expand_builtin_update_setjmp_buf): Remove dead code.
186         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
187         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
188         support.
189         * function.c (instantiate_virtual_regs): Likewise.
190         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
191         for a block with a single abnormal incoming edge.
192         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
193         (SETJMP_VIA_SAVE_AREA): Delete.
194         * config/sparc/sparc-protos.h (load_got_register): Declare.
195         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
196         (load_got_register): Make global.
197         (sparc_frame_pointer_required): Add 'static'.
198         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
199         (sparc_builtin_setjmp_frame_value): New function.
200         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
201         (save_stack_nonlocal): New expander.
202         (restore_stack_nonlocal): Likewise.
203         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
204         (nonlocal_goto_internal): New insn.
205         (goto_handler_and_restore): Delete.
206         (builtin_setjmp_setup): Likewise.
207         (do_builtin_setjmp_setup): Likewise.
208         (setjmp): Likewise.
209         (builtin_setjmp_receiver): New expander.
210
211 2011-06-01  David Li  <davidxl@google.com>
212
213         PR middle-end/49261
214         * tree-pretty-print.c (dump_function_header): Format cleanup.
215
216 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
217
218         PR target/49238
219         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
220         needed when original operands are used for msw_skip comparison.
221
222 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
223
224         PR debug/49250
225         * var-tracking.c (add_uses, add_stores): Don't call
226         cselib_subst_to_values on ENTRY_VALUE.
227
228 2011-06-01  Diego Novillo  <dnovillo@google.com>
229
230         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
231         output_record_start with LTO_null instead of output_zero.
232         (lto_output_ts_binfo_tree_pointers): Likewise.
233         (lto_output_tree): Likewise.
234         (output_eh_try_list): Likewise.
235         (output_eh_region): Likewise.
236         (output_eh_lp): Likewise.
237         (output_eh_regions): Likewise.
238         (output_bb): Likewise.
239         (output_function): Likewise.
240         (output_unreferenced_globals): Likewise.
241         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
242         instead of NUM_TREE_CODES.
243         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
244         (lto_output_int_in_range): Change << to >> when shifting VAL.
245
246 2011-06-01  Diego Novillo  <dnovillo@google.com>
247
248         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
249         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
250
251 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
252
253         PR target/45074
254         * optabs.h (valid_multiword_target_p): Declare.
255         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
256         doing multi-word operations.
257         * optabs.c (expand_binop): Likewise.
258         (expand_doubleword_bswap): Likewise.
259         (expand_absneg_bit): Likewise.
260         (expand_unop): Likewise.
261         (expand_copysign_bit): Likewise.
262         (multiword_target_p): New function.
263
264 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
265
266         PR rtl-optimization/48830
267         PR rtl-optimization/48808
268         PR rtl-optimization/48792
269         * reload.c (push_reload): Check contains_reg_of_mode.
270         * reload1.c (strip_paradoxical_subreg): New function.
271         (gen_reload_chain_without_interm_reg_p): Use it to handle
272         paradoxical subregs.
273         (emit_output_reload_insns, gen_reload): Likewise.
274
275 2011-06-01  David Li  <davidxl@google.com>
276
277         * predict.c : Change pass name
278         * ipa.c: Ditto.
279         * dce.c: Ditto.
280         * tree-profile.c: Ditto.
281         * except.c: Ditto.
282
283 2011-06-01  David Li  <davidxl@google.com>
284
285         * tree-pretty-print.c (dump_function_header): New function.
286         * final.c (rest_of_clean_state): Use header dumper.
287         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
288         * passes.c (pass_init_dump_file): Use header dumper.
289
290 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
291
292         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
293         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
294         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
295         New functions.
296         (mem_loc_descriptor): Use them.
297
298         * var-tracking.c (create_entry_value): New function.
299         (vt_add_function_parameter): Use it.
300
301 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
302
303         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
304         Include <signal.h>, <ucontext.h>.
305         (sigill_caught): Define.
306         (sigill_hdlr): New function.
307         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
308         insns can be executed.
309         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
310         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
311
312 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
313
314         * config/t-slibgcc-darwin: Move to ...
315         * config/t-slibgcc-dummy: ... this.  Clarify comments.
316         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
317         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
318         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
319         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
320         Remove i386/t-crtstuff from tmake_file.
321         (i[34567]86-*-solaris2*): Remove t-svr4,
322         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
323         t-slibgcc-dummy.
324         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
325         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
326         sparc/t-crtfm from tmake_file.
327         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
328         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
329         Remove extra_parts.
330         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
331         * config/i386/t-nwld (SHLIB_LINK): Remove.
332         * config/i386/t-rtems-i386: Rename to ...
333         * config/i386/t-rtems: ... this.
334         ($(T)crti.o, $(T)crtn.o): Remove.
335         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
336         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
337         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
338         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
339         EXTRA_MULTILIB_PARTS): Remove.
340         * config/sparc/t-sol2-64: Likewise.
341         * config/sparc/t-sol2: Remove.
342         * config/sparc/t-crtin: Remove.
343         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
344         * config/i386/gmon-sol2.c: Remove.
345         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
346         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
347         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
348         * config/i386/sol2-gc1.asm: Remove.
349         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
350         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
351         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
352         * config/t-slibgcc-sld: Remove.
353
354 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
355
356         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
357         base_type_for_mode with op_mode instead of mode.
358
359 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
360
361         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
362         Cortex-A15.
363         * config/arm/arm-tune.md: Regenerate.
364         * config/arm/arm-tables.opt: Regenerate.
365         * config/arm/arm.c (FL_DIV): Rename...
366         (FL_THUMB_DIV): ... to this.
367         (FL_ARM_DIV): Define.
368         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
369         (arm_arch_hwdiv): Remove.
370         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
371         (arm_issue_rate): Add cortexr5.
372         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
373         __ARM_ARCH_EXT_IDIV__.
374         (TARGET_IDIV): Define.
375         (arm_arch_hwdiv): Remove.
376         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
377         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
378         (divsi3, udivsi3): New patterns.
379         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
380         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
381
382 2011-06-01  Martin Jambor  <mjambor@suse.cz>
383
384         * ipa-utils.c (ipa_dfs_info): New field scc_no.
385         * ipa-utils.c (searchc): Set scc_no.
386
387 2011-06-01  Martin Jambor  <mjambor@suse.cz>
388
389         * ipa-utils.c (searchc_env): New field allow_overwritable.
390         (searchc): do not ignore edges to overwritable nodes if indicated
391         by env->allow_overwritable.
392         (ipa_reduced_postorder): Set env.allow_overwritable.
393
394 2011-06-01  Richard Guenther  <rguenther@suse.de>
395
396         * tree.c (free_lang_data): Do not reset boolean_type_node nor
397         char_type_node.
398         * lto-streamer.c (lto_record_common_node): Take node pointer,
399         do not register types.
400         (lto_preload_common_nodes): Explicitly skip preloading nodes
401         that differ between frontends.
402
403 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
404
405         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
406         NON_FLOAT_REGS.
407
408 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
409
410         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
411         parameter value for dump. Dump cost on outermost call only.
412         (rs6000_memory_move_cost): Dump cost on outermost call only.
413
414 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
415
416         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
417         DW_OP_GNU_convert ops.
418
419         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
420         cselib_preserve_constants.
421         (cselib_lookup_1): If cselib_preserve_constants,
422         a new VALUE is being created for REG and there is a VALUE for the
423         same register in wider mode, add another loc with lowpart SUBREG of
424         the wider VALUE.
425         (cselib_subst_to_values): Handle ENTRY_VALUE.
426         * var-tracking.c  (replace_expr_with_values): Return NULL for
427         ENTRY_VALUE too.
428         * dwarf2out.c (convert_descriptor_to_signed): New function.
429         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
430         instead of two shifts.
431         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
432         the right mode if needed.
433         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
434         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
435         convert_descriptor_to_signed.
436         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
437         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
438
439         PR target/48688
440         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
441
442 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
443
444         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
445         of X87MODEI12 and SWI48x instead of SSEMODEI24.
446         (SWI248x): New mode iterator, rename from X87MODEI.
447         (X87MODEI): Remove mode iterator.
448         (X87MODEI12): Ditto.
449         (SSEMODEI24): Ditto.
450
451 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
452
453         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
454         * doc/invoke.texi: Document max-vartrack-expr-depth.
455         * var-tracking.c (EXPR_DEPTH): New.
456         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
457
458 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
459
460         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
461         * config/i386/sse.md: Add n to negated FMA pattern names.
462
463 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
464
465         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
466
467 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
468
469         * gengtype-state.c (read_state_params_structs): Initialize previous.
470
471 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
472
473         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
474         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
475
476 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
477
478         * config/i386/i386.md (*movtf_internal): Avoid allocating general
479         registers.  Penalize F*r->o alternative to prevent partial memory
480         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
481         CONST_DOUBLE immediates when optimizing function for size.  Do not move
482         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
483         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
484         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
485         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
486         alternatives.
487         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
488
489         (fp_register_operand splitters): Use fp_register_operand
490         constraint.  Do not use FP_REG_P in insn condition.
491         (any_fp_register_operand splitters): Use any_fp_register_operand
492         constraint.  Do not use ANY_FP_REG_P in insn condition.
493
494 2011-05-31  Jan Hubicka  <jh@suse.cz>
495
496         * cgraph.h (cgraph_inline_failed_t): Give enum a name
497         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
498         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
499         (lto_output_edge): Use output_enum and var_len_unsigned.
500         (lto_output_varpool_node): Likewise.
501         (input_overwrite_node): Do not take resolution parameter;
502         extract it from a bitpack.
503         (input_node): Do not read resolution; use input_enum and
504         var_len_unsigned.
505         (input_varpool_node): Likewise.
506         (input_edge): Likewise.
507         (input_cgraph_1): Likewise.
508
509 2011-05-31  Richard Guenther  <rguenther@suse.de>
510
511         * gimple.c (gimple_register_canonical_type): Do not register
512         any types via gimple_register_type.
513
514 2011-05-31  Jan Hubicka  <jh@suse.cz>
515
516         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
517         of thunks.
518
519 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
520
521         PR rtl-optimization/49235
522         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
523         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
524
525 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
526
527         PR tree-optimization/49093
528         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
529         data references.
530
531 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
532
533         PR debug/49047
534         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
535         for concrete functions containing the code of cloned functions.
536
537 2011-05-31  Richard Guenther  <rguenther@suse.de>
538
539         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
540         to ...
541         (forward_propagate_into_comparison_1): ... this.
542         (forward_propagate_comparison): Rename to ...
543         (forward_propagate_into_comparison): ... this.  Split out
544         real forward propagation code to ...
545         (forward_propagate_comparison): ... this.
546         (forward_propagate_into_gimple_cond): Remove looping.
547         (forward_propagate_into_cond): Likewise.
548         (simplify_not_neg_expr): Return whether we have done something.
549         (simplify_gimple_switch): Likewise.
550         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
551         (ssa_forward_propagate_and_combine): ... this.  Re-structure
552         to do a forward forward-propagation walk on BBs and a backward
553         stmt combining walk on BBs.  Consistently re-scan changed statements.
554         (pass_forwprop): Adjust.
555
556 2011-05-30  Ian Lance Taylor  <iant@google.com>
557
558         * godump.c (go_format_type): Correct length of name added to
559         obstack for anonymous field.
560
561 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
562
563         PR target/49186
564         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
565         part of the second operand is 0.
566
567 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
568
569         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
570         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
571         to memory for !TARGET_MEMORY_MISMATCH_STALL.
572         (*movdf_internal_rex64): Do not penalize F->r alternative.
573         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
574         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
575         when optimizing function for size.  Do not move CONST_DOUBLEs
576         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
577         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
578         SUBREGs.  Do not check for MEM_P operands in the insn condition,
579         check for ANY_FP_REGNO_P instead.
580         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
581         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
582         function for speed.
583         * config/i386/i386.c (ix86_option_override_internal): Do not
584         set TARGET_INTEGER_DFMODE_MOVES here.
585
586 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
587
588         PR target/49168
589         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
590
591 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
592
593         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
594         DW_TAG_rvalue_reference_type even for
595         -gdwarf-4 -fno-debug-types-section.
596
597 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
598
599         PR tree-optimization/46728
600         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
601         (build_and_insert_binop): New.
602         (gimple_expand_builtin_pow): Reorder args for
603         build_and_insert_call; use build_and_insert_binop; add more
604         optimizations for fractional exponents.
605
606 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
607
608         PR bootstrap/49190
609
610         Revert:
611         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
612
613         * tree.h (struct tree_identifier): Inherit from tree_typed, not
614         tree_common.
615         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
616         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
617         TS_BASE instead of TS_COMMON.
618         * varasm.c (assemble_name): Remove assert.
619
620 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
621
622         * config.gcc: Keep obselete list sorted.
623
624 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
625             Eric Botcazou  <ebotcazou@adacore.com>
626
627         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
628         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
629         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
630         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
631         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
632
633 2011-05-30  Richard Guenther  <rguenther@suse.de>
634
635         * gimple.c (gimple_types_compatible_p_1): Compare record
636         and union type members properly.
637
638 2011-05-30  Richard Guenther  <rguenther@suse.de>
639
640         PR tree-optimization/49210
641         * ipa-split.c (split_function): Care for the case where the call
642         result is not trivially convertible to the result holding variable.
643
644 2011-05-30  Richard Guenther  <rguenther@suse.de>
645
646         PR tree-optimization/49218
647         * tree-vrp.c (adjust_range_with_scev): Properly check whether
648         overflow occured.
649
650 2011-05-30  Richard Guenther  <rguenther@suse.de>
651
652         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
653         New function split out from ...
654         (forward_propagate_into_gimple_cond): ... here.  Adjust.
655         (forward_propagate_into_cond): Likewise.
656         (forward_propagate_comparison): Also propagate into
657         comparisons on assignment RHS.  Change return value to
658         behave similar to forward_propagate_into_cond.
659         (tree_ssa_forward_propagate_single_use_vars): Handle
660         strict-overflow warnings properly for forward_propagate_comparison.
661
662 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
663
664         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
665         from plugin linker.
666         * configure: Regenerate.
667
668 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
669
670         PR tree-optimization/49199
671         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
672         non-reduction operands are either defined in the loop or by induction.
673
674 2011-05-29  Xinliang David Li  <davidxl@google.com>
675
676         * opts-global.c (handle_common_deferred_options): Handle new options.
677         * passes.c (register_one_dump_file): Call register_pass_name.
678         (execute_one_pass): Check explicit enable/disable flag.
679         (passr_hash): New function.
680         (passr_eq): Ditto.
681         (register_pass_name): Ditto.
682         (get_pass_by_name): Ditto.
683         (pass_hash): Ditto.
684         (pass_eq): Ditto.
685         (enable_pass): Ditto.
686         (disable_pass): Ditto.
687         (is_pass_explicitly_enabled_or_disabled): Ditto.
688
689 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
690
691         * config/i386/i386.md (*movoi_internal_avx): Use
692         standard_sse_constant_opcode for alternative 0.
693         (*movti_internal_sse): Ditto.
694         (*movti_internal_rex64): Use standard_sse_constant_opcode for
695         alternative 2.
696         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
697         sselog1 type moves.
698         (*movsi_internal): Ditto.
699         (*movdi_internal): Ditto.  Add ssecvt type moves.
700
701 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
702
703         PR target/48830
704         * rtlanal.c (simplify_subreg_regno): Adjust comment.
705
706 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
707
708         PR rtl-optimization/49095
709         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
710         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
711
712 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
713
714         PR target/43995
715         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
716         recurse_p argument.  Only follow register copies if it is set,
717         and prevent mips_find_pic_call_symbol from recursing.
718         (mips_find_pic_call_symbol): Add a recurse_p argument.
719         Pass it to mips_pic_call_symbol_from_set.
720         (mips_annotate_pic_calls): Update accordingly.
721
722 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
723
724         * emit-rtl.c (try_split): Use a loop to search for
725         NOTE_INSN_CALL_ARG_LOCATIONs.
726
727 2011-05-29  Richard Guenther  <rguenther@suse.de>
728
729         PR tree-optimization/49217
730         * ipa-pure-const.c (propagate_pure_const): Fix typos.
731
732 2011-05-28  Jan Hubicka  <jh@suse.cz>
733
734         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
735         length.
736         (string_slot_free): Remove
737         (create_output_block): Initialize obstack.
738         (destroy_output_block): Free obstack.
739         (lto_string_index): Add PERSISTENT parameter; do not duplicate
740         the string unless it needs to be added into the hash.
741         (lto_output_string_with_length): Add persistent attribute;
742         handle NULL strings.
743         (lto_output_string): Add PERSISTENT parameter.
744         (output_string_cst, output_identifier): Simplify.
745         (lto_output_location_bitpack): Update.
746         (lto_output_builtin_tree): Update.
747         * lto-streamer.h (struct output_block): Add obstack.
748         (lto_output_string, lto_output_string_with_length): Remove
749         declarations; functions are static now.
750
751 2011-05-28  Jan Hubicka  <jh@suse.cz>
752
753         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
754         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
755         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
756         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
757         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
758         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
759         unpack_ts_decl_with_vis_value_fields,
760         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
761         lto_get_builtin_tree): Use enum and variable length i/o.
762         * basic-block.h (profile_status_d): Add PROFILE_LAST.
763         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
764         New functions.
765         (bp_pack_enum, bp_unpack_enum): New macros.
766
767 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
768
769         * genrecog.c: Remove redundant forward declarations.
770
771 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
772
773         * config.gcc: Deprecate mips*-*-openbsd*.
774
775 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
776
777         PR bootstrap/49195
778         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
779         for match_op_dup.
780
781 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
782
783         PR middle-end/48981
784         * gengtype.c (vec_prefix_type): New function.
785         (note_def_vec): Use vec_prefix_type and change the length
786         attribute to be based on the prefix.
787         * vec.c: Include coretypes.h before vec.h.
788         (struct vec_prefix): Remove.
789         (vec_gc_p_reserve): Change the offsetof to sizeof.
790         (vec_gc_p_reserve_exact): Likewise.
791         (vec_heap_p_reserve): Likewise.
792         (vec_heap_p_reserve_exact): Likewise.
793         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
794         (vec_stack_p_reserve): Change the offsetof to sizeof.
795         (vec_stack_p_reserve_exact): Likewise.
796         * vec.h (struct vec_prefix): New struct definition.
797         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
798         (VEC_T_GTY(T,B)): Likewise.
799         (DEF_VEC_FUNC_P(T)): Use prefix field.
800         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
801         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
802
803 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
804
805         PR tree-optimization/46728
806         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
807         (powi_as_mults): Add gimple_set_location.
808         (build_and_insert_call): New.
809         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
810         0.5, 0.25, 0.75, 1./3., or 1./6.
811
812 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
813
814         * doc/contrib.texi: Update copyright years.
815         (Contributors): Add Zdenek Sojka.
816
817 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
818
819         * c-decl.c (c_push_function_context): Copy the current statement
820         list stack.
821         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
822         (finish_struct): Call building_stmt_list_p instead of checking
823         cur_stmt_list.
824         * c-parser.c (c_parser_postfix_expression): Likewise.
825         * c-typeck.c (c_end_compound_stmt): Likewise.
826         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
827         * tree-iterator.c (stmt_list_cache): Change to a VEC.
828         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
829         (free_stmt_list): Likewise.
830         * tree.h (struct tree_statement_list): Include typed_tree instead
831         of tree_common.
832         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
833         as TS_TYPED instead of TS_COMMON.
834
835 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
836             Uros Bizjak  <ubizjak@gmail.com>
837
838         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
839         (HAVE_AS_IX86_TLSGDPTL): Define.
840         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
841         (HAVE_AS_IX86_TLSLDMPLT): Define.
842         * configure: Regenerate.
843         * config.in: Regenerate.
844         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
845         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
846         TARGET_SUN_TLS, use @tlsgdplt or @plt.
847         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
848         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
849         @tlsldmplt or @plt.
850         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
851
852 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
853
854         * sched-int.h (struct _haifa_deps_insn_data): New members cond
855         and reverse_cond.
856         (INSN_COND, INSN_REVERSE_COND): New macros.
857         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
858         once.
859         (sched_get_condition_with_rev): Cache the results, and look them up
860         if possible.
861         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
862         are clobbered by the current insn.
863         * target.def (exposed_pipline): New sched data hook.
864         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
865         * doc/tm.texi: Regenerate.
866
867 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
868
869         PR tree-optimization/49170
870         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
871         sincos or cexp.
872
873 2011-05-27  Richard Guenther  <rguenther@suse.de>
874
875         PR middle-end/49189
876         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
877         of comparisons.
878
879 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
880
881         * haifa-sched.c (sched_scan_info): Remove.
882         (schedule_block): Call sched_extend_luids rather than sched_init_luids
883         with NULL args.
884         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
885         Remove functions.
886         (sched_scan): Remove.
887         (sched_extend_luids): Renamed from luids_extend_insn and no longer
888         static.  All callers changed.
889         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
890         static.  All callers changed.
891         (sched_init_luids): Remove all arguments except the first.  All
892         callers changed.  Don't use sched_scan.
893         (haifa_init_h_i_d): Likewise.
894         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
895         manually rather than using sched_init_luids.  Likewise with
896         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
897         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
898         rather than sched_init_luids with NULL args.
899         * sel-sched-ir.c (new_insns): Remove variable.
900         (sched_scan): New static function, previously in haifa-sched.c.  Remove
901         all arguments but the first two; all callers changed.
902         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
903         rather than sched_init_luids.
904         (sel_init_bbs): Remove second argument.  All callers changed.
905         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
906         with NULL arguments.
907         (create_insn_rtx_from_pattern): Likewise.
908         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
909         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
910         (sched_init_insn_luid, sched_extend_luids): Declare.
911         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
912         declarations.
913
914 2011-05-27  Richard Guenther  <rguenther@suse.de>
915
916         PR middle-end/49177
917         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
918         A CMP B ? (T) true : (T) false for non-integral types T again.
919
920 2011-05-27  Jan Hubicka  <jh@suse.cz>
921
922         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
923         so 0 means NULL string.
924         (lto_output_string_with_length): ... here.
925         (lto_output_string, output_string_cst, output_identifier): Update
926         handling of NULL strings.
927         (lto_output_location_bitpack): New function.
928         (lto_output_location): Use it.
929         (lto_output_tree_ref): Use output_record_start.
930         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
931         len values.
932         * lto-streamer-in.c (string_for_index): Break out from ...; offset
933         values by 1.
934         (input_string_internal): ... here;
935         (input_string_cst, input_identifier, lto_input_string): Update handling
936         of NULL strings.
937         (lto_input_location_bitpack): New function
938         (lto_input_location): Use it.
939         (unpack_ts_type_common_value_fields): Pack align & alias in var len
940         values.
941         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
942         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
943         (bp_pack_value): Sanity check the value range.
944         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
945         New functions.
946         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
947         New functions.
948
949 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
950
951         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
952         call_arg_location instructions down the floor.
953
954 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
955
956         PR rtl-optimization/49154
957         * ira.c (setup_pressure_classes): Process class without sublcasses
958         as a candidate for pressure classes.
959
960 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
961
962         PR rtl-optimization/48575
963         * genrecog.c (position_type): New enum.
964         (position): New structure.
965         (decision): Use position structure instead of a string.
966         (root_pos, peep2_insn_pos_list): New variables.
967         (next_position, compare_positions): New functions.
968         (new_decision): Use position structures instead of strings.
969         (maybe_both_true): Likewise.
970         (change_state): Likewise.
971         (write_tree): Likewise.
972         (make_insn_sequence): Likewise.
973
974 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
975
976         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
977         TS_BASE instead of TS_COMMON.
978         (find_decls_types_r): Check for TS_TYPED structure before looking at
979         TREE_TYPE.
980         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
981         Add chain field.
982         (BLOCK_CHAIN): Use new chain field.
983
984 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
985
986         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
987         moves expensive on Power7 also.
988
989 2011-05-26  Richard Guenther  <rguenther@suse.de>
990
991         * fold-const.c (fold_unary_loc): Remove bogus code.
992
993 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
994
995         * tree.h (struct tree_identifier): Inherit from tree_typed, not
996         tree_common.
997         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
998         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
999         TS_BASE instead of TS_COMMON.
1000         * varasm.c (assemble_name): Remove assert.
1001
1002 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
1003
1004         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
1005         substituted first.
1006         * libgcc-std.ver: Delete file.
1007
1008 2011-05-26  Richard Guenther  <rguenther@suse.de>
1009
1010         PR tree-optimization/48702
1011         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
1012         only when we know the base address is within bounds.
1013         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
1014         assume the base address of TARGET_MEM_REFs is in bounds.
1015
1016 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1017
1018         PR target/49099
1019         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
1020         declaration in TARGET_SOLARIS.
1021
1022 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
1023
1024         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
1025         The instruction is then expanded explicitly.
1026         (supported_compare): Callable instruction.
1027         (compare): Likewise.
1028
1029 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
1030
1031         PR c++/49165
1032         * gimplify.c (shortcut_cond_r): Don't special case
1033         COND_EXPRs if they have void type on one of their arms.
1034
1035 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
1036
1037         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
1038         to reduce duplication, and to achieve a slightly more logical order
1039         of operations.
1040
1041 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
1042
1043         PR tree-optimization/49161
1044         * tree-vrp.c (struct case_info): New type.
1045         (compare_case_labels): Sort case_info structs instead of
1046         trees, and not primarily by CASE_LABEL uids but by
1047         label_for_block indexes.
1048         (find_switch_asserts): Put case labels into struct case_info
1049         array instead of TREE_VEC, adjust sorting, compare label_for_block
1050         values instead of CASE_LABELs.
1051
1052 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1053
1054         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
1055         ("orndi3_neon"): Likewise.
1056         ("bic<mode>3_neon"): Likewise.
1057
1058 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
1059
1060         PR tree-optimization/49038
1061         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
1062         Ensure at least one epilogue iteration if required by data
1063         accesses with gaps.
1064         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1065         to mark loops that require peeling for gaps.
1066         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
1067         (vect_get_known_peeling_cost): Take peeling for gaps into
1068         account.
1069         (vect_transform_loop): Generate epilogue if required by data
1070         access with gaps.
1071         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
1072         loop as requiring an epilogue if there are gaps in the end of
1073         the strided group.
1074
1075 2011-05-25  Ian Lance Taylor  <iant@google.com>
1076
1077         * godump.c (go_format_type): Output the first field with a usable
1078         Go type, if any.
1079
1080 2011-05-25  Ian Lance Taylor  <iant@google.com>
1081
1082         * godump.c (go_format_type): Check for invalid type names, pointer
1083         target types, and struct field types.
1084
1085 2011-05-25  Jason Merrill  <jason@redhat.com>
1086
1087         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
1088
1089 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
1090
1091         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
1092
1093 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1094
1095         * config/i386/i386.md (*movqi_extv_1)): Put back
1096         "register_operand" check in "type" calculation.
1097         (*movqi_extzv_2): Likewise.
1098
1099 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1100
1101         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
1102
1103 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
1104
1105         PR bootstrap/49160
1106         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
1107         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
1108         __divxc3, __divtc3): Wrap definitions in #ifndef.
1109
1110 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1111
1112         PR target/49142
1113         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
1114         "register_operand" check and replace q_regs_operand with
1115         QIreg_operand in "type" calculation.
1116         (*movqi_extv_1): Likewise.
1117         (*movqi_extzv_2_rex64): Likewise.
1118         (*movqi_extzv_2): Likewise.
1119
1120         * config/i386/predicates.md (QIreg_operand): New.
1121
1122 2011-05-25  Richard Guenther  <rguenther@suse.de>
1123
1124         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
1125         type-based offset disambiguation, streamline MEM_REF and
1126         TARGET_MEM_REF handling.
1127
1128 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1129
1130         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
1131         (bdesc_special_args): Add pause intrinsic.
1132
1133         * config/i386/i386.md (UNSPEC_PAUSE): New.
1134         (pause): Likewise.
1135         (*pause): Likewise.
1136         * config/i386/ia32intrin.h (__pause): Likewise.
1137
1138         * doc/extend.texi (X86 Built-in Functions): Add documentation for
1139         pause intrinsic.
1140
1141 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1142
1143         PR tree-optimization/46728
1144         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
1145         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
1146
1147 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1148
1149         * tree.h (struct tree_exp): Inherit from struct tree_typed.
1150         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
1151         instead of TS_COMMON.
1152
1153 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
1154
1155         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
1156         LIBGCC2_GNU_PREFIX is defined.
1157         (__N): New macro.
1158         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
1159         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
1160         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
1161         __clz_tab): Define using __N.
1162         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
1163         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1164         * target.def (libfunc_gnu_prefix): New hook.
1165         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
1166         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
1167         * doc/tm.texi: Regenerate.
1168         * system.h (LIBGCC2_GNU_PREFIX): Poison.
1169         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
1170         account.
1171         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
1172         (init_optabs): Likewise for the bswap libfuncs.
1173         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
1174         and divide.
1175         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
1176         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
1177         * libgcc-std.ver: Remove.
1178         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
1179         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
1180         libgcc-std.ver.
1181         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1182         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
1183         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
1184         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
1185         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
1186         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1187         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1188         * config/fixed-bit.h (FIXED_OP): Define differently depending on
1189         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
1190         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
1191
1192 2011-05-25  Jan Hubicka  <jh@suse.cz>
1193
1194         * lto-streamer-out.c (output_record_start): Use lto_output_enum
1195         (lto_output_tree): Use output_record_start.
1196         * lto-streamer-in.c (input_record_start): Use lto_input_enum
1197         (lto_get_pickled_tree): Use input_record_start.
1198         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
1199         (lto_value_range_error): New function.
1200         * lto-streamer.h (lto_value_range_error): Declare.
1201         (lto_output_int_in_range, lto_input_int_in_range): New functions.
1202         (lto_output_enum, lto_input_enum): New macros.
1203
1204 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1205
1206         * common.opt (flag_stack_usage_info): New variable.
1207         (-Wstack-usage): New option.
1208         * doc/invoke.texi (Warning options): Document -Wstack-usage.
1209         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
1210         <OPT_fstack_usage>: Likewise.
1211         * toplev.c (output_stack_usage): Handle -Wstack-usage.
1212         * calls.c (expand_call): Test flag_stack_usage_info variable instead
1213         of flag_stack_usage.
1214         (emit_library_call_value_1): Likewise.
1215         * explow.c (allocate_dynamic_stack_space): Likewise.
1216         * function.c (instantiate_virtual_regs ): Likewise.
1217         (prepare_function_start): Likewise.
1218         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
1219         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
1220         * config/arm/arm.c (arm_expand_prologue): Likewise.
1221         (thumb1_expand_prologue): Likewise.
1222         * config/avr/avr.c (expand_prologue): Likewise.
1223         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1224         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1225         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
1226         * config/mips/mips.c (mips_expand_prologue): Likewise.
1227         * config/pa/pa.c (hppa_expand_prologue): Likewise.
1228         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1229         * config/s390/s390.c (s390_emit_prologue): Likewise.
1230         * config/sh/sh.c (sh_expand_prologue): Likewise.
1231         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1232         * config/spu/spu.c (spu_expand_prologue): Likewise.
1233
1234 2011-05-25  Richard Guenther  <rguenther@suse.de>
1235
1236         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
1237         (gimple_canonical_types_compatible_p): Likewise.
1238
1239 2011-05-25  Jan Hubicka  <jh@suse.cz>
1240
1241         PR middle-end/49062
1242         * ipa.c (function_and_variable_visibility): Only add to same
1243         comdat group list if DECL_ONE_ONLY.
1244
1245 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
1246
1247         PR rtl-optimization/49014
1248         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
1249
1250 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
1251
1252         PR target/49128
1253         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1254
1255 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1256
1257         PR rtl-optimization/48757
1258         * ira-build.c (loop_with_eh_edge_p): Rename to
1259         loop_with_complex_edge_p, check edges on complexity, make function
1260         conditional.
1261         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
1262         conditional.
1263
1264 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1265
1266         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
1267         force flag_ira_share_save_slots to 0.
1268
1269 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1270
1271         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
1272         (vt_initialize): Set PROLOGUE_BB unconditionally.
1273         Add block comment about CFA_BASE_RTX machinery.
1274         Reset FP_CFA_OFFSET to -1 on all invalid paths.
1275         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
1276
1277 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1278
1279         PR objc/48187
1280         * c-parser.c (c_parser_objc_class_instance_variables): More robust
1281         parsing of syntax error in ObjC instance variable lists.  In
1282         particular, avoid an infinite loop if there is a stray ']'.
1283         Updated error message.
1284
1285 2011-05-24  Ian Lance Taylor  <iant@google.com>
1286
1287         * godump.c (go_define): Don't accept a string immediately after
1288         another operand.
1289
1290 2011-05-24  Ian Lance Taylor  <iant@google.com>
1291
1292         * godump.c (struct godump_container): Add invalid_hash field.
1293         (go_format_type): Return false if type is found in invalid_hash.
1294         (go_output_typedef): Add invalid type to invalid_hash.
1295         (go_finish): Create and delete invalid_hash.
1296
1297 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1298
1299         PR tree-optimization/46728
1300         * tree-ssa-math-opts.c (powi_table): New.
1301         (powi_lookup_cost): New.
1302         (powi_cost): New.
1303         (powi_as_mults_1): New.
1304         (powi_as_mults): New.
1305         (gimple_expand_builtin_powi): New.
1306         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
1307         (gate_cse_sincos): Remove sincos/cexp restriction.
1308
1309 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1310
1311         PR target/3746
1312         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
1313         mips-tdump native.
1314         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
1315         * mips-tdump.c: Likewise.
1316
1317 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1318
1319         PR target/49128
1320         * config/i386/driver-i386.c (host_detect_local_cpu): Always
1321         add -mno-XXX.  Handle FMA.
1322
1323 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1324
1325         PR rtl-optimization/48633
1326         * ira-build.c (loop_with_eh_edge_p): New function.
1327         (mark_loops_for_removal): Use it.
1328
1329 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1330
1331         PR rtl-optimization/48971
1332         * ira.c (setup_pressure_classes): Don't check register move cost
1333         for classes with one registers.  Don't add pressure class if there
1334         is a pressure class with the same available hard registers.
1335         Check contains_reg_of_mode.  Fix a typo in collecting
1336         temp_hard_regset.  Ignore hard registers not belonging to a class.
1337
1338 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
1339
1340         PR target/49133
1341         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
1342
1343 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1344             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1345
1346         PR gcov-profile/48845
1347         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
1348
1349 2011-05-24  Richard Guenther  <rguenther@suse.de>
1350
1351         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
1352         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
1353         (gimple_types_compatible_p_1): Adjust.
1354         (iterative_hash_canonical_type): Do not bother about complete vs.
1355         incomplete types.
1356         (gimple_canonical_types_compatible_p): Likewise.
1357
1358 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1359
1360         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
1361
1362 2011-05-24  Richard Guenther  <rguenther@suse.de>
1363
1364         PR bootstrap/49078
1365         * gimple.c (gimple_register_canonical_type): Revert
1366         previous change.
1367         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
1368         does not for a tree for the case where it matters.  Cache
1369         pointer-type alias-sets.
1370
1371 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
1372
1373         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
1374         (OBJS): Remove options.o, opts-common.o and prefix.o.
1375         (OBJS-libcommon-target): New.
1376         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
1377         (BACKEND): Include libcommon-target.a.
1378         (MOSTLYCLEANFILES): Include libcommon-target.a.
1379         (libcommon-target.a): New.
1380         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
1381         prefix.o.
1382
1383 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
1384
1385         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
1386         parts of output shared with the driver.
1387         * optc-gen.awk: Don't generate parts of output not shared with the
1388         driver.
1389         * opth-gen.awk: Remove GCC_DRIVER conditionals.
1390         * doc/options.texi (SourcerInclude): Mention options-save.c.
1391         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
1392         (OBJS): Add options-save.o.
1393         (options-save.c, options-save.o): New.
1394         (options.o): Update dependencies.
1395         (gcc-options.o): Remove.
1396         (mostlyclean): Remove options-save.c.
1397
1398 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1399
1400         PR debug/49032
1401         * dbxout.c: Include cgraph.h.
1402         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
1403         and without value expr, return NULL if no varpool node exists for
1404         it or if it is not needed.
1405         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
1406
1407         PR c/49120
1408         * c-decl.c (start_decl): Convert expr to void_type_node.
1409
1410 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
1411
1412         PR rtl-optimization/48826
1413         * emit-rtl.c (try_split): When splitting a call that is followed
1414         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
1415
1416 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1417
1418         * cfgexpand.c (expand_debug_expr): For unused non-addressable
1419         parameters passed in memory prefer using DECL_INCOMING_RTL over
1420         the pseudos it will be copied into.
1421
1422 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1423
1424         PR target/47315
1425         * config/i386/i386.c (ix86_option_override_internal): Save the
1426         initial options after checking vzeroupper.
1427
1428 2011-05-23  David Li  <davidxl@google.com>
1429
1430         PR tree-optimization/48988
1431         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1432         Initialize has_valid_pred for each pred chain.
1433
1434 2011-05-23  Richard Guenther  <rguenther@suse.de>
1435
1436         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1437         (iterative_hash_gimple_type): Always hash type names.
1438
1439 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
1440
1441         * c-typeck.c (build_function_call_vec): Tweak call to
1442         check_function_arguments.
1443
1444 2011-05-23  Richard Guenther  <rguenther@suse.de>
1445
1446         PR tree-optimization/49115
1447         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1448         is not necessarily carried out, do not claim it kills the ref.
1449         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1450
1451 2011-05-23  Richard Guenther  <rguenther@suse.de>
1452
1453         PR middle-end/15419
1454         * builtins.c (fold_builtin_memory_op): Be less restrictive about
1455         what pointer types we accept for folding.
1456
1457 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1458
1459         * gthr-gnat.c: Remove.
1460         * gthr-gnat.h: Remove.
1461         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1462         * config/t-freebsd (LIB2ADDEH): Likewise.
1463         * config/t-linux (LIB2ADDEH): Likewise.
1464         * config/t-sol2 (LIB2ADDEH): Likewise.
1465         * config/ia64/t-vms (LIB2ADDEH): Likewise.
1466         * configure.ac (target_thread_file): Remove gnat handling.
1467         * configure: Regenerate.
1468         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1469
1470 2011-05-23  Tristan Gingold  <gingold@adacore.com>
1471             Eric Botcazou  <ebotcazou@adacore.com>
1472
1473         * gcov.c (create_file_names): If no object directory is specified,
1474         keep the directory of the file.
1475
1476 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1477
1478         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1479         * configure: Regenerate.
1480
1481 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1482
1483         PR middle-end/48973
1484         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1485         failed and the comparison has a single bit signed type, use
1486         constm1_rtx instead of const1_rtx for true value.
1487         (do_store_flag): If ops->type is single bit signed type, disable
1488         signel bit test optimization and pass -1 instead of 1 as last
1489         parameter to emit_store_flag_force.
1490
1491 2011-05-23  Tom de Vries  <tom@codesourcery.com>
1492
1493         PR target/45098
1494         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1495         function.
1496         (infer_loop_bounds_from_undefined): Use new function.
1497
1498 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1499
1500         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1501         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
1502         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1503         and -O0 otherwise.
1504         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1505
1506 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1507
1508         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1509         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1510         returns true.
1511
1512 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1513
1514         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1515
1516 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1517
1518         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1519         UNSPEC_MOVE_PIC pattern.
1520
1521 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1522
1523         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1524         (sparc-*-rtems*): Likewise.
1525         (sparc64-*-elf*): Likewise.
1526         (sparc64-*-rtems*): Likewise.
1527         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
1528         * config/sparc/t-crtin: New file.
1529         * config/sparc/t-sol2 (crti.o): Delete rule.
1530         (crtn.o): Likewise.
1531         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1532         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1533         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1534         (ENDFILE_SPEC): Add crtn.o.
1535
1536 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1537
1538         PR middle-end/48689
1539         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1540         CODE_CONTAINS_STRUCT (TS_COMMON).
1541
1542 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
1543
1544         PR middle-end/49029
1545         * expmed.c (extract_fixed_bit_field): Test whether target can be used
1546         only after deciding which mode to use.
1547
1548 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1549
1550         PR target/45098
1551         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1552         for call to get_shiftadd_cost.
1553
1554 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
1555
1556         PR target/49104
1557         * config/i386/cpuid.h (bit_MMXEXT): New define.
1558
1559 2011-05-22  Nick Clifton  <nickc@redhat.com>
1560
1561         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1562         initialisation of non-existant args[2] element.  Use args[] array
1563         not arg[] array to pass arguments to build_function_type_list.
1564
1565 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
1566
1567         PR tree-optimization/49087
1568         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1569
1570 2011-05-21  Jason Merrill  <jason@redhat.com>
1571
1572         PR c++/49092
1573         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1574         static storage duration.
1575
1576 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1577
1578         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1579         frame pointer.
1580
1581 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1582
1583         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1584         false if there are call-saved registers here...
1585         (sparc_can_use_return_insn_p): ...but here instead.
1586         (save_or_restore_regs): Fix thinko.
1587         (sparc_expand_prologue): Use current_function_is_leaf.
1588         (sparc_frame_pointer_required): Likewise.
1589
1590 2011-05-21  Nick Clifton  <nickc@redhat.com>
1591
1592         PR target/49098
1593         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1594
1595 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1596
1597         * gengtype.c (walk_type): Implemented "atomic" GTY option.
1598         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1599
1600 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
1601
1602         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
1603         * optc-gen.awk: Move common code to opt-read.awk.
1604         * opth-gen.awk: Likewise.
1605         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1606
1607 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1608
1609         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1610
1611 2011-05-20  Tom de Vries  <tom@codesourcery.com>
1612
1613         PR target/45098
1614         * tree-ssa-loop-ivopts.c: Include expmed.h.
1615         (get_shiftadd_cost): New function.
1616         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
1617
1618 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1619
1620         PR bootstrap/49086
1621         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1622         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1623
1624 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1625
1626         * Makefile.in: Update comment referring to $(OBJS-common).
1627
1628 2011-05-20  Ian Lance Taylor  <iant@google.com>
1629
1630         * godump.c (go_output_typedef): Put enum constants in the macro
1631         hash table to avoid duplicate Go const definitions.
1632
1633 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1634
1635         * Makefile.in (LIBDEPS): Add libcommon.a.
1636         (LIBS): Likewise.
1637         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1638         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1639         pretty-print.o and version.o.
1640         (OBJS-libcommon): New.
1641         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1642         (BACKEND): Add libcommon.a.
1643         (MOSTLYCLEANFILES): Likewise.
1644         (libcommon.a): New.
1645         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1646         (cpp$(exeext)): Likewise.
1647         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1648         pretty-print.o and input.o.
1649         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1650         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1651         (errors.o): Remove.
1652         (mips-tfile): Don't explicitly use version.o.
1653         (mips-tdump): Likewise.
1654         (gcov.o): Depend on $(DIAGNOSTIC_H).
1655         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1656         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1657         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1658         * gcov-dump.c: Include intl.h and diagnostic.h.
1659         (main): Initialize diagnostics.
1660         * gcov.c: Include diagnostic.h.
1661         (fnotice): Remove.
1662         (main): Initialize diagnostics.
1663         * lto-wrapper.c: Include diagnostic.h.
1664         (main): Initialize diagnostics.
1665
1666 2011-05-20  Michael Matz  <matz@suse.de>
1667
1668         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1669
1670 2011-05-20  Michael Matz  <matz@suse.de>
1671             Richard Guenther  <rguenther@suse.de>
1672
1673         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1674         use lto_streamer_cache_append directly instead of returning a VEC.
1675         (preload_common_node): Remove.
1676         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1677         track seen nodes.
1678         (lto_streamer_cache_create): Call lto_preload_common_nodes.
1679
1680 2011-05-20  Richard Guenther  <rguenther@suse.de>
1681
1682         PR tree-optimization/49079
1683         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1684         MEM_REFs correctly for the trailing array access detection.
1685         Special case constants the same way as decls for overall size
1686         constraining.
1687
1688 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
1689
1690         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1691         argument expansion.
1692
1693 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1694
1695         PR tree-optimization/49073
1696         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1697         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1698         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1699
1700 2011-05-20  Richard Guenther  <rguenther@suse.de>
1701
1702         PR middle-end/48849
1703         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1704         of pointer types the same way the middle-end does.
1705
1706 2011-05-20  Richard Guenther  <rguenther@suse.de>
1707
1708         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1709         or pointer-to chains.  Delay all fixup to uniquify_nodes.
1710
1711 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
1712
1713         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1714         (fma4_fmaddsub): Likewise
1715
1716 2011-05-19  Jan Hubicka  <jh@suse.cz>
1717
1718         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1719         (GIMPLE_TYPE_PAIR_SIZE): New macro.
1720         (type_pair_cache): New static var.
1721         (lookup_type_pair): Use fixed sized custom hash; make inline.
1722         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1723         calls of lookup_type_pair.
1724         (print_gimple_types_stats): Remove cache stats.
1725         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1726         and gtc_ob.
1727
1728 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
1729
1730         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1731         when TARGET_RDRND is active.
1732         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1733         Generate dummy SImode target register when target is NULL.
1734
1735 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1736
1737         * config/arm/arm-fpus.def: New.
1738         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1739         arm-fpus.def.
1740         * config/arm/arm-tables.opt: Regenerate.
1741         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1742         (arm_option_override): Don't decode FPU name to string here.
1743         * config/arm/arm.opt (mfpu=): Use Enum.
1744         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1745         Update dependencies.
1746
1747 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1748
1749         * collect2.c: Include diagnostic.h.
1750         (fatal_perror, fatal, error, fancy_abort): Remove.
1751         (main): Set progname.  Call xmalloc_set_program_name and
1752         diagnostic_initialize.
1753         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1754         scan_libraries, resolve_lib_name): Call fatal_error instead of
1755         fatal and fatal_perror.
1756         * collect2.h (error, fatal, fatal_perror): Don't declare.
1757         * tlink.c: Include diagnostic-core.h.
1758         (recompile_files): Call fatal_error instead of fatal_perror.
1759         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1760         pretty-print.o and input.o.
1761         (collect2.o, tlink.o): Update dependencies.
1762
1763 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1764
1765         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1766
1767 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1768
1769         PR target/40483
1770         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1771         COMDAT group syntax, both SPARC and x86 variants.
1772         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1773         * configure: Regenerate.
1774         * config/sol2.h (TARGET_SOLARIS): Define.
1775         (PUSHSECTION_FORMAT): Remove.
1776         (SECTION_NAME_FORMAT): Define.
1777         * config/sol2.c: Include hashtab.h.
1778         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1779         expansion, using SECTION_NAME_FORMAT.
1780         (solaris_comdat_htab): New variable.
1781         (struct comdat_entry): Define.
1782         (comdat_hash): New function.
1783         (comdat_eq): New function.
1784         (solaris_elf_asm_comdat_section): New function.
1785         (solaris_define_comdat_signature): New function.
1786         (solaris_code_end): New function.
1787         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1788         (solaris_code_end): Declare.
1789         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1790         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1791         solaris_code_end.
1792         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1793         Remove ATTRIBUTE_UNUSED.
1794         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1795         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1796         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1797         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1798         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1799         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1800         (PUSHSECTION_FORMAT): Remove.
1801         (SECTION_NAME_FORMAT): Redefine.
1802
1803 2011-05-19  Kai Tietz  <ktietz@redhat.com>
1804
1805         * tree-cfg.c (verify_gimple_assign_binary): Barf on
1806         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1807         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1808
1809 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
1810             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1811
1812         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1813
1814 2011-05-19  Richard Guenther  <rguenther@suse.de>
1815
1816         PR middle-end/48985
1817         * tree-object-size.c (addr_object_size): If the pointed-to
1818         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1819
1820 2011-05-19  Richard Guenther  <rguenther@suse.de>
1821
1822         * gimple.c (gimple_types_compatible_p_1): Compare names of
1823         the types themselves.
1824         (iterative_hash_gimple_type): And hash them that way.
1825         (gimple_register_type_1): If we register a main variant properly
1826         initialize the leader to ourselves.
1827
1828 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1829
1830         PR target/45098
1831         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1832         get_loop_invariant_expr_id.
1833         (get_loop_invariant_expr_id): Use get_expr_id.
1834         (parm_decl_cost): New function.
1835         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1836         Improve bound cost estimation.  Use different inv_expr_id for elim and
1837         express cases.
1838
1839 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1840
1841         PR target/45098
1842         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1843         cost_base.cost == 0.
1844
1845 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1846
1847         PR target/49002
1848         * config/i386/sse.md
1849         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
1850         load cast.
1851
1852 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1853
1854         PR tree-optimization/49039
1855         * tree-vrp.c (extract_range_from_binary_expr): For
1856         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1857         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1858
1859 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1860
1861         PR target/45098
1862         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1863
1864 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
1865
1866         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1867         (*tls_global_dynamic_64): Ditto.
1868         (*tls_local_dynamic_base_32_gnu): Ditto.
1869         (*tls_local_dynamic_base_64): Ditto.
1870         (tls_initial_exec_64_sun): Ditto.
1871
1872 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
1873
1874         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1875         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1876         bf592-none.
1877         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1878         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1879         * config/bfin/bfin.c (bfin_cpus): Add bf592.
1880         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1881         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1882         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1883         * config/bfin/elf.h (LIB_SPEC): Add bf592.
1884
1885 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
1886
1887         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1888         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1889         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1890         target_thread_pointer, arm_structure_size_boundary, struct
1891         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1892         struct abi_name, arm_all_abis): Remove.
1893         (arm_option_override) Don't process most enumerated option values here.
1894         Don't process target_fpe_name here.  Work with integer not string for
1895         structure size boundary; use separate diagnostics for each case.
1896         * config/arm/arm.h (enum float_abi_type, enum
1897         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1898         to arm-opts.h.
1899         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1900         arm_structure_size_boundary): Remove.
1901         * config/arm/arm.opt (mabi=): Use Enum and Init.
1902         (arm_abi_type): New Enum and EnumValue entries.
1903         (mfloat-abi=): Use Enum and Init.
1904         (float_abi_type): New Enum and EnumValue entries.
1905         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1906         (mfp16-format=): Use Enum and Init.
1907         (arm_fp16_format_type): New Enum and EnumValue entries.
1908         (mstructure-size-boundary=): Use UInteger and Init.
1909         (mtp=): Use Enum and Init.
1910         (arm_tp_type): New Enum and EnumValue entries.
1911
1912 2011-05-18  Richard Guenther  <rguenther@suse.de>
1913
1914         PR tree-optimization/49018
1915         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1916         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1917         gimple_has_side_effects.
1918
1919 2011-05-18  Richard Guenther  <rguenther@suse.de>
1920
1921         * gimple.c (gimple_register_type_1): New function, split out from ...
1922         (gimple_register_type): ... here.  Avoid infinite recursion.
1923
1924 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1925
1926         PR tree-optimization/41881
1927         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1928         reduction_chains along with a macro for its access.
1929         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1930         (destroy_loop_vec_info): Free reduction chains.
1931         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1932         (vect_is_slp_reduction): New function.
1933         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1934         (vect_create_epilog_for_reduction): Support SLP reduction chains.
1935         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1936         definition types for reduction chains.
1937         (vect_supported_load_permutation_p): Don't allow permutations for
1938         reduction chains.
1939         (vect_analyze_slp_instance): Support reduction chains.
1940         (vect_analyze_slp): Try to build SLP instance from reduction chains.
1941         (vect_get_constant_vectors):  Handle reduction chains.
1942         (vect_schedule_slp_instance): Mark the first statement of the
1943         reduction chain as reduction.
1944
1945 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1946
1947         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1948         names for group elements access.
1949         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1950         reduction chains as well.  Remove data reference and interleaving
1951         related words from the fields names.
1952         * tree-vect-loop.c (vect_transform_loop): Use new names for group
1953         elements access.
1954         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1955         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1956         vect_update_interleaving_chain, vect_same_range_drs,
1957         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1958         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1959         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1960         vect_analyze_group_access, vect_analyze_data_ref_access,
1961         vect_create_data_ref_ptr, vect_transform_strided_load,
1962         vect_record_strided_load_vectors): Likewise.
1963         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1964         vect_model_load_cost, vectorizable_store, vectorizable_load,
1965         vect_remove_stores, new_stmt_vec_info): Likewise.
1966         * tree-vect-slp.c (vect_build_slp_tree,
1967         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1968
1969 2011-05-18  Richard Guenther  <rguenther@suse.de>
1970
1971         PR middle-end/48989
1972         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1973         operand verification.
1974         (verify_gimple_assign_binary): Likewise.
1975         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1976         to non-1-precision BOOLEAN_TYPEs.
1977
1978 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1979
1980         PR target/45098
1981         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1982
1983 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1984
1985         PR tree-optimization/49000
1986         * tree-ssa.c (execute_update_addresses_taken): Call
1987         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
1988         be rewritten and decl has been marked for renaming, reset
1989         the debug stmt.
1990
1991 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
1992
1993         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1994         enum_opts_set when testing if attributes have set -mfpmath=.
1995
1996 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
1997
1998         * config/mips/mips.c (mips_handle_option): Remove unused variable.
1999
2000 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
2001
2002         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
2003         info->entry with 0
2004         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
2005         id.transform_lang_insert_block with NULL.
2006
2007 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
2008
2009         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
2010         (output_fp_compare): Change args 3 and 4 to bool.
2011         (ix86_expand_call): Change arg 6 to bool.
2012         (ix86_attr_length_immediate_default): Change arg 2 to bool.
2013         (ix86_attr_length_vex_default): Change arg 3 to bool.
2014         * config/i386/i386.md: Update all uses.
2015         * config/i386/i386.c: Ditto.
2016         (ix86_flags_dependent): Change return type to bool.
2017
2018 2011-05-17  Richard Guenther  <rguenther@suse.de>
2019
2020         * gimple.c (type_hash_pair_compare): Fix comparison.
2021
2022 2011-05-17  Richard Guenther  <rguenther@suse.de>
2023
2024         * gimple.c (iterative_hash_gimple_type): Simplify singleton
2025         case some more, fix final hash value of the non-singleton case.
2026
2027 2011-05-17  Richard Guenther  <rguenther@suse.de>
2028
2029         PR bootstrap/49013
2030         Revert
2031         2011-05-16  Richard Guenther  <rguenther@suse.de>
2032
2033         * gimple.c (gimple_types_compatible_p_1): Use names of the
2034         type itself, not its main variant.
2035         (iterative_hash_gimple_type): Likewise.
2036
2037 2011-05-17  Richard Guenther  <rguenther@suse.de>
2038
2039         * gimple.c (gimple_register_canonical_type): Use the main-variant
2040         leader for computing the canonical type.
2041
2042 2011-05-17  Nick Clifton  <nickc@redhat.com>
2043
2044         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
2045         moves.
2046
2047         * config/rx/rx.md: Add peephole to remove redundant extensions
2048         after loads.
2049         (bitset_in_memory): Use rx_restricted_mem_operand.
2050         (bitinvert_in_memory): Likewise.
2051         (bitclr_in_memory): Likewise.
2052
2053 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
2054             Nick Clifton  <nickc@redhat.com>
2055
2056         * config/rx/rx.md: Add peepholes to match a register move followed
2057         by a comparison of the moved register.  Replace these with an
2058         addition of zero that does both actions in one instruction.
2059
2060 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
2061
2062         PR target/48986
2063         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
2064         predicate to allow CONST_INT.
2065         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
2066
2067 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
2068
2069         * opts-common.c (opt_enum_arg_to_value): New.
2070         * opts.h (opt_enum_arg_to_value): Declare.
2071         * config/i386/i386.opt (fpmath): Remove.
2072         (mfpmath=): Use Enum, Init and Save.
2073         (fpmath_unit): New Enum and EnumValue entries.
2074         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
2075         name for function fpmath state.
2076         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
2077         * config/i386/i386.c: Include diagnostic.h.
2078         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
2079         (ix86_target_string): Take enum fpmath_unit value instead of string.
2080         (ix86_debug_options): Update call to ix86_target_string.
2081         (ix86_option_override_internal): Don't process fpmath strings here.
2082         (x86_function_specific_save, ix86_function_specific_restore):
2083         Don't handle fpmath state specially.
2084         (ix86_function_specific_print): Pass fpmath state to
2085         ix86_target_string instead of printing in this function.
2086         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
2087         Handle enum attributes.
2088         (IX86_ATTR_ENUM, ix86_opt_enum): New.
2089         (ix86_valid_target_attribute_tree): Update option_strings
2090         handling.  Handle fpmath as enum option.
2091         (ix86_can_inline_p): Update field names for function fpmath state.
2092         (ix86_expand_builtin): Update call to ix86_target_string.
2093         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
2094         (ix86_fpmath): Remove.
2095         * config/i386/t-i386 (i386.o): Update dependencies.
2096
2097 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
2098
2099         PR preprocessor/48677
2100         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
2101         from decoded_options[0], not from itself.
2102
2103 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
2104
2105         * config/i386/constraints.md (z): New constraint.
2106         * config/i386/i386.c (c): New mode attribute.
2107         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
2108         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
2109         constraint for operand 0.
2110         (*call_vzeroupper): Ditto.
2111         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
2112         (*call_rex64_ms_sysv_vzeroupper): Ditto.
2113         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
2114         Use "lzm" constraint for operand 0.
2115         (*call_pop_vzeroupper): Ditto.
2116         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
2117         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
2118         constraint for operand 0.
2119         (*sibcall_vzeroupper): Ditto.
2120         (*sibcall_rex64_ms_sysv): Ditto.
2121         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
2122         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
2123         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
2124         (*sibcall_pop_vzeroupper): Ditto.
2125         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
2126         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
2127         mode iterator.  Use "<c>zm" constraint for operand 1.
2128         (*call_value_vzeroupper): Ditto.
2129         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
2130         for operand 1.
2131         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
2132         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
2133         *call_value_pop_1.  Use "lzm" constraint for operand 1.
2134         (*call_value_pop_vzeroupper): Ditto.
2135         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
2136         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
2137         mode iterator.  Use "Uz" constraint for operand 1.
2138         (*sibcall_value_vzeroupper): Ditto.
2139         (*sibcall_value_rex64_ms_sysv): Ditto.
2140         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
2141         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
2142         constraint for operand 1.
2143         (*sibcall_value_pop_vzeroupper): Ditto.
2144         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
2145         and "z" constraint for operand 2.
2146         (*tls_global_dynamic_32_gnu): Ditto.
2147         (*tls_local_dynamic_base_32_gnu): Ditto.
2148         (*tls_local_dynamic_base_64): Ditto.
2149         (*tls_local_dynamic_32_once): Ditto.
2150         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
2151         Update all callers.
2152         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
2153
2154 2011-05-16  Richard Guenther  <rguenther@suse.de>
2155
2156         * gimple.c (gimple_types_compatible_p_1): Use names of the
2157         type itself, not its main variant.
2158         (iterative_hash_gimple_type): Likewise.
2159
2160 2011-05-16  Richard Guenther  <rguenther@suse.de>
2161
2162         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
2163         always visit pointer target and function result and argument types.
2164
2165 2011-05-16  Jason Merrill  <jason@redhat.com>
2166
2167         PR c++/48999
2168         * tree-inline.c (copy_statement_list): Put back recursion.
2169
2170 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
2171
2172         PR target/27663
2173         PR target/41076
2174         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
2175         * config/avr/avr.md ("*ior<mode>qi.byte0",
2176         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
2177
2178 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
2179
2180         PR target/45099
2181         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
2182         register is needed for a function argument.
2183
2184 2011-05-16  Richard Guenther  <rguenther@suse.de>
2185
2186         * gimple.c (struct type_hash_pair): New type.
2187         (type_hash_pair_compare): New function.
2188         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
2189
2190 2011-05-16  Revital Eres  <revital.eres@linaro.org>
2191
2192         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
2193
2194 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
2195
2196         * config/i386/i386.md (floating point move splitters): Fix
2197         usage of standard_80387_constant_p.
2198         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
2199
2200 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
2201
2202         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
2203
2204 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2205
2206         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
2207         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
2208         (tree_ssa_lim_finalize): Likewise.
2209
2210 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
2211
2212         * config/i386/constraint.md (Yd, Yx): New register constraints.
2213         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
2214         Yd conditional register constraint.
2215         (*movtf_internal): Use standard_sse_constant_opcode.
2216         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
2217         Yx conditional register constraint.
2218         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
2219         Yd conditional register constraint.  Use standard_sse_constant_p to
2220         check for valid SSE constants and call standard_sse_constant_opcode to
2221         output SSE insn.
2222         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
2223         constants and call standard_sse_constant_opcode to output SSE insn.
2224         * config/i386/i386.c (ix86_option_ovverride_internal): Set
2225         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
2226         optimize_size is set.
2227         (standard_sse_constant_opcode): Output conditional AVX insn templates.
2228
2229 2011-05-14  Tobias Burnus  <burnus@net-b.de>
2230
2231         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
2232
2233 2011-05-13  Martin Jambor  <mjambor@suse.cz>
2234
2235         * ipa-prop.c (ipa_cst_from_jfunc): New function.
2236         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
2237         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
2238         (evaluate_conditions_for_ipcp_clone): Removed.
2239         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
2240         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
2241         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
2242
2243 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2244
2245         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
2246         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
2247         lieu of MAY_HAVE_DEBUG_STMTS.
2248         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
2249         debug statements if !MAY_HAVE_DEBUG_STMTS.
2250
2251 2011-05-13  Martin Thuresson  <martint@google.com>
2252
2253         PR gcov-profile/47793
2254         * libgcov.c (gcov_exit): Support relative profile paths.
2255         * doc/invoke.texi (-fprofile-dir): Update for above change.
2256
2257 2011-05-13  Richard Guenther  <rguenther@suse.de>
2258
2259         * gimple.c (gimple_canonical_types_compatible_p): Do not use
2260         type-pair caching, do not compare hashes.
2261
2262 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
2263
2264         PR middle-end/48965
2265         * tree-cfg.c (edge_to_cases_cleanup): Return true.
2266         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
2267
2268 2011-05-13  Kai Tietz  <ktietz@redhat.com>
2269
2270         * gimplify.c (gimplify_expr): Make sure operand is boolified.
2271         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
2272         compatible type for TRUTH_NOT_EXPR.
2273
2274 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2275
2276         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2277         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
2278         can_create_pseudo_p ().
2279
2280 2011-05-13  Richard Guenther  <rguenther@suse.de>
2281
2282         PR lto/48978
2283         * gimple.c (iterative_hash_gimple_type): Revert change in
2284         pointer target and function result and argument hashing.
2285
2286 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
2287
2288         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
2289         (*movxf_internal_nointeger): Ditto.
2290         (*movdf_internal_rex64): Ditto.
2291         (*movdf_internal): Ditto.
2292         (*movdf_internal_nointeger): Ditto.
2293         (*movsf_internal): Ditto.
2294         (sincos splitters): Use can_create_pseudo ().
2295
2296 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
2297
2298         * config/i386/i386-opts.h: New.
2299         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
2300         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
2301         ix86_section_threshold): Remove.
2302         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
2303         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
2304         OPT_mbranch_cost_.
2305         (ix86_option_override_internal): Don't decode strings for options
2306         other than -march=, -mtune= and -mfpmath=.  Don't allow for
2307         __attribute__ uses in remaining diagnostics for options with
2308         string arguments.  Don't check for integer arguments being negative.
2309         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
2310         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
2311         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
2312         ix86_branch_cost, ix86_section_threshold): Remove.
2313         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
2314         HeaderInclude.
2315         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
2316         but not Var.
2317         (masm=): Use Enum and Init.
2318         (asm_dialect): New Enum and EnumValue entries.
2319         (mbranch-cost=): Use UInteger.
2320         (mlarge-data-threshold=): Use UInteger and Init.
2321         (mcmodel=): Use Enum and Init.
2322         (cmodel): New Enum and EnumValue entries.
2323         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
2324         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
2325         mregparm=): Use UInteger.
2326         (mstringop-strategy=): Use Enum and Init.
2327         (stringop_alg): New Enum and EnumValue entries.
2328         (mtls-dialect=): Use Enum and Init.
2329         (tls_dialect): New Enum and EnumValue entries.
2330         (mabi=): Use Enum and Init.
2331         (calling_abi): New Enum and EnumValue entries.
2332         (mveclibabi=): Use Enum and Init.
2333         (ix86_veclibabi): New Enum and EnumValue entries.
2334
2335 2011-05-13  Nick Clifton  <nickc@redhat.com>
2336
2337         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
2338         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
2339
2340 2011-05-13  Kai Tietz  <ktietz@redhat.com>
2341
2342         PR middle-end/48984
2343         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
2344         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
2345         (gimple_boolify): Check for cast for boolean_type_node instead for
2346         BOOLEAN_TYPE.
2347
2348 2011-05-13  Richard Guenther  <rguenther@suse.de>
2349
2350         PR tree-optimization/48172
2351         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
2352         multiplying by number of iterations for equal step.
2353         (vect_create_cond_for_alias_checks): Likewise.
2354
2355 2011-05-13  Andreas Schwab  <schwab@redhat.com>
2356
2357         * configure.ac: Use AS_HELP_STRING throughout.
2358         * configure: Regenerate.
2359
2360 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2361
2362         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
2363         (ix86_emit_restore_regs_using_mov): Likewise.
2364         (ix86_emit_restore_sse_regs_using_mov): Likewise.
2365
2366 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
2367
2368         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
2369         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
2370         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
2371         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
2372         RTX_OK_FOR_OLO10_P): ...here.
2373         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
2374         SYMBOLIC_CONST.
2375
2376 2011-05-12  Kai Tietz  <ktietz@redhat.com>
2377
2378         * gimplify.c (gimple_boolify): Re-boolify expression
2379         arguments even if expression type is of kind BOOLEAN_TYPE.
2380         (gimplify_boolean_expr): Removed.
2381         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
2382         and XOR. Additional take care that we keep expression's type.
2383         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
2384         of TRUTH_AND|OR|XOR_EXPR.
2385
2386 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
2387
2388         PR tree-optimization/48975
2389         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
2390         on all bbs here and free and clear ifc_bbs at the end.
2391
2392 2011-05-12  Richard Guenther  <rguenther@suse.de>
2393
2394         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
2395         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
2396         until after simple checks.
2397         (gimple_types_compatible_p): Likewise.
2398         (iterative_hash_gimple_type): Always hash pointer targets
2399         and function return and argument types.
2400         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
2401         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
2402         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
2403         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
2404         completely in the simple compare section.
2405         (gimple_register_canonical_type): Query the cache again after
2406         registering.
2407
2408 2011-05-12  Richard Guenther  <rguenther@suse.de>
2409
2410         PR tree-optimization/48172
2411         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
2412         the number of iterations from the segment size calculation.
2413         (vect_create_cond_for_alias_checks): Adjust.
2414
2415 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
2416
2417         PR debug/48967
2418         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
2419         if validate_subreg fails.
2420
2421 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
2422
2423         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
2424         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
2425         early.
2426
2427 2011-05-12  DJ Delorie  <dj@redhat.com>
2428
2429         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
2430         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
2431         created builtin into rx_builtins array.
2432         (rx_builtin_decl): New function.
2433         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
2434
2435 2011-05-12  DJ Delorie  <dj@redhat.com>
2436             Nick Clifton  <nickc@redhat.com>
2437
2438         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2439         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2440         (rx_is_legitimate_address): Add pre-decrement and post-increment
2441         addressing in HImode and QImode.  Fix test for out of range
2442         REG+INT addressing.
2443         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
2444         (rx_align_for_label): Test label before extracting its usage count.
2445         (rx_adjust_insn_lengths): Fix selection of insn codes.
2446         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
2447
2448 2011-05-11  Jason Merrill  <jason@redhat.com>
2449
2450         * tree.c (type_hash_canon): Use struct tree_type_non_common.
2451
2452 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2453
2454         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2455         reindent the subsequent block.
2456
2457 2011-05-11  Satoru Takabayashi  <satorux@google.com>
2458             Paul Pluzhnikov  <ppluzhnikov@google.com>
2459
2460         * doc/install.texi (Configuration): Document --with-linker-hash-style.
2461         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2462         * config.in: Add LINKER_HASH_STYLE.
2463         * configure.ac: Add --with-linker-hash-style.
2464         * configure: Regenerate.
2465
2466 2011-05-11  Richard Guenther  <rguenther@suse.de>
2467
2468         PR middle-end/48964
2469         * gimple.c (iterative_hash_canonical_type): Fix typo.
2470
2471 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
2472
2473         * config/i386/i386.c (legitimize_tls_address)
2474         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2475         expanders directly for TARGET_GNU2_TLS.  Determine pic and
2476         __tls_get_addr symbol reference here.  Update call to
2477         gen_tls_global_dynamic_{32,64} for added arguments.
2478         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2479         expanders directly for TARGET_GNU2_TLS.  Determine
2480         __tls_get_addr symbol reference here.  Update call to
2481         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
2482         unique UNSPEC REG_EQUIV to libcall block.
2483         (ix86_tls_get_addr): Declare static.
2484         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2485         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2486         Do not determine pic and __tls_get_addr symbol reference here. Do not
2487         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2488         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2489         (tls_global_dynamic_64): Add operand 2.  Do not determine
2490         __tls_get_addr symbol reference here.  Do not call
2491         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2492         (tls_local_dynamic_base64): Ditto for operand 1.
2493
2494 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2495
2496         * function.c (expand_function_start): Initialize stack_check_probe_note
2497         only if the generic stack checking mechanism is used.
2498
2499 2011-05-11  Richard Guenther  <rguenther@suse.de>
2500
2501         PR tree-optimization/15256
2502         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2503         (A & B) | C, combine (A op CST1) op CST2.
2504         (tree_ssa_forward_propagate_single_use_vars): Only bother to
2505         visit assigns that have uses.
2506
2507 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
2508
2509         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2510         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2511         (unpack_ts_type_common_value_fields): ...this.  Update comment.
2512         (unpack_value_fields): Adjust for renaming.
2513         (lto_input_ts_type_tree_pointers): Split into...
2514         (lto_input_ts_type_common_tree_pointer): ...this and...
2515         (lto_input_ts_type_non_common_tree_pointers): ...this.
2516         (lto_input_tree_pointers): Adjust for above split.
2517         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2518         (pack_ts_type_common_value_fields): ...this.  Update comment.
2519         (lto_output_ts_type_tree_pointers): Split into...
2520         (lto_output_ts_type_common_tree_pointers): ...this and...
2521         (lto_output_ts_type_non_common_tree_pointers): ...this.
2522         (lto_output_tree_pointers): Adjust for above split.
2523         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2524         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2525         * stor-layout.c (vector_type_mode): Adjust location of mode field.
2526         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2527         Define.
2528         (struct tree_type): Split into...
2529         (struct tree_type_common: ...this and...
2530         (struct tree_type_with_lang_specific): ...this and...
2531         (struct tree_type_non_common): ...this.  Adjust accessor macros
2532         accordingly.
2533         (TYPE_VALUES_RAW): Define.
2534         (union tree_node): Update for above changes.
2535         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2536         TS_TYPE_NON_COMMON.
2537         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2538         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2539         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2540         * treestructu.def (TS_TYPE): Remove.
2541         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2542         Define.
2543
2544 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
2545
2546         PR debug/48159
2547         * tree-ssa.c (reset_debug_uses): New function.
2548         * tree-flow.h (reset_debug_uses): New prototype.
2549         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2550         * tree-loop-distribution.c (generate_loops_for_partition): Call
2551         reset_debug_uses on the stmts that will be removed.  Keep around
2552         all debug stmts, don't count them as bits in partition bitmap.
2553         (generate_builtin): Don't count debug stmts or labels as bits in
2554         partition bitmap.
2555
2556 2011-05-11  Richard Guenther  <rguenther@suse.de>
2557
2558         * gimple.c (gimple_type_hash_1): Merge with ...
2559         (gimple_type_hash): ... this.
2560         (gtc_visit): Remove mode parameter and simplify accordingly.
2561         (gimple_types_compatible_p_1): Likewise.
2562         (gimple_types_compatible_p): Likewise.
2563         (iterative_hash_gimple_type): Likewise.
2564         (visit): Likewise.
2565         (gimple_type_eq): Adjust.
2566
2567 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2568
2569         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2570         enters the branch create an anti edge in the opposite direction
2571         to prevent the creation of reg-moves.
2572         * modulo-sched.c: Adjust comment to reflect the fact we are
2573         scheduling closing branch.
2574         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2575         (stage_count): New field in struct partial_schedule.
2576         (calculate_stage_count): New function.
2577         (normalize_sched_times): Rename to reset_sched_times and handle
2578         incrementing the sched time of the nodes by a constant value
2579         passed as parameter.
2580         (duplicate_insns_of_cycles): Skip closing branch.
2581         (sms_schedule_by_order): Schedule closing branch.
2582         (ps_insn_find_column): Handle closing branch.
2583         (sms_schedule): Call reset_sched_times and adjust the code to
2584         support scheduling of the closing branch.
2585         (ps_insert_empty_row): Update calls to normalize_sched_times
2586         and rotate_partial_schedule functions.
2587
2588 2011-05-11  Richard Guenther  <rguenther@suse.de>
2589
2590         PR middle-end/48953
2591         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2592
2593 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
2594
2595         * opts.c (finish_options): Move warning settings from process_options.
2596         * toplev.c (process_options): Move warning settings to finish_options.
2597
2598 2011-05-11  Richard Guenther  <rguenther@suse.de>
2599
2600         PR tree-optimization/18041
2601         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2602         (simplify_bitwise_binary): ... this.  Handle operand conversions
2603         by applying them to the result instead.
2604         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
2605
2606 2011-05-11  Richard Guenther  <rguenther@suse.de>
2607
2608         * gimple.c (gimple_canonical_types_compatible_p): Split out
2609         from gimple_types_compatible_p and friends.  Do not recurse
2610         to pointed-to types.
2611         (gimple_canonical_type_eq): Use it.
2612         (iterative_hash_canonical_type): Split out from
2613         iterative_hash_gimple_type and friends.  Do not recurse
2614         to pointed-to types.
2615         (gimple_canonical_type_hash): Use it, allocate the hash here.
2616
2617 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2618
2619         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2620         recognizing doloop.
2621
2622 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2623
2624         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2625         instead of PREV_INSN.
2626
2627 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2628
2629         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2630         * loop-doloop.c (doloop_condition_get): Likewise.
2631         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2632         (doloop_end): New.
2633         * config/arm/arm.md (*addsi3_compare0): Remove "*".
2634
2635 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
2636
2637         * tree.def (CASE_LABEL_EXPR): Add an operand.
2638         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2639
2640 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2641
2642         * c-decl.c (c_override_global_bindings_to_false): Remove.
2643         (global_bindings_p): Don't check
2644         c_override_global_bindings_to_false.
2645         * c-tree.h (c_override_global_bindings_to_false): Remove.
2646         * c-typeck.c (composite_type): Don't set
2647         c_override_global_bindings_to_false.
2648
2649 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2650
2651         PR target/48857, 48495
2652         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2653         (VSX_MODE): Ditto.
2654         (VSX_MOVE_MODE): Ditto.
2655         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2656         VSX vector types.  Add V2DImode.
2657         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2658         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2659         (MODES_TIEABLE_P): Ditto.
2660
2661         * config/rs6000/rs6000.c (rs6000_emit_move): Use
2662         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2663         VSX_VECTOR_MODE.
2664         (init_cumulative_args): Ditto.
2665         (rs6000_function_arg_boundary): Ditto.
2666         (rs6000_function_arg_advance_1): Ditto.
2667         (rs6000_function_arg): Ditto.
2668         (rs6000_function_ok_for_sibcall): Ditto.
2669         (emit_frame_save): Ditto.
2670         (rs6000_function_value): Ditto.
2671         (rs6000_libcall_value): Ditto.
2672
2673 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2674
2675         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2676         i386/darwin-lib.h to $libgcc_tm_file.
2677         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2678
2679 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2680
2681         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2682
2683 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2684
2685         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2686         * config/rs6000/rs6000-tables.opt: New file (generated).
2687         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2688         rs6000/rs6000-tables.opt to extra_options.
2689         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2690         * config/rs6000/rs6000.c (rs6000_select): Remove.
2691         (processor_target_table): Move contents to rs6000-cpus.def.
2692         (darwin_rs6000_override_options): Check
2693         global_options_set.x_rs6000_cpu_index instead of
2694         rs6000_select[1].string.
2695         (rs6000_option_override_internal): Likewise.
2696         (rs6000_handle_option): Don't assert that global structures are in
2697         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
2698         (rs6000_default_cpu): New variable.
2699         (rs6000_file_start): Set it instead of local default_cpu.  Check
2700         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2701         global_options_set.x_rs6000_tune_index instead of rs6000_select.
2702         (rs6000_darwin_file_start): Check rs6000_default_cpu and
2703         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2704         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2705         rs6000_select): Remove.
2706         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2707         Remove.
2708         (mcpu=, mtune=): Use Var, Init, Enum and Save.
2709         * config/rs6000/t-rs6000
2710         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2711         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2712         global_options_set.x_rs6000_cpu_index instead of
2713         rs6000_select[1].string.
2714         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2715         global_options_set.x_rs6000_cpu_index instead of
2716         rs6000_select[1].string.
2717
2718 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2719
2720         * config.gcc (libgcc_tm_file): Define instead of including files
2721         from ../../libgcc/config/ in tm_file.
2722         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2723         * configure: Regenerate.
2724         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2725         libgcc_tm.h, cs-libgcc_tm.h): New.
2726         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2727         (clean): Remove libgcc_tm.h.
2728         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2729         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2730         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2731
2732 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
2733
2734         PR target/48896
2735         * config/avr/avr.c (avr_ret_register): Return unsigned int
2736         instead of int.
2737         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2738         it to avr_libcall_value.
2739         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2740         expand_expr.
2741         (avr_expand_binop_builtin): Ditto.
2742         (avr_expand_unop_builtin): Ditto.
2743
2744 2011-05-10  DJ Delorie  <dj@redhat.com>
2745
2746         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2747         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2748         * config/rx/rx.c (rx_align_for_label): Add label and
2749         uses_threshold parameters.  Do not align when the label is not
2750         used enough.
2751         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2752
2753 2011-05-10  Richard Guenther  <rguenther@suse.de>
2754
2755         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2756         a series of conversions and apply foldings similar to what
2757         fold-const does.
2758         (tree_ssa_forward_propagate_single_use_vars): Call it.
2759
2760 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
2761
2762         PR tree-optimization/48611
2763         PR tree-optimization/48794
2764         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2765         referenced from RESX or EH_DISPATCH arguments.
2766
2767         PR debug/48928
2768         * dfp.c (decimal_to_decnumber): Handle conversion from
2769         dconst{1,2,m1,half}.
2770
2771 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2772
2773         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2774         for !flag_prefer_avx128.
2775         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2776
2777 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2778
2779         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2780         (fold_ternary_loc): Use expr_location_or.
2781
2782 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2783
2784         PR debug/48853
2785         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2786         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2787         Pmode and mem_mode is not VOIDmode.
2788
2789 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2790
2791         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2792         TYPE_QUAL_RESTRICT): Convert to enum.
2793
2794 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2795
2796         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2797         (const_pow2_1_to_8_operand): Ditto.
2798         (const_pow2_1_to_128_operand): Ditto.
2799         (const_pow2_1_to_32768_operand): Ditto.
2800         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2801         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
2802         in insn constraint to check integer value of operand 3.
2803         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2804
2805         (PINSR_MODE): New mode iterator.
2806         (sse2p4_1): New mode attribute.
2807         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2808         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2809         iterator.  Use const_int_operand instead of
2810         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
2811         exact_log2 in insn constraint to check integer value of operand 3.
2812
2813 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2814
2815         * config/i386/sse.md (blendbits): Remove mode attribute.
2816         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2817         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2818         Check integer value of operand 3 in insn constraint.
2819
2820 2011-05-09  Richard Guenther  <rguenther@suse.de>
2821
2822         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2823         for diagnostics.
2824         (lto_symtab_merge): Likewise.  Do not register types here.
2825         (lto_symtab_merge_decls_2): Likewise.
2826         (lto_symtab_merge_decls_1): Likewise.
2827         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2828         * gimple.c (enum gtc_mode): Declare.
2829         (gimple_types_compatible_p): Make static.
2830
2831 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2832
2833         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2834         temporary register to match Pmode.
2835
2836 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2837
2838         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2839         and *vec_concatv4si_1_avx.
2840
2841 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2842
2843         PR rtl-optimization/48927
2844         * ira-conflicts.c (commutative_constraint_p): Use
2845         recog_data.alternative_enabled_p to disable alternatives where
2846         "enabled" attribute is false.
2847         (get_dup_num): Ditto.
2848         * ira-lives.c (single_reg_class): Ditto.
2849         (ira_implicitly_set_insn_hard_regs): Ditto.
2850
2851 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2852
2853         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2854         (dataflow_set_preserve_mem_locs): Likewise.
2855
2856 2011-05-09  Philipp Thomas  <pth@suse.de>
2857
2858         * config/mep/mep.c (mep_validate_vliw): Syntax description
2859         should not be translated.
2860
2861 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
2862
2863         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2864         * config/mips/mips-tables.opt: New file (generated).
2865         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2866         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2867         MIPS_ARCH_OPTION_NATIVE): Define.
2868         * config/mips/mips.c (mips_cpu_info_table): Move contents to
2869         mips-cpus.def.
2870         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2871         mips_parse_cpu): Remove.
2872         (mips_cpu_info_from_opt, mips_default_arch): New.
2873         (mips_handle_option): Don't assert that global structures are in
2874         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2875         (mips_option_override): Use new variables and functions to set
2876         state of these options.  Use strcmp to check for individual CPU names.
2877         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2878         definition.
2879         * config/mips/mips.opt (march=): Use ToLower and Enum.
2880         (mips): Use ToLower, Enum and Var.
2881         (mtune=): Use ToLower and Enum.
2882         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2883
2884 2011-05-08  Jan Hubicka  <jh@suse.cz>
2885
2886         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2887         Arrange type pairs to be UID ordered.
2888         (gimple_lookup_type_leader): Make inline.
2889
2890 2011-05-09  Nick Clifton  <nickc@redhat.com>
2891
2892         PR target/48899
2893         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2894         PROCESSOR_DEFAULT.
2895
2896         PR target/48897
2897         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2898         variable 's'.
2899
2900 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
2901
2902         * combine.c (simplify_comparison): Abstract out parts into...
2903         (simplify_compare_const): ... new function.
2904         (try_combine): Generalize parallel arithmetic/compare combining
2905         to call simplify_compare_const() and CANONICALIZE_COMPARE().
2906
2907 2011-05-08  Jan Hubicka  <jh@suse.cz>
2908
2909         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2910         (cgraph_create_virtual_clone): Call hooks once virtual clone
2911         is finished.
2912         * cgraph.h (cgraph_clone_node): Update prototype.
2913         * ipa-cp.c (ipcp_estimate_growth): Use
2914         estimate_ipcp_clone_size_and_time.
2915         * ipa-inline-transform.c (clone_inlined_nodes): Update.
2916         * lto-cgraph.c (input_node): Update.
2917         * ipa-inline.c (recursive_inlining): Update.
2918         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2919         (evaluate_conditions_for_known_args): Break out from ...
2920         (evaluate_conditions_for_edge): ... here.
2921         (evaluate_conditions_for_ipcp_clone): New function.
2922         (inline_node_duplication_hook): Update clone summary based
2923         on parameter map.
2924         (estimate_callee_size_and_time): Rename to ...
2925         (estimate_node_size_and_time): take NODE instead of EDGE;
2926         take POSSIBLE_TRUTHS as argument.
2927         (estimate_callee_size_and_time): Update.
2928         (estimate_ipcp_clone_size_and_time): New function.
2929         (do_estimate_edge_time): Update.
2930
2931 2011-05-08  Richard Guenther  <rguenther@suse.de>
2932
2933         PR middle-end/48908
2934         PR middle-end/48905
2935         * expmed.c (expand_shift_1): Compute adjusted constant shift
2936         amount manually.
2937
2938 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2939
2940         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2941
2942 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2943
2944         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2945
2946 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2947
2948         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2949
2950 2011-05-07  Jan Hubicka  <jh@suse.cz>
2951
2952         * ipa-inline-transform.c (inline_call): Account when program size
2953         decreases.
2954         * ipa-inline.c (relative_time_benefit): New function.
2955         (edge_badness): Reorganize to be power 2 based; fix thinko when
2956         computing badness for negative growth; update comments to match
2957         reality; better dumps.
2958
2959 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2960
2961         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2962         type to bool and adjust comment.
2963         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2964         (fold_mathfn_compare): Remove calls to global_bindings_p.
2965         (fold_inf_compare): Likewise.
2966         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2967         * c-tree.h (global_bindings_p): Adjust prototype.
2968         * c-decl.c (global_bindings_p): Return bool and simplify.
2969
2970 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
2971
2972         PR tree-optimization/48837
2973         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2974         when accumulator transformation is performed.
2975
2976 2011-05-06  Jan Hubicka  <jh@suse.cz>
2977
2978         * i386.h (ix86_tune_indices): Add
2979         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2980         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2981         * i386.c (initial_ix86_tune_features): Add
2982         X86_SOFTARE_PREFETCHING_BENEFICIAL.
2983         (software_prefetching_beneficial_p): Remove predicate.
2984         (ix86_option_override_internal): Use new macro.
2985
2986 2011-05-06  Jan Hubicka  <jh@suse.cz>
2987
2988         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2989
2990 2011-05-06  Jan Hubicka  <jh@suse.cz>
2991
2992         * cgraph.c (cgraph_add_thunk): Create real function node instead
2993         of alias node; finalize it and mark needed/reachale; arrange visibility
2994         to be right and add it into the corresponding same comdat group list.
2995         (dump_cgraph_node): Dump thunks.
2996         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2997         cgraph_function_with_gimple_body_p,
2998         cgraph_first_function_with_gimple_body,
2999         cgraph_next_function_with_gimple_body): New functions.
3000         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
3001         New macros.
3002         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
3003         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3004         * cgraphunit.c (cgraph_finalize_function): Only look into possible
3005         devirtualization when optimizing.
3006         (verify_cgraph_node): Verify thunks.
3007         (cgraph_analyze_function): Analyze thunks.
3008         (cgraph_mark_functions_to_output): Output thunks only in combination
3009         with function they are assigned to.
3010         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
3011         alias into normal node.
3012         (assemble_thunks): New functoin.
3013         (cgraph_expand_function): Use it.
3014         * lto-cgraph.c (lto_output_node): Stream thunks.
3015         (input_overwrite_node): Stream in thunks.
3016         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
3017         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
3018         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
3019         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
3020         (inline_analyze_function): Do not care about thunk jump functions.
3021         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
3022         * ipa-prop.c (ipa_prop_write_jump_functions): Use
3023         cgraph_function_with_gimple_body_p.
3024         * passes.c (do_per_function_toporder): Use
3025         cgraph_function_with_gimple_body_p.
3026         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3027         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
3028         (function_called_by_processed_nodes_p): Likewise.
3029
3030 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
3031
3032         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
3033         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
3034         entries.
3035         (mabi=): Replace with separate entries for mabi=altivec,
3036         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
3037         mabi=ieeelongdouble and mabi=ibmlongdouble.
3038         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
3039         check for -mabi=spe without SPE ABI support here.
3040         (rs6000_handle_option): Replace OPT_mabi_ handling with
3041         OPT_mabi_altivec and OPT_mabi_spe handling.
3042
3043 2011-05-06  Cary Coutant  <ccoutant@google.com>
3044
3045         * dwarf2out.c (contains_subprogram_definition): New function.
3046         (should_move_die_to_comdat): Call it.
3047
3048 2011-05-06  Jeff Law  <law@redhat.com>
3049
3050         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
3051         remove_ctrl_stmt_and_useless_edges.
3052         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
3053         (fixup_template_block, thread_single_edge): Likewise.
3054         (mark_threaded_blocks): Use THREAD_TARGET.
3055
3056 2011-05-06  Alan Modra  <amodra@gmail.com>
3057
3058         PR target/48900
3059         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
3060         const0_rtx as the arg to the dummy __tls_get_addr libcall.
3061
3062 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
3063
3064         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
3065         constraint modifier to "r".
3066
3067 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
3068
3069         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
3070         fall through for OPT_mcmodel_.
3071
3072 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3073
3074         * config/s390/s390.c (s390_asm_trampoline_template): Comment
3075         instruction sizes.
3076         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
3077
3078 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3079
3080         PR target/47930
3081         * config/arm/arm.opt (marm): Document it.
3082         (mthumb): Reject negative variant.
3083
3084 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
3085
3086         PR target/48898
3087         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3088         Fix typo in "ccvt" variable name.
3089
3090 2011-05-06  Tristan Gingold  <gingold@adacore.com>
3091
3092         PR target/48895
3093         * config/vms/vms-ar.c (main): Remove cwd variable.
3094
3095 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
3096
3097         PR debug/48902
3098         * var-tracking.c (prepare_call_arguments): Move else before #endif.
3099
3100 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
3101
3102         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
3103         * gimplify.c (gimplify_switch_expr): Likewise.
3104         * omp-low.c (expand_omp_sections): Likewise.
3105         * tree-eh.c (lower_try_finally_switch): Likewise.
3106         (lower_eh_dispatch): Likewise.
3107         * tree.h (build_case_label): Declare.
3108         * tree.c (build_case_label): Define.
3109
3110 2011-05-05  Jason Merrill  <jason@redhat.com>
3111
3112         PR c++/40975
3113         * tree-inline.c (copy_tree_r): Use copy_statement_list.
3114         (copy_statement_list): Don't recurse.
3115         * stor-layout.c (copy_self_referential_tree_r): Don't allow
3116         STATEMENT_LIST.
3117
3118 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3119
3120         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
3121         through from -mfpu= handling.
3122         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
3123
3124 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
3125
3126         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
3127         POST_MODIFY.
3128
3129 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
3130
3131         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
3132         for 11.31.
3133         (hppa[12]*-*-hpux11*): Ditto.
3134         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
3135         * config/ia64/hpux-unix2003.h: New.
3136         * config/pa/pa-hpux1131.opt: New.
3137         * config/pa/pa-hpux1131.h: New.
3138         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
3139         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
3140         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
3141
3142 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
3143
3144         PR debug/48853
3145         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
3146         instead of mode as 3rd argument to recursive call.
3147         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
3148         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
3149         VOIDmode.
3150         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
3151         don't give up if mode is Pmode and mem_mode is not VOIDmode.
3152         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
3153         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
3154
3155 2011-05-05  Julian Brown  <julian@codesourcery.com>
3156
3157         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
3158         parenthesis in D-register case.
3159
3160 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3161
3162         * opt-functions.awk (var_type_struct): Handle Enum options.
3163         * optc-gen.awk: Don't check range of variables of character type.
3164         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
3165         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
3166         rs6000_sdata_name, rs6000_explicit_options): Remove.
3167         (rs6000_option_override_internal): Check for -malign-power here.
3168         Use global_options_set instead of rs6000_explicit_options.
3169         (rs6000_parse_fpu_option): Remove.
3170         (rs6000_handle_option): Access variables via opts and opts_set
3171         pointers.  Use error_at and warning_at.  Add fall-through
3172         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
3173         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
3174         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
3175         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
3176         here.  Don't use rs6000_parse_fpu_option.
3177         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
3178         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
3179         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
3180         (mrecip=): Use Var.
3181         (mspe): Use Var and Save.
3182         (mtraceback=): Use Enum and Var.
3183         (rs6000_traceback_type): New Enum and EnumValue entries.
3184         (mfloat-gprs=): Use Enum, Var and Save.
3185         (rs6000_float_gprs): New Enum and EnumValue entries.
3186         (mlong-double-): use Var and Save.
3187         (msched-costly-dep=, minsert-sched-nops=): Use Var.
3188         (malign-): Use Enum and Var.
3189         (rs6000_alignment_flags): New Enum and EnumValue entries.
3190         (mfpu=): Use Enum.
3191         (fpu_type_t): New Enum and EnumValue entries.
3192         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3193         global_options_set instead of rs6000_explicit_options.
3194         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3195         global_options_set instead of rs6000_explicit_options.
3196         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3197         global_options_set instead of rs6000_explicit_options.
3198         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3199         global_options_set instead of rs6000_explicit_options.
3200         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
3201         global_options_set instead of rs6000_explicit_options.
3202         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3203         global_options_set instead of rs6000_explicit_options.
3204         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
3205         definition.
3206         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3207         global_options_set instead of rs6000_explicit_options.
3208         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
3209         (rs6000_cmodel): New Enum and EnumValue entries.
3210         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3211         global_options_set instead of rs6000_explicit_options.
3212         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
3213         (mtls-size=): Use Enum and Var.
3214         (rs6000_tls_size): New Enum and EnumValue entries.
3215
3216 2011-05-05  Michael Matz  <matz@suse.de>
3217
3218         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
3219         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
3220         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
3221         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
3222         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
3223         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
3224         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
3225         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
3226         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
3227         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
3228         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
3229         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
3230         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
3231         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
3232         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
3233         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
3234
3235 2011-05-05  Richard Guenther  <rguenther@suse.de>
3236
3237         * expmed.c (expand_variable_shift): Rename to ...
3238         (expand_shift_1): ... this.  Take an expanded shift amount.
3239         For rotates recurse directly not building trees for the shift amount.
3240         (expand_variable_shift): Wrap around expand_shift_1.
3241         (expand_shift): Adjust.
3242
3243 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
3244
3245         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
3246
3247 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3248
3249         * tree.h (get_pending_sizes): Remove prototype.
3250         (put_pending_size): Likewise.
3251         (put_pending_sizes): Likewise.
3252         * stor-layout.c (pending_sizes): Delete.
3253         (get_pending_sizes): Likewise.
3254         (put_pending_size): Likewise.
3255         (put_pending_sizes): Likewise.
3256         (variable_size): Do not call put_pending_size and tidy up.
3257         * function.h (struct function): Remove dont_save_pending_sizes_p.
3258         * lto-streamer-in.c (input_function): Do not stream it.
3259         * lto-streamer-out.c (output_function): Likewise.
3260         * tree-inline.c (initialize_cfun): Do not copy it.
3261         * c-decl.c (store_parm_decls): Do not set it.
3262         * omp-low.c (create_task_copyfn): Likewise.
3263         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3264
3265 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
3266
3267         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
3268         conditions.
3269         (*movdf_internal): Ditto.
3270         (*movdf_internal_nointeger): Ditto.
3271         (*movsf_internal): Ditto.
3272
3273 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3274
3275         * c-decl.c (finish_decl): Don't call get_pending_sizes.
3276         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
3277         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
3278         (c_variable_size): Remove.
3279         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
3280         call put_pending_sizes.
3281         (get_parm_info): Add parameter expr.  Use it to set
3282         arg_info->pending_sizes.
3283         (store_parm_decls): Use arg_info->pending_sizes instead or calling
3284         get_pending_sizes.
3285         * c-parser.c (c_parser_parms_declarator): Update call to
3286         c_parser_parms_list_declarator.
3287         (c_parser_parms_list_declarator): Take parameter expr.  Update
3288         call to push_parm_decl.  Update recursive call.  Don't call
3289         get_pending_sizes.  Update calls to get_parm_info.
3290         (c_parser_objc_method_definition): Update calls to
3291         c_parser_objc_method_decl and objc_start_method_definition.
3292         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
3293         (c_parser_objc_method_decl): Add parameter expr.  Update call to
3294         grokparm.
3295         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
3296         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
3297         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
3298
3299 2011-05-05  Michael Hope  <michael.hope@linaro.org>
3300
3301         PR pch/45979
3302         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
3303         __ARM_EABI__ hosts.
3304
3305 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3306
3307         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
3308         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
3309         (spu_output_mi_thunk): New function.
3310
3311 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3312
3313         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
3314         targetm.asm_out.print_operand.
3315         * config/sol2.c: Include target.h.
3316
3317 2011-05-04  Jan Hubicka  <jh@suse.cz>
3318
3319         * ipa-inline.c (reset_edge_caches): New function.
3320         (update_caller_keys): Add check_inlinablity_for; do not
3321         reset edge caches; remove now unnecesary loop.
3322         (update_callee_keys): Add comments; reset node_growth_cache of callee.
3323         (update_all_callee_keys): Likewise.
3324         (inline_small_functions): Sanity check cache; update code
3325         recomputing it.
3326
3327 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
3328
3329         PR rtl-optimization/47612
3330         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
3331         as the last insn of the sequence to be moved.
3332
3333 2011-05-04  Tobias Burnus  <burnus@net-b.de>
3334
3335         PR fortran/48864
3336         * doc/invoke.texi (Ofast): Document that it
3337         enables Fortran's -fno-protect-parens.
3338
3339 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3340
3341         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
3342
3343 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3344
3345         * stor-layout.c (variable_size): Do not issue errors.
3346
3347 2011-05-04  Richard Guenther  <rguenther@suse.de>
3348
3349         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
3350         for array-ref indices.
3351         (tree_coverage_counter_addr): Likewise.
3352         (build_fn_info_type): Use size_int for index types.
3353         (build_gcov_info): Likewise.
3354
3355 2011-05-04  Richard Guenther  <rguenther@suse.de>
3356
3357         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
3358         to build_int_cst.
3359         * c-typeck.c (really_start_incremental_init): Use bitsize_int
3360         for constructor indices.
3361         (push_init_level): Likewise.
3362
3363 2011-05-04  Richard Guenther  <rguenther@suse.de>
3364
3365         * explow.c (promote_mode): Move variable declarations before code.
3366
3367 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
3368
3369         * tree.h (build_function_type_array): Declare.
3370         (build_varargs_function_type_array): Declare.
3371         (build_function_type_vec, build_varargs_function_type_vec): Define.
3372         * tree.c (build_function_type_array_1): New function.
3373         (build_function_type_array): New function.
3374         (build_varargs_function_type_array): New function.
3375
3376 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
3377
3378         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
3379         before setting STMT_VINFO_TYPE.
3380
3381 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3382
3383         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
3384         instead of spu_pass_by_reference.
3385
3386 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3387
3388         * calls.c (emit_library_call_value_1): Invoke
3389         promote_function_mode hook on libcall arguments.
3390         * explow.c (promote_function_mode, promote_mode): Handle TYPE
3391         argument being NULL.
3392         * targhooks.c (default_promote_function_mode): Lisewise.
3393         * config/s390/s390.c (s390_promote_function_mode): Likewise.
3394         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
3395
3396         * doc/tm.texi: Document that TYPE argument might be NULL.
3397
3398 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3399
3400         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
3401
3402 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3403
3404         From Bernd Schmidt
3405         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
3406
3407 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3408
3409         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
3410         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
3411         Move ...
3412         * mips-tfile.c: ... here.
3413         Don't include coretypes.h, tm.h, filenames.h.
3414         (saber_stop): Remove definition and all calls.
3415         [__SABER__]: Remove.
3416         (__LINE__): Remove default.
3417         (Size_t, Ptrdiff_t): Remove definitions.
3418         Replace by size_t, ptrdiff_t.
3419         [!MIPS_DEBUGGING_INFO]: Remove.
3420         (SHASH_SIZE, THASH_SIZE): Remove defaults.
3421         (progname): Add const.
3422         (STATIC): Remove.
3423         Replace all uses by static.
3424         (ALIGN_SYMTABLE_OFFSET): Remove default.
3425         * mips-tdump.c: Don't include coretypes.h, tm.h.
3426         Remove !MIPS_IS_STAB guard.
3427         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
3428         $(TM_H), filenames.h dependencies.
3429         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
3430
3431 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3432
3433         From Jie Zhang
3434         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
3435         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3436
3437 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3438
3439         From Bernd Schmidt
3440         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3441         account and save/restore RETS.
3442         (PROFILE_BEFORE_PROLOGUE): Define.
3443         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct