OSDN Git Service

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