OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-06-02  Julian Brown  <julian@codesourcery.com>
2
3         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
4         * config/arm/arm.c (arm_default_branch_cost): New.
5         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
7         (arm_fa726_tune): Set branch_cost field using
8         arm_default_branch_cost.
9         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
10         current_tune structure.
11         * dojump.c (tm_p.h): Include file.
12
13 2011-06-02  Julian Brown  <julian@codesourcery.com>
14
15         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
16         tuning.
17         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
18         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
19         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
20         field.
21         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
22         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
23         (arm_fa726te_tune): Add prefer_constant_pool setting.
24         (arm_v6t2_tune, arm_cortex_tune): New.
25         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
26         prefer_constant_pool setting.
27
28 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
29
30         * config/i386/i386.c (standard_sse_constant_p) <case 1>:
31         Simplify switch statement.
32         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
33         (*movdf_internal) <case 6,7,8>: Ditto.
34
35         * config/i386/constraints.md (Y4): New constraint.
36         * config/i386/sse.md (vec_set<mode>_0): Merge with
37         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
38         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
39         *vec_extractv2di_1_sse.
40         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
41         and *vec_concatv2di_rex64_sse.
42
43 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
44
45         PR target/48807
46         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
47         of cgraph_local_info for null before attempting to use it.
48
49 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
50
51         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
52         (current_function_dynamic_alloc_count): Delete.
53         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
54         (expand_builtin_nonlocal_goto): Remove obsolete comment.
55         (expand_builtin_update_setjmp_buf): Remove dead code.
56         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
57         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
58         support.
59         * function.c (instantiate_virtual_regs): Likewise.
60         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
61         for a block with a single abnormal incoming edge.
62         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
63         (SETJMP_VIA_SAVE_AREA): Delete.
64         * config/sparc/sparc-protos.h (load_got_register): Declare.
65         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
66         (load_got_register): Make global.
67         (sparc_frame_pointer_required): Add 'static'.
68         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
69         (sparc_builtin_setjmp_frame_value): New function.
70         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
71         (save_stack_nonlocal): New expander.
72         (restore_stack_nonlocal): Likewise.
73         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
74         (nonlocal_goto_internal): New insn.
75         (goto_handler_and_restore): Delete.
76         (builtin_setjmp_setup): Likewise.
77         (do_builtin_setjmp_setup): Likewise.
78         (setjmp): Likewise.
79         (builtin_setjmp_receiver): New expander.
80
81 2011-06-01  David Li  <davidxl@google.com>
82
83         PR middle-end/49261
84         * tree-pretty-print.c (dump_function_header): Format cleanup.
85
86 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
87
88         PR target/49238
89         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
90         needed when original operands are used for msw_skip comparison.
91
92 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
93
94         PR debug/49250
95         * var-tracking.c (add_uses, add_stores): Don't call
96         cselib_subst_to_values on ENTRY_VALUE.
97
98 2011-06-01  Diego Novillo  <dnovillo@google.com>
99
100         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
101         output_record_start with LTO_null instead of output_zero.
102         (lto_output_ts_binfo_tree_pointers): Likewise.
103         (lto_output_tree): Likewise.
104         (output_eh_try_list): Likewise.
105         (output_eh_region): Likewise.
106         (output_eh_lp): Likewise.
107         (output_eh_regions): Likewise.
108         (output_bb): Likewise.
109         (output_function): Likewise.
110         (output_unreferenced_globals): Likewise.
111         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
112         instead of NUM_TREE_CODES.
113         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
114         (lto_output_int_in_range): Change << to >> when shifting VAL.
115
116 2011-06-01  Diego Novillo  <dnovillo@google.com>
117
118         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
119         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
120
121 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
122
123         PR target/45074
124         * optabs.h (valid_multiword_target_p): Declare.
125         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
126         doing multi-word operations.
127         * optabs.c (expand_binop): Likewise.
128         (expand_doubleword_bswap): Likewise.
129         (expand_absneg_bit): Likewise.
130         (expand_unop): Likewise.
131         (expand_copysign_bit): Likewise.
132         (multiword_target_p): New function.
133
134 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
135
136         PR rtl-optimization/48830
137         PR rtl-optimization/48808
138         PR rtl-optimization/48792
139         * reload.c (push_reload): Check contains_reg_of_mode.
140         * reload1.c (strip_paradoxical_subreg): New function.
141         (gen_reload_chain_without_interm_reg_p): Use it to handle
142         paradoxical subregs.
143         (emit_output_reload_insns, gen_reload): Likewise.
144
145 2011-06-01  David Li  <davidxl@google.com>
146
147         * predict.c : Change pass name
148         * ipa.c: Ditto.
149         * dce.c: Ditto.
150         * tree-profile.c: Ditto.
151         * except.c: Ditto.
152
153 2011-06-01  David Li  <davidxl@google.com>
154
155         * tree-pretty-print.c (dump_function_header): New function.
156         * final.c (rest_of_clean_state): Use header dumper.
157         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
158         * passes.c (pass_init_dump_file): Use header dumper.
159
160 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
161
162         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
163         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
164         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
165         New functions.
166         (mem_loc_descriptor): Use them.
167
168         * var-tracking.c (create_entry_value): New function.
169         (vt_add_function_parameter): Use it.
170
171 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
172
173         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
174         Include <signal.h>, <ucontext.h>.
175         (sigill_caught): Define.
176         (sigill_hdlr): New function.
177         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
178         insns can be executed.
179         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
180         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
181
182 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
183
184         * config/t-slibgcc-darwin: Move to ...
185         * config/t-slibgcc-dummy: ... this.  Clarify comments.
186         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
187         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
188         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
189         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
190         Remove i386/t-crtstuff from tmake_file.
191         (i[34567]86-*-solaris2*): Remove t-svr4,
192         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
193         t-slibgcc-dummy.
194         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
195         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
196         sparc/t-crtfm from tmake_file.
197         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
198         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
199         Remove extra_parts.
200         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
201         * config/i386/t-nwld (SHLIB_LINK): Remove.
202         * config/i386/t-rtems-i386: Rename to ...
203         * config/i386/t-rtems: ... this.
204         ($(T)crti.o, $(T)crtn.o): Remove.
205         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
206         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
207         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
208         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
209         EXTRA_MULTILIB_PARTS): Remove.
210         * config/sparc/t-sol2-64: Likewise.
211         * config/sparc/t-sol2: Remove.
212         * config/sparc/t-crtin: Remove.
213         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
214         * config/i386/gmon-sol2.c: Remove.
215         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
216         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
217         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
218         * config/i386/sol2-gc1.asm: Remove.
219         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
220         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
221         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
222         * config/t-slibgcc-sld: Remove.
223
224 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
225
226         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
227         base_type_for_mode with op_mode instead of mode.
228
229 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
230
231         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
232         Cortex-A15.
233         * config/arm/arm-tune.md: Regenerate.
234         * config/arm/arm-tables.opt: Regenerate.
235         * config/arm/arm.c (FL_DIV): Rename...
236         (FL_THUMB_DIV): ... to this.
237         (FL_ARM_DIV): Define.
238         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
239         (arm_arch_hwdiv): Remove.
240         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
241         (arm_issue_rate): Add cortexr5.
242         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
243         __ARM_ARCH_EXT_IDIV__.
244         (TARGET_IDIV): Define.
245         (arm_arch_hwdiv): Remove.
246         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
247         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
248         (divsi3, udivsi3): New patterns.
249         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
250         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
251
252 2011-06-01  Martin Jambor  <mjambor@suse.cz>
253
254         * ipa-utils.c (ipa_dfs_info): New field scc_no.
255         * ipa-utils.c (searchc): Set scc_no.
256
257 2011-06-01  Martin Jambor  <mjambor@suse.cz>
258
259         * ipa-utils.c (searchc_env): New field allow_overwritable.
260         (searchc): do not ignore edges to overwritable nodes if indicated
261         by env->allow_overwritable.
262         (ipa_reduced_postorder): Set env.allow_overwritable.
263
264 2011-06-01  Richard Guenther  <rguenther@suse.de>
265
266         * tree.c (free_lang_data): Do not reset boolean_type_node nor
267         char_type_node.
268         * lto-streamer.c (lto_record_common_node): Take node pointer,
269         do not register types.
270         (lto_preload_common_nodes): Explicitly skip preloading nodes
271         that differ between frontends.
272
273 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
274
275         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
276         NON_FLOAT_REGS.
277
278 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
279
280         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
281         parameter value for dump. Dump cost on outermost call only.
282         (rs6000_memory_move_cost): Dump cost on outermost call only.
283
284 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
285
286         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
287         DW_OP_GNU_convert ops.
288
289         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
290         cselib_preserve_constants.
291         (cselib_lookup_1): If cselib_preserve_constants,
292         a new VALUE is being created for REG and there is a VALUE for the
293         same register in wider mode, add another loc with lowpart SUBREG of
294         the wider VALUE.
295         (cselib_subst_to_values): Handle ENTRY_VALUE.
296         * var-tracking.c  (replace_expr_with_values): Return NULL for
297         ENTRY_VALUE too.
298         * dwarf2out.c (convert_descriptor_to_signed): New function.
299         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
300         instead of two shifts.
301         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
302         the right mode if needed.
303         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
304         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
305         convert_descriptor_to_signed.
306         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
307         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
308
309         PR target/48688
310         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
311
312 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
313
314         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
315         of X87MODEI12 and SWI48x instead of SSEMODEI24.
316         (SWI248x): New mode iterator, rename from X87MODEI.
317         (X87MODEI): Remove mode iterator.
318         (X87MODEI12): Ditto.
319         (SSEMODEI24): Ditto.
320
321 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
322
323         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
324         * doc/invoke.texi: Document max-vartrack-expr-depth.
325         * var-tracking.c (EXPR_DEPTH): New.
326         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
327
328 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
329
330         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
331         * config/i386/sse.md: Add n to negated FMA pattern names.
332
333 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
334
335         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
336
337 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
338
339         * gengtype-state.c (read_state_params_structs): Initialize previous.
340
341 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
342
343         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
344         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
345
346 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
347
348         * config/i386/i386.md (*movtf_internal): Avoid allocating general
349         registers.  Penalize F*r->o alternative to prevent partial memory
350         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
351         CONST_DOUBLE immediates when optimizing function for size.  Do not move
352         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
353         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
354         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
355         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
356         alternatives.
357         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
358
359         (fp_register_operand splitters): Use fp_register_operand
360         constraint.  Do not use FP_REG_P in insn condition.
361         (any_fp_register_operand splitters): Use any_fp_register_operand
362         constraint.  Do not use ANY_FP_REG_P in insn condition.
363
364 2011-05-31  Jan Hubicka  <jh@suse.cz>
365
366         * cgraph.h (cgraph_inline_failed_t): Give enum a name
367         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
368         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
369         (lto_output_edge): Use output_enum and var_len_unsigned.
370         (lto_output_varpool_node): Likewise.
371         (input_overwrite_node): Do not take resolution parameter;
372         extract it from a bitpack.
373         (input_node): Do not read resolution; use input_enum and
374         var_len_unsigned.
375         (input_varpool_node): Likewise.
376         (input_edge): Likewise.
377         (input_cgraph_1): Likewise.
378
379 2011-05-31  Richard Guenther  <rguenther@suse.de>
380
381         * gimple.c (gimple_register_canonical_type): Do not register
382         any types via gimple_register_type.
383
384 2011-05-31  Jan Hubicka  <jh@suse.cz>
385
386         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
387         of thunks.
388
389 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
390
391         PR rtl-optimization/49235
392         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
393         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
394
395 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
396
397         PR tree-optimization/49093
398         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
399         data references.
400
401 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
402
403         PR debug/49047
404         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
405         for concrete functions containing the code of cloned functions.
406
407 2011-05-31  Richard Guenther  <rguenther@suse.de>
408
409         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
410         to ...
411         (forward_propagate_into_comparison_1): ... this.
412         (forward_propagate_comparison): Rename to ...
413         (forward_propagate_into_comparison): ... this.  Split out
414         real forward propagation code to ...
415         (forward_propagate_comparison): ... this.
416         (forward_propagate_into_gimple_cond): Remove looping.
417         (forward_propagate_into_cond): Likewise.
418         (simplify_not_neg_expr): Return whether we have done something.
419         (simplify_gimple_switch): Likewise.
420         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
421         (ssa_forward_propagate_and_combine): ... this.  Re-structure
422         to do a forward forward-propagation walk on BBs and a backward
423         stmt combining walk on BBs.  Consistently re-scan changed statements.
424         (pass_forwprop): Adjust.
425
426 2011-05-30  Ian Lance Taylor  <iant@google.com>
427
428         * godump.c (go_format_type): Correct length of name added to
429         obstack for anonymous field.
430
431 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
432
433         PR target/49186
434         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
435         part of the second operand is 0.
436
437 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
438
439         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
440         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
441         to memory for !TARGET_MEMORY_MISMATCH_STALL.
442         (*movdf_internal_rex64): Do not penalize F->r alternative.
443         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
444         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
445         when optimizing function for size.  Do not move CONST_DOUBLEs
446         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
447         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
448         SUBREGs.  Do not check for MEM_P operands in the insn condition,
449         check for ANY_FP_REGNO_P instead.
450         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
451         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
452         function for speed.
453         * config/i386/i386.c (ix86_option_override_internal): Do not
454         set TARGET_INTEGER_DFMODE_MOVES here.
455
456 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
457
458         PR target/49168
459         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
460
461 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
462
463         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
464         DW_TAG_rvalue_reference_type even for
465         -gdwarf-4 -fno-debug-types-section.
466
467 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
468
469         PR tree-optimization/46728
470         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
471         (build_and_insert_binop): New.
472         (gimple_expand_builtin_pow): Reorder args for
473         build_and_insert_call; use build_and_insert_binop; add more
474         optimizations for fractional exponents.
475
476 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
477
478         PR bootstrap/49190
479
480         Revert:
481         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
482
483         * tree.h (struct tree_identifier): Inherit from tree_typed, not
484         tree_common.
485         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
486         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
487         TS_BASE instead of TS_COMMON.
488         * varasm.c (assemble_name): Remove assert.
489
490 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
491
492         * config.gcc: Keep obselete list sorted.
493
494 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
495             Eric Botcazou  <ebotcazou@adacore.com>
496
497         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
498         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
499         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
500         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
501         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
502
503 2011-05-30  Richard Guenther  <rguenther@suse.de>
504
505         * gimple.c (gimple_types_compatible_p_1): Compare record
506         and union type members properly.
507
508 2011-05-30  Richard Guenther  <rguenther@suse.de>
509
510         PR tree-optimization/49210
511         * ipa-split.c (split_function): Care for the case where the call
512         result is not trivially convertible to the result holding variable.
513
514 2011-05-30  Richard Guenther  <rguenther@suse.de>
515
516         PR tree-optimization/49218
517         * tree-vrp.c (adjust_range_with_scev): Properly check whether
518         overflow occured.
519
520 2011-05-30  Richard Guenther  <rguenther@suse.de>
521
522         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
523         New function split out from ...
524         (forward_propagate_into_gimple_cond): ... here.  Adjust.
525         (forward_propagate_into_cond): Likewise.
526         (forward_propagate_comparison): Also propagate into
527         comparisons on assignment RHS.  Change return value to
528         behave similar to forward_propagate_into_cond.
529         (tree_ssa_forward_propagate_single_use_vars): Handle
530         strict-overflow warnings properly for forward_propagate_comparison.
531
532 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
533
534         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
535         from plugin linker.
536         * configure: Regenerate.
537
538 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
539
540         PR tree-optimization/49199
541         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
542         non-reduction operands are either defined in the loop or by induction.
543
544 2011-05-29  Xinliang David Li  <davidxl@google.com>
545
546         * opts-global.c (handle_common_deferred_options): Handle new options.
547         * passes.c (register_one_dump_file): Call register_pass_name.
548         (execute_one_pass): Check explicit enable/disable flag.
549         (passr_hash): New function.
550         (passr_eq): Ditto.
551         (register_pass_name): Ditto.
552         (get_pass_by_name): Ditto.
553         (pass_hash): Ditto.
554         (pass_eq): Ditto.
555         (enable_pass): Ditto.
556         (disable_pass): Ditto.
557         (is_pass_explicitly_enabled_or_disabled): Ditto.
558
559 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
560
561         * config/i386/i386.md (*movoi_internal_avx): Use
562         standard_sse_constant_opcode for alternative 0.
563         (*movti_internal_sse): Ditto.
564         (*movti_internal_rex64): Use standard_sse_constant_opcode for
565         alternative 2.
566         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
567         sselog1 type moves.
568         (*movsi_internal): Ditto.
569         (*movdi_internal): Ditto.  Add ssecvt type moves.
570
571 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
572
573         PR target/48830
574         * rtlanal.c (simplify_subreg_regno): Adjust comment.
575
576 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
577
578         PR rtl-optimization/49095
579         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
580         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
581
582 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
583
584         PR target/43995
585         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
586         recurse_p argument.  Only follow register copies if it is set,
587         and prevent mips_find_pic_call_symbol from recursing.
588         (mips_find_pic_call_symbol): Add a recurse_p argument.
589         Pass it to mips_pic_call_symbol_from_set.
590         (mips_annotate_pic_calls): Update accordingly.
591
592 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
593
594         * emit-rtl.c (try_split): Use a loop to search for
595         NOTE_INSN_CALL_ARG_LOCATIONs.
596
597 2011-05-29  Richard Guenther  <rguenther@suse.de>
598
599         PR tree-optimization/49217
600         * ipa-pure-const.c (propagate_pure_const): Fix typos.
601
602 2011-05-28  Jan Hubicka  <jh@suse.cz>
603
604         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
605         length.
606         (string_slot_free): Remove
607         (create_output_block): Initialize obstack.
608         (destroy_output_block): Free obstack.
609         (lto_string_index): Add PERSISTENT parameter; do not duplicate
610         the string unless it needs to be added into the hash.
611         (lto_output_string_with_length): Add persistent attribute;
612         handle NULL strings.
613         (lto_output_string): Add PERSISTENT parameter.
614         (output_string_cst, output_identifier): Simplify.
615         (lto_output_location_bitpack): Update.
616         (lto_output_builtin_tree): Update.
617         * lto-streamer.h (struct output_block): Add obstack.
618         (lto_output_string, lto_output_string_with_length): Remove
619         declarations; functions are static now.
620
621 2011-05-28  Jan Hubicka  <jh@suse.cz>
622
623         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
624         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
625         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
626         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
627         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
628         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
629         unpack_ts_decl_with_vis_value_fields,
630         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
631         lto_get_builtin_tree): Use enum and variable length i/o.
632         * basic-block.h (profile_status_d): Add PROFILE_LAST.
633         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
634         New functions.
635         (bp_pack_enum, bp_unpack_enum): New macros.
636
637 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
638
639         * genrecog.c: Remove redundant forward declarations.
640
641 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
642
643         * config.gcc: Deprecate mips*-*-openbsd*.
644
645 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
646
647         PR bootstrap/49195
648         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
649         for match_op_dup.
650
651 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
652
653         PR middle-end/48981
654         * gengtype.c (vec_prefix_type): New function.
655         (note_def_vec): Use vec_prefix_type and change the length
656         attribute to be based on the prefix.
657         * vec.c: Include coretypes.h before vec.h.
658         (struct vec_prefix): Remove.
659         (vec_gc_p_reserve): Change the offsetof to sizeof.
660         (vec_gc_p_reserve_exact): Likewise.
661         (vec_heap_p_reserve): Likewise.
662         (vec_heap_p_reserve_exact): Likewise.
663         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
664         (vec_stack_p_reserve): Change the offsetof to sizeof.
665         (vec_stack_p_reserve_exact): Likewise.
666         * vec.h (struct vec_prefix): New struct definition.
667         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
668         (VEC_T_GTY(T,B)): Likewise.
669         (DEF_VEC_FUNC_P(T)): Use prefix field.
670         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
671         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
672
673 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
674
675         PR tree-optimization/46728
676         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
677         (powi_as_mults): Add gimple_set_location.
678         (build_and_insert_call): New.
679         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
680         0.5, 0.25, 0.75, 1./3., or 1./6.
681
682 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
683
684         * doc/contrib.texi: Update copyright years.
685         (Contributors): Add Zdenek Sojka.
686
687 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
688
689         * c-decl.c (c_push_function_context): Copy the current statement
690         list stack.
691         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
692         (finish_struct): Call building_stmt_list_p instead of checking
693         cur_stmt_list.
694         * c-parser.c (c_parser_postfix_expression): Likewise.
695         * c-typeck.c (c_end_compound_stmt): Likewise.
696         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
697         * tree-iterator.c (stmt_list_cache): Change to a VEC.
698         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
699         (free_stmt_list): Likewise.
700         * tree.h (struct tree_statement_list): Include typed_tree instead
701         of tree_common.
702         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
703         as TS_TYPED instead of TS_COMMON.
704
705 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
706             Uros Bizjak  <ubizjak@gmail.com>
707
708         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
709         (HAVE_AS_IX86_TLSGDPTL): Define.
710         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
711         (HAVE_AS_IX86_TLSLDMPLT): Define.
712         * configure: Regenerate.
713         * config.in: Regenerate.
714         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
715         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
716         TARGET_SUN_TLS, use @tlsgdplt or @plt.
717         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
718         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
719         @tlsldmplt or @plt.
720         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
721
722 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
723
724         * sched-int.h (struct _haifa_deps_insn_data): New members cond
725         and reverse_cond.
726         (INSN_COND, INSN_REVERSE_COND): New macros.
727         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
728         once.
729         (sched_get_condition_with_rev): Cache the results, and look them up
730         if possible.
731         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
732         are clobbered by the current insn.
733         * target.def (exposed_pipline): New sched data hook.
734         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
735         * doc/tm.texi: Regenerate.
736
737 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
738
739         PR tree-optimization/49170
740         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
741         sincos or cexp.
742
743 2011-05-27  Richard Guenther  <rguenther@suse.de>
744
745         PR middle-end/49189
746         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
747         of comparisons.
748
749 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
750
751         * haifa-sched.c (sched_scan_info): Remove.
752         (schedule_block): Call sched_extend_luids rather than sched_init_luids
753         with NULL args.
754         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
755         Remove functions.
756         (sched_scan): Remove.
757         (sched_extend_luids): Renamed from luids_extend_insn and no longer
758         static.  All callers changed.
759         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
760         static.  All callers changed.
761         (sched_init_luids): Remove all arguments except the first.  All
762         callers changed.  Don't use sched_scan.
763         (haifa_init_h_i_d): Likewise.
764         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
765         manually rather than using sched_init_luids.  Likewise with
766         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
767         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
768         rather than sched_init_luids with NULL args.
769         * sel-sched-ir.c (new_insns): Remove variable.
770         (sched_scan): New static function, previously in haifa-sched.c.  Remove
771         all arguments but the first two; all callers changed.
772         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
773         rather than sched_init_luids.
774         (sel_init_bbs): Remove second argument.  All callers changed.
775         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
776         with NULL arguments.
777         (create_insn_rtx_from_pattern): Likewise.
778         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
779         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
780         (sched_init_insn_luid, sched_extend_luids): Declare.
781         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
782         declarations.
783
784 2011-05-27  Richard Guenther  <rguenther@suse.de>
785
786         PR middle-end/49177
787         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
788         A CMP B ? (T) true : (T) false for non-integral types T again.
789
790 2011-05-27  Jan Hubicka  <jh@suse.cz>
791
792         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
793         so 0 means NULL string.
794         (lto_output_string_with_length): ... here.
795         (lto_output_string, output_string_cst, output_identifier): Update
796         handling of NULL strings.
797         (lto_output_location_bitpack): New function.
798         (lto_output_location): Use it.
799         (lto_output_tree_ref): Use output_record_start.
800         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
801         len values.
802         * lto-streamer-in.c (string_for_index): Break out from ...; offset
803         values by 1.
804         (input_string_internal): ... here;
805         (input_string_cst, input_identifier, lto_input_string): Update handling
806         of NULL strings.
807         (lto_input_location_bitpack): New function
808         (lto_input_location): Use it.
809         (unpack_ts_type_common_value_fields): Pack align & alias in var len
810         values.
811         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
812         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
813         (bp_pack_value): Sanity check the value range.
814         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
815         New functions.
816         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
817         New functions.
818
819 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
820
821         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
822         call_arg_location instructions down the floor.
823
824 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
825
826         PR rtl-optimization/49154
827         * ira.c (setup_pressure_classes): Process class without sublcasses
828         as a candidate for pressure classes.
829
830 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
831
832         PR rtl-optimization/48575
833         * genrecog.c (position_type): New enum.
834         (position): New structure.
835         (decision): Use position structure instead of a string.
836         (root_pos, peep2_insn_pos_list): New variables.
837         (next_position, compare_positions): New functions.
838         (new_decision): Use position structures instead of strings.
839         (maybe_both_true): Likewise.
840         (change_state): Likewise.
841         (write_tree): Likewise.
842         (make_insn_sequence): Likewise.
843
844 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
845
846         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
847         TS_BASE instead of TS_COMMON.
848         (find_decls_types_r): Check for TS_TYPED structure before looking at
849         TREE_TYPE.
850         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
851         Add chain field.
852         (BLOCK_CHAIN): Use new chain field.
853
854 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
855
856         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
857         moves expensive on Power7 also.
858
859 2011-05-26  Richard Guenther  <rguenther@suse.de>
860
861         * fold-const.c (fold_unary_loc): Remove bogus code.
862
863 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
864
865         * tree.h (struct tree_identifier): Inherit from tree_typed, not
866         tree_common.
867         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
868         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
869         TS_BASE instead of TS_COMMON.
870         * varasm.c (assemble_name): Remove assert.
871
872 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
873
874         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
875         substituted first.
876         * libgcc-std.ver: Delete file.
877
878 2011-05-26  Richard Guenther  <rguenther@suse.de>
879
880         PR tree-optimization/48702
881         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
882         only when we know the base address is within bounds.
883         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
884         assume the base address of TARGET_MEM_REFs is in bounds.
885
886 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
887
888         PR target/49099
889         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
890         declaration in TARGET_SOLARIS.
891
892 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
893
894         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
895         The instruction is then expanded explicitly.
896         (supported_compare): Callable instruction.
897         (compare): Likewise.
898
899 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
900
901         PR c++/49165
902         * gimplify.c (shortcut_cond_r): Don't special case
903         COND_EXPRs if they have void type on one of their arms.
904
905 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
906
907         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
908         to reduce duplication, and to achieve a slightly more logical order
909         of operations.
910
911 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
912
913         PR tree-optimization/49161
914         * tree-vrp.c (struct case_info): New type.
915         (compare_case_labels): Sort case_info structs instead of
916         trees, and not primarily by CASE_LABEL uids but by
917         label_for_block indexes.
918         (find_switch_asserts): Put case labels into struct case_info
919         array instead of TREE_VEC, adjust sorting, compare label_for_block
920         values instead of CASE_LABELs.
921
922 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
923
924         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
925         ("orndi3_neon"): Likewise.
926         ("bic<mode>3_neon"): Likewise.
927
928 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
929
930         PR tree-optimization/49038
931         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
932         Ensure at least one epilogue iteration if required by data
933         accesses with gaps.
934         * tree-vectorizer.h (struct _loop_vec_info): Add new field
935         to mark loops that require peeling for gaps.
936         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
937         (vect_get_known_peeling_cost): Take peeling for gaps into
938         account.
939         (vect_transform_loop): Generate epilogue if required by data
940         access with gaps.
941         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
942         loop as requiring an epilogue if there are gaps in the end of
943         the strided group.
944
945 2011-05-25  Ian Lance Taylor  <iant@google.com>
946
947         * godump.c (go_format_type): Output the first field with a usable
948         Go type, if any.
949
950 2011-05-25  Ian Lance Taylor  <iant@google.com>
951
952         * godump.c (go_format_type): Check for invalid type names, pointer
953         target types, and struct field types.
954
955 2011-05-25  Jason Merrill  <jason@redhat.com>
956
957         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
958
959 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
960
961         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
962
963 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
964
965         * config/i386/i386.md (*movqi_extv_1)): Put back
966         "register_operand" check in "type" calculation.
967         (*movqi_extzv_2): Likewise.
968
969 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
970
971         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
972
973 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
974
975         PR bootstrap/49160
976         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
977         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
978         __divxc3, __divtc3): Wrap definitions in #ifndef.
979
980 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
981
982         PR target/49142
983         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
984         "register_operand" check and replace q_regs_operand with
985         QIreg_operand in "type" calculation.
986         (*movqi_extv_1): Likewise.
987         (*movqi_extzv_2_rex64): Likewise.
988         (*movqi_extzv_2): Likewise.
989
990         * config/i386/predicates.md (QIreg_operand): New.
991
992 2011-05-25  Richard Guenther  <rguenther@suse.de>
993
994         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
995         type-based offset disambiguation, streamline MEM_REF and
996         TARGET_MEM_REF handling.
997
998 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
999
1000         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
1001         (bdesc_special_args): Add pause intrinsic.
1002
1003         * config/i386/i386.md (UNSPEC_PAUSE): New.
1004         (pause): Likewise.
1005         (*pause): Likewise.
1006         * config/i386/ia32intrin.h (__pause): Likewise.
1007
1008         * doc/extend.texi (X86 Built-in Functions): Add documentation for
1009         pause intrinsic.
1010
1011 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1012
1013         PR tree-optimization/46728
1014         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
1015         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
1016
1017 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1018
1019         * tree.h (struct tree_exp): Inherit from struct tree_typed.
1020         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
1021         instead of TS_COMMON.
1022
1023 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
1024
1025         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
1026         LIBGCC2_GNU_PREFIX is defined.
1027         (__N): New macro.
1028         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
1029         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
1030         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
1031         __clz_tab): Define using __N.
1032         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
1033         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1034         * target.def (libfunc_gnu_prefix): New hook.
1035         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
1036         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
1037         * doc/tm.texi: Regenerate.
1038         * system.h (LIBGCC2_GNU_PREFIX): Poison.
1039         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
1040         account.
1041         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
1042         (init_optabs): Likewise for the bswap libfuncs.
1043         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
1044         and divide.
1045         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
1046         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
1047         * libgcc-std.ver: Remove.
1048         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
1049         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
1050         libgcc-std.ver.
1051         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1052         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
1053         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
1054         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
1055         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
1056         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1057         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1058         * config/fixed-bit.h (FIXED_OP): Define differently depending on
1059         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
1060         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
1061
1062 2011-05-25  Jan Hubicka  <jh@suse.cz>
1063
1064         * lto-streamer-out.c (output_record_start): Use lto_output_enum
1065         (lto_output_tree): Use output_record_start.
1066         * lto-streamer-in.c (input_record_start): Use lto_input_enum
1067         (lto_get_pickled_tree): Use input_record_start.
1068         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
1069         (lto_value_range_error): New function.
1070         * lto-streamer.h (lto_value_range_error): Declare.
1071         (lto_output_int_in_range, lto_input_int_in_range): New functions.
1072         (lto_output_enum, lto_input_enum): New macros.
1073
1074 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1075
1076         * common.opt (flag_stack_usage_info): New variable.
1077         (-Wstack-usage): New option.
1078         * doc/invoke.texi (Warning options): Document -Wstack-usage.
1079         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
1080         <OPT_fstack_usage>: Likewise.
1081         * toplev.c (output_stack_usage): Handle -Wstack-usage.
1082         * calls.c (expand_call): Test flag_stack_usage_info variable instead
1083         of flag_stack_usage.
1084         (emit_library_call_value_1): Likewise.
1085         * explow.c (allocate_dynamic_stack_space): Likewise.
1086         * function.c (instantiate_virtual_regs ): Likewise.
1087         (prepare_function_start): Likewise.
1088         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
1089         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
1090         * config/arm/arm.c (arm_expand_prologue): Likewise.
1091         (thumb1_expand_prologue): Likewise.
1092         * config/avr/avr.c (expand_prologue): Likewise.
1093         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1094         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1095         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
1096         * config/mips/mips.c (mips_expand_prologue): Likewise.
1097         * config/pa/pa.c (hppa_expand_prologue): Likewise.
1098         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1099         * config/s390/s390.c (s390_emit_prologue): Likewise.
1100         * config/sh/sh.c (sh_expand_prologue): Likewise.
1101         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1102         * config/spu/spu.c (spu_expand_prologue): Likewise.
1103
1104 2011-05-25  Richard Guenther  <rguenther@suse.de>
1105
1106         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
1107         (gimple_canonical_types_compatible_p): Likewise.
1108
1109 2011-05-25  Jan Hubicka  <jh@suse.cz>
1110
1111         PR middle-end/49062
1112         * ipa.c (function_and_variable_visibility): Only add to same
1113         comdat group list if DECL_ONE_ONLY.
1114
1115 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
1116
1117         PR rtl-optimization/49014
1118         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
1119
1120 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
1121
1122         PR target/49128
1123         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1124
1125 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1126
1127         PR rtl-optimization/48757
1128         * ira-build.c (loop_with_eh_edge_p): Rename to
1129         loop_with_complex_edge_p, check edges on complexity, make function
1130         conditional.
1131         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
1132         conditional.
1133
1134 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1135
1136         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
1137         force flag_ira_share_save_slots to 0.
1138
1139 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1140
1141         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
1142         (vt_initialize): Set PROLOGUE_BB unconditionally.
1143         Add block comment about CFA_BASE_RTX machinery.
1144         Reset FP_CFA_OFFSET to -1 on all invalid paths.
1145         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
1146
1147 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1148
1149         PR objc/48187
1150         * c-parser.c (c_parser_objc_class_instance_variables): More robust
1151         parsing of syntax error in ObjC instance variable lists.  In
1152         particular, avoid an infinite loop if there is a stray ']'.
1153         Updated error message.
1154
1155 2011-05-24  Ian Lance Taylor  <iant@google.com>
1156
1157         * godump.c (go_define): Don't accept a string immediately after
1158         another operand.
1159
1160 2011-05-24  Ian Lance Taylor  <iant@google.com>
1161
1162         * godump.c (struct godump_container): Add invalid_hash field.
1163         (go_format_type): Return false if type is found in invalid_hash.
1164         (go_output_typedef): Add invalid type to invalid_hash.
1165         (go_finish): Create and delete invalid_hash.
1166
1167 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1168
1169         PR tree-optimization/46728
1170         * tree-ssa-math-opts.c (powi_table): New.
1171         (powi_lookup_cost): New.
1172         (powi_cost): New.
1173         (powi_as_mults_1): New.
1174         (powi_as_mults): New.
1175         (gimple_expand_builtin_powi): New.
1176         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
1177         (gate_cse_sincos): Remove sincos/cexp restriction.
1178
1179 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1180
1181         PR target/3746
1182         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
1183         mips-tdump native.
1184         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
1185         * mips-tdump.c: Likewise.
1186
1187 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1188
1189         PR target/49128
1190         * config/i386/driver-i386.c (host_detect_local_cpu): Always
1191         add -mno-XXX.  Handle FMA.
1192
1193 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1194
1195         PR rtl-optimization/48633
1196         * ira-build.c (loop_with_eh_edge_p): New function.
1197         (mark_loops_for_removal): Use it.
1198
1199 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1200
1201         PR rtl-optimization/48971
1202         * ira.c (setup_pressure_classes): Don't check register move cost
1203         for classes with one registers.  Don't add pressure class if there
1204         is a pressure class with the same available hard registers.
1205         Check contains_reg_of_mode.  Fix a typo in collecting
1206         temp_hard_regset.  Ignore hard registers not belonging to a class.
1207
1208 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
1209
1210         PR target/49133
1211         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
1212
1213 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1214             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1215
1216         PR gcov-profile/48845
1217         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
1218
1219 2011-05-24  Richard Guenther  <rguenther@suse.de>
1220
1221         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
1222         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
1223         (gimple_types_compatible_p_1): Adjust.
1224         (iterative_hash_canonical_type): Do not bother about complete vs.
1225         incomplete types.
1226         (gimple_canonical_types_compatible_p): Likewise.
1227
1228 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1229
1230         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
1231
1232 2011-05-24  Richard Guenther  <rguenther@suse.de>
1233
1234         PR bootstrap/49078
1235         * gimple.c (gimple_register_canonical_type): Revert
1236         previous change.
1237         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
1238         does not for a tree for the case where it matters.  Cache
1239         pointer-type alias-sets.
1240
1241 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
1242
1243         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
1244         (OBJS): Remove options.o, opts-common.o and prefix.o.
1245         (OBJS-libcommon-target): New.
1246         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
1247         (BACKEND): Include libcommon-target.a.
1248         (MOSTLYCLEANFILES): Include libcommon-target.a.
1249         (libcommon-target.a): New.
1250         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
1251         prefix.o.
1252
1253 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
1254
1255         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
1256         parts of output shared with the driver.
1257         * optc-gen.awk: Don't generate parts of output not shared with the
1258         driver.
1259         * opth-gen.awk: Remove GCC_DRIVER conditionals.
1260         * doc/options.texi (SourcerInclude): Mention options-save.c.
1261         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
1262         (OBJS): Add options-save.o.
1263         (options-save.c, options-save.o): New.
1264         (options.o): Update dependencies.
1265         (gcc-options.o): Remove.
1266         (mostlyclean): Remove options-save.c.
1267
1268 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1269
1270         PR debug/49032
1271         * dbxout.c: Include cgraph.h.
1272         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
1273         and without value expr, return NULL if no varpool node exists for
1274         it or if it is not needed.
1275         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
1276
1277         PR c/49120
1278         * c-decl.c (start_decl): Convert expr to void_type_node.
1279
1280 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
1281
1282         PR rtl-optimization/48826
1283         * emit-rtl.c (try_split): When splitting a call that is followed
1284         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
1285
1286 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1287
1288         * cfgexpand.c (expand_debug_expr): For unused non-addressable
1289         parameters passed in memory prefer using DECL_INCOMING_RTL over
1290         the pseudos it will be copied into.
1291
1292 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1293
1294         PR target/47315
1295         * config/i386/i386.c (ix86_option_override_internal): Save the
1296         initial options after checking vzeroupper.
1297
1298 2011-05-23  David Li  <davidxl@google.com>
1299
1300         PR tree-optimization/48988
1301         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1302         Initialize has_valid_pred for each pred chain.
1303
1304 2011-05-23  Richard Guenther  <rguenther@suse.de>
1305
1306         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1307         (iterative_hash_gimple_type): Always hash type names.
1308
1309 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
1310
1311         * c-typeck.c (build_function_call_vec): Tweak call to
1312         check_function_arguments.
1313
1314 2011-05-23  Richard Guenther  <rguenther@suse.de>
1315
1316         PR tree-optimization/49115
1317         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1318         is not necessarily carried out, do not claim it kills the ref.
1319         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1320
1321 2011-05-23  Richard Guenther  <rguenther@suse.de>
1322
1323         PR middle-end/15419
1324         * builtins.c (fold_builtin_memory_op): Be less restrictive about
1325         what pointer types we accept for folding.
1326
1327 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1328
1329         * gthr-gnat.c: Remove.
1330         * gthr-gnat.h: Remove.
1331         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1332         * config/t-freebsd (LIB2ADDEH): Likewise.
1333         * config/t-linux (LIB2ADDEH): Likewise.
1334         * config/t-sol2 (LIB2ADDEH): Likewise.
1335         * config/ia64/t-vms (LIB2ADDEH): Likewise.
1336         * configure.ac (target_thread_file): Remove gnat handling.
1337         * configure: Regenerate.
1338         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1339
1340 2011-05-23  Tristan Gingold  <gingold@adacore.com>
1341             Eric Botcazou  <ebotcazou@adacore.com>
1342
1343         * gcov.c (create_file_names): If no object directory is specified,
1344         keep the directory of the file.
1345
1346 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1347
1348         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1349         * configure: Regenerate.
1350
1351 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1352
1353         PR middle-end/48973
1354         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1355         failed and the comparison has a single bit signed type, use
1356         constm1_rtx instead of const1_rtx for true value.
1357         (do_store_flag): If ops->type is single bit signed type, disable
1358         signel bit test optimization and pass -1 instead of 1 as last
1359         parameter to emit_store_flag_force.
1360
1361 2011-05-23  Tom de Vries  <tom@codesourcery.com>
1362
1363         PR target/45098
1364         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1365         function.
1366         (infer_loop_bounds_from_undefined): Use new function.
1367
1368 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1369
1370         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1371         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
1372         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1373         and -O0 otherwise.
1374         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1375
1376 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1377
1378         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1379         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1380         returns true.
1381
1382 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1383
1384         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1385
1386 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1387
1388         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1389         UNSPEC_MOVE_PIC pattern.
1390
1391 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1392
1393         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1394         (sparc-*-rtems*): Likewise.
1395         (sparc64-*-elf*): Likewise.
1396         (sparc64-*-rtems*): Likewise.
1397         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
1398         * config/sparc/t-crtin: New file.
1399         * config/sparc/t-sol2 (crti.o): Delete rule.
1400         (crtn.o): Likewise.
1401         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1402         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1403         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1404         (ENDFILE_SPEC): Add crtn.o.
1405
1406 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1407
1408         PR middle-end/48689
1409         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1410         CODE_CONTAINS_STRUCT (TS_COMMON).
1411
1412 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
1413
1414         PR middle-end/49029
1415         * expmed.c (extract_fixed_bit_field): Test whether target can be used
1416         only after deciding which mode to use.
1417
1418 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1419
1420         PR target/45098
1421         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1422         for call to get_shiftadd_cost.
1423
1424 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
1425
1426         PR target/49104
1427         * config/i386/cpuid.h (bit_MMXEXT): New define.
1428
1429 2011-05-22  Nick Clifton  <nickc@redhat.com>
1430
1431         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1432         initialisation of non-existant args[2] element.  Use args[] array
1433         not arg[] array to pass arguments to build_function_type_list.
1434
1435 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
1436
1437         PR tree-optimization/49087
1438         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1439
1440 2011-05-21  Jason Merrill  <jason@redhat.com>
1441
1442         PR c++/49092
1443         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1444         static storage duration.
1445
1446 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1447
1448         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1449         frame pointer.
1450
1451 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1452
1453         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1454         false if there are call-saved registers here...
1455         (sparc_can_use_return_insn_p): ...but here instead.
1456         (save_or_restore_regs): Fix thinko.
1457         (sparc_expand_prologue): Use current_function_is_leaf.
1458         (sparc_frame_pointer_required): Likewise.
1459
1460 2011-05-21  Nick Clifton  <nickc@redhat.com>
1461
1462         PR target/49098
1463         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1464
1465 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1466
1467         * gengtype.c (walk_type): Implemented "atomic" GTY option.
1468         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1469
1470 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
1471
1472         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
1473         * optc-gen.awk: Move common code to opt-read.awk.
1474         * opth-gen.awk: Likewise.
1475         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1476
1477 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1478
1479         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1480
1481 2011-05-20  Tom de Vries  <tom@codesourcery.com>
1482
1483         PR target/45098
1484         * tree-ssa-loop-ivopts.c: Include expmed.h.
1485         (get_shiftadd_cost): New function.
1486         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
1487
1488 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1489
1490         PR bootstrap/49086
1491         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1492         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1493
1494 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1495
1496         * Makefile.in: Update comment referring to $(OBJS-common).
1497
1498 2011-05-20  Ian Lance Taylor  <iant@google.com>
1499
1500         * godump.c (go_output_typedef): Put enum constants in the macro
1501         hash table to avoid duplicate Go const definitions.
1502
1503 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1504
1505         * Makefile.in (LIBDEPS): Add libcommon.a.
1506         (LIBS): Likewise.
1507         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1508         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1509         pretty-print.o and version.o.
1510         (OBJS-libcommon): New.
1511         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1512         (BACKEND): Add libcommon.a.
1513         (MOSTLYCLEANFILES): Likewise.
1514         (libcommon.a): New.
1515         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1516         (cpp$(exeext)): Likewise.
1517         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1518         pretty-print.o and input.o.
1519         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1520         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1521         (errors.o): Remove.
1522         (mips-tfile): Don't explicitly use version.o.
1523         (mips-tdump): Likewise.
1524         (gcov.o): Depend on $(DIAGNOSTIC_H).
1525         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1526         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1527         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1528         * gcov-dump.c: Include intl.h and diagnostic.h.
1529         (main): Initialize diagnostics.
1530         * gcov.c: Include diagnostic.h.
1531         (fnotice): Remove.
1532         (main): Initialize diagnostics.
1533         * lto-wrapper.c: Include diagnostic.h.
1534         (main): Initialize diagnostics.
1535
1536 2011-05-20  Michael Matz  <matz@suse.de>
1537
1538         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1539
1540 2011-05-20  Michael Matz  <matz@suse.de>
1541             Richard Guenther  <rguenther@suse.de>
1542
1543         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1544         use lto_streamer_cache_append directly instead of returning a VEC.
1545         (preload_common_node): Remove.
1546         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1547         track seen nodes.
1548         (lto_streamer_cache_create): Call lto_preload_common_nodes.
1549
1550 2011-05-20  Richard Guenther  <rguenther@suse.de>
1551
1552         PR tree-optimization/49079
1553         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1554         MEM_REFs correctly for the trailing array access detection.
1555         Special case constants the same way as decls for overall size
1556         constraining.
1557
1558 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
1559
1560         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1561         argument expansion.
1562
1563 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1564
1565         PR tree-optimization/49073
1566         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1567         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1568         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1569
1570 2011-05-20  Richard Guenther  <rguenther@suse.de>
1571
1572         PR middle-end/48849
1573         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1574         of pointer types the same way the middle-end does.
1575
1576 2011-05-20  Richard Guenther  <rguenther@suse.de>
1577
1578         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1579         or pointer-to chains.  Delay all fixup to uniquify_nodes.
1580
1581 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
1582
1583         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1584         (fma4_fmaddsub): Likewise
1585
1586 2011-05-19  Jan Hubicka  <jh@suse.cz>
1587
1588         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1589         (GIMPLE_TYPE_PAIR_SIZE): New macro.
1590         (type_pair_cache): New static var.
1591         (lookup_type_pair): Use fixed sized custom hash; make inline.
1592         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1593         calls of lookup_type_pair.
1594         (print_gimple_types_stats): Remove cache stats.
1595         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1596         and gtc_ob.
1597
1598 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
1599
1600         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1601         when TARGET_RDRND is active.
1602         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1603         Generate dummy SImode target register when target is NULL.
1604
1605 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1606
1607         * config/arm/arm-fpus.def: New.
1608         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1609         arm-fpus.def.
1610         * config/arm/arm-tables.opt: Regenerate.
1611         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1612         (arm_option_override): Don't decode FPU name to string here.
1613         * config/arm/arm.opt (mfpu=): Use Enum.
1614         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1615         Update dependencies.
1616
1617 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1618
1619         * collect2.c: Include diagnostic.h.
1620         (fatal_perror, fatal, error, fancy_abort): Remove.
1621         (main): Set progname.  Call xmalloc_set_program_name and
1622         diagnostic_initialize.
1623         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1624         scan_libraries, resolve_lib_name): Call fatal_error instead of
1625         fatal and fatal_perror.
1626         * collect2.h (error, fatal, fatal_perror): Don't declare.
1627         * tlink.c: Include diagnostic-core.h.
1628         (recompile_files): Call fatal_error instead of fatal_perror.
1629         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1630         pretty-print.o and input.o.
1631         (collect2.o, tlink.o): Update dependencies.
1632
1633 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1634
1635         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1636
1637 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1638
1639         PR target/40483
1640         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1641         COMDAT group syntax, both SPARC and x86 variants.
1642         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1643         * configure: Regenerate.
1644         * config/sol2.h (TARGET_SOLARIS): Define.
1645         (PUSHSECTION_FORMAT): Remove.
1646         (SECTION_NAME_FORMAT): Define.
1647         * config/sol2.c: Include hashtab.h.
1648         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1649         expansion, using SECTION_NAME_FORMAT.
1650         (solaris_comdat_htab): New variable.
1651         (struct comdat_entry): Define.
1652         (comdat_hash): New function.
1653         (comdat_eq): New function.
1654         (solaris_elf_asm_comdat_section): New function.
1655         (solaris_define_comdat_signature): New function.
1656         (solaris_code_end): New function.
1657         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1658         (solaris_code_end): Declare.
1659         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1660         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1661         solaris_code_end.
1662         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1663         Remove ATTRIBUTE_UNUSED.
1664         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1665         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1666         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1667         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1668         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1669         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1670         (PUSHSECTION_FORMAT): Remove.
1671         (SECTION_NAME_FORMAT): Redefine.
1672
1673 2011-05-19  Kai Tietz  <ktietz@redhat.com>
1674
1675         * tree-cfg.c (verify_gimple_assign_binary): Barf on
1676         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1677         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1678
1679 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
1680             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1681
1682         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1683
1684 2011-05-19  Richard Guenther  <rguenther@suse.de>
1685
1686         PR middle-end/48985
1687         * tree-object-size.c (addr_object_size): If the pointed-to
1688         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1689
1690 2011-05-19  Richard Guenther  <rguenther@suse.de>
1691
1692         * gimple.c (gimple_types_compatible_p_1): Compare names of
1693         the types themselves.
1694         (iterative_hash_gimple_type): And hash them that way.
1695         (gimple_register_type_1): If we register a main variant properly
1696         initialize the leader to ourselves.
1697
1698 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1699
1700         PR target/45098
1701         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1702         get_loop_invariant_expr_id.
1703         (get_loop_invariant_expr_id): Use get_expr_id.
1704         (parm_decl_cost): New function.
1705         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1706         Improve bound cost estimation.  Use different inv_expr_id for elim and
1707         express cases.
1708
1709 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1710
1711         PR target/45098
1712         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1713         cost_base.cost == 0.
1714
1715 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1716
1717         PR target/49002
1718         * config/i386/sse.md
1719         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
1720         load cast.
1721
1722 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1723
1724         PR tree-optimization/49039
1725         * tree-vrp.c (extract_range_from_binary_expr): For
1726         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1727         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1728
1729 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1730
1731         PR target/45098
1732         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1733
1734 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
1735
1736         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1737         (*tls_global_dynamic_64): Ditto.
1738         (*tls_local_dynamic_base_32_gnu): Ditto.
1739         (*tls_local_dynamic_base_64): Ditto.
1740         (tls_initial_exec_64_sun): Ditto.
1741
1742 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
1743
1744         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1745         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1746         bf592-none.
1747         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1748         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1749         * config/bfin/bfin.c (bfin_cpus): Add bf592.
1750         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1751         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1752         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1753         * config/bfin/elf.h (LIB_SPEC): Add bf592.
1754
1755 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
1756
1757         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1758         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1759         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1760         target_thread_pointer, arm_structure_size_boundary, struct
1761         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1762         struct abi_name, arm_all_abis): Remove.
1763         (arm_option_override) Don't process most enumerated option values here.
1764         Don't process target_fpe_name here.  Work with integer not string for
1765         structure size boundary; use separate diagnostics for each case.
1766         * config/arm/arm.h (enum float_abi_type, enum
1767         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1768         to arm-opts.h.
1769         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1770         arm_structure_size_boundary): Remove.
1771         * config/arm/arm.opt (mabi=): Use Enum and Init.
1772         (arm_abi_type): New Enum and EnumValue entries.
1773         (mfloat-abi=): Use Enum and Init.
1774         (float_abi_type): New Enum and EnumValue entries.
1775         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1776         (mfp16-format=): Use Enum and Init.
1777         (arm_fp16_format_type): New Enum and EnumValue entries.
1778         (mstructure-size-boundary=): Use UInteger and Init.
1779         (mtp=): Use Enum and Init.
1780         (arm_tp_type): New Enum and EnumValue entries.
1781
1782 2011-05-18  Richard Guenther  <rguenther@suse.de>
1783
1784         PR tree-optimization/49018
1785         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1786         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1787         gimple_has_side_effects.
1788
1789 2011-05-18  Richard Guenther  <rguenther@suse.de>
1790
1791         * gimple.c (gimple_register_type_1): New function, split out from ...
1792         (gimple_register_type): ... here.  Avoid infinite recursion.
1793
1794 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1795
1796         PR tree-optimization/41881
1797         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1798         reduction_chains along with a macro for its access.
1799         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1800         (destroy_loop_vec_info): Free reduction chains.
1801         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1802         (vect_is_slp_reduction): New function.
1803         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1804         (vect_create_epilog_for_reduction): Support SLP reduction chains.
1805         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1806         definition types for reduction chains.
1807         (vect_supported_load_permutation_p): Don't allow permutations for
1808         reduction chains.
1809         (vect_analyze_slp_instance): Support reduction chains.
1810         (vect_analyze_slp): Try to build SLP instance from reduction chains.
1811         (vect_get_constant_vectors):  Handle reduction chains.
1812         (vect_schedule_slp_instance): Mark the first statement of the
1813         reduction chain as reduction.
1814
1815 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1816
1817         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1818         names for group elements access.
1819         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1820         reduction chains as well.  Remove data reference and interleaving
1821         related words from the fields names.
1822         * tree-vect-loop.c (vect_transform_loop): Use new names for group
1823         elements access.
1824         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1825         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1826         vect_update_interleaving_chain, vect_same_range_drs,
1827         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1828         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1829         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1830         vect_analyze_group_access, vect_analyze_data_ref_access,
1831         vect_create_data_ref_ptr, vect_transform_strided_load,
1832         vect_record_strided_load_vectors): Likewise.
1833         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1834         vect_model_load_cost, vectorizable_store, vectorizable_load,
1835         vect_remove_stores, new_stmt_vec_info): Likewise.
1836         * tree-vect-slp.c (vect_build_slp_tree,
1837         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1838
1839 2011-05-18  Richard Guenther  <rguenther@suse.de>
1840
1841         PR middle-end/48989
1842         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1843         operand verification.
1844         (verify_gimple_assign_binary): Likewise.
1845         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1846         to non-1-precision BOOLEAN_TYPEs.
1847
1848 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1849
1850         PR target/45098
1851         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1852
1853 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1854
1855         PR tree-optimization/49000
1856         * tree-ssa.c (execute_update_addresses_taken): Call
1857         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
1858         be rewritten and decl has been marked for renaming, reset
1859         the debug stmt.
1860
1861 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
1862
1863         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1864         enum_opts_set when testing if attributes have set -mfpmath=.
1865
1866 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
1867
1868         * config/mips/mips.c (mips_handle_option): Remove unused variable.
1869
1870 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1871
1872         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1873         info->entry with 0
1874         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
1875         id.transform_lang_insert_block with NULL.
1876
1877 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1878
1879         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1880         (output_fp_compare): Change args 3 and 4 to bool.
1881         (ix86_expand_call): Change arg 6 to bool.
1882         (ix86_attr_length_immediate_default): Change arg 2 to bool.
1883         (ix86_attr_length_vex_default): Change arg 3 to bool.
1884         * config/i386/i386.md: Update all uses.
1885         * config/i386/i386.c: Ditto.
1886         (ix86_flags_dependent): Change return type to bool.
1887
1888 2011-05-17  Richard Guenther  <rguenther@suse.de>
1889
1890         * gimple.c (type_hash_pair_compare): Fix comparison.
1891
1892 2011-05-17  Richard Guenther  <rguenther@suse.de>
1893
1894         * gimple.c (iterative_hash_gimple_type): Simplify singleton
1895         case some more, fix final hash value of the non-singleton case.
1896
1897 2011-05-17  Richard Guenther  <rguenther@suse.de>
1898
1899         PR bootstrap/49013
1900         Revert
1901         2011-05-16  Richard Guenther  <rguenther@suse.de>
1902
1903         * gimple.c (gimple_types_compatible_p_1): Use names of the
1904         type itself, not its main variant.
1905         (iterative_hash_gimple_type): Likewise.
1906
1907 2011-05-17  Richard Guenther  <rguenther@suse.de>
1908
1909         * gimple.c (gimple_register_canonical_type): Use the main-variant
1910         leader for computing the canonical type.
1911
1912 2011-05-17  Nick Clifton  <nickc@redhat.com>
1913
1914         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1915         moves.
1916
1917         * config/rx/rx.md: Add peephole to remove redundant extensions
1918         after loads.
1919         (bitset_in_memory): Use rx_restricted_mem_operand.
1920         (bitinvert_in_memory): Likewise.
1921         (bitclr_in_memory): Likewise.
1922
1923 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
1924             Nick Clifton  <nickc@redhat.com>
1925
1926         * config/rx/rx.md: Add peepholes to match a register move followed
1927         by a comparison of the moved register.  Replace these with an
1928         addition of zero that does both actions in one instruction.
1929
1930 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
1931
1932         PR target/48986
1933         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1934         predicate to allow CONST_INT.
1935         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1936
1937 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1938
1939         * opts-common.c (opt_enum_arg_to_value): New.
1940         * opts.h (opt_enum_arg_to_value): Declare.
1941         * config/i386/i386.opt (fpmath): Remove.
1942         (mfpmath=): Use Enum, Init and Save.
1943         (fpmath_unit): New Enum and EnumValue entries.
1944         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1945         name for function fpmath state.
1946         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1947         * config/i386/i386.c: Include diagnostic.h.
1948         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1949         (ix86_target_string): Take enum fpmath_unit value instead of string.
1950         (ix86_debug_options): Update call to ix86_target_string.
1951         (ix86_option_override_internal): Don't process fpmath strings here.
1952         (x86_function_specific_save, ix86_function_specific_restore):
1953         Don't handle fpmath state specially.
1954         (ix86_function_specific_print): Pass fpmath state to
1955         ix86_target_string instead of printing in this function.
1956         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1957         Handle enum attributes.
1958         (IX86_ATTR_ENUM, ix86_opt_enum): New.
1959         (ix86_valid_target_attribute_tree): Update option_strings
1960         handling.  Handle fpmath as enum option.
1961         (ix86_can_inline_p): Update field names for function fpmath state.
1962         (ix86_expand_builtin): Update call to ix86_target_string.
1963         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1964         (ix86_fpmath): Remove.
1965         * config/i386/t-i386 (i386.o): Update dependencies.
1966
1967 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1968
1969         PR preprocessor/48677
1970         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1971         from decoded_options[0], not from itself.
1972
1973 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
1974
1975         * config/i386/constraints.md (z): New constraint.
1976         * config/i386/i386.c (c): New mode attribute.
1977         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1978         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1979         constraint for operand 0.
1980         (*call_vzeroupper): Ditto.
1981         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
1982         (*call_rex64_ms_sysv_vzeroupper): Ditto.
1983         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1984         Use "lzm" constraint for operand 0.
1985         (*call_pop_vzeroupper): Ditto.
1986         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1987         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
1988         constraint for operand 0.
1989         (*sibcall_vzeroupper): Ditto.
1990         (*sibcall_rex64_ms_sysv): Ditto.
1991         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1992         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1993         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
1994         (*sibcall_pop_vzeroupper): Ditto.
1995         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1996         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1997         mode iterator.  Use "<c>zm" constraint for operand 1.
1998         (*call_value_vzeroupper): Ditto.
1999         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
2000         for operand 1.
2001         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
2002         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
2003         *call_value_pop_1.  Use "lzm" constraint for operand 1.
2004         (*call_value_pop_vzeroupper): Ditto.
2005         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
2006         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
2007         mode iterator.  Use "Uz" constraint for operand 1.
2008         (*sibcall_value_vzeroupper): Ditto.
2009         (*sibcall_value_rex64_ms_sysv): Ditto.
2010         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
2011         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
2012         constraint for operand 1.
2013         (*sibcall_value_pop_vzeroupper): Ditto.
2014         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
2015         and "z" constraint for operand 2.
2016         (*tls_global_dynamic_32_gnu): Ditto.
2017         (*tls_local_dynamic_base_32_gnu): Ditto.
2018         (*tls_local_dynamic_base_64): Ditto.
2019         (*tls_local_dynamic_32_once): Ditto.
2020         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
2021         Update all callers.
2022         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
2023
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-16  Richard Guenther  <rguenther@suse.de>
2031
2032         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
2033         always visit pointer target and function result and argument types.
2034
2035 2011-05-16  Jason Merrill  <jason@redhat.com>
2036
2037         PR c++/48999
2038         * tree-inline.c (copy_statement_list): Put back recursion.
2039
2040 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
2041
2042         PR target/27663
2043         PR target/41076
2044         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
2045         * config/avr/avr.md ("*ior<mode>qi.byte0",
2046         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
2047
2048 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
2049
2050         PR target/45099
2051         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
2052         register is needed for a function argument.
2053
2054 2011-05-16  Richard Guenther  <rguenther@suse.de>
2055
2056         * gimple.c (struct type_hash_pair): New type.
2057         (type_hash_pair_compare): New function.
2058         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
2059
2060 2011-05-16  Revital Eres  <revital.eres@linaro.org>
2061
2062         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
2063
2064 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
2065
2066         * config/i386/i386.md (floating point move splitters): Fix
2067         usage of standard_80387_constant_p.
2068         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
2069
2070 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
2071
2072         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
2073
2074 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2075
2076         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
2077         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
2078         (tree_ssa_lim_finalize): Likewise.
2079
2080 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
2081
2082         * config/i386/constraint.md (Yd, Yx): New register constraints.
2083         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
2084         Yd conditional register constraint.
2085         (*movtf_internal): Use standard_sse_constant_opcode.
2086         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
2087         Yx conditional register constraint.
2088         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
2089         Yd conditional register constraint.  Use standard_sse_constant_p to
2090         check for valid SSE constants and call standard_sse_constant_opcode to
2091         output SSE insn.
2092         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
2093         constants and call standard_sse_constant_opcode to output SSE insn.
2094         * config/i386/i386.c (ix86_option_ovverride_internal): Set
2095         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
2096         optimize_size is set.
2097         (standard_sse_constant_opcode): Output conditional AVX insn templates.
2098
2099 2011-05-14  Tobias Burnus  <burnus@net-b.de>
2100
2101         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
2102
2103 2011-05-13  Martin Jambor  <mjambor@suse.cz>
2104
2105         * ipa-prop.c (ipa_cst_from_jfunc): New function.
2106         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
2107         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
2108         (evaluate_conditions_for_ipcp_clone): Removed.
2109         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
2110         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
2111         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
2112
2113 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2114
2115         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
2116         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
2117         lieu of MAY_HAVE_DEBUG_STMTS.
2118         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
2119         debug statements if !MAY_HAVE_DEBUG_STMTS.
2120
2121 2011-05-13  Martin Thuresson  <martint@google.com>
2122
2123         PR gcov-profile/47793
2124         * libgcov.c (gcov_exit): Support relative profile paths.
2125         * doc/invoke.texi (-fprofile-dir): Update for above change.
2126
2127 2011-05-13  Richard Guenther  <rguenther@suse.de>
2128
2129         * gimple.c (gimple_canonical_types_compatible_p): Do not use
2130         type-pair caching, do not compare hashes.
2131
2132 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
2133
2134         PR middle-end/48965
2135         * tree-cfg.c (edge_to_cases_cleanup): Return true.
2136         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
2137
2138 2011-05-13  Kai Tietz  <ktietz@redhat.com>
2139
2140         * gimplify.c (gimplify_expr): Make sure operand is boolified.
2141         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
2142         compatible type for TRUTH_NOT_EXPR.
2143
2144 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2145
2146         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2147         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
2148         can_create_pseudo_p ().
2149
2150 2011-05-13  Richard Guenther  <rguenther@suse.de>
2151
2152         PR lto/48978
2153         * gimple.c (iterative_hash_gimple_type): Revert change in
2154         pointer target and function result and argument hashing.
2155
2156 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
2157
2158         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
2159         (*movxf_internal_nointeger): Ditto.
2160         (*movdf_internal_rex64): Ditto.
2161         (*movdf_internal): Ditto.
2162         (*movdf_internal_nointeger): Ditto.
2163         (*movsf_internal): Ditto.
2164         (sincos splitters): Use can_create_pseudo ().
2165
2166 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
2167
2168         * config/i386/i386-opts.h: New.
2169         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
2170         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
2171         ix86_section_threshold): Remove.
2172         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
2173         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
2174         OPT_mbranch_cost_.
2175         (ix86_option_override_internal): Don't decode strings for options
2176         other than -march=, -mtune= and -mfpmath=.  Don't allow for
2177         __attribute__ uses in remaining diagnostics for options with
2178         string arguments.  Don't check for integer arguments being negative.
2179         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
2180         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
2181         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
2182         ix86_branch_cost, ix86_section_threshold): Remove.
2183         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
2184         HeaderInclude.
2185         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
2186         but not Var.
2187         (masm=): Use Enum and Init.
2188         (asm_dialect): New Enum and EnumValue entries.
2189         (mbranch-cost=): Use UInteger.
2190         (mlarge-data-threshold=): Use UInteger and Init.
2191         (mcmodel=): Use Enum and Init.
2192         (cmodel): New Enum and EnumValue entries.
2193         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
2194         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
2195         mregparm=): Use UInteger.
2196         (mstringop-strategy=): Use Enum and Init.
2197         (stringop_alg): New Enum and EnumValue entries.
2198         (mtls-dialect=): Use Enum and Init.
2199         (tls_dialect): New Enum and EnumValue entries.
2200         (mabi=): Use Enum and Init.
2201         (calling_abi): New Enum and EnumValue entries.
2202         (mveclibabi=): Use Enum and Init.
2203         (ix86_veclibabi): New Enum and EnumValue entries.
2204
2205 2011-05-13  Nick Clifton  <nickc@redhat.com>
2206
2207         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
2208         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
2209
2210 2011-05-13  Kai Tietz  <ktietz@redhat.com>
2211
2212         PR middle-end/48984
2213         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
2214         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
2215         (gimple_boolify): Check for cast for boolean_type_node instead for
2216         BOOLEAN_TYPE.
2217
2218 2011-05-13  Richard Guenther  <rguenther@suse.de>
2219
2220         PR tree-optimization/48172
2221         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
2222         multiplying by number of iterations for equal step.
2223         (vect_create_cond_for_alias_checks): Likewise.
2224
2225 2011-05-13  Andreas Schwab  <schwab@redhat.com>
2226
2227         * configure.ac: Use AS_HELP_STRING throughout.
2228         * configure: Regenerate.
2229
2230 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2231
2232         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
2233         (ix86_emit_restore_regs_using_mov): Likewise.
2234         (ix86_emit_restore_sse_regs_using_mov): Likewise.
2235
2236 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
2237
2238         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
2239         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
2240         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
2241         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
2242         RTX_OK_FOR_OLO10_P): ...here.
2243         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
2244         SYMBOLIC_CONST.
2245
2246 2011-05-12  Kai Tietz  <ktietz@redhat.com>
2247
2248         * gimplify.c (gimple_boolify): Re-boolify expression
2249         arguments even if expression type is of kind BOOLEAN_TYPE.
2250         (gimplify_boolean_expr): Removed.
2251         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
2252         and XOR. Additional take care that we keep expression's type.
2253         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
2254         of TRUTH_AND|OR|XOR_EXPR.
2255
2256 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
2257
2258         PR tree-optimization/48975
2259         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
2260         on all bbs here and free and clear ifc_bbs at the end.
2261
2262 2011-05-12  Richard Guenther  <rguenther@suse.de>
2263
2264         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
2265         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
2266         until after simple checks.
2267         (gimple_types_compatible_p): Likewise.
2268         (iterative_hash_gimple_type): Always hash pointer targets
2269         and function return and argument types.
2270         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
2271         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
2272         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
2273         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
2274         completely in the simple compare section.
2275         (gimple_register_canonical_type): Query the cache again after
2276         registering.
2277
2278 2011-05-12  Richard Guenther  <rguenther@suse.de>
2279
2280         PR tree-optimization/48172
2281         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
2282         the number of iterations from the segment size calculation.
2283         (vect_create_cond_for_alias_checks): Adjust.
2284
2285 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
2286
2287         PR debug/48967
2288         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
2289         if validate_subreg fails.
2290
2291 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
2292
2293         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
2294         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
2295         early.
2296
2297 2011-05-12  DJ Delorie  <dj@redhat.com>
2298
2299         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
2300         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
2301         created builtin into rx_builtins array.
2302         (rx_builtin_decl): New function.
2303         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
2304
2305 2011-05-12  DJ Delorie  <dj@redhat.com>
2306             Nick Clifton  <nickc@redhat.com>
2307
2308         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2309         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2310         (rx_is_legitimate_address): Add pre-decrement and post-increment
2311         addressing in HImode and QImode.  Fix test for out of range
2312         REG+INT addressing.
2313         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
2314         (rx_align_for_label): Test label before extracting its usage count.
2315         (rx_adjust_insn_lengths): Fix selection of insn codes.
2316         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
2317
2318 2011-05-11  Jason Merrill  <jason@redhat.com>
2319
2320         * tree.c (type_hash_canon): Use struct tree_type_non_common.
2321
2322 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2323
2324         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2325         reindent the subsequent block.
2326
2327 2011-05-11  Satoru Takabayashi  <satorux@google.com>
2328             Paul Pluzhnikov  <ppluzhnikov@google.com>
2329
2330         * doc/install.texi (Configuration): Document --with-linker-hash-style.
2331         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2332         * config.in: Add LINKER_HASH_STYLE.
2333         * configure.ac: Add --with-linker-hash-style.
2334         * configure: Regenerate.
2335
2336 2011-05-11  Richard Guenther  <rguenther@suse.de>
2337
2338         PR middle-end/48964
2339         * gimple.c (iterative_hash_canonical_type): Fix typo.
2340
2341 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
2342
2343         * config/i386/i386.c (legitimize_tls_address)
2344         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2345         expanders directly for TARGET_GNU2_TLS.  Determine pic and
2346         __tls_get_addr symbol reference here.  Update call to
2347         gen_tls_global_dynamic_{32,64} for added arguments.
2348         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2349         expanders directly for TARGET_GNU2_TLS.  Determine
2350         __tls_get_addr symbol reference here.  Update call to
2351         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
2352         unique UNSPEC REG_EQUIV to libcall block.
2353         (ix86_tls_get_addr): Declare static.
2354         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2355         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2356         Do not determine pic and __tls_get_addr symbol reference here. Do not
2357         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2358         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2359         (tls_global_dynamic_64): Add operand 2.  Do not determine
2360         __tls_get_addr symbol reference here.  Do not call
2361         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2362         (tls_local_dynamic_base64): Ditto for operand 1.
2363
2364 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2365
2366         * function.c (expand_function_start): Initialize stack_check_probe_note
2367         only if the generic stack checking mechanism is used.
2368
2369 2011-05-11  Richard Guenther  <rguenther@suse.de>
2370
2371         PR tree-optimization/15256
2372         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2373         (A & B) | C, combine (A op CST1) op CST2.
2374         (tree_ssa_forward_propagate_single_use_vars): Only bother to
2375         visit assigns that have uses.
2376
2377 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
2378
2379         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2380         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2381         (unpack_ts_type_common_value_fields): ...this.  Update comment.
2382         (unpack_value_fields): Adjust for renaming.
2383         (lto_input_ts_type_tree_pointers): Split into...
2384         (lto_input_ts_type_common_tree_pointer): ...this and...
2385         (lto_input_ts_type_non_common_tree_pointers): ...this.
2386         (lto_input_tree_pointers): Adjust for above split.
2387         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2388         (pack_ts_type_common_value_fields): ...this.  Update comment.
2389         (lto_output_ts_type_tree_pointers): Split into...
2390         (lto_output_ts_type_common_tree_pointers): ...this and...
2391         (lto_output_ts_type_non_common_tree_pointers): ...this.
2392         (lto_output_tree_pointers): Adjust for above split.
2393         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2394         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2395         * stor-layout.c (vector_type_mode): Adjust location of mode field.
2396         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2397         Define.
2398         (struct tree_type): Split into...
2399         (struct tree_type_common: ...this and...
2400         (struct tree_type_with_lang_specific): ...this and...
2401         (struct tree_type_non_common): ...this.  Adjust accessor macros
2402         accordingly.
2403         (TYPE_VALUES_RAW): Define.
2404         (union tree_node): Update for above changes.
2405         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2406         TS_TYPE_NON_COMMON.
2407         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2408         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2409         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2410         * treestructu.def (TS_TYPE): Remove.
2411         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2412         Define.
2413
2414 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
2415
2416         PR debug/48159
2417         * tree-ssa.c (reset_debug_uses): New function.
2418         * tree-flow.h (reset_debug_uses): New prototype.
2419         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2420         * tree-loop-distribution.c (generate_loops_for_partition): Call
2421         reset_debug_uses on the stmts that will be removed.  Keep around
2422         all debug stmts, don't count them as bits in partition bitmap.
2423         (generate_builtin): Don't count debug stmts or labels as bits in
2424         partition bitmap.
2425
2426 2011-05-11  Richard Guenther  <rguenther@suse.de>
2427
2428         * gimple.c (gimple_type_hash_1): Merge with ...
2429         (gimple_type_hash): ... this.
2430         (gtc_visit): Remove mode parameter and simplify accordingly.
2431         (gimple_types_compatible_p_1): Likewise.
2432         (gimple_types_compatible_p): Likewise.
2433         (iterative_hash_gimple_type): Likewise.
2434         (visit): Likewise.
2435         (gimple_type_eq): Adjust.
2436
2437 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2438
2439         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2440         enters the branch create an anti edge in the opposite direction
2441         to prevent the creation of reg-moves.
2442         * modulo-sched.c: Adjust comment to reflect the fact we are
2443         scheduling closing branch.
2444         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2445         (stage_count): New field in struct partial_schedule.
2446         (calculate_stage_count): New function.
2447         (normalize_sched_times): Rename to reset_sched_times and handle
2448         incrementing the sched time of the nodes by a constant value
2449         passed as parameter.
2450         (duplicate_insns_of_cycles): Skip closing branch.
2451         (sms_schedule_by_order): Schedule closing branch.
2452         (ps_insn_find_column): Handle closing branch.
2453         (sms_schedule): Call reset_sched_times and adjust the code to
2454         support scheduling of the closing branch.
2455         (ps_insert_empty_row): Update calls to normalize_sched_times
2456         and rotate_partial_schedule functions.
2457
2458 2011-05-11  Richard Guenther  <rguenther@suse.de>
2459
2460         PR middle-end/48953
2461         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2462
2463 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
2464
2465         * opts.c (finish_options): Move warning settings from process_options.
2466         * toplev.c (process_options): Move warning settings to finish_options.
2467
2468 2011-05-11  Richard Guenther  <rguenther@suse.de>
2469
2470         PR tree-optimization/18041
2471         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2472         (simplify_bitwise_binary): ... this.  Handle operand conversions
2473         by applying them to the result instead.
2474         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
2475
2476 2011-05-11  Richard Guenther  <rguenther@suse.de>
2477
2478         * gimple.c (gimple_canonical_types_compatible_p): Split out
2479         from gimple_types_compatible_p and friends.  Do not recurse
2480         to pointed-to types.
2481         (gimple_canonical_type_eq): Use it.
2482         (iterative_hash_canonical_type): Split out from
2483         iterative_hash_gimple_type and friends.  Do not recurse
2484         to pointed-to types.
2485         (gimple_canonical_type_hash): Use it, allocate the hash here.
2486
2487 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2488
2489         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2490         recognizing doloop.
2491
2492 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2493
2494         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2495         instead of PREV_INSN.
2496
2497 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2498
2499         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2500         * loop-doloop.c (doloop_condition_get): Likewise.
2501         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2502         (doloop_end): New.
2503         * config/arm/arm.md (*addsi3_compare0): Remove "*".
2504
2505 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
2506
2507         * tree.def (CASE_LABEL_EXPR): Add an operand.
2508         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2509
2510 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2511
2512         * c-decl.c (c_override_global_bindings_to_false): Remove.
2513         (global_bindings_p): Don't check
2514         c_override_global_bindings_to_false.
2515         * c-tree.h (c_override_global_bindings_to_false): Remove.
2516         * c-typeck.c (composite_type): Don't set
2517         c_override_global_bindings_to_false.
2518
2519 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2520
2521         PR target/48857, 48495
2522         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2523         (VSX_MODE): Ditto.
2524         (VSX_MOVE_MODE): Ditto.
2525         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2526         VSX vector types.  Add V2DImode.
2527         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2528         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2529         (MODES_TIEABLE_P): Ditto.
2530
2531         * config/rs6000/rs6000.c (rs6000_emit_move): Use
2532         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2533         VSX_VECTOR_MODE.
2534         (init_cumulative_args): Ditto.
2535         (rs6000_function_arg_boundary): Ditto.
2536         (rs6000_function_arg_advance_1): Ditto.
2537         (rs6000_function_arg): Ditto.
2538         (rs6000_function_ok_for_sibcall): Ditto.
2539         (emit_frame_save): Ditto.
2540         (rs6000_function_value): Ditto.
2541         (rs6000_libcall_value): Ditto.
2542
2543 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2544
2545         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2546         i386/darwin-lib.h to $libgcc_tm_file.
2547         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2548
2549 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2550
2551         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2552
2553 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2554
2555         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2556         * config/rs6000/rs6000-tables.opt: New file (generated).
2557         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2558         rs6000/rs6000-tables.opt to extra_options.
2559         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2560         * config/rs6000/rs6000.c (rs6000_select): Remove.
2561         (processor_target_table): Move contents to rs6000-cpus.def.
2562         (darwin_rs6000_override_options): Check
2563         global_options_set.x_rs6000_cpu_index instead of
2564         rs6000_select[1].string.
2565         (rs6000_option_override_internal): Likewise.
2566         (rs6000_handle_option): Don't assert that global structures are in
2567         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
2568         (rs6000_default_cpu): New variable.
2569         (rs6000_file_start): Set it instead of local default_cpu.  Check
2570         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2571         global_options_set.x_rs6000_tune_index instead of rs6000_select.
2572         (rs6000_darwin_file_start): Check rs6000_default_cpu and
2573         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2574         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2575         rs6000_select): Remove.
2576         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2577         Remove.
2578         (mcpu=, mtune=): Use Var, Init, Enum and Save.
2579         * config/rs6000/t-rs6000
2580         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2581         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2582         global_options_set.x_rs6000_cpu_index instead of
2583         rs6000_select[1].string.
2584         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2585         global_options_set.x_rs6000_cpu_index instead of
2586         rs6000_select[1].string.
2587
2588 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2589
2590         * config.gcc (libgcc_tm_file): Define instead of including files
2591         from ../../libgcc/config/ in tm_file.
2592         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2593         * configure: Regenerate.
2594         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2595         libgcc_tm.h, cs-libgcc_tm.h): New.
2596         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2597         (clean): Remove libgcc_tm.h.
2598         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2599         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2600         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2601
2602 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
2603
2604         PR target/48896
2605         * config/avr/avr.c (avr_ret_register): Return unsigned int
2606         instead of int.
2607         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2608         it to avr_libcall_value.
2609         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2610         expand_expr.
2611         (avr_expand_binop_builtin): Ditto.
2612         (avr_expand_unop_builtin): Ditto.
2613
2614 2011-05-10  DJ Delorie  <dj@redhat.com>
2615
2616         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2617         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2618         * config/rx/rx.c (rx_align_for_label): Add label and
2619         uses_threshold parameters.  Do not align when the label is not
2620         used enough.
2621         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2622
2623 2011-05-10  Richard Guenther  <rguenther@suse.de>
2624
2625         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2626         a series of conversions and apply foldings similar to what
2627         fold-const does.
2628         (tree_ssa_forward_propagate_single_use_vars): Call it.
2629
2630 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
2631
2632         PR tree-optimization/48611
2633         PR tree-optimization/48794
2634         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2635         referenced from RESX or EH_DISPATCH arguments.
2636
2637         PR debug/48928
2638         * dfp.c (decimal_to_decnumber): Handle conversion from
2639         dconst{1,2,m1,half}.
2640
2641 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2642
2643         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2644         for !flag_prefer_avx128.
2645         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2646
2647 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2648
2649         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2650         (fold_ternary_loc): Use expr_location_or.
2651
2652 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2653
2654         PR debug/48853
2655         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2656         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2657         Pmode and mem_mode is not VOIDmode.
2658
2659 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2660
2661         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2662         TYPE_QUAL_RESTRICT): Convert to enum.
2663
2664 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2665
2666         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2667         (const_pow2_1_to_8_operand): Ditto.
2668         (const_pow2_1_to_128_operand): Ditto.
2669         (const_pow2_1_to_32768_operand): Ditto.
2670         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2671         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
2672         in insn constraint to check integer value of operand 3.
2673         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2674
2675         (PINSR_MODE): New mode iterator.
2676         (sse2p4_1): New mode attribute.
2677         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2678         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2679         iterator.  Use const_int_operand instead of
2680         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
2681         exact_log2 in insn constraint to check integer value of operand 3.
2682
2683 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2684
2685         * config/i386/sse.md (blendbits): Remove mode attribute.
2686         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2687         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2688         Check integer value of operand 3 in insn constraint.
2689
2690 2011-05-09  Richard Guenther  <rguenther@suse.de>
2691
2692         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2693         for diagnostics.
2694         (lto_symtab_merge): Likewise.  Do not register types here.
2695         (lto_symtab_merge_decls_2): Likewise.
2696         (lto_symtab_merge_decls_1): Likewise.
2697         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2698         * gimple.c (enum gtc_mode): Declare.
2699         (gimple_types_compatible_p): Make static.
2700
2701 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2702
2703         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2704         temporary register to match Pmode.
2705
2706 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2707
2708         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2709         and *vec_concatv4si_1_avx.
2710
2711 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2712
2713         PR rtl-optimization/48927
2714         * ira-conflicts.c (commutative_constraint_p): Use
2715         recog_data.alternative_enabled_p to disable alternatives where
2716         "enabled" attribute is false.
2717         (get_dup_num): Ditto.
2718         * ira-lives.c (single_reg_class): Ditto.
2719         (ira_implicitly_set_insn_hard_regs): Ditto.
2720
2721 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2722
2723         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2724         (dataflow_set_preserve_mem_locs): Likewise.
2725
2726 2011-05-09  Philipp Thomas  <pth@suse.de>
2727
2728         * config/mep/mep.c (mep_validate_vliw): Syntax description
2729         should not be translated.
2730
2731 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
2732
2733         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2734         * config/mips/mips-tables.opt: New file (generated).
2735         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2736         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2737         MIPS_ARCH_OPTION_NATIVE): Define.
2738         * config/mips/mips.c (mips_cpu_info_table): Move contents to
2739         mips-cpus.def.
2740         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2741         mips_parse_cpu): Remove.
2742         (mips_cpu_info_from_opt, mips_default_arch): New.
2743         (mips_handle_option): Don't assert that global structures are in
2744         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2745         (mips_option_override): Use new variables and functions to set
2746         state of these options.  Use strcmp to check for individual CPU names.
2747         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2748         definition.
2749         * config/mips/mips.opt (march=): Use ToLower and Enum.
2750         (mips): Use ToLower, Enum and Var.
2751         (mtune=): Use ToLower and Enum.
2752         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2753
2754 2011-05-08  Jan Hubicka  <jh@suse.cz>
2755
2756         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2757         Arrange type pairs to be UID ordered.
2758         (gimple_lookup_type_leader): Make inline.
2759
2760 2011-05-09  Nick Clifton  <nickc@redhat.com>
2761
2762         PR target/48899
2763         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2764         PROCESSOR_DEFAULT.
2765
2766         PR target/48897
2767         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2768         variable 's'.
2769
2770 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
2771
2772         * combine.c (simplify_comparison): Abstract out parts into...
2773         (simplify_compare_const): ... new function.
2774         (try_combine): Generalize parallel arithmetic/compare combining
2775         to call simplify_compare_const() and CANONICALIZE_COMPARE().
2776
2777 2011-05-08  Jan Hubicka  <jh@suse.cz>
2778
2779         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2780         (cgraph_create_virtual_clone): Call hooks once virtual clone
2781         is finished.
2782         * cgraph.h (cgraph_clone_node): Update prototype.
2783         * ipa-cp.c (ipcp_estimate_growth): Use
2784         estimate_ipcp_clone_size_and_time.
2785         * ipa-inline-transform.c (clone_inlined_nodes): Update.
2786         * lto-cgraph.c (input_node): Update.
2787         * ipa-inline.c (recursive_inlining): Update.
2788         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2789         (evaluate_conditions_for_known_args): Break out from ...
2790         (evaluate_conditions_for_edge): ... here.
2791         (evaluate_conditions_for_ipcp_clone): New function.
2792         (inline_node_duplication_hook): Update clone summary based
2793         on parameter map.
2794         (estimate_callee_size_and_time): Rename to ...
2795         (estimate_node_size_and_time): take NODE instead of EDGE;
2796         take POSSIBLE_TRUTHS as argument.
2797         (estimate_callee_size_and_time): Update.
2798         (estimate_ipcp_clone_size_and_time): New function.
2799         (do_estimate_edge_time): Update.
2800
2801 2011-05-08  Richard Guenther  <rguenther@suse.de>
2802
2803         PR middle-end/48908
2804         PR middle-end/48905
2805         * expmed.c (expand_shift_1): Compute adjusted constant shift
2806         amount manually.
2807
2808 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2809
2810         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2811
2812 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2813
2814         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2815
2816 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2817
2818         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2819
2820 2011-05-07  Jan Hubicka  <jh@suse.cz>
2821
2822         * ipa-inline-transform.c (inline_call): Account when program size
2823         decreases.
2824         * ipa-inline.c (relative_time_benefit): New function.
2825         (edge_badness): Reorganize to be power 2 based; fix thinko when
2826         computing badness for negative growth; update comments to match
2827         reality; better dumps.
2828
2829 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2830
2831         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2832         type to bool and adjust comment.
2833         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2834         (fold_mathfn_compare): Remove calls to global_bindings_p.
2835         (fold_inf_compare): Likewise.
2836         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2837         * c-tree.h (global_bindings_p): Adjust prototype.
2838         * c-decl.c (global_bindings_p): Return bool and simplify.
2839
2840 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
2841
2842         PR tree-optimization/48837
2843         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2844         when accumulator transformation is performed.
2845
2846 2011-05-06  Jan Hubicka  <jh@suse.cz>
2847
2848         * i386.h (ix86_tune_indices): Add
2849         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2850         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2851         * i386.c (initial_ix86_tune_features): Add
2852         X86_SOFTARE_PREFETCHING_BENEFICIAL.
2853         (software_prefetching_beneficial_p): Remove predicate.
2854         (ix86_option_override_internal): Use new macro.
2855
2856 2011-05-06  Jan Hubicka  <jh@suse.cz>
2857
2858         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2859
2860 2011-05-06  Jan Hubicka  <jh@suse.cz>
2861
2862         * cgraph.c (cgraph_add_thunk): Create real function node instead
2863         of alias node; finalize it and mark needed/reachale; arrange visibility
2864         to be right and add it into the corresponding same comdat group list.
2865         (dump_cgraph_node): Dump thunks.
2866         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2867         cgraph_function_with_gimple_body_p,
2868         cgraph_first_function_with_gimple_body,
2869         cgraph_next_function_with_gimple_body): New functions.
2870         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2871         New macros.
2872         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2873         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2874         * cgraphunit.c (cgraph_finalize_function): Only look into possible
2875         devirtualization when optimizing.
2876         (verify_cgraph_node): Verify thunks.
2877         (cgraph_analyze_function): Analyze thunks.
2878         (cgraph_mark_functions_to_output): Output thunks only in combination
2879         with function they are assigned to.
2880         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2881         alias into normal node.
2882         (assemble_thunks): New functoin.
2883         (cgraph_expand_function): Use it.
2884         * lto-cgraph.c (lto_output_node): Stream thunks.
2885         (input_overwrite_node): Stream in thunks.
2886         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2887         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2888         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2889         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2890         (inline_analyze_function): Do not care about thunk jump functions.
2891         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2892         * ipa-prop.c (ipa_prop_write_jump_functions): Use
2893         cgraph_function_with_gimple_body_p.
2894         * passes.c (do_per_function_toporder): Use
2895         cgraph_function_with_gimple_body_p.
2896         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2897         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2898         (function_called_by_processed_nodes_p): Likewise.
2899
2900 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2901
2902         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2903         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2904         entries.
2905         (mabi=): Replace with separate entries for mabi=altivec,
2906         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2907         mabi=ieeelongdouble and mabi=ibmlongdouble.
2908         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2909         check for -mabi=spe without SPE ABI support here.
2910         (rs6000_handle_option): Replace OPT_mabi_ handling with
2911         OPT_mabi_altivec and OPT_mabi_spe handling.
2912
2913 2011-05-06  Cary Coutant  <ccoutant@google.com>
2914
2915         * dwarf2out.c (contains_subprogram_definition): New function.
2916         (should_move_die_to_comdat): Call it.
2917
2918 2011-05-06  Jeff Law  <law@redhat.com>
2919
2920         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2921         remove_ctrl_stmt_and_useless_edges.
2922         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2923         (fixup_template_block, thread_single_edge): Likewise.
2924         (mark_threaded_blocks): Use THREAD_TARGET.
2925
2926 2011-05-06  Alan Modra  <amodra@gmail.com>
2927
2928         PR target/48900
2929         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2930         const0_rtx as the arg to the dummy __tls_get_addr libcall.
2931
2932 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2933
2934         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2935         constraint modifier to "r".
2936
2937 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2938
2939         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2940         fall through for OPT_mcmodel_.
2941
2942 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2943
2944         * config/s390/s390.c (s390_asm_trampoline_template): Comment
2945         instruction sizes.
2946         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2947
2948 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2949
2950         PR target/47930
2951         * config/arm/arm.opt (marm): Document it.
2952         (mthumb): Reject negative variant.
2953
2954 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2955
2956         PR target/48898
2957         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2958         Fix typo in "ccvt" variable name.
2959
2960 2011-05-06  Tristan Gingold  <gingold@adacore.com>
2961
2962         PR target/48895
2963         * config/vms/vms-ar.c (main): Remove cwd variable.
2964
2965 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2966
2967         PR debug/48902
2968         * var-tracking.c (prepare_call_arguments): Move else before #endif.
2969
2970 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
2971
2972         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2973         * gimplify.c (gimplify_switch_expr): Likewise.
2974         * omp-low.c (expand_omp_sections): Likewise.
2975         * tree-eh.c (lower_try_finally_switch): Likewise.
2976         (lower_eh_dispatch): Likewise.
2977         * tree.h (build_case_label): Declare.
2978         * tree.c (build_case_label): Define.
2979
2980 2011-05-05  Jason Merrill  <jason@redhat.com>
2981
2982         PR c++/40975
2983         * tree-inline.c (copy_tree_r): Use copy_statement_list.
2984         (copy_statement_list): Don't recurse.
2985         * stor-layout.c (copy_self_referential_tree_r): Don't allow
2986         STATEMENT_LIST.
2987
2988 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2989
2990         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2991         through from -mfpu= handling.
2992         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2993
2994 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
2995
2996         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2997         POST_MODIFY.
2998
2999 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
3000
3001         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
3002         for 11.31.
3003         (hppa[12]*-*-hpux11*): Ditto.
3004         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
3005         * config/ia64/hpux-unix2003.h: New.
3006         * config/pa/pa-hpux1131.opt: New.
3007         * config/pa/pa-hpux1131.h: New.
3008         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
3009         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
3010         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
3011
3012 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
3013
3014         PR debug/48853
3015         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
3016         instead of mode as 3rd argument to recursive call.
3017         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
3018         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
3019         VOIDmode.
3020         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
3021         don't give up if mode is Pmode and mem_mode is not VOIDmode.
3022         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
3023         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
3024
3025 2011-05-05  Julian Brown  <julian@codesourcery.com>
3026
3027         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
3028         parenthesis in D-register case.
3029
3030 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3031
3032         * opt-functions.awk (var_type_struct): Handle Enum options.
3033         * optc-gen.awk: Don't check range of variables of character type.
3034         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
3035         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
3036         rs6000_sdata_name, rs6000_explicit_options): Remove.
3037         (rs6000_option_override_internal): Check for -malign-power here.
3038         Use global_options_set instead of rs6000_explicit_options.
3039         (rs6000_parse_fpu_option): Remove.
3040         (rs6000_handle_option): Access variables via opts and opts_set
3041         pointers.  Use error_at and warning_at.  Add fall-through
3042         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
3043         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
3044         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
3045         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
3046         here.  Don't use rs6000_parse_fpu_option.
3047         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
3048         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
3049         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
3050         (mrecip=): Use Var.
3051         (mspe): Use Var and Save.
3052         (mtraceback=): Use Enum and Var.
3053         (rs6000_traceback_type): New Enum and EnumValue entries.
3054         (mfloat-gprs=): Use Enum, Var and Save.
3055         (rs6000_float_gprs): New Enum and EnumValue entries.
3056         (mlong-double-): use Var and Save.
3057         (msched-costly-dep=, minsert-sched-nops=): Use Var.
3058         (malign-): Use Enum and Var.
3059         (rs6000_alignment_flags): New Enum and EnumValue entries.
3060         (mfpu=): Use Enum.
3061         (fpu_type_t): New Enum and EnumValue entries.
3062         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3063         global_options_set instead of rs6000_explicit_options.
3064         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3065         global_options_set instead of rs6000_explicit_options.
3066         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3067         global_options_set instead of rs6000_explicit_options.
3068         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3069         global_options_set instead of rs6000_explicit_options.
3070         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
3071         global_options_set instead of rs6000_explicit_options.
3072         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3073         global_options_set instead of rs6000_explicit_options.
3074         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
3075         definition.
3076         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3077         global_options_set instead of rs6000_explicit_options.
3078         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
3079         (rs6000_cmodel): New Enum and EnumValue entries.
3080         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3081         global_options_set instead of rs6000_explicit_options.
3082         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
3083         (mtls-size=): Use Enum and Var.
3084         (rs6000_tls_size): New Enum and EnumValue entries.
3085
3086 2011-05-05  Michael Matz  <matz@suse.de>
3087
3088         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
3089         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
3090         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
3091         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
3092         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
3093         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
3094         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
3095         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
3096         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
3097         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
3098         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
3099         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
3100         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
3101         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
3102         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
3103         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
3104
3105 2011-05-05  Richard Guenther  <rguenther@suse.de>
3106
3107         * expmed.c (expand_variable_shift): Rename to ...
3108         (expand_shift_1): ... this.  Take an expanded shift amount.
3109         For rotates recurse directly not building trees for the shift amount.
3110         (expand_variable_shift): Wrap around expand_shift_1.
3111         (expand_shift): Adjust.
3112
3113 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
3114
3115         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
3116
3117 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3118
3119         * tree.h (get_pending_sizes): Remove prototype.
3120         (put_pending_size): Likewise.
3121         (put_pending_sizes): Likewise.
3122         * stor-layout.c (pending_sizes): Delete.
3123         (get_pending_sizes): Likewise.
3124         (put_pending_size): Likewise.
3125         (put_pending_sizes): Likewise.
3126         (variable_size): Do not call put_pending_size and tidy up.
3127         * function.h (struct function): Remove dont_save_pending_sizes_p.
3128         * lto-streamer-in.c (input_function): Do not stream it.
3129         * lto-streamer-out.c (output_function): Likewise.
3130         * tree-inline.c (initialize_cfun): Do not copy it.
3131         * c-decl.c (store_parm_decls): Do not set it.
3132         * omp-low.c (create_task_copyfn): Likewise.
3133         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3134
3135 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
3136
3137         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
3138         conditions.
3139         (*movdf_internal): Ditto.
3140         (*movdf_internal_nointeger): Ditto.
3141         (*movsf_internal): Ditto.
3142
3143 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3144
3145         * c-decl.c (finish_decl): Don't call get_pending_sizes.
3146         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
3147         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
3148         (c_variable_size): Remove.
3149         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
3150         call put_pending_sizes.
3151         (get_parm_info): Add parameter expr.  Use it to set
3152         arg_info->pending_sizes.
3153         (store_parm_decls): Use arg_info->pending_sizes instead or calling
3154         get_pending_sizes.
3155         * c-parser.c (c_parser_parms_declarator): Update call to
3156         c_parser_parms_list_declarator.
3157         (c_parser_parms_list_declarator): Take parameter expr.  Update
3158         call to push_parm_decl.  Update recursive call.  Don't call
3159         get_pending_sizes.  Update calls to get_parm_info.
3160         (c_parser_objc_method_definition): Update calls to
3161         c_parser_objc_method_decl and objc_start_method_definition.
3162         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
3163         (c_parser_objc_method_decl): Add parameter expr.  Update call to
3164         grokparm.
3165         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
3166         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
3167         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
3168
3169 2011-05-05  Michael Hope  <michael.hope@linaro.org>
3170
3171         PR pch/45979
3172         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
3173         __ARM_EABI__ hosts.
3174
3175 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3176
3177         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
3178         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
3179         (spu_output_mi_thunk): New function.
3180
3181 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3182
3183         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
3184         targetm.asm_out.print_operand.
3185         * config/sol2.c: Include target.h.
3186
3187 2011-05-04  Jan Hubicka  <jh@suse.cz>
3188
3189         * ipa-inline.c (reset_edge_caches): New function.
3190         (update_caller_keys): Add check_inlinablity_for; do not
3191         reset edge caches; remove now unnecesary loop.
3192         (update_callee_keys): Add comments; reset node_growth_cache of callee.
3193         (update_all_callee_keys): Likewise.
3194         (inline_small_functions): Sanity check cache; update code
3195         recomputing it.
3196
3197 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
3198
3199         PR rtl-optimization/47612
3200         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
3201         as the last insn of the sequence to be moved.
3202
3203 2011-05-04  Tobias Burnus  <burnus@net-b.de>
3204
3205         PR fortran/48864
3206         * doc/invoke.texi (Ofast): Document that it
3207         enables Fortran's -fno-protect-parens.
3208
3209 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3210
3211         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
3212
3213 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3214
3215         * stor-layout.c (variable_size): Do not issue errors.
3216
3217 2011-05-04  Richard Guenther  <rguenther@suse.de>
3218
3219         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
3220         for array-ref indices.
3221         (tree_coverage_counter_addr): Likewise.
3222         (build_fn_info_type): Use size_int for index types.
3223         (build_gcov_info): Likewise.
3224
3225 2011-05-04  Richard Guenther  <rguenther@suse.de>
3226
3227         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
3228         to build_int_cst.
3229         * c-typeck.c (really_start_incremental_init): Use bitsize_int
3230         for constructor indices.
3231         (push_init_level): Likewise.
3232
3233 2011-05-04  Richard Guenther  <rguenther@suse.de>
3234
3235         * explow.c (promote_mode): Move variable declarations before code.
3236
3237 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
3238
3239         * tree.h (build_function_type_array): Declare.
3240         (build_varargs_function_type_array): Declare.
3241         (build_function_type_vec, build_varargs_function_type_vec): Define.
3242         * tree.c (build_function_type_array_1): New function.
3243         (build_function_type_array): New function.
3244         (build_varargs_function_type_array): New function.
3245
3246 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
3247
3248         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
3249         before setting STMT_VINFO_TYPE.
3250
3251 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3252
3253         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
3254         instead of spu_pass_by_reference.
3255
3256 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3257
3258         * calls.c (emit_library_call_value_1): Invoke
3259         promote_function_mode hook on libcall arguments.
3260         * explow.c (promote_function_mode, promote_mode): Handle TYPE
3261         argument being NULL.
3262         * targhooks.c (default_promote_function_mode): Lisewise.
3263         * config/s390/s390.c (s390_promote_function_mode): Likewise.
3264         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
3265
3266         * doc/tm.texi: Document that TYPE argument might be NULL.
3267
3268 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3269
3270         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
3271
3272 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3273
3274         From Bernd Schmidt
3275         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
3276
3277 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3278
3279         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
3280         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
3281         Move ...
3282         * mips-tfile.c: ... here.
3283         Don't include coretypes.h, tm.h, filenames.h.
3284         (saber_stop): Remove definition and all calls.
3285         [__SABER__]: Remove.
3286         (__LINE__): Remove default.
3287         (Size_t, Ptrdiff_t): Remove definitions.
3288         Replace by size_t, ptrdiff_t.
3289         [!MIPS_DEBUGGING_INFO]: Remove.
3290         (SHASH_SIZE, THASH_SIZE): Remove defaults.
3291         (progname): Add const.
3292         (STATIC): Remove.
3293         Replace all uses by static.
3294         (ALIGN_SYMTABLE_OFFSET): Remove default.
3295         * mips-tdump.c: Don't include coretypes.h, tm.h.
3296         Remove !MIPS_IS_STAB guard.
3297         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
3298         $(TM_H), filenames.h dependencies.
3299         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
3300
3301 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3302
3303         From Jie Zhang
3304         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
3305         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3306
3307 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3308
3309         From Bernd Schmidt
3310         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3311         account and save/restore RETS.
3312         (PROFILE_BEFORE_PROLOGUE): Define.
3313         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
3314         the push insn to use predecrement.
3315
3316 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3317
3318         From Jie Zhang
3319         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
3320
3321 2011-05-04  Nick Clifton  <nickc@redhat.com>
3322
3323         * config/mn10300/mn10300.c: Include cfgloop.h.
3324         (DUMP): New macro.
3325         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
3326         Lcc or a FLcc insn into the instruction stream.
3327         (mn10300_block_contains_call): New function.  Returns true if the
3328         given basic block contains a CALL insn.
3329         (mn10300_loop_contains_call_insn): New function.  Returns true if
3330         the given loop contains a CALL insn.
3331         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
3332         to use the SETLB and Lcc or FLcc insns.
3333         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3334         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3335         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
3336         disable the SETLB optimization.
3337         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3338         __SETLB__ or __NO_SETLB__.
3339         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3340         (movsf_internal): Handle MDR register.
3341         (cmpsi): Make visible.
3342         (setlb): New pattern.
3343         (Lcc): New pattern.
3344         (FLcc): New pattern.
3345
3346 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3347
3348         PR target/48860
3349         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3350         for reg<->xmm moves.
3351         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3352         (vec_concatv2di_rex64_sse): Ditto.
3353         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3354         (*vec_extractv2di_1_rex64): Ditto.
3355
3356         Revert:
3357         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3358
3359         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3360         reg<->xmm moves.
3361         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3362
3363 2011-05-04  Richard Guenther  <rguenther@suse.de>
3364
3365         * tree.h (int_const_binop): Remove notrunc argument.
3366         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
3367         create integer constants that are properly truncated.
3368         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3369         (const_binop): Remove zero notrunc argument to int_const_binop.
3370         (size_binop_loc): Likewise.
3371         (fold_div_compare): Likewise.
3372         (maybe_canonicalize_comparison_1): Likewise.
3373         (fold_comparison): Likewise.
3374         (fold_binary_loc): Likewise.
3375         (multiple_of_p): Likewise.
3376         * expr.c (store_constructor): Likewise.
3377         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3378         (maybe_fold_stmt_addition): Likewise.
3379         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3380         * stor-layout.c (layout_type): Likewise.
3381         * tree-data-ref.c (tree_fold_divides_p): Likewise.
3382         * tree-sra.c (build_ref_for_offset): Likewise.
3383         (build_user_friendly_ref_for_offset): Likewise.
3384         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3385         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3386         * tree-ssa-loop-niter.c (inverse): Likewise.
3387         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3388         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3389         * tree-switch-conversion.c (check_range): Likewise.
3390         (build_constructors): Likewise.
3391         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3392         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3393         (extract_range_from_assert): Likewise.
3394         (vrp_int_const_binop): Likewise.
3395         (extract_range_from_binary_expr): Likewise.
3396         (extract_range_from_unary_expr): Likewise.
3397         (check_array_ref): Likewise.
3398         (find_case_label_range): Likewise.
3399         (simplify_div_or_mod_using_ranges): Likewise.
3400         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3401         comparing case labels for merging.
3402
3403 2011-05-03  Mark Wielaard  <mjw@redhat.com>
3404
3405         * dwarf2out.c (debug_str_hash_forced): Removed.
3406         (gen_label_for_indirect_string): Removed.
3407         (get_debug_string_label): Removed.
3408         (AT_string_form): Generate label directly.
3409         (output_indirect_string): Test indirect_string_node for
3410         DW_FORM_strp instead of checking label and refcount.
3411         (prune_indirect_string): Removed.
3412         (prune_unused_types): Don't check debug_str_hash_forced or
3413         call prune_indirect_string.
3414
3415 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3416
3417         PR other/48093
3418         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3419
3420 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3421
3422         PR debug/47994
3423         PR debug/47919
3424         * combine.c (try_combine): Skip debug insns at m_split tests.
3425
3426 2011-04-26  Mark Wielaard  <mjw@redhat.com>
3427
3428         PR42288
3429         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3430         when info_section_emitted.
3431
3432 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
3433
3434         * config/mips/mips-opts.h: New.
3435         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3436         to mips-opts.h.
3437         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3438         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3439         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
3440         via opts pointer.
3441         * config/mips/mips.h (enum mips_code_readable_setting): Move to
3442         mips-opts.h.
3443         (mips_abi, mips_code_readable): Don't declare.
3444         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3445         (mabi=): Use Enum and Var.
3446         (mips_abi): New Enum and EnumValue entries.
3447         (mcode-readable=): Use Enum and Var.
3448         (mips_code_readable_setting): New Enum and EnumValue entries.
3449         (mr10k-cache-barrier=): Use Enum and Var.
3450         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3451
3452 2011-05-03  Jan Hubicka  <jh@suse.cz>
3453
3454         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3455         replace hash by pointer map.
3456         (cgraph_node_set_element_def, cgraph_node_set_element,
3457         const_cgraph_node_set_element, varpool_node_set_element_def,
3458         varpool_node_set_element, const_varpool_node_set_element): Remove.
3459         (free_cgraph_node_set, free_varpool_node_set): New function.
3460         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3461         * tree-emutls.c: Free varpool node set.
3462         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3463         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3464         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3465         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3466         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3467         Move here from ipa.c; implement using pointer_map
3468         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3469         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3470         debug_cgraph_node_set, varpool_node_set_new,
3471         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3472         dump_varpool_node_set, debug_varpool_node_set):
3473         Move to ipa-uitls.c.
3474         * passes.c (ipa_write_summaries): Update.
3475
3476 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3477
3478         From Mike Frysinger:
3479         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3480         bf542/bf544/bf547/bf548/bf549.
3481
3482 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3483
3484         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3485
3486 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3487
3488         From Bernd Schmidt:
3489         * config/bfin/bfin.md (MOVCC): New mode_macro.
3490         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3491         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
3492         comments from generated assembly.
3493
3494 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3495
3496         From Bernd Schmidt
3497         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3498         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3499         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3500         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3501         * config/bfin/lib1funcs.asm (___muldi3): New function.
3502
3503 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3504
3505         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3506         build_function_type_list instead of build_function_type.
3507         Rearrange initialization of `args' to do so.
3508
3509 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3510
3511         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3512         instead of build_function_type.
3513
3514 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3515
3516         * config/rs6000/rs6000.c (spe_init_builtins): Call
3517         build_function_type_list instead of build_function_type.
3518         (paired_init_builtins, altivec_init_builtins): Likewise.
3519         (builtin_function_type): Likewise.
3520
3521 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3522
3523         * config/sh/sh.c (sh_media_init_builtins): Call
3524         build_function_type_list instead of build_function_type.
3525
3526 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3527
3528         * config/sparc/sparc.c (sparc_file_end): Call
3529         build_function_type_list instead of build_function_type.
3530
3531 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3532
3533         * config/alpha/alpha.c (alpha_init_builtins): Call
3534         build_function_type_list instead of build_function_type.
3535
3536 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3537
3538         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3539         build_function_type_list instead of build_function_type.
3540
3541 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3542
3543         * config/iq2000/i2000.c (iq2000_init_builtins): Call
3544         build_function_type_list instead of build_function_type.
3545         Delete `endlink' variable.
3546
3547 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3548
3549         * config/avr/avr.c (avr_init_builtins): Call
3550         build_function_type_list instead of build_function_type.
3551
3552 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3553
3554         * config/picochip/picochip.c (picochip_init_builtins): Call
3555         build_function_type_list instead of build_function_type.
3556         Delete `endlink' variable.
3557
3558 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3559
3560         * config/bfin/bfin.c (bfin_init_builtins): Call
3561         build_function_type_list instead of build_function_type.
3562
3563 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3564
3565         From Bernd Schmidt
3566         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3567         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
3568
3569 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3570
3571         From Jie Zhang:
3572         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3573         libbffastfp overrides libgcc when -mfast-fp.
3574
3575 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3576
3577         Originally from Bernd Schmidt
3578         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3579         * config/bfin/bfin.c (override_options): Test it and error if
3580         TARGET_FDPIC.
3581
3582 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3583
3584         Originally From Bernd Schmidt
3585         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3586         FD-PIC.
3587
3588 2011-05-03  Jeff Law  <law@redhat.com>
3589
3590         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3591         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3592         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3593         than accessing AUX field directly.  Free the AUX field before
3594         clearing it.
3595         (thread_block, thread_through_loop_header): Likewise.
3596         (thread_single_edge, mark_threaded_blocks): Likewise.
3597         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
3598         (register_jump_thread): Do not attempt to thread to a NULL edge.
3599
3600 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3601
3602         * function.c (init_function_start): Call decide_function_section.
3603         * varasm.c (decide_function_section): New function.
3604         (assemble_start_function): When not using
3605         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3606         or first_function_block_is_cold.
3607         * rtl.h (decide_function_section): Declare.
3608
3609 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3610             Jakub Jelinek  <jakub@redhat.com>
3611
3612         PR target/48774
3613         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3614         only succeed if req_mode is the same as set_mode.
3615
3616 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3617
3618         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3619         * genemit.c (gen_exp): Handle RETURN.
3620         * emit-rtl.c (verify_rtx_sharing): Likewise.
3621         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3622         * rtl.c (copy_rtx): RETURN is shared.
3623         * rtl.h (enum global_rtl_index): Add GR_RETURN.
3624         (ret_rtx): New.
3625         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3626         * config/s390/s390.c (s390_emit_epilogue): Likewise.
3627         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3628         * config/cris/cris.c (cris_expand_return): Likewise.
3629         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3630         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3631         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3632         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3633         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3634         Likewise.
3635         * config/v850/v850.c (expand_epilogue): Likewise.
3636         * config/bfin/bfin.c (bfin_expand_call): Likewise.
3637         * config/arm/arm.md (epilogue): Likewise.
3638         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3639         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3640         variable to ret_reg.
3641
3642 2011-05-03  Richard Guenther  <rguenther@suse.de>
3643
3644         PR lto/48846
3645         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3646         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3647         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3648
3649 2011-05-03  Richard Guenther  <rguenther@suse.de>
3650
3651         * c-decl.c (grokdeclarator): Instead of looking at
3652         TREE_OVERFLOW check if the constant fits in the index type.
3653
3654 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3655
3656         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3657         (vec_store_lanes<mode><mode>): Likewise.
3658
3659 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3660
3661         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3662         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3663         convert_optab_index values.
3664         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3665         * genopinit.c (optabs): Initialize the new optabs.
3666         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3667         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3668         (expand_STORE_LANES): New functions.
3669         * tree.h (build_array_type_nelts): Declare.
3670         * tree.c (build_array_type_nelts): New function.
3671         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3672         (vect_model_load_cost): Likewise.
3673         (vect_store_lanes_supported, vect_load_lanes_supported)
3674         (vect_record_strided_load_vectors): Declare.
3675         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3676         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3677         (vect_transform_strided_load): Split out statement recording into...
3678         (vect_record_strided_load_vectors): ...this new function.
3679         * tree-vect-stmts.c (create_vector_array, read_vector_array)
3680         (write_vector_array, create_array_ref): New functions.
3681         (vect_model_store_cost): Add store_lanes_p argument.
3682         (vect_model_load_cost): Add load_lanes_p argument.
3683         (vectorizable_store): Try to use store-lanes functions for
3684         interleaved stores.
3685         (vectorizable_load): Likewise load-lanes and loads.
3686         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3687         to vect_model_store_cost.
3688         (vect_build_slp_tree): Likewise vect_model_load_cost.
3689
3690 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3691
3692         * hooks.h (hook_bool_mode_uhwi_false): Declare.
3693         * hooks.c (hook_bool_mode_uhwi_false): New function.
3694         * target.def (array_mode_supported_p): New hook.
3695         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3696         * doc/tm.texi: Regenerate.
3697         * stor-layout.c (mode_for_array): New function.
3698         (layout_type): Use it.
3699         * config/arm/arm.c (arm_array_mode_supported_p): New function.
3700         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3701
3702 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
3703
3704         PR target/48723
3705         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3706         for -fstack-check if the size to allocate is negative.
3707
3708 2011-05-02  Lawrence Crowl  <crowl@google.com>
3709
3710         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3711         (timevar_cond_start): New for starting a timer only when it is not
3712         already running.
3713         (timevar_cond_stop): New for stopping a timer when it was not already
3714         running.
3715
3716         * timevar.c (timevar_stop): Enable start/stop timers to start again.
3717         (timevar_cond_start): New as above.
3718         (timevar_cond_stop): New as above.
3719
3720         * timevar.def: Add start/stop timers for compiler phases,
3721         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3722         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3723         and TV_PHASE_FINALIZE.
3724         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3725         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3726         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3727         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3728         Make unused TV_OVERLOAD into a start/stop timer.
3729
3730         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3731         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3732         to indicate that they are start/stop timers.
3733
3734         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3735         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3736         Move initialization to do_compile.
3737         (do_compile): Add initialization from above.
3738         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3739
3740         * c-decl.c (c_write_global_declarations): Add start/stop of
3741         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3742
3743         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3744         or TV_PARSE_INLINE, as appropriate.
3745         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3746         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3747
3748 2011-05-02  Jason Merrill  <jason@redhat.com>
3749
3750         PR c++/40975
3751         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3752
3753 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
3754
3755         PR c/35445
3756         * c-decl.c (finish_decl): Only create a composite if the types are
3757         compatible.
3758
3759 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3760
3761         * config/fr30/fr30-protos.h (Mmode): Don't define.
3762         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
3763         definition where used.
3764         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3765         define.  Expand definitions where used.
3766         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3767         Expand definitions where used.
3768         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3769         rx_function_arg, rx_function_arg_advance,
3770         rx_function_arg_boundary): Expand definitions of those macros.
3771         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
3772         definition where used.
3773
3774 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3775
3776         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3777         reg<->xmm moves.
3778         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3779         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
3780         with *movv2sf_internal_rex64_avx.
3781         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3782         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3783         Use %v prefix in insn mnemonic to handle TARGET_AVX.
3784         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
3785         "vex" in "prefix" attribute calculation.
3786         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
3787
3788 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
3789
3790         PR target/47951
3791         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3792         inputs match the output.
3793
3794 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
3795
3796         PR target/47955
3797         * config/m68k/m68k.c (m68k_expand_prologue): Set
3798         current_function_static_stack_size.
3799
3800 2011-05-02   Jan Hubicka  <jh@suse.cz>
3801
3802         * lto-streamer.c (lto_streamer_cache_insert_1,
3803         lto_streamer_cache_lookup, lto_streamer_cache_create,
3804         lto_streamer_cache_delete): Use pointer map instead of hashtable.
3805         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3806
3807 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3808
3809         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3810         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3811         config/m68k/t-opts: New files.
3812         * config/m68k/m68k-tables.opt: New file (generated).
3813         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3814         extra_options and m68k/t-opts to tmake_file.
3815         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3816         (all_isas): Initialize using m68k-isas.def.
3817         (all_microarchs): Initialize using m68k-microarchs.def.
3818         (m68k_find_selection): Remove.
3819         (m68k_handle_option): Don't assert that global structures are in
3820         use.  Use error_at.  Access variables via opts pointer.  Don't
3821         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
3822         directly for -m68020-40 and -m68020-60.
3823         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3824         m68k_tune_entry here.
3825         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3826         to m68k-opts.h.
3827         (m68k_library_id_string): Remove declaration.
3828         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3829         (m68k_library_id_string): New Variable.
3830         (march=, mcpu=, mtune=): Use Enum and Var.
3831
3832 2011-05-02  Richard Guenther  <rguenther@suse.de>
3833
3834         * varasm.c (output_constructor_regular_field): Compute zero-based
3835         index with double-ints.  Make sure to ICE instead of producing
3836         wrong code.
3837         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3838         in asserts.  Properly use a signed type.
3839
3840 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3841
3842         * config/i386/sse.md (V): New mode iterator.
3843         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
3844         TARGET_SSE2.
3845         (V_256): Rename from AVX256MODE.
3846         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
3847         condition to all users.
3848         (VF1): Ditto.
3849         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
3850         condition to all users.
3851         (VF_128): Make V4SF mode unconditional.
3852         (VF_256): Rename from AVX256MODEF2P.
3853         (VI4F_128): Rename from SSEMODE4S.
3854         (VI8F_128): Rename from SSEMODE2D.
3855         (VI4F_256): Rename from AVX256MODE8P.
3856         (VI8F_256): Rename from AVX256MODE4P.
3857         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3858         (ssescalarmodesuffix): Remove SF and DF modes.
3859         (SSEMODE124): Remove.
3860         (SSEMODE1248): Ditto.
3861         (SSEMODEF2P): Ditto.
3862         (AVXMODEF2P): Ditto.
3863         (AVXMODEFDP): Ditto.
3864         (AVXMODEFSP): Ditto.
3865         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3866         unconditional.
3867         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
3868         unconditional.
3869         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3870         xop_pcmov_<mode>256.  Use V mode iterator.
3871
3872         Adjust RTX patterns globally for renamed mode attributes.
3873
3874 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3875
3876         * haifa-sched.c (sched_emit_insn): Emit insn before first
3877         non-scheduled insn.  Inform back-end about new insn.  Add
3878         new insn to scheduled_insns list.
3879
3880 2011-05-02  Richard Guenther  <rguenther@suse.de>
3881
3882         PR tree-optimization/48822
3883         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3884         (process_scc): Indicate which iteration we start.
3885
3886 2011-05-02  Jan Hubicka  <jh@suse.cz>
3887
3888         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3889         (lto_section_overrun): New.
3890         * lto-section-out.c (append_block): Rename to ...
3891         (lto_append_block): ... this one; export.
3892         (lto_output_1_stream): Move lto lto-streamer.h
3893         (lto_output_data_stream): Update.
3894         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3895         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3896         functions.
3897
3898 2011-05-02  Richard Guenther  <rguenther@suse.de>
3899
3900         * tree.c (tree_code_counts): New global array.
3901         (record_node_allocation_statistics): Count individual tree codes.
3902         (dump_tree_statistics): Dump individual code stats.
3903
3904 2011-05-01  Jan Hubicka  <jh@suse.cz>
3905
3906         * ipa-inline.c (caller_growth_limits): Fix thinko when
3907         looking for largest stack frame.
3908         * ipa-inline.h (dump_inline_summary): Declare.
3909         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3910         on stack usage.
3911         (dump_inline_summary): Export.
3912         (debug_inline_summary): Declare as DEBUG_FUNCTION.
3913
3914 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
3915
3916         * reginfo.c (memory_move_cost): Change rclass argument type form
3917         'enum reg_class' to reg_class_t.
3918         * reload.h (memory_move_cost): Update prototype.
3919         * postreload.c reload_cse_simplify_set): Change type dclass var to
3920         reg_class_t.
3921         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3922         Update prototype.
3923         (ira_allocate_and_set_costs): Change aclass argument type form
3924         'enum reg_class' to reg_class_t.
3925         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
3926         Change aclass argument type to reg_class_t.
3927         (update_conflict_hard_reg_costs): Change type aclass and pref vars
3928         to reg_class_t.
3929         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3930         memory_move_cost call.
3931
3932         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3933         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3934         Change type tmp var to reg_class_t.
3935
3936 2011-04-30  Jan Hubicka  <jh@suse.cz>
3937
3938         * ipa-inline.c (can_inline_edge_p): Disregard limits when
3939         inlining into function with flatten attribute.
3940         (want_inline_small_function_p): Be more realistic about inlining
3941         cold calls where callee size grows.
3942
3943 2011-04-30  Jan Hubicka  <jh@suse.cz>
3944
3945         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3946         flags.
3947
3948 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
3949
3950         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3951         PRINT_OPERAND_PUNCT_VALID_P): Remove.
3952         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3953         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3954         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3955         (print_operand): Rename to...
3956         (sparc_print_operand): ...this. Make static. Adjust
3957         sparc_print_operand function call.
3958         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3959         functions.
3960
3961 2011-04-30  Jan Hubicka  <jh@suse.cz>
3962
3963         PR middle-end/48752
3964         * ipa-inline.c (early_inliner): Disable when doing late
3965         addition of function.
3966
3967 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
3968
3969         * dwarf2out.c (get_address_mode): New inline.
3970         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3971         if not dwarf_strict emit
3972         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3973         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3974         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
3975         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3976         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3977         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3978         mem_loc_descriptor callers.
3979         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3980         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3981         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3982         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3983         (base_types): New variable.
3984         (get_base_type_offset, calc_base_type_die_sizes,
3985         base_type_for_mode, mark_base_types, base_type_cmp,
3986         move_marked_base_types): New functions.
3987         (calc_die_sizes): Assert that die_offset is 0 or equal to
3988         next_die_offset.
3989         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3990         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
3991         callers.  If not dwarf_strict, call mem_loc_descriptor even for
3992         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3993         (gen_subprogram_die): Don't give up on call site parameters
3994         with non-integral or large integral modes.  Adjust
3995         mem_loc_descriptor callers.
3996         (prune_unused_types): Call prune_unused_types_mark on base_types
3997         vector entries.
3998         (resolve_addr): Call mark_base_types.
3999         (dwarf2out_finish): Call move_marked_base_types.
4000
4001         PR tree-optimization/48809
4002         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
4003         type.
4004         (gen_inbound_check): Don't compute index_expr - range_min in utype
4005         again, instead reuse SSA_NAME initialized in build_arrays.
4006         Remove two useless gsi_for_stmt calls.
4007
4008 2011-04-29  Jeff Law  <law@redhat.com>
4009
4010         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
4011
4012 2011-04-29  Martin Jambor  <mjambor@suse.cz>
4013
4014         * cgraph.h (cgraph_postorder): Remove declaration.
4015         * ipa-utils.h (ipa_free_postorder_info): Declare.
4016         (ipa_reverse_postorder): Likewise.
4017         * cgraphunit.c: Include ipa-utils.h.
4018         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
4019         * ipa-inline.c: Include ipa-utils.h.
4020         (ipa_inline): Update call to ipa_reverse_postorder.
4021         * ipa-pure-const.c (propagate_pure_const): Update call to
4022         ipa_reduced_postorder and ipa_print_order.  Call
4023         ipa_free_postorder_info to clean up.
4024         (propagate_nothrow): Likewise.
4025         * ipa-reference.c (propagate): Removed a useless call to
4026         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
4027         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
4028         * ipa.c: Include ipa-utils.h.
4029         (ipa_profile): Update call to ipa_reverse_postorder.
4030         (cgraph_postorder): Moved to...
4031         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
4032         (ipa_utils_print_order): Renamed to ipa_print_order.
4033         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
4034         comments.
4035         (ipa_free_postorder_info): New function.
4036         * passes.c: Include ipa-utils.h.
4037         (do_per_function_toporder): Update call to ipa_reverse_postorder.
4038         (ipa_write_summaries): Likewise.
4039         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
4040         (cgraphunit.o): Likewise.
4041         (ipa.o): Likewise.
4042         (ipa-inline.o): Likewise.
4043
4044 2011-04-29  Jan Hubicka  <jh@suse.cz>
4045
4046         * gcc.dg/tree-ssa/inline-10.c: New testcase.
4047         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
4048         * ipa-inline.h (clause_t): Turn into unsigned int.
4049         * ipa-inline-analysis.c (add_clause): Do more simplification.
4050         (and_predicates): Shortcut more cases.
4051         (predicates_equal_p): Move forward; check that clauses are properly
4052         ordered.
4053         (or_predicates): Shortcut more cases.
4054         (edge_execution_predicate): Rewrite as...
4055         (set_cond_stmt_execution_predicate): ... this function; handle
4056         __builtin_constant_p.
4057         (set_switch_stmt_execution_predicate): New .
4058         (compute_bb_predicates): New.
4059         (will_be_nonconstant_predicate): Update TODO.
4060         (estimate_function_body_sizes): Use compute_bb_predicates
4061         and free them later, always try to estimate if stmt is constant.
4062         (estimate_time_after_inlining, estimate_size_after_inlining):
4063         Gracefully handle optimized out edges.
4064         (read_predicate): Fix off by one error.
4065
4066 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4067
4068         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
4069
4070 2011-04-27  Xinliang David Li  <davidxl@google.com>
4071
4072         * tree-profile.c (init_ic_make_global_vars): Set
4073         tls attribute on ic vars.
4074         * coverage.c (coverage_end_function): Initialize
4075         function_list with zero.
4076
4077 2011-04-29  Richard Guenther  <rguenther@suse.de>
4078
4079         * builtins.c (fold_builtin_classify_type): Use integer_type_node
4080         for the type of the result.
4081         (fold_builtin_isascii): Likewise.
4082         (fold_builtin_toascii): Use integer_type_node where appropriate.
4083         (fold_builtin_logb): Likewise.
4084         (fold_builtin_frexp): Likewise.
4085         (fold_builtin_strstr): Likewise.
4086         (fold_builtin_strpbrk): Likewise.
4087         (fold_builtin_fputs): Likewise.
4088         (fold_builtin_sprintf): Likewise.
4089         (fold_builtin_snprintf): Likewise.
4090         (fold_builtin_printf): Likewise.
4091         (do_mpfr_remquo): Use a proper type for the assigned constant.
4092         (do_mpfr_lgamma_r): Likewise.
4093         * dwarf2out.c (resolve_one_addr): Use size_int.
4094         * except.c (init_eh): Likewise.
4095         (assign_filter_values): Use integer_type_node for filter values.
4096         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
4097         indices.
4098         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
4099         for EH region numbers.
4100         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
4101         for the shift amount.
4102
4103 2011-04-29  Richard Guenther  <rguenther@suse.de>
4104
4105         * expr.h (expand_shift): Rename to ...
4106         (expand_variable_shift): ... this.
4107         (expand_shift): Take a constant shift amount.
4108         * expmed.c (expand_shift): Rename to ...
4109         (expand_variable_shift): ... this.
4110         (expand_shift): New wrapper around expand_variable_shift.
4111         * expr.c (convert_move, emit_group_load_1, emit_group_store,
4112         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
4113         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
4114         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
4115         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
4116         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
4117         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
4118         emit_store_flag_1, emit_store_flag): Likewise.
4119         * builtins.c (expand_builtin_signbit): Likewise.
4120         * calls.c (load_register_parameters): Likewise.
4121         * function.c (assign_parm_setup_block): Likewise.
4122         * lower-subreg.c (resolve_shift_zext): Likewise.
4123         * optabs.c (widen_bswap, expand_abs_nojump,
4124         expand_one_cmpl_abs_nojump, expand_float): Likewise.
4125         * spu/spu.c (spu_expand_extv): Likewise.
4126         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4127
4128 2011-04-29  Richard Guenther  <rguenther@suse.de>
4129
4130         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
4131         for the remapped region number.
4132         * predict.c (build_predict_expr): Use integer_type_node for the
4133         predict kind.
4134         * fold-const.c (fold_binary_loc): Use integer_type_node for
4135         the shift amount.  Use a proper type for the PLUS_EXPR operand.
4136
4137 2011-04-29  Michael Matz  <matz@suse.de>
4138
4139         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
4140         other trees that just builtins.
4141         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
4142
4143 2011-04-29  Richard Guenther  <rguenther@suse.de>
4144
4145         * tree-nested.c (get_trampoline_type): Use size_int.
4146         (get_nl_goto_field): Likewise.
4147         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
4148         for all indexes.
4149         (lower_eh_constructs_2): Likewise.
4150         (lower_resx): Likewise.
4151         (lower_eh_dispatch): Likewise.
4152         * tree-mudflap.c (mf_build_string): Use size_int.
4153         (mudflap_register_call): Use integer_type_node for the flag.
4154         (mudflap_enqueue_constant): Use size_int.
4155         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
4156         instead of rebuilding it.
4157
4158 2011-04-29  Richard Guenther  <rguenther@suse.de>
4159
4160         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
4161         Handle OBJ_TYPE_REF.
4162         (find_func_aliases_for_call): Use it more consistently.
4163
4164 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
4165
4166         * haifa-sched.c (last_nondebug_scheduled_insn): New.
4167         (rank_for_schedule): Use it.
4168         (schedule_block): Set it.
4169
4170 2011-04-28  David Li  <davidxl@google.com>
4171
4172         * tree.c (crc32_string): Use crc32_byte.
4173         (crc32_byte): New function.
4174         * tree.h (crc32_byte): New function.
4175         * gcov.c (read_graph_file): Handle new cfg_cksum.
4176         (read_count_file): Ditto.
4177         * profile.c (instrument_values): Ditto.
4178         (get_exec_counts): Ditto.
4179         (read_profile_edge_counts): Ditto.
4180         (compute_branch_probabilities): Ditto.
4181         (compute_value_histograms): Ditto.
4182         (branch_prob): Ditto.
4183         (end_branch_prob): Ditto.
4184         * coverage.c (read_counts_file): Ditto.
4185         (get_coverage_counts): Ditto.
4186         (tree_coverage_counter_addr): Ditto.
4187         (coverage_checksum_string): Ditto.
4188         (coverage_begin_output): Ditto.
4189         (coverage_end_function): Ditto.
4190         (build_fn_info_type): Ditto.
4191         (build_fn_info_value): Ditto.
4192         * libgcov.c (gcov_exit): Ditto.
4193         * gcov-dump.c (tag_function): Ditto.
4194         (compute_checksum): Remove.
4195
4196 2011-04-29  Alan Modra  <amodra@gmail.com>
4197
4198         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4199         unspec plus offset.  Tidy macho code.
4200
4201 2011-04-29  Martin Jambor  <mjambor@suse.cz>
4202
4203         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
4204         node instead of a decl.  Update all callers.
4205         * cgraph.h: Update declaration.
4206
4207 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
4208
4209         PR tree-optimization/48765
4210         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
4211         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
4212         to indicate if loop aware SLP is being used.  Scan the statements
4213         and update the vectorization factor according to the type of
4214         vectorization before statement analysis.
4215         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
4216         pass it to vect_analyze_loop_operations.
4217         (vectorizable_reduction): Set number of copies to 1 in case of pure
4218         SLP statement.
4219         * tree-vect-stmts.c (vectorizable_conversion,
4220         vectorizable_assignment, vectorizable_shift,
4221         vectorizable_operation, vectorizable_type_demotion,
4222         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
4223         Likewise.
4224         (vectorizable_condition): Move the check that it is not SLP
4225         vectorization before the number of copies check.
4226         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
4227         to vectorize the loop using SLP.
4228
4229 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
4230
4231         PR middle-end/48597
4232         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
4233         inline asm.
4234
4235 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
4236
4237         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
4238         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
4239         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
4240         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
4241         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
4242         linux*.h headers.
4243         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
4244         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4245         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4246         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4247         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4248         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
4249         REG_NAME.
4250         * config/i386/linux.h (REG_NAME): Don't define.
4251         * config/i386/linux64.h (REG_NAME): Don't define.
4252         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
4253         Undefine before defining.
4254
4255 2011-04-28  Jan Hubicka  <jh@suse.cz>
4256
4257         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
4258         nonconstant_names array.
4259         (estimate_function_body_sizes): Build nonconstant_names array; handle
4260         BUILT_IN_CONSTANT_P.
4261
4262 2011-04-28  Richard Guenther  <rguenther@suse.de>
4263
4264         PR bootstrap/48804
4265         Revert
4266         2011-04-28  Richard Guenther  <rguenther@suse.de>
4267
4268         * tree-ssa-structalias.c (solve_constraints): Build succ graph
4269         as late as possible.
4270
4271 2011-04-28  Richard Guenther  <rguenther@suse.de>
4272
4273         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
4274         (debug_constraint): Do it here.
4275         (dump_constraints): And here.
4276         (rewrite_constraints): And here.
4277         (dump_constraint_edge): Remove.
4278         (dump_constraint_graph): Rewrite to produce DOT output.
4279         (solve_constraints): Build succ graph as late as possible.
4280         Dump constraint graphs before and after solving.
4281
4282 2011-04-28  Richard Guenther  <rguenther@suse.de>
4283
4284         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4285         New function split out from ...
4286         (find_func_aliases): ... here.  Call it.
4287         (find_func_aliases_for_call): Likewise.
4288
4289 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4290
4291         * internal-fn.h (internal_fn_name_array): Declare.
4292         (internal_fn_flags_array): Likewise.
4293
4294 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4295
4296         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
4297         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
4298         Move from sse.md.
4299         (ssemodefsuffix): Remove.
4300         (ssevecmodesuffix): New mode attribute.
4301         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
4302         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4303         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4304         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4305         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
4306         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
4307         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
4308         ssemodesuffix mode attribute.
4309         (float splitters): Use ssevecmodesuffix mode attribute.
4310         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
4311         (sseinsmode): Rename from avxvecmode.
4312         (avxsizesuffix): Rename from avxmodesuffix.
4313         (sseintvecmode): Rename from avxpermvecmode.
4314         (ssedoublevecmode): Rename from ssedoublesizemode.
4315         (ssehalfvecmode): Rename from avxhalfvecmode.
4316         (ssescalarmode): Rename from avxscalarmode.
4317         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
4318         templates for ssemodesuffix mode attribute.
4319         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
4320         mode attribute.
4321
4322         Adjust RTX patterns globally for renamed mode attributes.
4323
4324 2011-04-27  Jan Hubcika  <jh@suse.cz>
4325
4326         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
4327         * ipa-inline-analysis.c: Include alloc-pool.h.
4328         (edge_predicate_pool): New.
4329         (trye_predicate_p): New function
4330         (false_predicate_p): New function.
4331         (add_clause): Sanity check that false clauses are "optimized";
4332         never add clauses to predicate that is already known to be false.
4333         (and_predicate): Use flase_predicate_p.
4334         (evaulate_predicate): Rename to ...
4335         (evaluate_predicate): ... this one; update all callers; assert
4336         that false is not listed among possible truths.
4337         (dump_predicate): Use true_predicate_p.
4338         (account_size_time): Use false_predicate_p.
4339         (evaulate_conditions_for_edge): Rename to ...
4340         (evaluate_conditions_for_edge) ... this one.
4341         (edge_set_predicate): New function.
4342         (inline_edge_duplication_hook): Duplicate edge predicates.
4343         (inline_edge_removal_hook): Free edge predicates.
4344         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4345         (dump_inline_summary): Update.
4346         (estimate_function_body_sizes): Set edge predicates.
4347         (estimate_calls_size_and_time): Handle predicates.
4348         (estimate_callee_size_and_time): Update.
4349         (remap_predicate): Add toplev_predicate; update comment.
4350         (remap_edge_predicates): New function.
4351         (inline_merge_summary): Compute toplev predicate; update.
4352         (read_predicate): New function.
4353         (read_inline_edge_summary): Use it.
4354         (inline_read_section): Likewise.
4355         (write_predicate): New function.
4356         (write_inline_edge_summary): Use it.
4357         (inline_write_summary): Likewise.
4358         (inline_free_summary): Free alloc pool and edge summary vec.
4359
4360 2011-04-27  Richard Guenther  <rguenther@suse.de>
4361
4362         * tree-ssa-structalias.c (changed_count): Remove.
4363         (changed): Use a bitmap.
4364         (unify_nodes): Adjust.
4365         (do_sd_constraint): Likewise.
4366         (do_ds_constraint): Likewise.
4367         (do_complex_constraint): Likewise.
4368         (solve_graph): Likewise.
4369
4370 2011-04-27  Jan Hubicka  <jh@suse.cz>
4371
4372         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4373
4374 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4375
4376         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4377         (avx_vperm2f128_*_operand): Ditto.
4378         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4379         Use avx_vpermilp_parallel in insn condition.
4380         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4381         Use avx_vperm2f128_parallel in insn condition.
4382
4383 2011-04-27  Richard Guenther  <rguenther@suse.de>
4384
4385         * Makefile.in (tree-ssa-structalias.o): Remove
4386         gt-tree-ssa-structalias.h dependency.
4387         (GTFILES): Remove tree-ssa-structalias.c.
4388         * tree.c (allocate_decl_uid): New function.
4389         (make_node_stat): Use it.
4390         (copy_node_stat): Likewise.
4391         * tree.h (allocate_decl_uid): Declare.
4392         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4393         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4394         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4395         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4396         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4397         (struct heapvar_map): Likewise.
4398         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4399         heapvar_insert): Likewise.
4400         (make_heapvar_for): Rename to ...
4401         (make_heapvar): ... this.  Simplify.
4402         (fake_var_decl_obstack): New global var.
4403         (build_fake_var_decl): New function.
4404         (make_constraint_from_heapvar): Adjust.
4405         (handle_lhs_call): Likewise.
4406         (create_function_info_for): Likewise.
4407         (intra_create_variable_infos): Likewise.
4408         (init_alias_vars): Allocate fake_var_decl_obstack.
4409         (init_alias_heapvars, delete_alias_heapvars): Remove.
4410         (compute_points_to_sets): Do not call init_alias_heapvars.
4411         (ipa_pta_execute): Likewise.
4412         (delete_points_to_sets): Free fake_var_decl_obstack.
4413
4414 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4415
4416         * config/spu/divmovti4.c (union qword_UTItype): New data type.
4417         (si_from_UTItype, si_to_UTItype): New functions.
4418         (__udivmodti4): Use them to implement type-punning.
4419         * config/spu/multi3.c (union qword_TItype): New data type.
4420         (si_from_TItype, si_to_TItype): New functions.
4421         (__multi3): Use them to implement type-punning.
4422
4423 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4424
4425         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4426
4427 2011-04-27  Jan Hubicka  <jh@suse.cz>
4428
4429         * ipa-prop.c (function_insertion_hook_holder): New holder.
4430         (ipa_add_new_function): New function.
4431         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4432         Register/deregister holder.
4433
4434 2011-04-27  Richard Guenther  <rguenther@suse.de>
4435
4436         PR tree-optimization/48772
4437         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4438
4439 2011-04-27  Richard Guenther  <rguenther@suse.de>
4440
4441         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4442         TARGET_MEM_REF handling.
4443
4444 2011-04-27  Nick Clifton  <nickc@redhat.com>
4445
4446         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4447         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4448         (REG_CLASS_NAMES): Likewise.
4449         (REG_CLASS_CONTENTS): Likewise.
4450         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4451         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4452         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
4453         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
4454         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
4455         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4456         duplicate register classes.
4457         (frv_class_likely_spilled_p): Likewise.
4458         (frv_register_move_cost): Likewise.
4459
4460         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4461         end of the regno_reg_class array.
4462
4463 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
4464
4465         PR c/48742
4466         * c-typeck.c (build_binary_op): Don't wrap arguments if
4467         int_operands is true.
4468
4469 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
4470
4471         PR target/48767
4472         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4473         targetm.calls.must_pass_in_stack for void type.
4474
4475 2011-04-26  Jan Hubicka  <jh@suse.cz>
4476
4477         * cgraphbuild.c (build_cgraph_edges): Update call
4478         of cgraph_create_edge and cgraph_create_indirect_edge.
4479         * cgraph.c (cgraph_create_edge_including_clones,
4480         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4481         cgraph_update_edges_for_call_stmt_node): Do not take nest
4482         argument; do not initialize call_stmt_size/time.
4483         (dump_cgraph_node): Do not dump nest.
4484         (cgraph_clone_edge): Do not take loop_nest argument;
4485         do not propagate it; do not clone call_stmt_size/time.
4486         (cgraph_clone_node): Likewise.
4487         (cgraph_create_virtual_clone): Update.
4488         * cgraph.h (struct cgraph_edge): Remove
4489         call_stmt_size/call_stmt_time/loop_nest.
4490         (cgraph_create_edge, cgraph_create_indirect_edge,
4491         cgraph_create_edge_including_clones, cgraph_clone_node): Update
4492         prototype.
4493         * tree-emutls.c (gen_emutls_addr): Update.
4494         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4495         loop_nest; handle indirect calls, too.
4496         (clone_inlined_nodes): Do not care about updating inline summaries.
4497         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4498         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4499         stream call_stmt_size/call_stmt_time/loop_nest.
4500         * ipa-inline.c (edge_badness): Update.
4501         (ipa_inline): dump summaries after inlining.
4502         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4503         New.
4504         (inline_edge_summary): New function.
4505         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4506         (inline_edge_removal_hook): Handle edge summaries.
4507         (inline_edge_duplication_hook): New hook.
4508         (inline_summary_alloc): Alloc hooks.
4509         (initialize_growth_caches): Do not register removal hooks.
4510         (free_growth_caches); Do not free removal hook.
4511         (dump_inline_edge_summary): New function.
4512         (dump_inline_summary): Use it.
4513         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4514         (inline_update_callee_summaries): New function.
4515         (inline_merge_summary): Use it.
4516         (do_estimate_edge_time, do_estimate_edge_growth): Update.
4517         (read_inline_edge_summary): New function.
4518         (inline_read_section): Use it.
4519         (write_inline_edge_summary): New function.
4520         (inline_write_summary): Use it.
4521         (inline_free_summary): Free edge new holders.
4522         * tree-inline.c (copy_bb): Update.
4523
4524 2011-04-26  Jason Merrill  <jason@redhat.com>
4525
4526         * tree-eh.c (lower_try_finally_switch): Create the label along with
4527         the CASE_LABEL_EXPR.
4528
4529 2011-04-26  David S. Miller  <davem@davemloft.net>
4530             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4531
4532         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4533         * configure: Regenerate.
4534
4535 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4536
4537         PR target/48258
4538         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4539         reduction.
4540         (VEC_reduc): New code iterator and splitters for vector reduction.
4541         (VEC_reduc_name): Ditto.
4542         (VEC_reduc_rtx): Ditto.
4543         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4544         (reduc_<VEC_reduc_name>_v4sf): Ditto.
4545
4546         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4547         support for extracting SF on VSX.
4548
4549         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4550         generating xscvspdp.
4551         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4552         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4553         double add, minimum, maximum vector reduction.
4554         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4555         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4556         optimize double vector reduction.
4557         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4558
4559 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
4560
4561         * config/fr30/fr30.h (inhibit_libc): Don't define.
4562         * config/m32r/m32r-protos.h: Correct comment.
4563         * config/v850/v850.h (GHS_default_section_names,
4564         GHS_current_section_names): Use tree, not union tree_node *.
4565
4566 2011-04-26  Xinliang David Li  <davidxl@google.com>
4567
4568         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
4569         * c-family/c-opts.c (c_common_handle_option): Set
4570         warn_maybe_uninitialized.
4571         * opts.c (common_handle_option): Ditto.
4572         * common.opt:  New option.
4573         * tree-ssa.c (warn_uninit): Add one more parameter.
4574         (warn_uninitialized_var): Pass warning code.
4575         * tree-flow.h: Interface change.
4576
4577 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4578
4579         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4580         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4581         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4582
4583 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4584
4585         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4586         * config/mips/mips.opt (mmips-tfile): Remove.
4587
4588         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4589         mips-tdump reference to ...
4590         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
4591         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4592         reference by Tru64 UNIX.
4593
4594 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
4595
4596         PR debug/48768
4597         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4598         is error_mark_node, set value to NULL.
4599
4600         PR tree-optimization/48734
4601         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4602         if return value from maybe_fold_*_comparsions isn't something
4603         the code is prepared to handle.
4604
4605 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
4606
4607         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
4608         mode check.
4609         (ext_QIreg_nomode_operands): Remove.
4610         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
4611         (*andsi_1): Ditto.
4612         (*andhi_1): Ditto.
4613
4614 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
4615
4616         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
4617
4618 2011-04-26  Richard Guenther  <rguenther@suse.de>
4619
4620         * c-typeck.c (build_unary_op): Do not expand array-refs via
4621         pointer arithmetic.  Only adjust qualifiers for function types.
4622
4623 2011-04-26  Richard Guenther  <rguenther@suse.de>
4624
4625         PR middle-end/48694
4626         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
4627         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
4628         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
4629         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
4630
4631 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
4632
4633         * doc/extend.texi: Document __underlying_type.
4634
4635 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
4636
4637         * config/rs6000/titan.md (automata_option "progress"): Remove.
4638
4639 2011-04-25  Jeff Law  <law@redhat.com>
4640
4641         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
4642
4643 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
4644
4645         * system.h (ENUM_BITFIELD): Remove.
4646
4647 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
4648             Eric Botcazou  <ebotcazou@adacore.com>
4649
4650         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
4651         for STORE_FLAG_VALUE==-1 case.
4652
4653 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
4654
4655         PR target/43804
4656         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
4657         LEGITIMATE_PIC_OPERAND_P.
4658
4659 2011-04-24  Jan Hubicka  <jh@suse.cz>
4660
4661         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
4662         WPA hack.
4663         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
4664         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
4665         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
4666         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
4667         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
4668         Sanity check predicate length.
4669         (remap_predicate): Likewise; sanity check jump functions.
4670         (inline_read_section, inline_write_summary): Sanity check
4671         predicate length.
4672
4673 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
4674
4675         PR other/48748
4676         * doc/extend.texi (Type Traits): Document __is_standard_layout,
4677         __is_literal_type, and __is_trivial; update throughout about
4678         possibly cv-qualified void types.
4679
4680 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4681
4682         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
4683         testsuite and make it version agnostic.
4684
4685 2011-04-22  Jan Hubicka  <jh@suse.cz>
4686
4687         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
4688
4689 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
4690
4691         PR c/48685
4692         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
4693         to VOID_TYPE even around MODIFY_EXPR.
4694
4695 2011-04-22  Mike Stump  <mikestump@comcast.net>
4696
4697         * gensupport.c (read_md_rtx): Fix typo in comment.
4698         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
4699         comment.
4700
4701 2011-04-22  Jan Hubicka  <jh@suse.cz>
4702
4703         * gengtype.c (open_base_files): Add ipa-inline.h include.
4704         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
4705         ipa-prop.c; update all uses.
4706         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
4707         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
4708         merge summary of inlined function into former caller.
4709         * ipa-inline.c (max_benefit): Remove.
4710         (edge_badness): Compensate for removal of benefits.
4711         (update_caller_keys): Use
4712         reset_node_growth_cache/reset_edge_growth_cache.
4713         (update_callee_keys): Likewise.
4714         (update_all_callee_keys): Likewise.
4715         (inline_small_functions): Do not collect max_benefit; do not reset
4716         estimated_growth; call free_growth_caches and initialize_growth_caches.
4717         * ipa-inline.h (struct condition, type clause_t, struct predicate,
4718         struct size_time_entry): New structures.
4719         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
4720         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
4721         and estimated_growth.
4722         (edge_growth_cache_entry): New structure.
4723         (node_growth_cache, edge_growth_cache): New global vars.
4724         (estimate_growth): Turn into inline.
4725         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
4726         initialize_growth_caches, free_growth_caches): Declare.
4727         (estimate_edge_growth): Rewrite.
4728         (estimate_edge_time): Implement as inline cache lookup.
4729         (reset_node_growth_cache, reset_edge_growth_cache): New inline
4730         functions.
4731         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
4732         (NUM_CONDITIONS): New constant.
4733         (predicate_conditions): New enum.
4734         (IS_NOT_CONSTANT): New constant.
4735         (edge_removal_hook_holder): New var.
4736         (node_growth_cache, edge_growth_cache): New global vars.
4737         (true_predicate, single_cond_predicate, false_predicate,
4738         not_inlined_predicate, add_condition, add_clause, and_predicates,
4739         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4740         dump_clause, dump_predicate, account_size_time,
4741         evaulate_conditions_for_edge): New functions.
4742         (inline_summary_alloc): Move to heap.
4743         (inline_node_removal_hook): Clear condition and entry vectors.
4744         (inline_edge_removal_hook): New function.
4745         (initialize_growth_caches, free_growth_caches): New function.
4746         (dump_inline_summary): Update.
4747         (edge_execution_predicate): New function.
4748         (will_be_nonconstant_predicate): New function.
4749         (estimate_function_body_sizes): Compute BB and constantness predicates.
4750         (compute_inline_parameters): Do not clear estimated_growth.
4751         (estimate_edge_size_and_time): New function.
4752         (estimate_calls_size_and_time): New function.
4753         (estimate_callee_size_and_time): New function.
4754         (remap_predicate): New function.
4755         (inline_merge_summary): New function.
4756         (do_estimate_edge_time): New function based on...
4757         (estimate_edge_time): ... this one.
4758         (do_estimate_edge_growth): New function.
4759         (do_estimate_growth): New function based on....
4760         (estimate_growth): ... this one.
4761         (inline_analyze_function): Analyze after deciding on jump functions.
4762         (inline_read_section): New function.
4763         (inline_read_summary): Use it.
4764         (inline_write_summary): Write all the new data.
4765         * ipa-prop.c (ipa_get_param_decl_index): Export.
4766         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
4767         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
4768         Declare.
4769         (ipa_get_lattice): Move here from ipa-cp.c
4770         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
4771         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
4772         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
4773         cgraph_edge_inlinable_p): Remove.
4774         * cgraphunit.c: Include ipainline.h
4775         (cgraph_process_new_functions): Update call of
4776         compute_inline_parameters.
4777
4778 2011-04-22  Richard Guenther  <rguenther@suse.de>
4779
4780         * tree.c (build_int_cst): Properly create canonicalized integer
4781         constants.
4782         (build_int_cst_type): Remove scary comments.
4783
4784 2011-04-22  Xinliang David Li  <davidxl@google.com>
4785
4786         * toplev.c (process_options): Enable -Werror=coverage-mismatch
4787         by default when -Wno-error is not specified.
4788         * opts-global.c (decode_options): Remove call to
4789         control_warning_options.
4790
4791 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4792
4793         PR tree-optimization/48717
4794         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
4795         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
4796
4797 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
4798
4799         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
4800         definition where used.
4801
4802 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4803
4804         PR c/48716
4805         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
4806         TREE_STATIC variables declared inside of some OpenMP construct.
4807
4808 2011-04-22  Martin Jambor  <mjambor@suse.cz>
4809
4810         PR middle-end/48585
4811         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
4812
4813 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
4814
4815         PR c/36750
4816         * c-typeck.c (pop_init_level): Do not warn about initializing
4817         with ` = {0}'.
4818
4819 2011-04-22  Alan Modra  <amodra@gmail.com>
4820
4821         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
4822         when returning call_cookie.
4823         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
4824         pointers, to functions with no more vector args than the current
4825         function, and some non-local calls for ABI_V4.
4826         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
4827         sibcall_nonlocal_aix64): Combine to ..
4828         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
4829         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
4830         (sibcall_value_nonlocal_aix<mode>): ..likewise.
4831         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
4832         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
4833         operand.
4834         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
4835         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
4836         sibcall_value_symbolic_64): Delete.
4837
4838 2011-04-21  Xinliang David Li  <davidxl@google.com>
4839
4840         * cgraph.h: Remove pid.
4841         * cgraph.c: Remove pid.
4842         * value-prof.c (init_node_map): New function.
4843         (del_node_map): New function.
4844         (find_func_by_funcdef_no): New function.
4845         (gimple_ic_transform): Call new function.
4846         * cgraphunit.c (cgraph_finalize_function): Remove pid.
4847         * function.c (get_last_funcdef_no): New function.
4848         * function.h (get_last_funcdef_no): New function.
4849         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
4850         to libgcov function.
4851         (tree-profiling): Call node map init and delete function.
4852
4853 2011-04-21  Ian Lance Taylor  <iant@google.com>
4854
4855         * godump.c (go_format_type): Use exported Go name for anonymous
4856         field name.
4857
4858 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4859
4860         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
4861         Call builtin_function_type_list instead of builtin_function_type.
4862         (UNARY, BINARY, TRINARY, QUAD): Likewise.
4863
4864 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4865
4866         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
4867         build_function_type_list instead of build_function_type.
4868         Delete variable `endlink'.
4869
4870 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4871
4872         * config/s390/s390.c (s390_init_builtins): Call
4873         build_function_type_list instead of build_function_type.
4874
4875 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4876
4877         * config/ia64/ia64.c (ia64_init_builtins): Call
4878         build_function_type_list instead of builtin_function_type.
4879
4880 2011-04-21  Easwaran Raman  <eraman@google.com>
4881
4882         * cfgexpand.c (stack_var): Remove OFFSET...
4883         (add_stack_var): ...and its reference here...
4884         (expand_stack_vars): ...and here.
4885         (stack_var_cmp): Sort by descending order of size.
4886         (partition_stack_vars): Change heuristic.
4887         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
4888         (dump_stack_var_partition): Add newline after each partition.
4889
4890 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
4891             Jeff Law  <law@redhat.com>
4892
4893         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
4894         * gengtype.c (matching_file_name_substitute): Likewise.
4895
4896 2011-04-21  Richard Guenther  <rguenther@suse.de>
4897
4898         PR lto/48703
4899         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
4900
4901 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
4902
4903         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
4904
4905 2011-04-21  Richard Guenther  <rguenther@suse.de>
4906
4907         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
4908         file name.
4909
4910 2011-04-21  Richard Guenther  <rguenther@suse.de>
4911
4912         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4913         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
4914         Use DECL_P, not SSA_VAR_P.
4915         (ptr_derefs_may_alias_p): Likewise.
4916         (ptr_deref_may_alias_ref_p_1): Likewise.
4917         (decl_refs_may_alias_p): Likewise.
4918         (refs_may_alias_p_1): Likewise.
4919         (ref_maybe_used_by_call_p_1): Likewise.
4920         (call_may_clobber_ref_p_1): Likewise.
4921         (indirect_ref_may_alias_decl_p): Assume indirect refrences
4922         are either MEM_REF or TARGET_MEM_REF.
4923         (indirect_refs_may_alias_p): Likewise.
4924         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
4925         for MEM_EXPR of indirect calls.
4926
4927 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4928
4929         * vmsdbgout.c (write_srccorr): Compute file length from the string.
4930         (dst_file_info_struct): Remove flen field.
4931         (lookup_filename): Remove code that set flen field.
4932
4933 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4934
4935         * config/ia64/ia64.c (ia64_start_function): Add a guard.
4936
4937 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
4938
4939         PR target/48708
4940         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
4941         vec_extract and vec_concat for non-SSE4_1 targets.
4942
4943 2011-04-21  Richard Guenther  <rguenther@suse.de>
4944
4945         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4946         return statements.
4947
4948 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4949
4950         * config/i386/cygming.h (union tree_node, TREE): Don't define or
4951         undefine.
4952         (FILE): Don't undefine.
4953
4954 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4955
4956         * config/alpha/alpha.c (struct machine_function): Use rtx, not
4957         struct rtx_def *.
4958         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4959         struct rtx_def *.
4960         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
4961         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
4962         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4963         rtx_def *.
4964         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
4965         definitions where used.
4966         * config/microblaze/microblaze.h (struct microblaze_args): Use
4967         rtx, not struct rtx_def *.
4968         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4969         rtx_def *.
4970         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4971         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
4972         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4973         not struct rtx_def *.
4974         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4975         struct rtx_def *.
4976         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4977         rtx_def *.
4978         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
4979
4980 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4981
4982         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4983         operand_equal_p to compare DR_BASE_ADDRESSes.
4984         (vect_check_interleaving): Likewise.
4985
4986 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4987
4988         PR target/46329
4989         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4990         for all Neon struct constants.
4991
4992 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4993
4994         * target.def (legitimate_constant_p): New hook.
4995         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4996         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4997         * doc/tm.texi: Regenerate.
4998         * hooks.h (hook_bool_mode_rtx_true): Declare.
4999         * hooks.c (hook_bool_mode_rtx_true): Define.
5000         * system.h (LEGITIMATE_CONSTANT_P): Poison.
5001         * calls.c (precompute_register_parameters): Replace uses of
5002         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
5003         (emit_library_call_value_1): Likewise.
5004         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
5005         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
5006         * ira-costs.c (scan_one_insn): Likewise.
5007         * recog.c (general_operand, immediate_operand): Likewise.
5008         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
5009         * reload1.c (init_eliminable_invariants): Likewise.
5010
5011         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
5012         mode argument.
5013         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
5014         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
5015         argument.
5016         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5017         * config/alpha/predicates.md (input_operand): Update call to
5018         alpha_legitimate_constant_p.
5019
5020         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
5021         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
5022         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
5023         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5024         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
5025         (arm_legitimate_constant_p): New functions.
5026         (arm_cannot_force_const_mem): Make static.
5027
5028         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
5029
5030         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
5031         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
5032         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
5033         instead of bfin_legitimate_constant_p.
5034         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
5035         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5036
5037         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
5038
5039         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
5040
5041         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
5042         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
5043         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5044         (frv_legitimate_constant_p): Make static.  Add a mode argument.
5045
5046         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
5047         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
5048         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
5049
5050         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
5051         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
5052         * config/i386/i386.c (legitimate_constant_p): Rename to...
5053         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
5054         argument.
5055         (ix86_cannot_force_const_mem): Update accordingly.
5056         (ix86_legitimate_address_p): Likewise.
5057         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5058         * config/i386/i386.md: Update commentary.
5059
5060         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
5061         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
5062         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5063         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
5064
5065         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
5066
5067         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
5068         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
5069         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5070         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
5071
5072         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
5073         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
5074         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
5075
5076         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
5077         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5078         (m32r_legitimate_constant_p): New function.
5079
5080         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
5081         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
5082         LEGITIMATE_CONSTANT_P.
5083         (LEGITIMATE_CONSTANT_P): Delete.
5084         * config/m68k/m68k.c (m68k_expand_prologue): Call
5085         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
5086         (m68k_legitimate_constant_p): New function.
5087         * config/m68k/m68k.md: Update comments.
5088
5089         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
5090         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5091         (mcore_legitimate_constant_p): New function.
5092
5093         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
5094         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
5095         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
5096         Add a mode argument.
5097         (mep_legitimate_address): Update accordingly.
5098         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5099
5100         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
5101         Delete.
5102         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
5103         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
5104         static.  Check OP's mode for VOIDmode.
5105         (microblaze_legitimate_constant_p): New function.
5106         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5107
5108         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
5109         * config/mips/mips.c (mips_legitimate_constant_p): New function.
5110         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
5111         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5112         * config/mips/predicates.md: Update comments.
5113
5114         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
5115         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
5116         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5117         (mmix_legitimate_constant_p): Make static, return a bool, and take
5118         a mode argument.
5119         (mmix_print_operand_address): Update accordingly.
5120
5121         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
5122         Delete.
5123         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
5124         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
5125         static.  Add a mode argument.
5126         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5127
5128         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
5129
5130         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
5131         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5132         (pa_legitimate_constant_p): New function.
5133
5134         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
5135
5136         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
5137         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5138         (pdp11_legitimate_constant_p): New function.
5139
5140         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
5141         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5142         (rs6000_legitimate_constant_p): New function.
5143
5144         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
5145         (rx_legitimate_constant_p): ...this.
5146         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
5147         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
5148         (rx_legitimate_constant_p): ...this.
5149         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5150         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
5151
5152         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
5153         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
5154         * config/s390/s390.c (legitimate_constant_p): Rename to...
5155         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
5156         and add a mode argument.
5157         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5158
5159         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
5160
5161         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
5162         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5163         (sh_legitimate_constant_p): New function.
5164
5165         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
5166         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
5167         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5168         (legitimate_constant_p): Rename to...
5169         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
5170         argument.
5171         (constant_address_p): Update accordingly.
5172
5173         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
5174         argument and return a bool.
5175         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
5176         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5177         (spu_legitimate_constant_p): Add a mode argument and return a bool.
5178         (spu_rtx_costs): Update accordingly.
5179         * config/spu/predicates.md (vec_imm_operand): Likewise.
5180
5181         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
5182
5183         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
5184         * config/v850/v850.c (v850_legitimate_constant_p): New function.
5185         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5186
5187         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
5188         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
5189         * config/vax/vax.c (legitimate_constant_p): Likewise.
5190
5191         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
5192         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5193         (xtensa_legitimate_constant_p): New function.
5194
5195 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5196
5197         * target.def (cannot_force_const_mem): Add a mode argument.
5198         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
5199         * doc/tm.texi: Regenerate.
5200         * hooks.h (hook_bool_mode_rtx_false): Declare.
5201         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
5202         (hook_bool_mode_const_rtx_true): Likewise.
5203         (hook_bool_mode_rtx_false): New function.
5204         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
5205         to be non-VOID.  Update call to cannot_force_const_mem.
5206         (find_reloads): Update accordingly.
5207         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
5208         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
5209         argument.
5210         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
5211         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
5212         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
5213         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
5214         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
5215         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
5216         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
5217         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5218         (m68k_cannot_force_const_mem): ...this new function.
5219         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
5220         argument.
5221         (mips_const_insns, mips_legitimize_const_move): Update calls.
5222         (mips_secondary_reload_class): Likewise.
5223         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5224         (pa_cannot_force_const_mem): ...this new function.
5225         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
5226         (rs6000_cannot_force_const_mem): ...this new function.
5227         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
5228         argument.
5229         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
5230         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
5231         to...
5232         (xtensa_cannot_force_const_mem): ...this new function.
5233
5234 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5235
5236         * config/mips/mips.c (mips16_build_function_stub): Call
5237         build_function_type_list instead of build_function_type.
5238         (mips16_build_call_stub): Likewise.
5239
5240 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5241
5242         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
5243         instead of build_function_type.
5244
5245 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5246
5247         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
5248         instead of build_function_type.
5249
5250 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
5251
5252         PR target/48678
5253         * config/i386/i386.md (insv): Change operand 0 constraint to
5254         "register_operand".  Change operand 1 and 2 constraint to
5255         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
5256         * config/i386/sse.md (sse4_1_pinsrb): Export.
5257         (sse2_pinsrw): Ditto.
5258         (sse4_1_pinsrd): Ditto.
5259         (sse4_1_pinsrq): Ditto.
5260         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
5261         * config/i386/i386.c (ix86_expand_pinsr): New.
5262
5263 2011-04-20  Easwaran Raman  <eraman@google.com>
5264
5265         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
5266         containing union type only with -fstrict-aliasing.
5267
5268 2011-04-20  Jim Meyering  <meyering@redhat.com>
5269
5270         Remove useless if-before-free tests.
5271         * calls.c (expand_call, save_area): Likewise.
5272         * cfgcleanup.c (try_forward_edges): Likewise.
5273         * collect2.c (collect_execute): Likewise.
5274         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
5275         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
5276         * coverage.c (coverage_checksum_string): Likewise.
5277         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
5278         * cselib.c (cselib_init): Likewise.
5279         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
5280         (df_set_clean_cfg): Likewise.
5281         * function.c (free_after_compilation): Likewise.
5282         * gcc.c (do_spec_1, main): Likewise.
5283         * gcov.c (create_file_names): Likewise.
5284         * gensupport.c (identify_predicable_attribute): Likewise.
5285         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
5286         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
5287         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
5288         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
5289         * ipa-pure-const.c (local_pure_const): Likewise.
5290         * ipa-reference.c (propagate): Likewise.
5291         * ira-costs.c (free_ira_costs): Likewise.
5292         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
5293         * matrix-reorg.c (mat_free): Likewise.
5294         * prefix.c (get_key_value): Likewise.
5295         * profile.c (compute_value_histograms): Likewise.
5296         * reload1.c (free_reg_equiv): Likewise.
5297         * sched-deps.c (free_deps): Likewise.
5298         * sel-sched-ir.c (fence_clear): Likewise.
5299         * sese.c (set_rename, if_region_set_false_region): Likewise.
5300         * tree-data-ref.c (free_rdg): Likewise.
5301         * tree-eh.c (lower_try_finally): Likewise.
5302         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
5303         * tree-ssa-live.c (delete_var_map): Likewise.
5304         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
5305         * tree-ssa-pre.c (phi_trans_add): Likewise.
5306
5307 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
5308
5309         PR tree-optimization/48611
5310         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
5311         beyond ERT_MUST_NOT_THROW region.
5312
5313 2011-04-20  Catherine Moore  <clm@codesourcery.com>
5314
5315         * config/mips/mips.opt (mfix-24k): New.
5316         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
5317         * config/mips/mips.md (length): Increase by 4 for stores if
5318         fixing 24K errata.
5319         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
5320         all noreorder if fixing 24K errata.
5321         * doc/invoke.texi: Document mfix-24k.
5322
5323 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
5324
5325         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
5326         quad-word modes, reduce to 9-bit index range when above 1016 limit.
5327
5328 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5329
5330         * config/arm/arm.c (arm_gen_constant): Move movw support ....
5331         (const_ok_for_op): ... to here.
5332
5333 2011-04-20  Kai Tietz  <ktietz@redhat.com>
5334
5335         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5336         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5337
5338 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5339
5340         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5341
5342 2011-04-20  Richard Guenther  <rguenther@suse.de>
5343
5344         PR tree-optimization/47892
5345         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5346         are if-convertible.
5347
5348 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5349
5350         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5351
5352 2011-04-20  Tristan Gingold  <gingold@adacore.com>
5353
5354         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5355
5356 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
5357
5358         PR target/18145
5359
5360         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5361         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5362         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5363         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5364         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5365
5366         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5367         New prototype.
5368
5369         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5370         (avr_asm_named_section, avr_asm_output_aligned_common,
5371         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5372         New functions to update...
5373         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5374         (avr_asm_init_sections): Overwrite section callbacks for
5375         data_section, bss_section.
5376         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5377         from here to...
5378         (avr_file_end): ...here.
5379
5380 2011-04-20  Richard Guenther  <rguenther@suse.de>
5381
5382         PR middle-end/48695
5383         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5384         objects and types here.  Adjust for their offset before comparing.
5385
5386 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5387
5388         * tree-vect-stmts.c (vectorizable_store): Only chain one related
5389         statement per copy.
5390
5391 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5392
5393         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5394         (GIMPLE_H): Include $(INTERNAL_FN_H).
5395         (OBJS-common): Add internal-fn.o.
5396         (internal-fn.o): New rule.
5397         * internal-fn.def: New file.
5398         * internal-fn.h: Likewise.
5399         * internal-fn.c: Likewise.
5400         * gimple.h: Include internal-fn.h.
5401         (GF_CALL_INTERNAL): New gf_mask.
5402         (gimple_statement_call): Put fntype into a union with a new
5403         internal_fn field.
5404         (gimple_build_call_internal): Declare.
5405         (gimple_build_call_internal_vec): Likewise.
5406         (gimple_call_same_target_p): Likewise.
5407         (gimple_call_internal_p): New function.
5408         (gimple_call_internal_fn): Likewise.
5409         (gimple_call_fntype): Return null for internal calls.
5410         (gimple_call_set_fntype): Assert that the function is not internal.
5411         (gimple_call_set_fn): Likewise.
5412         (gimple_call_set_fndecl): Likewise.
5413         (gimple_call_set_internal_fn): New function.
5414         (gimple_call_addr_fndecl): Handle null functions.
5415         (gimple_call_return_type): Likewise null types.
5416         * gimple.c (gimple_build_call_internal_1): New function.
5417         (gimple_build_call_internal): Likewise.
5418         (gimple_build_call_internal_vec): Likewise.
5419         (gimple_call_same_target_p): Likewise.
5420         (gimple_call_flags): Handle calls to internal functions.
5421         (gimple_call_fnspec): New function.
5422         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5423         (gimple_has_side_effects): Handle null functions.
5424         (gimple_rhs_has_side_effects): Likewise.
5425         (gimple_call_copy_skip_args): Handle calls to internal functions.
5426         * cfgexpand.c (expand_call_stmt): Likewise.
5427         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5428         * gimple-fold.c (gimple_fold_call): Handle null functions.
5429         (gimple_fold_stmt_to_constant_1): Don't fold
5430         calls to internal functions.
5431         * gimple-low.c (gimple_check_call_args): Handle calls to internal
5432         functions.
5433         * gimple-pretty-print.c (dump_gimple_call): Likewise.
5434         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5435         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5436         (do_warn_unused_result): Likewise.
5437         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5438         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5439         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5440         the target of a call.
5441         (initialize_hash_element): Update accordingly.
5442         (hashable_expr_equal_p): Use gimple_call_same_target_p.
5443         (iterative_hash_hashable_expr): Handle calls to internal functions.
5444         (print_expr_hash_elt): Likewise.
5445         * tree-ssa-pre.c (can_value_number_call): Likewise.
5446         (eliminate): Handle null functions.
5447         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5448         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5449         (find_func_aliases): Likewise.
5450         * value-prof.c (gimple_ic_transform): Likewise.
5451         (gimple_indirect_call_to_profile): Likewise.
5452         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5453         * lto-streamer-out.c (output_gimple_stmt): Likewise.
5454
5455 2011-04-19  Jan Hubicka  <jh@suse.cz>
5456
5457         * ipa-inline-transform.c (save_inline_function_body): Add comments.
5458         * ipa-inline.c (inline_small_functions): Compute summaries first,
5459         populate heap later.
5460
5461 2011-04-19  Jan Hubicka  <jh@suse.cz>
5462
5463         * cgraph.h (save_inline_function_body): Remove.
5464         * ipa-inline-transform.c: New file, broke out of...
5465         * ipa-inline.c: ... this one; Update toplevel comment.
5466         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5467         make global.
5468         (update_noncloned_frequencies): Move to ipa-inline-transform.c
5469         (cgraph_mark_inline_edge): Rename to inline_call; move to
5470         ipa-inline-transform.c.
5471         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5472         move to ipa-inline-transform.c
5473         (recursive_inlining, inline_small_functions, flatten_function,
5474         ipa_inline, inline_always_inline_functions,
5475         early_inline_small_functions): Update.
5476         (inline_transform): Move to ipa-inline-transform.c.
5477         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5478         Declare.
5479         * Makefile.in (ipa-inline-transform.o): New file.
5480         * cgraphunit.c (save_inline_function_body): Move to
5481         ipa-inline-transform.c
5482
5483 2011-04-19  DJ Delorie  <dj@redhat.com>
5484
5485         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5486         registers if we already know there aren't any.
5487         (m32c_emit_epilogue): Don't emit a barrier here.
5488         (m32c_emit_eh_epilogue): Likewise.
5489         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5490         operands at expand time.
5491         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5492         int" wchar type.
5493         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5494         duplicates.  Provide aliases instead.
5495         * config/m32c/prologue.md (eh_return): Emit a barrier here.
5496         (eh_epilogue): Add a "(return)" here as a hint to other parts of
5497         the compiler.
5498
5499 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
5500
5501         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5502         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5503         (general_or_i64_p, sparc_register_move_cost): New function.
5504
5505 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5506
5507         * doc/install.texi (Configuration, --enable-threads): Remove mach.
5508         Add lynx, mipssde.  Sort table.
5509
5510 2011-04-19  Xinliang David Li  <davidxl@google.com>
5511
5512         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5513         not negative.
5514
5515 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
5516
5517         PR target/48678
5518         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5519         is a SUBREG with non-MODE_INT mode inside of it.
5520
5521 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5522
5523         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5524         also according to actual contants.
5525         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5526         (gimple_fold_call): Use it.
5527         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5528
5529 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5530
5531         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5532         non-pointer assignments.
5533
5534 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5535
5536         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5537         account anc_offset and otr_type from the indirect edge info.
5538         * ipa-prop.c (get_ancestor_addr_info): New function.
5539         (compute_complex_ancestor_jump_func): Assignment analysis moved to
5540         get_ancestor_addr_info, call it.
5541         (ipa_note_param_call): Do not initialize information about polymorphic
5542         calls, return the indirect call graph edge.  Remove the last
5543         parameter, adjust all callers.
5544         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5545         parameters.  Initialize polymorphic information in the indirect edge.
5546
5547 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5548
5549         PR lto/48148
5550         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5551         the types if they have different enumeration identifiers.
5552
5553 2011-04-19  Jan Hubicka  <jh@suse.cz>
5554
5555         * cgraph.h (cgraph_optimize_for_size_p): Declare.
5556         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5557         * predict.c (cgraph_optimize_for_size_p): Break out from ...
5558         (optimize_function_for_size_p) ... here.
5559
5560 2011-04-19  Richard Guenther  <rguenther@suse.de>
5561
5562         PR lto/48207
5563         * tree.c (free_lang_data): Do not reset the decl-assembler-name
5564         langhook.
5565
5566 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5567
5568         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5569         if DECL_NO_INLINE_WARNING_P is set on the function.
5570
5571 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
5572
5573         PR fortran/47976
5574         * reload1.c (inc_for_reload): Return void. All callers changed.
5575         (emit_input_reload_insns): Don't try to delete previous output
5576         reloads to a register, or record spill_reg_store for autoincs.
5577
5578 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
5579
5580         * gengtype.h: Updated copyright year.
5581         (struct input_file_st): Add inpisplugin field.
5582         (type_fileloc): New function.
5583         * gengtype.c
5584         (write_typed_struct_alloc_def): Add gcc_assert.
5585         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5586         (write_typed_alloc_defns): Don't output for plugin files.
5587         (input_file_by_name): Clear inpisplugin field.
5588         (main): Set inpisplugin field for plugin files.
5589
5590 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
5591
5592         * gengtype-state.c (string_eq): New.
5593         (read_state): Use string_eq instead of strcmp when creating the
5594         state_ident_tab.
5595
5596 2011-04-19  Wei Guozhi  <carrot@google.com>
5597
5598         PR target/47855
5599         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5600         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5601         linkage.
5602         * config/arm/constraints.md (Uu): New constraint.
5603         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5604
5605 2011-04-19  Tristan Gingold  <gingold@adacore.com>
5606
5607         * config.gcc (-*-*-*vms): Added.
5608         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
5609         definitions moved.
5610         * config/vms/vms-ld.c: New file.
5611         * config/vms/vms-ar.c: New file.
5612         * config/vms/t-vmsnative: New file.
5613
5614 2011-04-18  Xinliang David Li  <davidxl@google.com>
5615
5616         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
5617
5618 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5619
5620         PR middle-end/48661
5621         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
5622         if TREE_TYPE (v) is non-NULL.
5623
5624         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
5625         gimple_get_virt_mehtod_for_binfo.
5626         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
5627         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
5628         callers.
5629         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5630
5631 2011-04-18  Michael Matz  <matz@suse.de>
5632             Steve Ellcey  <sje@cup.hp.com>
5633
5634         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
5635         use its mode as source mode if it isn't VOIDmode.
5636
5637 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
5638
5639         * doc/passes.texi: Fill crossref nodes.
5640
5641 2011-04-18  Jim Meyering  <meyering@redhat.com>
5642
5643         Fix doubled-word typos in comments and strings
5644         * config/alpha/vms-unwind.h: s/for for/for/
5645         * config/arm/unwind-arm.h: Likewise.
5646         * config/microblaze/microblaze.c: Likewise.
5647         * config/sh/constraints.md: s/in in/in/
5648         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
5649
5650 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
5651
5652         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
5653         (AVX_FLOAT_MODE_P): Ditto.
5654         (AVX128_VEC_FLOAT_MODE_P): Ditto.
5655         (AVX256_VEC_FLOAT_MODE_P): Ditto.
5656         (AVX_VEC_FLOAT_MODE_P): Ditto.
5657         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
5658         (UNSPEC_MASKSTORE): Ditto.
5659         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
5660         Merge from <sse>_movmsk<ssemodesuffix> and
5661         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
5662         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
5663         iterator.
5664         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
5665         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
5666         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
5667
5668 2011-04-18  Jan Hubicka  <jh@suse.cz>
5669
5670         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
5671
5672         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
5673         (want_inline_function_called_once_p): Break out the logic from
5674         ipa_inline.
5675         (edge_badness): Ensure that profile is not misupdated.
5676         (lookup_recursive_calls): Prioritize by call frequencies.
5677         (inline_small_functions): Move program size estimates here;
5678         actually process whole queue even when unit growth has been
5679         met. (to properly compute inline_failed reasons and for the
5680         case unit size decrease.) Revisit comments on recursive inlining.
5681         (ipa_inline): Remove unit summary code; first inline hot calls
5682         of functions called once, cold calls next.
5683         (order, nnodes): Remove unused variables.
5684         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
5685         (GTFILES): Remove ipa-inline.c
5686         * sel-sched.c (fill_insns): Silence uninitialized var warning.
5687
5688 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5689
5690         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
5691
5692 2011-04-18  Jie Zhang  <jie@codesourcery.com>
5693             Richard Earnshaw  <rearnsha@arm.com>
5694
5695         * arm.c (neon_builtin_type_bits): Remove.
5696         (typedef enum neon_builtin_mode): New.
5697         (T_MAX): Don't define.
5698         (typedef enum neon_builtin_datum): Remove bits, codes[],
5699         num_vars and base_fcode.  Add mode, code and fcode.
5700         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
5701         VAR10): Change accordingly.
5702         (neon_builtin_data[]): Change accordingly
5703         (arm_init_neon_builtins): Change accordingly.
5704         (neon_builtin_compare): Remove.
5705         (locate_neon_builtin_icode): Remove.
5706         (arm_expand_neon_builtin): Change accordingly.
5707
5708         * arm.h (enum arm_builtins): Move to ...
5709         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
5710
5711         * arm.c (arm_builtin_decl): Declare.
5712         (TARGET_BUILTIN_DECL): Define.
5713         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
5714         (arm_builtin_decls[]): New.
5715         (arm_init_neon_builtins): Store builtin declarations in
5716         arm_builtin_decls[].
5717         (arm_init_tls_builtins): Likewise.
5718         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
5719         (arm_builtin_decl): New.
5720
5721 2011-04-18  Richard Guenther  <rguenther@suse.de>
5722
5723         * tree.c (upper_bound_in_type): Build properly canonicalized
5724         INTEGER_CSTs.
5725         (lower_bound_in_type): Likewise.
5726
5727 2011-04-18  Richard Guenther  <rguenther@suse.de>
5728
5729         * gimple.h (gimple_call_addr_fndecl): New function.
5730         (gimple_call_fndecl): Use it.
5731         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
5732         for direct calls.
5733         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
5734         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
5735
5736 2011-04-18  Richard Guenther  <rguenther@suse.de>
5737
5738         PR middle-end/48650
5739         * tree.c (build_string): STRING_CST is now derived from tree_typed.
5740
5741 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5742
5743         PR lto/48492
5744         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
5745         DECL_IN_CONSTANT_POOL without RTL.
5746
5747 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
5748             Ira Rosen  <ira.rosen@linaro.org>
5749
5750         PR target/48252
5751         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5752         to match neon_vzip/vuzp/vtrn_internal.
5753         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5754         outputs explicitly dependent on both inputs.
5755         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5756
5757 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5758
5759         PR tree-optimization/48616
5760         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
5761         whether the shift is by scalar or vector based on whether all SLP
5762         scalar stmts have the same rhs.
5763
5764 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
5765
5766         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
5767         memory operands.
5768
5769 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
5770
5771         PR target/43700
5772         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5773         registers.
5774
5775 2011-04-17  Jan Hubicka  <jh@suse.cz>
5776
5777         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
5778         * cgrpahunit.c (cgraph_finalize_function): Do not set
5779         finalized_by_frontend.
5780         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5781         finalized_by_frontend.
5782
5783 2011-04-17  Jan Hubicka  <jh@suse.cz>
5784
5785         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
5786         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
5787         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
5788         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
5789         method.
5790         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
5791         gimple-fold.c
5792         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
5793
5794 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5795
5796         PR lto/48538
5797         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
5798         is non-null before accessing it.
5799         (input_cgraph): Remove trailing spaces.
5800
5801 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5802
5803         * params.def (sms-min-sc): New param flag.
5804         * modulo-sched.c (sms_schedule): Use it.
5805         * doc/invoke.texi (sms-min-sc): Document it.
5806
5807 2011-04-17  Jan Hubicka  <jh@suse.cz>
5808
5809         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
5810         present, also set gimple_call_set_cannot_inline.
5811         * ipa-inline.c: Update toplevel comment.
5812         (MAX_TIME): Remove.
5813         (cgraph_clone_inlined_nodes): Fix linebreaks.
5814         (cgraph_check_inline_limits): Restructure to ...
5815         (caller_growth_limits): ... this one; be more tolerant
5816         on growth in nested inline chains; add explanatory comment;
5817         fix stack accounting thinko introduced by previous patch.
5818         (cgraph_default_inline_p): Remove.
5819         (report_inline_failed_reason): New function.
5820         (can_inline_edge_p): New function.
5821         (can_early_inline_edge_p): New function.
5822         (leaf_node_p): Move upwards in file.
5823         (want_early_inline_function_p): New function.
5824         (want_inline_small_function_p): New function.
5825         (want_inline_self_recursive_call_p): New function.
5826         (cgraph_edge_badness): Rename to ...
5827         (edge_badness) ... this one; fix linebreaks.
5828         (update_edge_key): Update call of edge_baddness; add
5829         detailed dump about queue updates.
5830         (update_caller_keys): Use can_inline_edge_p and
5831         want_inline_small_function_p.
5832         (cgraph_decide_recursive_inlining): Rename to...
5833         (recursive_inlining): Use can_inline_edge_p and
5834         want_inline_self_recursive_call_p; simplify and remove no longer
5835         valid FIXME.
5836         (cgraph_set_inline_failed): Remove.
5837         (add_new_edges_to_heap): Use can_inline_edge_p and
5838         want_inline_small_function_p.
5839         (cgraph_decide_inlining_of_small_functions): Rename to ...
5840         (inline_small_functions): ... this one; cleanup; use
5841         can/want predicates; cleanup debug ouput; work edges till fibheap
5842         is exhausted and do not stop once unit growth is reached; remove
5843         later loop processing remaining edges.
5844         (cgraph_flatten): Rename to ...
5845         (flatten_function): ... this one; use can_inline_edge_p
5846         and can_early_inline_edge_p predicates.
5847         (cgraph_decide_inlining): Rename to ...
5848         (ipa_inline): ... this one; remove unreachable nodes before
5849         inlining functions called once; simplify the pass.
5850         (cgraph_perform_always_inlining): Rename to ...
5851         (inline_always_inline_functions): ... this one; use
5852         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
5853         (cgraph_decide_inlining_incrementally): Rename to ...
5854         (early_inline_small_functions): ... this one; simplify
5855         using new predicates; cleanup; make dumps prettier.
5856         (cgraph_early_inlining): Rename to ...
5857         (early_inliner): newer inline regular functions into always-inlines;
5858         fix updating of call stmt summaries.
5859         (pass_early_inline): Update for new names.
5860         (inline_transform): Fix formating.
5861         (gate_cgraph_decide_inlining): Rename to ...
5862         (pass_ipa_inline): ... this one.
5863         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
5864         * ipa-inline-analysis.c (dump_inline_summary): Update.
5865         (compute_inline_parameters): Do not compute disregard_inline_limits;
5866         look for mismatching arguments.
5867         (estimate_growth): Fix handlig of non-trivial self recursion.
5868         (inline_read_summary): Do not read info->disregard_inline_limits.
5869         (inline_write_summary): Do not write info->disregard_inline_limits.
5870         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
5871         and move all checks into can_inline_edge_p predicate; re-enable code
5872         comparing optimization levels.
5873         (expand_call_inline): Do not test inline_forbidden_into_p.
5874         * Makefile.in (ipa-inline.o): Update arguments.
5875
5876 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5877
5878         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
5879
5880 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5881
5882         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
5883
5884 2011-04-17  Michael Matz  <matz@suse.de>
5885
5886         PR tree-optimization/48622
5887         PR lto/48645
5888         * ipa-inline-analysis.c (inline_read_summary): Read size/time
5889         in same order as they're written.
5890
5891 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5892
5893         * config/pa/predicates.md: Reorganize and simplify predicates.
5894         Eliminate duplicate code checks.
5895         (arith_operand): Rename to arith14_operand
5896         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
5897         * config/pa/pa.md: Use renamed operands.
5898         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
5899         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
5900         arith11_operand, adddi3_operand, indexed_memory_operand,
5901         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
5902         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
5903         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
5904         move_dest_operand, move_src_operand, prefetch_cc_operand,
5905         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
5906         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
5907         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
5908         div_operand, int5_operand, movb_comparison_operator,
5909         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
5910         arith_double_operand, ireg_operand, lhs_lshift_operand,
5911         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
5912         integer_store_memory_operand): Likewise.
5913         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
5914         (integer_store_memory_operand, read_only_operand,
5915         function_label_operand, borx_reg_operand,
5916         non_hard_reg_operand): Likewise.
5917         (eq_neq_comparison_operator): Delete unused operator.
5918         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
5919         function_label_operand.
5920         (emit_move_sequence): Likewise.
5921
5922 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5923
5924         * config/i386/sse.md (sseunpackmode): New mode attribute.
5925         (ssepackmode): Ditto.
5926         (vec_pack_trunc_<mode>): Macroize expander from
5927         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
5928         (vec_unpacks_lo_<mode>): Macroize expander from
5929         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5930         (vec_unpacks_hi_<mode>): Macroize expander from
5931         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5932         (vec_unpacku_lo_<mode>): Macroize expander from
5933         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5934         (vec_unpacku_hi_<mode>): Macroize expander from
5935         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5936         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
5937         ix86_expand_sse4_unpack.
5938         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
5939
5940 2011-04-16  Jan Hubicka  <jh@suse.cz>
5941
5942         * cgraphbuild.c: Include ipa-inline.h.
5943         (reset_inline_failed): Use initialize_inline_failed.
5944         * cgraph.c: Include ipa-inline.h.
5945         (cgraph_create_node_1): Do not initialize estimated_growth.
5946         (initialize_inline_failed): More to ipa-inline-analysis.c
5947         (dump_cgraph_node): Do not dump inline flags.
5948         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5949         and disregard_inline_limits flags.
5950         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5951         time, size, estimated_growth.
5952         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5953         Update.
5954         * cgraphunit.c (cgraph_decide_is_function_needed): Use
5955         DECL_DISREGARD_INLINE_LIMITS.
5956         (cgraph_analyze_function): Do not initialize
5957         node->local.disregard_inline_limits.
5958         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5959         inlinable, versionable and disregard_inline_limits.
5960         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5961         cgraph_check_inline_limits, cgraph_default_inline_p,
5962         cgraph_edge_badness, update_caller_keys, update_callee_keys,
5963         add_new_edges_to_heap): Update.
5964         (cgraph_decide_inlining_of_small_function): Update; set
5965         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
5966         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5967         cgraph_decide_inlining_incrementally): Update.
5968         * ipa-inline.h (inline_summary): Add inlinable, versionable,
5969         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5970         time, size and estimated_growth parameters.
5971         (estimate_edge_growth): Update.
5972         (initialize_inline_failed): Declare.
5973         * ipa-split.c: Include ipa-inline.h
5974         (execute_split_functions): Update.
5975         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5976         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5977         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5978         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5979         estimated_growth to INT_MIN.
5980         (inline_node_duplication_hook): Likewise.
5981         (dump_inline_summary): Dump new fields.
5982         (compute_inline_parameters): Update.
5983         (estimate_edge_time, estimate_time_after_inlining,
5984         estimate_size_after_inlining, estimate_growth, inline_read_summary,
5985         inline_write_summary):
5986         (initialize_inline_failed): Move here from cgraph.c.
5987         * tree-sra.c: Include ipa-inline.h.
5988         (ipa_sra_preliminary_function_checks): Update.
5989         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5990         ipa-inline.h.
5991
5992 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5993
5994         * config/i386/sse.md (V16): New mode iterator.
5995         (VI1, VI8): Ditto.
5996         (AVXMODEQI, AVXMODEDI): Remove.
5997         (sse2, sse3): New mode attribute.
5998         (mov<mode>): Use V16 mode iterator.
5999         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
6000         (push<mode>1): Use V16 mode iterator.
6001         (movmisalign<mode>): Ditto.
6002         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6003         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
6004         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6005         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
6006         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
6007         avx_movdqu<avxmodesuffix>.
6008         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
6009         *avx_movdqu<avxmodesuffix>.
6010         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
6011         avx_lddqu<avxmodesuffix>.
6012         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
6013         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
6014         avx_movnt<AVXMODEDI:mode>.
6015         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
6016         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
6017
6018 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
6019
6020         PR target/48629
6021         * haifa-sched.c (prune_ready_list, schedule_block): Use
6022         sched_pressure_p rather than flag_sched_pressure.
6023
6024 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6025
6026         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6027         cgraph_get_node instead of cgraph_get_create_node.
6028
6029 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
6030
6031         * cfgexpand.c (expand_debug_expr): Use
6032         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
6033
6034 2011-04-15  Michael Matz  <matz@suse.de>
6035
6036         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
6037         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
6038         * function.c (gimplify_parameters): Ditto.
6039         * gimplify.c (gimplify_vla_decl): Ditto.
6040
6041         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
6042         (gimple_call_set_alloca_for_var): New inline function.
6043         (gimple_call_alloca_for_var_p): Ditto.
6044         * gimple.c (gimple_build_call_from_tree): Remember
6045         CALL_ALLOCA_FOR_VAR_P state.
6046         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
6047
6048         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
6049         calls if they were for VLA objects.
6050
6051 2011-04-15  Martin Jambor  <mjambor@suse.cz>
6052
6053         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
6054         of ADR_EXPRs.
6055
6056 2011-04-15  Martin Jambor  <mjambor@suse.cz>
6057
6058         PR middle-end/48601
6059         * tree-emutls.c (lower_emutls_function_body): Call
6060         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
6061         result is non-NULL.
6062
6063 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
6064
6065         * c-decl.c (detect_field_duplicates): Call
6066         objc_detect_field_duplicates instead of objc_get_interface_ivars.
6067
6068 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
6069
6070         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
6071         * gimple.c (gimple_asm_clobbers_memory_p): Define.
6072         * ipa-pure-const.c (check_stmt): Call it.
6073         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
6074
6075 2011-04-15  Richard Guenther  <rguenther@suse.de>
6076
6077         PR tree-optimization/48290
6078         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
6079         Properly decide inhibiting propagation based on the valueized
6080         operand.  Do loop-closed SSA form preserving here ...
6081         (init_copy_prop): ... not here.
6082
6083 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
6084
6085         PR target/48612
6086         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
6087         (*ieee_smax<mode>3): Likewise.
6088
6089 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6090
6091         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
6092         Replace match_operand with match_dup for the third operand in
6093         these expanders.
6094
6095 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6096
6097         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
6098         to track processing of conditionals.  Update all callers.
6099         (try_combine, simplify_if_then_else): Update.
6100
6101 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6102
6103         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
6104         -fsched-pressure.
6105
6106 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
6107
6108         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
6109         instead of match_operand for operand 3.
6110
6111 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
6112
6113         * recog.h (insn_operand_data): Add an "allows_mem" field.
6114         * genoutput.c (output_operand_data): Initialize it.
6115         * optabs.c (maybe_legitimize_operand_same_code): New function.
6116         (maybe_legitimize_operand): Use it when matching the original
6117         op->value.
6118
6119 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6120
6121         * gimplify.c: Fix issues in comments throughout.
6122         (voidify_wrapper_expr): Fix long line.
6123         (build_stack_save_restore): Likewise.
6124         (gimplify_loop_expr): Likewise.
6125         (gimplify_compound_lval): Likewise.
6126         (gimplify_init_ctor_eval): Likewise.
6127         (gimplify_modify_expr_rhs): Likewise.
6128         (omp_notice_threadprivate_variable): Likewise.
6129
6130 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6131
6132         * cfgexpand.c (expand_call_stmt): Convert the function type to the
6133         original one if this is not a builtin function.
6134
6135 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
6136
6137         PR target/48605
6138         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
6139         offset it as needed based on top 2 bits in operands[3], change
6140         MEM mode to SFmode and mask those 2 bits away from operands[3].
6141
6142 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
6143
6144         * c-parser.c (c_parser_objc_protocol_definition): Updated for
6145         change from objc_declare_protocols() to objc_declare_protocol().
6146
6147 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
6148
6149         * config/i386/sse.md (sse4_1): New mode attribute.
6150         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
6151         avx_blend<ssemodesuffix><avxmodesuffix> and
6152         sse4_1_blend<ssemodesuffix> using VF mode iterator.
6153         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
6154         avx_blendv<ssemodesuffix><avxmodesuffix> and
6155         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
6156         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
6157         avx_dp<ssemodesuffix><avxmodesuffix> and
6158         sse4_1_dp<ssemodesuffix> using VF mode iterator.
6159         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
6160         (sse4_1_packusdw): Merge with *avx_packusdw.
6161         (sse4_1_pblendvb): Merge with *avx_pblendvb.
6162         (sse4_1_pblendw): Merge with *avx_pblendw.
6163         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
6164         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
6165         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
6166         VF mode iterator.
6167         (sse4_1_round<ssescalarmodesuffix>): Merge with
6168         *avx_round<ssescalarmodesuffix>.
6169         (aesenc): Merge with *avx_aesenc.
6170         (aesenclast): Merge with *avx_aesenclast.
6171         (aesdec): Merge with *avx_aesdec.
6172         (aesdeclast): Merge with *avx_aesdeclast.
6173         (pclmulqdq): Merge with *pclmulqdq.
6174         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
6175         New predicate.
6176         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
6177
6178 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
6179
6180         PR middle-end/48608
6181         * cfgexpand.c (get_decl_align_unit): Renamed to ...
6182         (align_local_variable): This.  Update DECL_ALIGN.
6183         (add_stack_var): Updated.
6184         (expand_one_stack_var): Likewise.
6185
6186 2011-04-14  Richard Guenther  <rguenther@suse.de>
6187
6188         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
6189         Remove.
6190         (dse_initialize_block_local_data, dse_leave_block,
6191         record_voperand_set, get_stmt_uid): Likewise.
6192         (dse_possible_dead_store_p): Allow any kind of killing stmt.
6193         (dse_optimize_stmt): Remove voperand set handling code.
6194         Simplify and improve to handle any kind of killing stmt.
6195         (dse_record_phi): Remove.
6196         (dse_enter_block): Simplify.
6197         (tree_ssa_dse): Likewise.
6198         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
6199
6200 2011-04-14  Jan Hubicka  <jh@suse.cz>
6201
6202         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
6203         * cgraph.h (struct inline_summary): Move to ipa-inline.h
6204         (cgraph_local_info): Remove inline_summary.
6205         * ipa-cp.c: Include ipa-inline.h.
6206         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
6207         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
6208         accesor.
6209         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
6210         (input_overwrite_node): Do not set inline summary.
6211         (input_node): Do not stream inline summary.
6212         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
6213         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
6214         growth; we do not have inline parameters computed for that anyway.
6215         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
6216         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
6217         (inline_summary_t): New type and VECtor.
6218         (debug_inline_summary, dump_inline_summaries): Declare.
6219         (inline_summary): Use VOCtor.
6220         (estimate_edge_growth): Kill hack computing call stmt size directly.
6221         * lto-section-in.c (lto_section_name): Add inline section.
6222         * ipa-inline-analysis.c: Include lto-streamer.h
6223         (node_removal_hook_holder, node_duplication_hook_holder): New holders
6224         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
6225         (inline_summary_vec): Define.
6226         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
6227         dump_inline_summaries): New functions.
6228         (estimate_function_body_sizes): Properly compute size/time of outgoing
6229         calls.
6230         (compute_inline_parameters): Alloc inline_summary; do not compute
6231         size/time of incomming calls.
6232         (estimate_edge_time): Avoid missing time summary hack.
6233         (inline_read_summary): Read inline summary info.
6234         (inline_write_summary): Write inline summary info.
6235         (inline_free_summary): Free all hooks and inline summary vector.
6236         * lto-streamer.h: Add LTO_section_inline_summary section.
6237         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
6238         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
6239
6240 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6241
6242         * tree-vectorizer.h (vect_strided_store_supported): Add a
6243         HOST_WIDE_INT argument.
6244         (vect_strided_load_supported): Likewise.
6245         (vect_permute_store_chain): Return void.
6246         (vect_transform_strided_load): Likewise.
6247         (vect_permute_load_chain): Delete.
6248         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
6249         count argument.  Check that the count is a power of two.
6250         (vect_strided_load_supported): Likewise.
6251         (vect_permute_store_chain): Return void.  Update after above changes.
6252         Assert that the access is supported.
6253         (vect_permute_load_chain): Likewise.
6254         (vect_transform_strided_load): Return void.
6255         * tree-vect-stmts.c (vectorizable_store): Update calls after
6256         above interface changes.
6257         (vectorizable_load): Likewise.
6258         (vect_analyze_stmt): Don't check for strided powers of two here.
6259
6260 2011-04-14  Richard Guenther  <rguenther@suse.de>
6261
6262         PR tree-optimization/48590
6263         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6264         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6265         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
6266         BUILT_IN_STACK_SAVE.
6267         * tree-ssa-dce.c (propagate_necessity): Handle
6268         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6269
6270 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
6271
6272         * c-parser.c (c_parser_objc_class_declaration): Updated call to
6273         objc_declare_class.
6274
6275 2011-04-14  Richard Guenther  <rguenther@suse.de>
6276
6277         * tree.h (get_object_alignment_1): Declare.
6278         * builtins.c (get_object_alignment_1): Split out worker from ...
6279         (get_object_alignment): ... here.
6280         * fold-const.c (get_pointer_modulus_and_residue): Use
6281         get_object_alignment_1.
6282
6283 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6284
6285         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
6286         type parameter.
6287         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
6288         parameter.  Generalise code to handle arrays as well as vectors.
6289         (vect_setup_realignment): Update accordingly.
6290         * tree-vect-stmts.c (vectorizable_store): Likewise.
6291         (vectorizable_load): Likewise.
6292
6293 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6294
6295         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
6296         within the per-copy loop.
6297
6298 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6299
6300         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
6301         in the dump file.
6302
6303 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6304
6305         * doc/options.texi (Negative): Explicitly mention that the
6306         Negative chain must be circular.
6307
6308 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
6309
6310         * function.h (block_chainon): Declare.
6311         * function.c (block_chainon): Define.
6312
6313 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
6314             Eric Weddington  <eric.weddington@atmel.com>
6315             Georg-Johann Lay  <avr@gjlay.de>
6316
6317         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
6318         New Includes
6319         (avr_init_builtins, avr_expand_builtin,
6320         avr_expand_delay_cycles, avr_expand_unop_builtin,
6321         avr_expand_binop_builtin ): New functions.
6322         (avr_builtin_id): New enum
6323         (struct avr_builtin_description): New struct
6324         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
6325         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
6326
6327         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
6328         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
6329         UNSPECV_DELAY_CYCLES): new enumeration values
6330         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6331         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6332         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6333         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6334         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6335         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6336         "fmulsu"): New insns
6337
6338         * config/avr/avr-c.c: fix line endings
6339         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6340         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6341         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6342         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6343         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6344
6345         * doc/extend.texi (AVR Built-in Functions): New node
6346         (Target Builtins): Add documentation of AVR
6347         built-in functions.
6348
6349 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
6350
6351         PR target/44643
6352         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6353         alone. Error if non-const data has attribute progmem.
6354
6355 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6356
6357         * tree.h (struct tree_constructor): Include tree_typed instead of
6358         tree_common.
6359         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6360         TS_TYPED instead of TS_COMMON.
6361
6362 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6363
6364         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6365         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6366         (sse2_psadbw): Merge with *avx_psadbw.
6367         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6368         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6369         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6370         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6371         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6372         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6373         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6374         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6375         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6376         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6377         (ssse3_palignrti): Merge with *avx_palignrti.
6378
6379 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6380
6381         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6382         * tree-ssanames.c (fini_ssanames): VEC_free it.
6383         (make_ssa_name_fn): Update for VECness of free_ssanames.
6384         (release_ssa_name, release_dead_ssa_names): Likewise.
6385         * tree.h (struct tree_ssa_name): Include tree_typed instead of
6386         tree_common.
6387         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6388         TS_TYPED instead of TS_COMMON.
6389
6390 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6391
6392         * postreload-gcse.c (gcse_after_reload_main): Add calls to
6393         statistics_counter_event.
6394         * tree-ssa-copyrename.c (stats): Define.
6395         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
6396         statistics_counter_event.
6397         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6398         (bswap_stats, widen_mul_stats): Define.
6399         (insert_reciprocals): Increment rdivs_inserted.
6400         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
6401         rfuncs_inserted.  Add calls to statistics_counter_event.
6402         (execute_cse_sincos_1): Increment inserted.
6403         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
6404         statistics_counter_event.
6405         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
6406         of bswap_stats.  Add calls to statistics_counter_event.
6407         (convert_mult_to_widen): Increment widen_mults_inserted.
6408         (convert_plusminus_to_widen): Increment maccs_inserted.
6409         (convert_mult_to_fma): Increment fmas_inserted.
6410         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
6411         calls to statistics_counter_event.
6412
6413 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
6414
6415         PR rtl-optimization/48455
6416         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6417         `temp_costs->mem_cost'.
6418
6419 2011-04-13  Jan Hubicka  <jh@suse.cz>
6420
6421         * ipa-inline.h: New file.
6422         * ipa-inline-analysis.c: New file. Broken out of ...
6423         * ipa-inline.c: ... this file; update toplevel comment;
6424         include ipa-inline.h
6425         (inline_summary): Move to ipa-inline.h
6426         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6427         ipa-inline-analysis.c.
6428         (cgraph_estimate_time_after_inlining): Rename to
6429         estiamte_time_after_inlining; move to ipa-inline-analysis.c
6430         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6431         to estimate_edge_growth.
6432         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6433         rename to estimate_size_after_inlining.
6434         (cgraph_mark_inline_edge): Update for new naming convention.
6435         (cgraph_check_inline_limits): Likewise.
6436         (cgraph_edge_badness): Likewise.
6437         (cgraph_decide_recursive_inlining): Likewise.
6438         (cgraph_decide_inlining_of_small_functions): Likewise.
6439         (cgraph_decide_inlining_incrementally): Likewise.
6440         (cgraph_estimate_growth): Rename to estimate_growth; move to
6441         ipa-inline-analysis.c.
6442         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6443         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6444         (compute_inline_parameters): Likewise.
6445         (compute_inline_parameters_for_current): Likewise.
6446         (pass_inline_parameters): Likewise.
6447         (inline_indirect_intraprocedural_analysis): Likewise.
6448         (analyze_function): Rename to inline_analyze_function; likewise.
6449         (add_new_function): Move to ipa-inline-analysis.c.
6450         (inline_generate_summary): Likewise.
6451         (inline_read_summary): Likewise.
6452         (inline_write_summary): Likewise.
6453         * Makefile.in (ipa-inline-analysis.c): New file.
6454
6455 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6456
6457         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6458         * configure: Regenerate.
6459
6460 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6461
6462         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6463         instead of tree_common.
6464         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6465         Likewise.
6466         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6467         TS_TYPED rather than TS_COMMON.
6468         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6469
6470 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
6471
6472         PR target/45263
6473         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6474         r20 around calls of __tablejump_elpm__
6475
6476 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
6477
6478         PR middle-end/48591
6479         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6480         NULL.
6481         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6482
6483 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
6484
6485         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6486         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6487         (cfi_vec): New typedef.
6488         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6489         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6490         (cie_cfi_vec): New static variable.
6491         (cie_cfi_head): Delete.
6492         (add_cfi): Accept a cfi_vec * as first argument. All callers and
6493         declaration changed. Use vector rather than list operations.
6494         (new_cfi): Don't initialize the dw_cfi_next field.
6495         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6496         rather than list operations.
6497         (lookup_cfa): Use vector rather than list operations.
6498         (output_cfis): New argument upto. Accept a cfi_vec rather than
6499         a dw_cfi_ref list head as argument. All callers changed.
6500         Iterate over the vector using upto as a maximum index.
6501         (output_all_cfis): New static function.
6502         (output_fde): Use vector rather than list operations. Use the
6503         new upto argument for output_cfis rather than manipulating a
6504         list.
6505         (dwarf2out_begin_prologue): Change initializations to match
6506         new struct members.
6507         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6508         from the vector length rather than searching for the end of a list.
6509         Use output_all_cfis.
6510         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6511
6512 2011-04-13  Nick Clifton  <nickc@redhat.com>
6513
6514         * config/rx/rx.md (movmemsi): Do not use this pattern when
6515         volatile pointers are involved.
6516
6517 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6518
6519         * config/i386/sse.md (pinsrbits): Remove.
6520         (sse2_packsswb): Merge with *avx_packsswb.
6521         (sse2_packssdw): Merge with *avx_packssdw.
6522         (sse2_packuswb): Merge with *avx_packuswb.
6523         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6524         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6525         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6526         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6527         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6528         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6529         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6530         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6531         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6532         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6533         (sse2_loadld): Merge with *avx_loadld.
6534         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6535         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6536         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6537         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6538         (vec_concatv2di): Merge with *vec_concatv2di_avx.
6539
6540 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
6541
6542         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6543         calling TREE_CHAIN.
6544         * print-tree.c (print_node): Likewise.
6545         * tree-inline.c (copy_tree_r): Likewise.
6546         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6547         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6548         instead of TS_COMMON.
6549         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6550         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6551         (copy_node_stat): Zero TREE_CHAIN only if necessary.
6552         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6553         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6554         ...and these...
6555         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6556         * tree.h: ...here.
6557         (TREE_CHAIN): Check for a TS_COMMON structure.
6558         (TREE_TYPE): Check for a TS_TYPED structure.
6559
6560 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
6561
6562         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6563         cgraph_get_create_node instead of cgraph_node.
6564
6565 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6566
6567         * c-parser.c (c_parser_initelt): Updated call to
6568         objc_build_message_expr.
6569         (c_parser_postfix_expression): Likewise.
6570
6571 2011-04-12  Kai Tietz  <ktietz@redhat.com>
6572
6573         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6574         MASK_MS_BITFIELD_LAYOUT bit.
6575
6576 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6577
6578         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6579         assert it is always true.
6580         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6581         moves.
6582
6583 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6584
6585         * c-parser.c (c_lex_one_token): Rewritten conditional used when
6586         compiling Objective-C to be more efficient.
6587
6588 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
6589
6590         * opts-common.c (decode_cmdline_options_to_array): Remove variable
6591         argv_copied.
6592
6593 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6594
6595         * recog.h, genoutput.c, optabs.c: Revert last patch.
6596
6597 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6598
6599         PR target/48090
6600         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
6601
6602 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6603
6604         * recog.h (insn_operand_data): Add an "allows_mem" field.
6605         * genoutput.c (output_operand_data): Initialize it.
6606         * optabs.c (maybe_legitimize_operand_same_code): New function.
6607         (maybe_legitimize_operand): Use it when matching the original
6608         op->value.
6609
6610 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6611
6612         * genpreds.c (process_define_predicate): Move most processing
6613         to gensupport.c.  Continue to validate the expression.
6614         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
6615         (process_define_predicate): Move processing to gensupport.c.
6616         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
6617         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
6618         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
6619         argument.
6620         (valid_predicate_name_p): New function, split out from old
6621         genpreds.c:process_define_predicate.
6622         (process_define_predicate): New function, combining code from
6623         old genpreds.c and genrecog.c functions.
6624         (process_rtx): Call it for DEFINE_PREDICATE and
6625         DEFINE_SPECIAL_PREDICATE.
6626
6627 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6628
6629         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
6630         size of a '%A' memory reference.
6631         (T_DREG, T_QREG): New neon_builtin_type_bits.
6632         (arm_init_neon_builtins): Assert that the load and store operands
6633         are neon_struct_operands.
6634         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
6635         (NEON_ARG_MEMORY): New builtin_arg.
6636         (neon_dereference_pointer): New function.
6637         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
6638         Handle NEON_ARG_MEMORY.
6639         (arm_expand_neon_builtin): Update after above interface changes.
6640         Use NEON_ARG_MEMORY for loads and stores.
6641         * config/arm/predicates.md (neon_struct_operand): New predicate.
6642         * config/arm/iterators.md (V_two_elem): Tweak formatting.
6643         (V_three_elem): Use BLKmode for accesses that have no associated mode.
6644         (V_four_elem): Tweak formatting.
6645         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
6646         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
6647         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
6648         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
6649         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
6650         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
6651         (neon_vst4<mode>): Replace pointer operand with a memory operand.
6652         Use %A in the output template.
6653         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
6654         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
6655         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
6656         the width of the memory access.  Remove post-increment.
6657         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
6658
6659 2011-04-12  Nick Clifton  <nickc@redhat.com>
6660
6661         * config/v850/v850.c (expand_prologue): Do not use the CALLT
6662         instruction for interrupt handlers if the target is the basic V850
6663         architecture.
6664         (expand_epilogue): Likewise.
6665
6666 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6667
6668         PR rtl-optimization/48549
6669         * combine.c (propagate_for_debug): Also stop after BB_END of
6670         this_basic_block.  Process LAST and just stop processing after it.
6671         (combine_instructions): If last_combined_insn has been deleted,
6672         set last_combined_insn to its PREV_INSN.
6673
6674 2011-04-12  Richard Guenther  <rguenther@suse.de>
6675
6676         PR tree-optimization/46076
6677         * gimple.h (struct gimple_statement_call): Add fntype field.
6678         (gimple_call_fntype): Adjust.
6679         (gimple_call_set_fntype): New function.
6680         * gimple.c (gimple_build_call_1): Set the call function type.
6681         * gimplify.c (gimplify_call_expr): Preserve the function
6682         type the frontend used for the call.
6683         (gimplify_modify_expr): Likewise.
6684         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
6685         function type.
6686         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
6687         function type.
6688         * tree-ssa.c (useless_type_conversion_p): Function pointer
6689         conversions are useless.
6690
6691 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6692
6693         * cgraph.h (cgraph_node): Remove function declaration.
6694         (cgraph_create_node): Declare.
6695         (cgraph_get_create_node): Likewise.
6696         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
6697         Updated all callers.
6698         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
6699         the decl does not already exist.  Call cgraph_get_create_node instead
6700         of cgraph_node.
6701         (cgraph_get_create_node): New function.
6702         (cgraph_same_body_alias): Update comment.
6703         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
6704         assert it does not return NULL.
6705         (cgraph_update_edges_for_call_stmt): Likewise.
6706         (cgraph_clone_edge): Likewise.
6707         (cgraph_create_virtual_clone): Likewise.
6708         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
6709         instead of cgraph_node.
6710         (cgraph_add_new_function): Call cgraph_create_node or
6711         cgraph_get_create_node instead of cgraph_node.
6712         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
6713         instead of cgraph_node.
6714         (record_eh_tables): Likewise.
6715         (mark_address): Likewise.
6716         (mark_load): Likewise.
6717         (build_cgraph_edges): Call cgraph_get_create_node instead
6718         of cgraph_node.
6719         (rebuild_cgraph_edges): Likewise.
6720         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
6721         instead of cgraph_node.
6722         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
6723         cgraph_node.
6724         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
6725         cgraph_create_node instead of cgraph_node.
6726         * c-decl.c (finish_function): Call cgraph_get_create_node instead
6727         of cgraph_node.
6728         * lto-cgraph.c (input_node): Likewise.
6729         * lto-streamer-in.c (input_function): Likewise.
6730         * varasm.c (mark_decl_referenced): Likewise.
6731         (assemble_alias): Likewise.
6732
6733 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6734
6735         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
6736         instead of cgraph_node and assert it does not return NULL.
6737         * lto-streamer-in.c (lto_read_body): Likewise.
6738         * omp-low.c (new_omp_context): Likewise.
6739         (create_task_copyfn): Likewise.
6740         * tree-emutls.c (lower_emutls_function_body): Likewise.
6741         * matrix-reorg.c (transform_allocation_sites): Likewise.
6742
6743 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6744
6745         PR c/48552
6746         * c-typeck.c (build_asm_expr): Error out on attempts to use
6747         void type outputs or inputs for constraints that allow reg or
6748         don't allow memory.
6749
6750 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
6751             Richard Earnshaw  <rearnsha@arm.com>
6752
6753         PR target/48250
6754         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
6755         to use sign-magnitude offsets. Reject unsupported unaligned
6756         cases. Add detailed description in comments.
6757         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
6758         condition from TARGET_32BIT to TARGET_ARM.
6759
6760 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
6761
6762         * tree.h (struct typed_tree): New.
6763         (struct tree_common): Include it instead of tree_base.
6764         (TREE_TYPE): Update for new location of type field.
6765         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
6766         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
6767         (union tree_node): Add typed field.
6768         * treestruct.def (TS_TYPED): New.
6769         * lto-streamer.c (check_handled_ts_structures): Handle it.
6770         * tree.c (MARK_TS_TYPED): New macro.
6771         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
6772
6773 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
6774
6775         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
6776         (force_nonfallthru): Do not alter the loop nest if no basic block
6777         was created.
6778
6779 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6780
6781         * config/i386/sse.md (VI): New mode iterator.
6782         (SSEMODEI): Remove.
6783         (AVX256MODEI): Ditto.
6784         (AVXMODEF4P): Ditto.
6785         (avxvecpsmode): Ditto.
6786         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
6787         (sse2_andnot<mode>3): New expander.
6788         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
6789         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
6790         (<any_logic:code><mode>3): Use VI mode iterator.
6791         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
6792         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
6793         (*andnottf3): Handle AVX three-operand constraints.
6794         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
6795
6796 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6797             Robert Millan  <rmh@gnu.org>
6798
6799         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
6800         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
6801         GNU_USER_DYNAMIC_LINKER64): Define.
6802         (REG_NAME): Don't undefine.
6803         (MD_UNWIND_SUPPORT): Undefine.
6804         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
6805         (REG_NAME): Don't undefine.
6806         (MD_UNWIND_SUPPORT): Undefine.
6807         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
6808
6809 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6810
6811         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
6812         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
6813
6814 2011-04-11  Xinliang David Li  <davidxl@google.com>
6815
6816         * value-profile.c (check_ic_target): New function.
6817         (gimple_ic_transform): Sanity check indirect call target.
6818         * gimple-low.c (gimple_check_call_args): Interface change.
6819         (gimple_check_call_matching_types): New function.
6820         * tree-inline.c (tree_can_inline_p): Call new function.
6821
6822 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
6823
6824         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
6825         tree-pretty-print.h & realmpfr.h.
6826
6827 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
6828
6829         PR middle-end/48464
6830         * ira.c (setup_pressure_classes): Fix typo in loop condition.
6831         (setup_allocno_and_important_classes): Ditto.
6832
6833 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6834
6835         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
6836         GNU_USER_DYNAMIC_LINKER.
6837         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
6838         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6839         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
6840         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6841         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6842         GNU_USER_TARGET_OS_CPP_BUILTINS.
6843         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
6844         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6845         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6846         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6847         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
6848         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6849         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6850         GNU_USER_TARGET_OS_CPP_BUILTINS.
6851         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6852         GNU_USER_DYNAMIC_LINKER.
6853         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6854         GNU_USER_TARGET_OS_CPP_BUILTINS.
6855         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
6856         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6857         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
6858         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6859         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
6860         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
6861         GNU_USER_DYNAMIC_LINKER64): Remove.
6862         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
6863         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6864         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6865         GNU_USER_DYNAMIC_LINKER.
6866         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6867         GNU_USER_TARGET_OS_CPP_BUILTINS.
6868         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6869         GNU_USER_TARGET_OS_CPP_BUILTINS.
6870         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
6871         to GNU_USER_TARGET_OS_CPP_BUILTINS.
6872         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6873         GNU_USER_TARGET_OS_CPP_BUILTINS.
6874         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
6875         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
6876         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6877         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
6878         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6879         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6880         GNU_USER_DYNAMIC_LINKER.
6881         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6882         GNU_USER_TARGET_OS_CPP_BUILTINS.
6883         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
6884         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6885         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6886         GNU_USER_DYNAMIC_LINKER.
6887         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6888         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6889         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
6890         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6891         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6892         GNU_USER_DYNAMIC_LINKER.
6893         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
6894         GNU_USER_DYNAMIC_LINKERN32.
6895         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
6896         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
6897         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
6898         GNU_USER_DYNAMIC_LINKER32.
6899         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
6900         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6901         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6902         GNU_USER_DYNAMIC_LINKER.
6903         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6904         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6905         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
6906         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6907         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6908         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
6909         GNU_USER_DYNAMIC_LINKER32.
6910         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6911         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
6912         GNU_USER_DYNAMIC_LINKER.
6913         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
6914         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6915         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6916         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
6917         GNU_USER_DYNAMIC_LINKER64.
6918         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
6919         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6920         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6921         GNU_USER_DYNAMIC_LINKER.
6922         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
6923         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6924         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6925         GNU_USER_DYNAMIC_LINKER.
6926         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
6927         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6928         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6929         GNU_USER_DYNAMIC_LINKER32.
6930         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6931         GNU_USER_DYNAMIC_LINKER64.
6932         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6933         GNU_USER_DYNAMIC_LINKER64.
6934         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
6935         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6936         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
6937         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6938         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6939
6940 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6941
6942         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
6943         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
6944         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6945         GNU_USER_DYNAMIC_LINKER.
6946         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6947         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
6948         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6949         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6950         GNU_USER_DYNAMIC_LINKER64.
6951         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6952         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6953         GNU_USER_LINK_EMULATION.
6954         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6955         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6956         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6957         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6958         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6959         CPP_SPEC, CC1_SPEC): Remove.
6960         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6961         (GNU_USER_DYNAMIC_LINKER): Define.
6962         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6963         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6964         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6965         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6966         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6967         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6968         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6969         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6970         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6971         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6972         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6973         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6974         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6975         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6976         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6977         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6978         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6979         GNU_USER_DYNAMIC_LINKER.
6980         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6981         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6982         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6983         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6984         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6985         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6986         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6987         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6988         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
6989         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
6990
6991 2011-04-11  Kai Tietz  <ktietz@redhat.com>
6992
6993         PR target/9601
6994         PR target/11772
6995         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6996         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6997         comment.
6998         (ix86_is_msabi_thiscall): Removed.
6999         (ix86_is_type_thiscall): Likewise.
7000         (ix86_get_callcvt): New function.
7001         (ix86_comp_type_attributes): Simplify check.
7002         (ix86_function_regparm): Use ix86_get_callcvt for calling
7003         convention attribute checks.
7004         (ix86_return_pops_args): Likewise.
7005         (ix86_static_chain): Likewise.
7006         (x86_this_parameter): Likewise.
7007         (x86_output_mi_thunk): Likewise.
7008         (ix86_function_type_abi): Optimize check for types without attributes.
7009         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
7010         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
7011         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
7012         by flag-values.
7013         (IX86_BASE_CALLCVT): Helper macro.
7014         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
7015         Use ix86_get_callcvt for calling convention attribute checks and avoid
7016         symbol-decoration for stdcall in TARGET_RTD case.
7017         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
7018         Likewise.
7019         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
7020         for declaration.
7021
7022 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
7023
7024         * config/i386/sse.md (VI_128): New mode iterator.
7025         (VI12_128): Rename from SSEMODE12.
7026         (VI14_128): Rename from SSEMODE14.
7027         (VI124_128): New mode iterator.
7028         (VI24_128): Rename from SSEMODE248.
7029         (VI248_128): Rename from SSEMODE248.
7030         (SSEMODE124C8): Remove.
7031         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7032         (*sse2_<plusminus_insn><mode>3): Merge with
7033         *avx_<plusminus_insn><mode>3.
7034         (*mulv8hi3): Merge with *avx_mulv8hi3.
7035         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
7036         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
7037         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
7038         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
7039         (ashr<mode>3): Merge with *avx_ashr<mode>3.
7040         (lshr<mode>3): Merge with *avx_lshr<mode>3.
7041         (ashl<mode>3): Merge with *avx_ashl<mode>3.
7042         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
7043         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
7044         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7045         (*<smaxmin:code>v8hi3): Ditto.
7046         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
7047         (*<smaxmin:code>v16qi3): Ditto.
7048         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
7049         (*sse2_eq<mode>3): Ditto.
7050         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
7051         (*sse2_gt<mode>3): Ditto.
7052         (vcondv2di): Split out of vcond<mode>.
7053         (vconduv2di): Split out of vcondu<mode>.
7054
7055 2011-04-11  Richard Guenther  <rguenther@suse.de>
7056
7057         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
7058         before calling tree_low_cst.
7059
7060 2011-04-11  Richard Guenther  <rguenther@suse.de>
7061
7062         * stor-layout.c (layout_type): Compute all array index size operations
7063         in the original type.
7064         (initialize_sizetypes): Add comment.
7065         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
7066
7067 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7068
7069         * common.opt (Tbss=, Tdata=, Ttext=): New options.
7070
7071 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7072
7073         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
7074         of cgraph_node, handle NULL return value.
7075         (cgraph_global_info): Likewise.
7076         (cgraph_rtl_info): Likewise.
7077         * tree-inline.c (estimate_num_insns): Likewise.
7078         * gimplify.c (unshare_body): Likewise.
7079         (unvisit_body): Likewise.
7080         (gimplify_body): Likewise.
7081         * predict.c (optimize_function_for_size_p): Likewise.
7082         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7083         (call_may_clobber_ref_p_1): Likewise.
7084         * varasm.c (function_section_1): Likewise.
7085         (assemble_start_function): Likewise.
7086
7087 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7088
7089         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
7090         of cgraph_node.
7091         * final.c (rest_of_clean_state): Likewise.
7092         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
7093         * passes.c (pass_init_dump_file): Likewise.
7094         (execute_all_ipa_transforms): Likewise.
7095         (function_called_by_processed_nodes_p): Likewise.
7096         * predict.c (maybe_hot_frequency_p): Likewise.
7097         (probably_never_executed_bb_p): Likewise.
7098         (compute_function_frequency): Likewise.
7099         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
7100         (unnest_nesting_tree_1): Likewise.
7101         (lower_nested_functions): Likewise.
7102         * tree-optimize.c (execute_fixup_cfg): Likewise.
7103         (tree_rest_of_compilation): Likewise.
7104         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
7105         * tree-sra.c (ipa_early_sra): Likewise.
7106         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
7107         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
7108         * ipa.c (record_cdtor_fn): Likewise.
7109         * ipa-inline.c (cgraph_early_inlining): Likewise.
7110         (compute_inline_parameters_for_current): Likewise.
7111         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
7112         * ipa-pure-const.c (local_pure_const): Likewise.
7113         * ipa-split.c (split_function): Likewise.
7114         (execute_split_functions): Likewise.
7115         * cgraphbuild.c (build_cgraph_edges): Likewise.
7116         (rebuild_cgraph_edges): Likewise.
7117         (cgraph_rebuild_references): Likewise.
7118         (remove_cgraph_callee_edges): Likewise.
7119         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
7120         (verify_cgraph_node): Likewise.
7121         (cgraph_analyze_functions): Likewise.
7122         (cgraph_preserve_function_body_p): Likewise.
7123         (save_inline_function_body): Likewise.
7124         (save_inline_function_body): Likewise.
7125         * tree-inline.c (copy_bb): Likewise.
7126         (optimize_inline_calls): Likewise.
7127
7128 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7129
7130         PR tree-optimization/48195
7131         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
7132         ipa_check_create_edge_args.
7133         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
7134         ipa_check_create_edge_args.
7135         * ipa-inline.c (inline_generate_summary): Do not call
7136         ipa_check_create_node_params and ipa_check_create_edge_args.
7137         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
7138         ipa_check_create_edge_args.
7139
7140 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
7141
7142         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
7143         instead of loop.
7144         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
7145         * function.c (record_hard_reg_sets): Likewise.
7146         * ira.c (compute_regs_asm_clobbered): Likewise.
7147         * sched-deps.c (sched_analyze_1): Likewise.
7148         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
7149
7150 2011-04-09  Xinliang David Li  <davidxl@google.com>
7151
7152         PR tree-optimization/PR48484
7153         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
7154         has_valid_pred lazily
7155
7156 2011-04-09  Duncan Sands  <baldrick@free.fr>
7157
7158         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
7159
7160 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
7161
7162         * combine.c (combine_validate_cost): Adjust comments.  Set registered
7163         cost of I0 to zero at the end, if any.
7164
7165 2011-04-08  Xinliang David Li  <davidxl@google.com>
7166
7167         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
7168         to insane profile data.
7169
7170 2011-04-08  Xinliang David Li  <davidxl@google.com>
7171
7172         * ipa-cp.c (ipcp_update_profiling): Correct
7173          negative scale factor due to insane profile data.
7174
7175 2011-04-08  Xinliang David Li  <davidxl@google.com>
7176
7177         * final.c (dump_basic_block_info): New function.
7178         (final): Dump basic block.
7179         (final_scan_insn): Remove old dump.
7180
7181 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
7182
7183         PR target/47829
7184         * config.gcc (i386-*-freebsd): Disable unwind table generation for
7185         crtbegin/crtend.
7186
7187 2011-04-08  Michael Matz  <matz@suse.de>
7188
7189         PR middle-end/48389
7190         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
7191         functions.
7192         (rebuild_jump_labels): Call rebuild_jump_labels_1.
7193         * rtl.h (rebuild_jump_labels_chain): Declare.
7194         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
7195         insns inserted on edges.
7196
7197 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
7198
7199         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
7200         * config/arm/arm-arches.def: New.
7201         * config/arm/arm-opts.h: New.
7202         * config/arm/genopt.sh: New.
7203         * config/arm/arm-tables.opt: New (generated).
7204         * config/arm/arm.c (arm_handle_option, arm_target_help,
7205         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
7206         (all_architectures): Get most table contents from arm-arches.def.
7207         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
7208         arm_selected_tune here.
7209         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
7210         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
7211         (march=, mcpu=, mtune=): Use Enum and Var.
7212         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
7213         (arm.o): Update dependencies.
7214
7215 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
7216
7217         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
7218         of header_file.
7219         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
7220         (write_typed_alloc_defns): Likewise.
7221         (main): Calls write_typed_alloc_defns with output_header.
7222
7223 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
7224
7225         PR inline-asm/48435
7226         * ira-color.c (setup_profitable_hard_regs): Add comments.
7227         Don't take prohibited hard regs into account.
7228         (setup_conflict_profitable_regs): Rename to
7229         get_conflict_profitable_regs.
7230         (check_hard_reg_p): Check prohibited hard regs.
7231
7232 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
7233
7234         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
7235         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
7236         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
7237
7238 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7239
7240         PR target/48366
7241         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
7242         move from floating point to shift amount register.
7243         (emit_move_sequence): Remove secondary reload support for floating
7244         point to shift amount amount register copies.
7245         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
7246         amount register copies.
7247         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
7248         register, return false if mode isn't a scalar integer mode.
7249         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
7250
7251 2011-04-08  Richard Guenther  <rguenther@suse.de>
7252
7253         * gimple.c (gimple_call_flags): Remove kludge.
7254
7255 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7256
7257         * sel-sched.c (sel_region_init): Move call to
7258         sel_setup_region_sched_flags after setup_current_loop_nest.
7259
7260 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
7261
7262         PR rtl-optimization/48272
7263         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
7264         init_insn_reg_pressure_info.  Adjust a caller.
7265         * sched-int.h (init_insn_reg_pressure_info): Declare.
7266         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
7267         when sched-pressure is enabled.
7268
7269 2011-04-08  Richard Guenther  <rguenther@suse.de>
7270
7271         * gimple.c (gimple_set_modified): Do not queue calls to
7272         MODIFIED_NORETURN_CALLS here ...
7273         * tree-ssa-operands.c (update_stmt_operands): ... but here.
7274
7275 2011-04-08  Richard Guenther  <rguenther@suse.de>
7276
7277         PR lto/48467
7278         * toplev.c (lang_dependent_init): Do not open asm_out_file
7279         in WPA mode, nor perform debug machinery initialization.
7280         (finalize): Do not unlink asm_out_file in WPA mode.
7281
7282 2011-04-08  Richard Guenther  <rguenther@suse.de>
7283
7284         * gimple.h (gimple_call_fntype): New function.
7285         (gimple_call_return_type): Use it.
7286         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
7287         * gimple-low.c (gimple_check_call_args): Likewise.
7288         * gimple.c (gimple_call_flags): Likewise.
7289         (gimple_call_arg_flags): Likewise.
7290         (gimple_call_return_flags): Likewise.
7291         * tree-cfg.c (verify_gimple_call): Likewise.
7292         (do_warn_unused_result): Likewise.
7293         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7294         * value-prof.c (gimple_ic_transform): Fix fndecl check.
7295
7296 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
7297
7298         PR rtl-optimization/48235
7299         * sel-sched.c (code_motion_process_successors): Recompute the last
7300         insn in basic block if control flow changed.
7301         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
7302         Update condition for ilist_remove.
7303
7304 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7305
7306         PR rtl-optimization/48302
7307         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
7308         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
7309         it to record added preheader blocks.
7310         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
7311         on to sel_add_loop_preheaders.
7312         (sel_region_init): Move call to setup_current_loop_nest after
7313         sel_init_bbs.
7314
7315 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7316
7317         PR target/48273
7318         * cfgloop.h (loop_has_exit_edges): New helper.
7319         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
7320         non-clonable.
7321         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
7322         that have no exit edges.
7323
7324 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7325
7326         PR rtl-optimization/48442
7327         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
7328         all callers.  Adjust assert.
7329
7330 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
7331
7332         PR tree-optimization/48377
7333         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7334         is_packed to true even for types with smaller TYPE_ALIGN than
7335         TYPE_SIZE.
7336
7337 2011-04-08  Richard Guenther  <rguenther@suse.de>
7338
7339         PR bootstrap/48513
7340         * doc/tm.texi: Re-generate.
7341
7342 2011-04-08  Wei Guozhi  <carrot@google.com>
7343
7344         PR target/47855
7345         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7346         * config/arm/arm.c (arm_attr_length_push_multi): New function.
7347         * config/arm/arm.md (*push_multi): Change the length computation to
7348         call a C function.
7349
7350 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
7351
7352         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7353         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7354         * doc/tm.texi: Regenerate.
7355         * system.h (ASM_OUTPUT_BSS): Poison.
7356         * varasm.c (asm_output_bss): Remove function.
7357         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7358
7359         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7360         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7361         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7362         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7363         Likewise.
7364         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7365         Likewise.
7366         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7367         Likewise.
7368         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7369
7370 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7371
7372         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7373         EnumValue lines.
7374
7375 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7376
7377         * config/m68k/m68k.c (m68k_handle_option): Don't handle
7378         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7379         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7380         OPT_mcpu32.
7381         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7382         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7383         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7384         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7385         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7386         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7387         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7388         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7389         options.  Don't map other m68k options manually.  Don't handle
7390         old-style options as canonical.
7391         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7392         * doc/install.texi (m68k-*-*): Document binutils version requirement.
7393
7394 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7395
7396         * basic-block.h (force_nonfallthru): Move to...
7397         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7398         (force_nonfallthru): ...here.
7399         * cfghooks.c (force_nonfallthru): New function.
7400         * cfgrtl.c (force_nonfallthru): Rename into...
7401         (rtl_force_nonfallthru): ...this.
7402         (commit_one_edge_insertion): Do not set AUX field.
7403         (commit_edge_insertions): Do not discover new basic blocks.
7404         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7405         (cfg_layout_rtl_cfg_hooks): Likewise.
7406         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7407         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
7408         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7409
7410 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
7411
7412         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7413         Remove macros.
7414
7415 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
7416
7417         * config/i386/sse.md: Update copyright year.
7418         (avxcvtvecmode): Remove.
7419         (sse_movhlps): Merge with *avx_movhlps.
7420         (sse_movlhps): Merge with *avx_movlhps.
7421         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7422         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7423         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7424         (sse_loadhps): Merge with *avx_loadhps.
7425         (sse_storelps): Merge with *avx_storelps.
7426         (sse_loadlps): Merge with *avx_loadlps.
7427         (sse_movss): Merge with *avx_movss.
7428         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7429         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7430         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7431         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7432         (vec_set<mode>_0): Ditto.
7433         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7434         (sse4_1_insertps): Merge with *avx_insertps.
7435         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7436         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7437         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7438         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7439         (sse2_storehpd): Merge with *avx_storehpd.
7440         (sse2_loadhpd): Merge with *avx_loadhpd.
7441         (sse2_loadlpd): Merge with *avx_loadlpd.
7442         (sse2_movsd): Merge with *avx_movsd.
7443         (*vec_concatv2df): Merge with *vec_concatv2df.
7444
7445 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
7446
7447         PR debug/48343
7448         * combine.c (combine_instructions): Add last_combined_insn,
7449         update it if insn is after it, pass it to all try_combine calls.
7450         (try_combine): Add last_combined_insn parameter, pass it instead of
7451         i3 to propagate_for_debug.
7452
7453 2011-04-07  Nick Clifton  <nickc@redhat.com>
7454
7455         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7456         to handle MDR <-> data register transfers.
7457         (movhi_internal): Likewise.
7458
7459 2011-04-07  Alan Modra  <amodra@gmail.com>
7460
7461         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7462         previous stack info.
7463
7464 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7465
7466         PR target/43920
7467         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
7468         flow_find_cross_jump.  Swap variables to implement backward replacement.
7469         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7470
7471 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7472
7473         PR target/43920
7474         * cfgcleanup.c (walk_to_nondebug_insn): New function.
7475         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
7476         and bb2.
7477         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7478         src1 or src2.  Redirect edges to the last basic block.  Update
7479         frequency and count on multiple basic blocks in case of fallthru.
7480
7481 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7482
7483         PR target/43920
7484         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7485         function.
7486         (old_insns_match_p): Change return type.  Replace return false/true
7487         with return dir_none/dir_both.  Use can_replace_by.
7488         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
7489         direction from dir_p.  Register replacement direction in dir, last_dir
7490         and afterlast_dir.  Handle new return type of old_insns_match_p using
7491         merge_dir.  Return replacement direction in dir_p.
7492         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7493         return type of old_insns_match_p.
7494         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7495         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7496         flow_find_cross_jump.
7497         * basic-block.h (enum replace_direction): New type.
7498         (flow_find_cross_jump): Add parameter to declaration.
7499
7500 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7501
7502         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7503         (AVXMODEDCVTPS2DQ): Ditto.
7504         (VEC_FLOAT_MODE): Ditto.
7505         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
7506         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7507         (<any_logic:code><mode>3): Use VF mode iterator.
7508         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7509         Use VF mode iterator.
7510         (copysign<mode>3): Use VF mode iterator.
7511         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
7512         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7513         (*<any_logic:code><MODEF:mode>3): Merge with
7514         *avx_<any_logic:code><MODEF:mode>3.
7515         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7516         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7517         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7518         (avx_cvtdq2ps<avxmodesuffix>): Remove.
7519         (sse2_cvtdq2ps): Use %v modifier.
7520         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7521         (avx_cvtps2dq<avxmodesuffix>): Remove.
7522         (sse2_cvtps2dq): Use %v modifier.
7523         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7524         (avx_cvttps2dq<avxmodesuffix>): Remove.
7525         (sse2_cvttps2dq): Use %v modifier.
7526         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7527         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7528         (sse2_cvtsd2siq): Fix insn template.
7529         (sse2_cvtsd2siq_2): Ditto.
7530         (sse2_cvttsd2siq): Ditto.
7531         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7532         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7533
7534 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7535
7536         * gcov-io.c: Use GCC Runtime Library Exception.
7537
7538 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
7539
7540         PR debug/48466
7541         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7542         as base_reg whatever register reg has been eliminated to, instead
7543         of hardcoding STACK_POINTER_REGNUM.
7544
7545 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7546
7547         * doc/tm.texi.in: Document C target hooks as separate from general
7548         target hooks.
7549         * doc/tm.texi: Regenerate.
7550         * genhooks.c (struct hook_desc): Add docname field.
7551         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
7552         docname field.
7553         (hook_array): Include c-target.def.
7554         (emit_documentation): Use docname field in output.
7555         (emit_init_macros): Take docname argument.  Only emit definitions
7556         for hooks matching docname.
7557         (main): Expect additional arguments in all cases.  Pass argument
7558         to emit_init_macros.
7559         * target.def: Move initial macro definitions and comments to
7560         target-hooks-macros.h.
7561         (gcc_targetcm): Move to c-family/c-target.def.
7562         * target.h (targetcm): Move declaration to c-family/c-target.h.
7563         * targhooks.c (default_handle_c_option): Move to
7564         c-family/c-opts.c.
7565         * targhooks.h (default_handle_c_option): Move declaration to
7566         c-family/c-common.h.
7567         * target-hooks-macros.h: New file.
7568         * config.gcc (target_has_targetcm): Define and use to add to
7569         c_target_objs and cxx_target_objs.
7570         * config/default-c.c: New file.
7571         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7572         of target.h and target-def.h.
7573         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7574         (darwin_objc_construct_string, darwin_cfstring_ref_p,
7575         darwin_check_cfstring_format_arg): Make static.
7576         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7577         TARGET_STRING_OBJECT_REF_TYPE_P,
7578         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7579         * config/darwin-protos.h (darwin_objc_construct_string,
7580         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7581         declare.
7582         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7583         TARGET_STRING_OBJECT_REF_TYPE_P,
7584         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
7585         * config/t-darwin (darwin-c.o): Update dependencies.
7586         * system.h (TARGET_HAS_TARGETCM): Poison.
7587         * Makefile.in (TARGET_H): Update.
7588         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7589         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7590         (default-c.o): New target.
7591         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
7592         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
7593         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
7594         c-target.def.
7595         (build/genhooks.o): Update dependencies.
7596
7597 2011-04-06  Richard Guenther  <rguenther@suse.de>
7598
7599         * ipa-inline.c (enum inlining_mode): Remove.
7600         (cgraph_flatten): Use some other token.
7601         (cgraph_edge_early_inlinable_p): New function, split out from ...
7602         (cgraph_perform_always_inlining): New function, split out from ...
7603         (cgraph_decide_inlining_incrementally): ... here.
7604         (cgraph_mark_inline_edge): Adjust.
7605         (cgraph_early_inlining): Re-structure.
7606         (pass_early_inline): Require SSA form.
7607
7608 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
7609             Julian Brown  <julian@codesourcery.com>
7610             Mark Shinwell  <shinwell@codesourcery.com>
7611
7612         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
7613         LO_REGS only for Thumb-1.
7614         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
7615         be used in short instructions when optimising for size on Thumb-2.
7616
7617 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7618
7619         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
7620         associated with user returns to be preserved.
7621
7622 2011-04-06  Tristan Gingold  <gingold@adacore.com>
7623
7624         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
7625         symbol_queue_size, DBXOUT_DECR_NESTING,
7626         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
7627         if XCOFF_DEBUGGING_INFO.
7628
7629 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7630
7631         * config/i386/i386.md (attribute isa): New.
7632         (attribute enabled): New.
7633         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
7634         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
7635         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
7636         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
7637         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
7638         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7639         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
7640         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
7641
7642         * config/i386/sse.md (VF): New mode iterator.
7643         (VF1): Ditto.
7644         (VF2): Ditto.
7645         (VF_128): Ditto.
7646         (SSEMODEF4): Remove.
7647         (attribute sse): Handle V8SF and V4DF modes.
7648         (<absneg:code><mode>2): Use VF mode iterator.
7649         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
7650         mode iterator.
7651         (<plusminus_insn><mode>3): Use VF mode iterator.
7652         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7653         Use VF mode iterator.
7654         (<sse>_vm<plusminus_insn><mode>3): Merge with
7655         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
7656         (mul<mode>3): Use VF mode iterator.
7657         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
7658         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
7659         mode iterator.
7660         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
7661         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
7662         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
7663         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
7664         mode iterator.
7665         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
7666         Use VF1 mode iterator.
7667         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
7668         (sqrt<VF2:mode>2): New expander.
7669         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
7670         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
7671         and sqrtv2df2.  Use VF mode iterator.
7672         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
7673         mode iterator.
7674         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
7675         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
7676         Use VF1 mode iterator.
7677         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
7678         (<smaxmin:code><mode>3): Use VF mode iterator.
7679         (*<smaxmin:code><mode>3_finite): Merge with
7680         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
7681         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7682         (<sse>_vm<smaxmin:code><mode>2): Merge with
7683         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
7684         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
7685         mode iterator.
7686         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
7687         mode iterator.
7688         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
7689         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
7690         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
7691         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
7692         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
7693         VF mode iterator.
7694         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
7695         Use VF_128 mode iterator.
7696         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
7697         mode iterator.
7698         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
7699         VF_128 mode iterator.
7700         (vcond<mode>): Use VF mode iterator.
7701         * config/i386/predicates.md (sse_comparison_operator): Merge with
7702         avx_comparison_float_operator.  Do not declare as special_predicate.
7703         * config/i386/i386.c (struct builtin_description): Update for renamed
7704         compare patterns.
7705         (ix86_expand_args_builtin): Ditto.
7706         (ix86_expand_sse_compare_mask): Ditto.
7707
7708 2011-04-06  Richard Guenther  <rguenther@suse.de>
7709
7710         * tree-inline.c (estimate_num_insns): For calls simply account
7711         for all passed arguments and a used return value.
7712
7713 2011-04-06  Richard Guenther  <rguenther@suse.de>
7714
7715         PR tree-optimization/47663
7716         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
7717         call_stmt_time fields.
7718         (cgraph_edge_inlinable_p): Declare.
7719         (cgraph_edge_recursive_p): New inline function.
7720         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
7721         (cgraph_clone_edge): Copy it.
7722         * ipa-inline.c (cgraph_estimate_edge_time): New function.
7723         Account for call stmt time.
7724         (cgraph_estimate_time_after_inlining): Take edge argument.
7725         (cgraph_estimate_edge_growth): Account call stmt size.
7726         (cgraph_estimate_size_after_inlining): Take edge argument.
7727         (cgraph_mark_inline_edge): Adjust.
7728         (cgraph_check_inline_limits): Likewise.
7729         (cgraph_recursive_inlining_p): Remove.
7730         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
7731         (cgraph_decide_recursive_inlining): Take edge argument and
7732         adjust.
7733         (cgraph_decide_inlining_of_small_functions): Do not avoid
7734         diags for recursive inlining here.
7735         (cgraph_flatten): Adjust.
7736         (cgraph_decide_inlining_incrementally): Likewise.
7737         (estimate_function_body_sizes): Remove call cost handling.
7738         (compute_inline_parameters): Initialize caller edge call costs.
7739         (cgraph_estimate_edge_growth): New function.
7740         (cgraph_estimate_growth): Use it.
7741         (cgraph_edge_badness): Likewise.
7742         (cgraph_check_inline_limits): Take an edge argument.
7743         (cgraph_decide_inlining_of_small_functions): Adjust.
7744         (cgraph_decide_inlining): Likewise.
7745         * tree-inline.c (estimate_num_insns): Only account for call
7746         return value if it is used.
7747         (expand_call_inline): Avoid diagnostics on recursive inline
7748         functions here.
7749         * lto-cgraph.c (lto_output_edge): Output edge call costs.
7750         (input_edge): Input edge call costs.
7751
7752 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7753
7754         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
7755
7756 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7757
7758         * doc/invoke.texi (Spec Files): Fix typo.
7759
7760 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7761
7762         * profile.c (branch_prob): Move declaration of local variable.  Remove
7763         obsolete ??? comment.  Expand the location explicitly instead of using
7764         the LOCATION_FILE and LOCATION_LINE macros.
7765
7766 2011-04-06  Wei Guozhi  <carrot@google.com>
7767
7768         PR target/47855
7769         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
7770         (arm_cond_branch): Likewise.
7771         (arm_cond_branch_reversed): Likewise.
7772         (arm_jump): Likewise.
7773         (push_multi): Likewise.
7774         * config/arm/constraints.md (Py): New constraint.
7775
7776 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7777
7778         PR bootstrap/48471
7779         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
7780         Move these...
7781         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
7782         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
7783         #ifdef DBX_DEBUGGING_INFO.
7784
7785 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
7786
7787         PR bootstrap/48403
7788         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
7789         if old and new states differ.
7790
7791 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7792
7793         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
7794         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
7795         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7796         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
7797         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
7798         mcfv4e): Use Alias.
7799         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
7800         ColdFire options to -mcpu= options.
7801
7802 2011-04-05  Jeff Law  <law@redhat.com>
7803
7804         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
7805         check if BB is a successor of LOOP->header and return
7806         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
7807
7808 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7809
7810         * cprop.c (struct reg_use): Remove.
7811         (reg_use_table): Make an array of RTX.
7812         (find_used_regs, constprop_register, local_cprop_pass,
7813         bypass_block): Simplify users of reg_use_table.
7814         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
7815         on one of the uses found by find_used_regs.
7816
7817 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7818
7819         PR bootstrap/48469
7820         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
7821         declaration.
7822
7823 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7824
7825         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
7826         as an rtx.
7827         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
7828
7829 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7830
7831         PR middle-end/48441
7832         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
7833
7834 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7835
7836         * combine.c: Include obstack.h.
7837         (struct insn_link): Define.
7838         (uid_log_links): Adjust type.
7839         (FOR_EACH_LOG_LINK): New macro.
7840         (insn_link_obstack): Declare.
7841         (alloc_insn_link): Define.
7842         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
7843         type of link variables.
7844         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
7845         (try_combine, record_promoted_values, distribute_notes): Likewise.
7846         (distribute_links): Likewise.  Tweak prototype.
7847         (clear_log_links): Delete.
7848         (adjust_for_new_dest): Call alloc_insn_link.
7849         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
7850
7851 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7852
7853         * gcse.c (modify_mem_list): Convert to an array of VECs.
7854         (canon_modify_mem_list, compute_transp): Tweak formatting.
7855         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
7856         (load_killed_in_block_p): Likewise.
7857         (record_last_mem_set_info): Likewise.
7858         (clear_modify_mem_tables): Likewise.
7859
7860 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7861
7862         PR middle-end/48461
7863         * function.c (emit_use_return_register_into_block): Only define if
7864         HAVE_return.
7865
7866 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
7867
7868         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
7869
7870 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7871
7872         * config/rx/rx-opts.h: New.
7873         * config/rx/rx.c (rx_cpu_type): Remove.
7874         (rx_handle_option): Don't assert that global structures are in
7875         use.  Access variables via opts pointer.  Defer most handling of
7876         OPT_mint_register_.  Use error_at.
7877         (rx_option_override): Handle deferred OPT_mint_register_ here.
7878         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
7879         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
7880         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
7881         (rx_cpu_types): New Enum and EnumValue entries.
7882         (mint-register=): Use Defer and use Var accordingly.
7883
7884 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7885
7886         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
7887         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
7888         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
7889         Move these...
7890         (debug_free_queue, debug_nesting, symbol_queue_index):
7891         ...and these...
7892         * dbxout.c: ...to here.  Make static.
7893
7894 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7895
7896         * gcse.c (modify_pair): Define.  Define a VEC of it.
7897         (canon_modify_mem_list): Convert to an array of VECs.
7898         (free_insn_expr_list_list): Delete.
7899         (clear_modify_mem_tables): Call VEC_free instead.
7900         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
7901         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
7902         (canon_list_insert, compute_transp): Likewise.
7903
7904 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7905
7906         PR target/43920
7907         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
7908         for size.
7909
7910 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7911
7912         PR target/43920
7913         * function.c (emit_use_return_register_into_block): New function.
7914         (thread_prologue_and_epilogue_insns): Use
7915         emit_use_return_register_into_block.
7916
7917 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7918
7919         PR target/43920
7920         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
7921         insn.
7922
7923 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7924
7925         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
7926
7927 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
7928
7929         * config/arm/arm.md (define_constants for unspec): Replace with
7930         define_c_enum.
7931         (define_constants for unspecv): Replace with define_c_enum.
7932         * config/arm/neon.md (define_constants for unspec): Replace with
7933         define_c_enum.
7934
7935 2011-04-04  Richard Henderson  <rth@redhat.com>
7936
7937         PR bootstrap/48400
7938         * dwarf2out.c (output_line_info): Always emit line info from
7939         at least one section.
7940         (dwarf2out_init): Create text_section_line_info here ...
7941         (set_cur_line_info_table): ... not here.
7942
7943 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
7944
7945         PR target/48380
7946         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
7947         not called.
7948
7949         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
7950
7951 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
7952
7953         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7954         (expr_equiv_p): Remove.
7955         (insert_set_in_table): Look at <dest, src> pair instead of expr.
7956         (hash_scan_set): Update call to insert_set_in_table.
7957         (dump_hash_table): Dump <dest, src> pair.
7958         (lookup_set): Simplify.  Lookup <dest, src> pair.
7959         (compute_transp): Remove, fold heavily simplified code into...
7960         (compute_local_properties): ...here.  Expect COMP and TRANSP
7961         unconditionally.
7962         (find_avail_set): Take set directly from struct expr.
7963         (find_bypass-set): Likewise.
7964         (bypass_block): Likewise.
7965         (cprop_insn): Likewise.  Remove redundant INSN_P test.
7966
7967         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7968         checks on form of COND from find_implicit_sets to here.
7969         (find_implicit_sets): Cleanup control flow. Split critical edges
7970         if it exposes implicit sets.  Allocate/resize implicit_sets as
7971         necessary.
7972         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7973         changed something.  Run df_analyze after find_implicit_sets if any
7974         edges were split.  Do not allocate implicit_sets here.
7975
7976         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7977         (gcse_obstack): Renamed to cprop_obstack.
7978         (GNEW, GNEWVEC, GNEWVAR): Remove.
7979         (gmalloc): Remove.
7980         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7981         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7982         (gcse_alloc): Likewise, and rename to cprop_alloc.
7983         (alloc_gcse_men, free_gcse_mem): Remove.
7984         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7985         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7986         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7987
7988         * cprop.c (oprs_not_set_p): Remove.
7989         (mark_set, mark_clobber): Remove.
7990         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7991         (reg_not_set_p): New function.
7992         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7993         (cprop_insn): Likewise.
7994         (cprop_jump): Use FOR_EACH_EDGE.
7995
7996 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
7997
7998         PR bootstrap/48403
7999         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
8000         (rank_for_schedule): Use scheduled_insns vector instead of
8001         last_scheduled_insn.
8002         (ok_for_early_queue_removal): Likewise.
8003         (queue_to_ready): Search forward in nonscheduled_insns_begin if
8004         we have a dbg_cnt.
8005         (choose_ready): Likewise.
8006         (commit_schedule): Use VEC_iterate.
8007         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
8008         a dbg_cnt, use it and ensure the first insn is in the ready list.
8009         (haifa_sched_init): Allocate scheduled_insns.
8010         (sched_extend_ready_list): Don't allocate it; reserve space.
8011         (haifa_sched_finish): Free it.
8012
8013 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
8014
8015         * optc-gen.awk: Always remove type from Variable entry before
8016         recording in var_seen.
8017
8018 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
8019
8020         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
8021         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
8022         call to tidy_fallthru_edges.
8023
8024 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
8025
8026         * doc/options.texi (ToLower): Document.
8027         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
8028         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
8029         * opts.h (cl_option): Add cl_tolower field.
8030         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
8031         arguments with lowercase strings.
8032         * config/rx/rx.opt (mcpu=): Add ToLower.
8033         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
8034         argument.
8035
8036 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
8037
8038         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
8039
8040 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
8041
8042         * config/vax/vax.c: Include reload.h.
8043
8044 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
8045
8046         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
8047         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8048         (sparc_preferred_reload_class): New function.
8049
8050 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
8051
8052         PR debug/48401
8053         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8054         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
8055
8056 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
8057
8058         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
8059         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
8060
8061 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
8062
8063         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
8064         (ASM_OUTPUT_ALIGNED_BSS): Define.
8065
8066 2011-04-03  Michael Matz  <matz@suse.de>
8067
8068         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
8069         and next_slot members.
8070         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
8071         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
8072         (lto_streamer_cache_append): Declare.
8073         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
8074         unsigned index, remove offset parameter, ensure that we append
8075         or update existing entries.
8076         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
8077         parameter, update next_slot for append.
8078         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
8079         parameter.
8080         (lto_streamer_cache_insert_at): Likewise.
8081         (lto_streamer_cache_append): New function.
8082         (lto_streamer_cache_lookup): Use unsigned index.
8083         (lto_streamer_cache_get): Likewise.
8084         (lto_record_common_node): Don't test tree_node_can_be_shared.
8085         (preload_common_node): Adjust call to lto_streamer_cache_insert.
8086         (lto_streamer_cache_delete): Don't free offsets member.
8087         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
8088         (lto_output_string_with_length): Use lto_output_data_stream.
8089         (lto_output_tree_header): Remove ix parameter, don't write it.
8090         (lto_output_builtin_tree): Likewise.
8091         (lto_write_tree): Adjust callers to above, don't track and write
8092         offset, write unsigned index.
8093         (output_unreferenced_globals): Don't emit all global vars.
8094         (write_global_references): Use unsigned indices.
8095         (lto_output_decl_state_refs): Likewise.
8096         (write_symbol): Likewise.
8097         * lto-streamer-in.c (lto_input_chain): Move earlier.
8098         (input_function): Use unsigned index.
8099         (input_alias_pairs): Don't read and then ignore all global vars.
8100         (lto_materialize_tree): Remove ix_p parameter, don't read index,
8101         don't pass it back, use lto_streamer_cache_append.
8102         (lto_register_var_decl_in_symtab): Use unsigned index.
8103         (lto_register_function_decl_in_symtab): Likewise.
8104         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
8105         index.
8106         (lto_get_builtin_tree): Don't read index, use
8107         lto_streamer_cache_append.
8108         (lto_read_tree): Adjust call to lto_materialize_tree.
8109
8110         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
8111         don't use function calls in arguments to MIN.
8112
8113         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
8114         twice.
8115
8116         * gimple.c (gimple_type_leader_entry): Mark deletable.
8117
8118 2011-04-03  Alan Modra  <amodra@gmail.com>
8119
8120         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
8121
8122 2011-04-03  Michael Matz  <matz@suse.de>
8123
8124         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
8125         an integer.
8126         * tree.h (tree_decl_non_common.vindex): Adjust comment.
8127
8128 2011-04-03  Michael Matz  <matz@suse.de>
8129
8130         * cgraphbuild.c (record_reference): Canonicalize constructor values.
8131         * gimple-fold.c (canonicalize_constructor_val): Accept being called
8132         without function context.
8133         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
8134         current_function_decl and cfun.
8135
8136 2011-04-03  Michael Matz  <matz@suse.de>
8137
8138         * tree.c (decl_init_priority_insert): Don't create entry for
8139         default priority.
8140         (decl_fini_priority_insert): Ditto.
8141         (fields_compatible_p, find_compatible_field): Remove.
8142         * tree.h (fields_compatible_p, find_compatible_field): Remove.
8143         * gimple.c (gimple_compare_field_offset): Adjust block comment.
8144
8145 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
8146
8147         * combine.c (try_combine): Remove useless local variable.
8148
8149 2011-04-03  Richard Guenther  <rguenther@suse.de>
8150             Ira Rosen  <ira.rosen@linaro.org>
8151
8152         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
8153         non-variable offsets and compare the remaining bases of the two
8154         accesses instead of looking for exact same data-ref.
8155
8156 2011-04-02  Kai Tietz  <ktietz@redhat.com>
8157
8158         PR target/48416
8159         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
8160
8161         * i386.c (ix86_is_msabi_thiscall): New helper function.
8162         (ix86_is_type_thiscall): New helper function.
8163         (ix86_comp_type_attributes): Handle thiscall for method-functions
8164         special.
8165         (init_cumulative_args): Likewise.
8166         (find_drap_reg): Likewise.
8167         (ix86_static_chain): Likewise.
8168         (x86_this_parameter): Likewise.
8169         (x86_output_mi_thunk): Likewise.
8170
8171 2011-04-01  Olivier Hainque  <hainque@adacore.com>
8172             Nicolas Setton  <setton@adacore.com>
8173             Eric Botcazou  <ebotcazou@adacore.com>
8174
8175         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
8176         (add_gnat_descriptive_type_attribute): New function.
8177         (gen_array_type_die): Call it.
8178         (gen_enumeration_type_die): Likewise.
8179         (gen_struct_or_union_type_die): Likewise.
8180         (modified_type_die): Likewise.
8181         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
8182         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
8183         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
8184
8185 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
8186
8187         PR bootstrap/48148
8188         * dwarf2out.c (resolve_addr): Don't call force_decl_die
8189         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
8190
8191         Revert:
8192         2011-03-17  Richard Guenther  <rguenther@suse.de>
8193
8194         PR bootstrap/48148
8195         * lto-cgraph.c (input_overwrite_node): Clear the abstract
8196         origin for decls in other ltrans units.
8197         (input_varpool_node): Likewise.
8198
8199 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
8200
8201         PR middle-end/48335
8202         * expr.c (expand_assignment): Handle all possibilities
8203         if TO_RTX is CONCAT.
8204         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
8205         (store_split_bit_field): If SUBREG_REG (op0) or
8206         op0 itself has smaller mode than word, return it
8207         for offset 0 and const0_rtx for out-of-bounds stores.
8208         If word is const0_rtx, skip it.
8209
8210 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
8211
8212         * config/h8300/h8300.c (print_operand_address): Rename to...
8213         (h8300_print_operand_address): ...this. Make static. Adjust comments.
8214         Call h8300_print_operand and h8300_print_operand_address instead of
8215         print_operand and print_operand_address. Declare.
8216         (print_operand): Renake to...
8217         (h8300_print_operand): ...this. Make static. Adjust comments.
8218         Call h8300_print_operand instead of print_operand. Declare.
8219         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
8220         (h8300_register_move_cost): Likewise.
8221         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
8222         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
8223         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
8224         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
8225         * config/h8300/h8300-protos.h (print_operand): Delete.
8226         (print_operand_address): Delete.
8227
8228 2011-04-01  Richard Henderson  <rth@redhat.com>
8229
8230         PR 48400
8231         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
8232         in strict mode before dwarf4.  Re-order tests to early out
8233         before switching sections.
8234
8235 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
8236
8237         * config/h8300/constraints.md: New file.
8238         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
8239         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
8240         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
8241         * config/h8300/predicates.md (bit_operand): Likewise.
8242         (incdec_operand): Use satisfies_constraint_M and
8243         satisfies_constraint_O.  Don't use C code block.
8244         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
8245         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
8246         (compute_mov_length): Use satisfies_constraint_G.
8247         (fix_bit_operand): Use satisfies_constraint_U.
8248         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
8249         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
8250         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
8251         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
8252         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
8253         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
8254         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8255         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
8256         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
8257         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
8258         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
8259         (EXTRA_MEMORY_CONSTRAINT): Delete.
8260
8261 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
8262             Michael Meissner  <meissner@linux.vnet.ibm.com>
8263
8264         PR target/48262
8265         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
8266         operands, as per the specifications.
8267
8268         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
8269         (vec_extract_evenv4sf): Ditto.
8270         (vec_extract_evenv8hi): Ditto.
8271         (vec_extract_evenv16qi): Ditto.
8272         (vec_extract_oddv4si): Ditto.
8273
8274 2011-03-31  Mark Wielaard  <mjw@redhat.com>
8275
8276         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
8277         high_pc attribute if the CU has no associated code. Only output
8278         DW_AT_entry_pc for CU if not generating strict dwarf and
8279         dwarf_version < 4.
8280
8281 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
8282
8283         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
8284         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
8285         out of ...
8286         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
8287         * final.c (final_start_function): Call the new function rather
8288         than using a NULL argument for dwarf2out_frame_debug.
8289
8290         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
8291         that contains the prologue.
8292
8293         * haifa-sched.c (queue_insn): New arg REASON.  All callers
8294         changed.  Print it in debugging output.
8295
8296         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
8297
8298         * sched-ebb.c (begin_schedule_ready): Remove second argument.
8299         Split most of the code into...
8300         (begin_move_insn): ... here.  New function.
8301         (ebb_sched_info): Add a pointer to it.
8302         * haifa-sched.c (scheduled_insns): New static variable.
8303         (sched_extend_ready_list): Allocate it.
8304         (schedule_block): Use it to record the order of scheduled insns.
8305         Perform RTL changes to move insns only after all scheduling
8306         decisions have been made.
8307         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
8308         begin_move_insn field.
8309         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
8310         * sched-int.h (struct haifa_sched_info): Remove second argument
8311         from begin_schedule_ready hook.  Add new member begin_move_insn.
8312         * sched-rgn.c (begin_schedule_ready): Remove second argument.
8313         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
8314
8315         * haifa-sched.c (prune_ready_list): New function, broken out of
8316         schedule_block.
8317         (schedule_block): Use it.
8318
8319 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8320
8321         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
8322
8323 2011-04-01  Kai Tietz  <ktietz@redhat.com>
8324
8325         * config.gcc (*-*-mingw*): Allow as option the
8326         posix threading model.
8327         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
8328         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
8329         definition.
8330         (CPP_SPEC): Add pthread/no-pthread handling.
8331         (LIB_SPEC): Likewise.
8332         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8333         (LIB_SPEC): Likewise.
8334         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8335         flag to pass -pthread option for shared libgcc build.
8336         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8337         for shared libgcc build.
8338         * config/i386/t-mingw-pthread: New file.
8339         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8340         New define to enable use of library pthread by default.
8341         * config/i386/mingw.opt (pthread): New driver option.
8342         (no-pthread): New driver option.
8343         * config/i386/cygming.opt: Make sure trailing empty line is retained.
8344         * config/i386/mingw-w64.opt: Likewise.
8345
8346 2011-04-01  Gary Funck  <gary@intrepid.com>
8347
8348         * c-decl.c (grokdeclarator): Fix formatting.
8349
8350 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8351
8352         * expr.c (emit_block_move_via_movmem): Use n_generator_args
8353         instead of n_operands.
8354         (set_storage_via_setmem): Likewise.
8355         * optabs.c (maybe_gen_insn): Likewise.
8356         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8357         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8358         (mips_expand_builtin_direct): Likewise.
8359         * config/spu/spu.c (expand_builtin_args): Likewise.
8360
8361 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8362
8363         * recog.h (insn_data_d): Add n_generator_args.
8364         * genoutput.c (data): Likewise.
8365         (output_insn_data): Print it.
8366         (max_opno, num_dups): Delete.
8367         (scan_operands): Just fill in "d->operand[...]".
8368         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8369
8370 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8371
8372         * gensupport.h (pattern_stats): New structure.
8373         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8374         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8375         (max_operand_1, max_operand_vec): Delete.
8376         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8377
8378 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
8379
8380         * emit-rtl.c (emit_pattern_after_setloc): New function.
8381         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8382         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8383         (emit_pattern_after): New function.
8384         (emit_insn_after, emit_jump_insn_after): Call it.
8385         (emit_call_insn_after, emit_debug_insn_after): Likewise.
8386         (emit_pattern_before_setloc): New function.
8387         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8388         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8389         Likewise.
8390         (emit_pattern_before): New function.
8391         (emit_insn_before, emit_jump_insn_before): Call it.
8392         (emit_call_insn_before, emit_debug_insn_before): Likewise.
8393
8394 2011-03-31  Richard Henderson  <rth@redhat.com>
8395
8396         * dwarf2out.c (dw_separate_line_info_ref): Remove.
8397         (dw_separate_line_info_entry): Remove.
8398         (enum dw_line_info_opcode): New.
8399         (dw_line_info_entry): Use it.
8400         (dw_line_info_table, dw_line_info_table_p): New.
8401         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8402         (line_info_table, line_info_label_num): Remove.
8403         (line_info_table_in_use): Remove.
8404         (separate_line_info_table): Remove.
8405         (separate_line_info_table_allocated): Remove.
8406         (separate_line_info_table_in_use): Remove.
8407         (LINE_INFO_TABLE_INCREMENT): Remove.
8408         (line_info_label_num): New.
8409         (cur_line_info_table): New.
8410         (text_section_line_info, cold_text_section_line_info): New.
8411         (separate_line_info): New.
8412         (SEPARATE_LINE_CODE_LABEL): Remove.
8413         (print_dwarf_line_table): Remove.
8414         (debug_dwarf): Don't dump it.
8415         (output_one_line_info_table): New.
8416         (output_line_info): Use it.
8417         (new_line_info_table): New.
8418         (set_cur_line_info_table): New.
8419         (dwarf2out_switch_text_section): Use it.
8420         (dwarf2out_begin_function): Likewise.
8421         (push_dw_line_info_entry): New.
8422         (dwarf2out_source_line): Rewrite for new line info tables.
8423         (dwarf2out_init): Remove dead initailizations.
8424
8425 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8426
8427         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
8428         various flags.
8429         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8430         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8431         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8432         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8433         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8434         * opt-functions.awk (flag_init, switch_bit_fields): New.
8435         (switch_flags): Don't handle flags moved to bit-fields.  Don't
8436         generate CL_MISSING_OK or CL_SAVE.
8437         * optc-gen.awk: Update to generate bit-field output as well as
8438         flags field.
8439         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8440         bit-field instead of CL_REJECT_DRIVER flag.
8441         * opts-common.c (generate_canonical_option,
8442         decode_cmdline_option): Use bit-fields instead of CL_* flags.
8443         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8444         instead of CL_REJECT_NEGATIVE flag.
8445         * toplev.c (print_switch_values): Use cl_report bit-field instead
8446         of CL_REPORT flag.
8447
8448 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8449
8450         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8451         a zero minimum index only if it is redundant.
8452
8453 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
8454
8455         PR rtl-optimization/48381
8456         * ira-color.c (assign_hard_reg): Use hard reg set intersection
8457         instead of ira_class_hard_reg_index for calculating conflicting
8458         hard registers.
8459
8460 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
8461
8462         * cprop.c: Clean up hash table building.
8463         (reg_avail_info): Remove.
8464         (oprs_available_p): Remove.
8465         (record_last_reg_set_info): Remove.
8466         (record_last_set_info): Remove.
8467         (reg_available_p): New function.
8468         (gcse_constant_p): Do not treat unfolded conditions as constants.
8469         (make_set_regs_unavailable): New function.
8470         (hash_scan_set): Simplify with new reg_available_p.
8471         (compute_hash_table_work): Traverse insns stream only once.
8472         Do not compute reg_avail_info. Traverse insns in reverse order.
8473         Record implicit sets after recording explicit sets from the block.
8474
8475 2011-03-31  Michael Matz  <matz@suse.de>
8476
8477         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8478
8479 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
8480
8481         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8482         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8483         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8484         (h8300_mode_dependent_address_p): New function.
8485         (h8300_get_index): Make static.
8486
8487 2011-03-31  Jeff Law  <law@redhat.com>
8488
8489         * reload1.c (elimination_effects): Fix typo in recent change.
8490
8491         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8492         typo potentially leading to null pointer dereference.
8493
8494         * caller-save.c (new_saved_hard_reg): Eliminate return value.
8495         (setup_save_areas): Corresponding changes to avoid useless
8496         assignments.
8497
8498         * jump.c (reversed_comparison_code_parts): Avoid successive return
8499         statements when REVERSE_CONDITION is defined.
8500
8501         * expr.c (expand_assignment): Avoid useless assignments.
8502         (expand_expr_real_1): Likewise.
8503         (expand_expr_real_2): Avoid useless statements.
8504
8505         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8506
8507         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8508
8509         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8510         statements.
8511
8512         * stmt.c (expand_expr_stmt): Avoid useless assignment.
8513
8514 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8515
8516         PR target/47109
8517         * doc/tm.texi.in (TARGET_VERSION): Remove.
8518         * doc/tm.texi: Regenerate.
8519         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8520         * collect2.c (main): Don't use TARGET_VERSION.
8521         * mips-tdump.c (main): Don't use TARGET_VERSION.
8522         * mips-tfile.c (main): Don't use TARGET_VERSION.
8523         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8524         * config/rs6000/vxworksae.h: Remove.
8525         * config/alpha/alpha.h (TARGET_VERSION): Remove.
8526         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8527         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8528         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8529         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8530         * config/arm/arm.h (TARGET_VERSION): Remove.
8531         * config/arm/coff.h (TARGET_VERSION): Remove.
8532         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8533         * config/arm/elf.h (TARGET_VERSION): Remove.
8534         * config/arm/freebsd.h (TARGET_VERSION): Remove.
8535         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8536         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8537         * config/arm/pe.h (TARGET_VERSION): Remove.
8538         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8539         * config/arm/semi.h (TARGET_VERSION): Remove.
8540         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8541         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8542         * config/arm/vxworks.h (TARGET_VERSION): Remove.
8543         * config/avr/avr.h (TARGET_VERSION): Remove.
8544         * config/bfin/bfin.h (TARGET_VERSION): Remove.
8545         * config/fr30/fr30.h (TARGET_VERSION): Remove.
8546         * config/frv/frv.h (TARGET_VERSION): Remove.
8547         * config/h8300/h8300.h (TARGET_VERSION): Remove.
8548         * config/i386/cygwin.h (TARGET_VERSION): Remove.
8549         * config/i386/darwin.h (TARGET_VERSION): Remove.
8550         * config/i386/darwin64.h (TARGET_VERSION): Remove.
8551         * config/i386/djgpp.h (TARGET_VERSION): Remove.
8552         * config/i386/freebsd.h (TARGET_VERSION): Remove.
8553         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8554         * config/i386/gnu.h (TARGET_VERSION): Remove.
8555         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8556         * config/i386/i386elf.h (TARGET_VERSION): Remove.
8557         * config/i386/linux.h (TARGET_VERSION): Remove.
8558         * config/i386/linux64.h (TARGET_VERSION): Remove.
8559         * config/i386/lynx.h (TARGET_VERSION): Remove.
8560         * config/i386/mingw32.h (TARGET_VERSION): Remove.
8561         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8562         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8563         * config/i386/netware.h (TARGET_VERSION): Remove.
8564         * config/i386/nto.h (TARGET_VERSION): Remove.
8565         * config/i386/openbsd.h (TARGET_VERSION): Remove.
8566         * config/i386/vxworks.h (TARGET_VERSION): Remove.
8567         * config/ia64/elf.h (TARGET_VERSION): Remove.
8568         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8569         * config/ia64/hpux.h (TARGET_VERSION): Remove.
8570         * config/ia64/linux.h (TARGET_VERSION): Remove.
8571         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8572         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8573         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8574         * config/lm32/lm32.h (TARGET_VERSION): Remove.
8575         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8576         * config/m32c/m32c.h (TARGET_VERSION): Remove.
8577         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8578         * config/m32r/m32r.h (TARGET_VERSION): Remove.
8579         * config/m68k/linux.h (TARGET_VERSION): Remove.
8580         * config/m68k/m68k.h (TARGET_VERSION): Remove.
8581         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8582         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8583         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8584         * config/mep/mep.h (TARGET_VERSION): Remove.
8585         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8586         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8587         * config/mips/iris6.h (MACHINE_TYPE): Remove.
8588         * config/mips/linux.h (TARGET_VERSION): Remove.
8589         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8590         * config/mips/vxworks.h (TARGET_VERSION): Remove.
8591         * config/mmix/mmix.h (TARGET_VERSION): Remove.
8592         * config/mn10300/linux.h (TARGET_VERSION): Remove.
8593         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8594         * config/pa/pa.h (TARGET_VERSION): Remove.
8595         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8596         * config/picochip/picochip.h (TARGET_VERSION): Remove.
8597         * config/rs6000/aix.h (TARGET_VERSION): Remove.
8598         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8599         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8600         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8601         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8602         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8603         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8604         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8605         * config/rs6000/linux.h (TARGET_VERSION): Remove.
8606         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
8607         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
8608         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
8609         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
8610         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
8611         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
8612         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
8613         * config/s390/linux.h (TARGET_VERSION): Remove.
8614         * config/s390/s390.h (TARGET_VERSION): Remove.
8615         * config/s390/tpf.h (TARGET_VERSION): Remove.
8616         * config/score/score.h (TARGET_VERSION): Remove.
8617         * config/sh/linux.h (TARGET_VERSION): Remove.
8618         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
8619         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
8620         * config/sh/sh.h (TARGET_VERSION): Remove.
8621         * config/sh/sh64.h (TARGET_VERSION): Remove.
8622         * config/sh/superh.h (TARGET_VERSION): Remove.
8623         * config/sh/vxworks.h (TARGET_VERSION): Remove.
8624         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
8625         * config/sparc/linux.h (TARGET_VERSION): Remove.
8626         * config/sparc/linux64.h (TARGET_VERSION): Remove.
8627         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
8628         TARGET_NAME32, TARGET_NAME): Remove.
8629         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
8630         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
8631         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
8632         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
8633         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
8634         * config/spu/spu.h (TARGET_VERSION): Remove.
8635         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
8636         * config/v850/v850.h (TARGET_VERSION): Remove.
8637         * config/vax/linux.h (TARGET_VERSION): Remove.
8638         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
8639         * config/xtensa/elf.h (TARGET_VERSION): Remove.
8640         * config/xtensa/linux.h (TARGET_VERSION): Remove.
8641
8642 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8643
8644         PR target/48142
8645         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
8646         frame-related from frame-unrelated adjustments to the stack pointer.
8647
8648 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
8649
8650         * common.opt (fdebug-types-section): Move earlier.
8651         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
8652
8653 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
8654
8655         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
8656         var.
8657
8658 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
8659
8660         * tree.h (CASE_CHAIN): Define.
8661         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
8662         (gimple_redirect_edge_and_branch): Likewise.
8663
8664 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8665
8666         PR middle-end/48367
8667         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
8668         calculation.
8669
8670 2011-03-30  Jeff Law  <law@redhat.com>
8671
8672         * PR bootstrap/48371
8673         * reload1.c (reload): Fix botch in last change.
8674
8675         * reload.h (struct reload): Fix typo introduced in last change.
8676
8677 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8678
8679         * config/arm/arm.opt (mhard-float, msoft-float): Mark
8680         Undocumented.  Remove help text.
8681         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
8682         -mhard-float.
8683
8684 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8685
8686         * doc/options.texi (NegativeAlias): Document.
8687         (Alias): Mention NegativeAlias.
8688         * opt-functions.awk: Handle NegativeAlias.
8689         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
8690         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
8691         * opts.h (CL_NEGATIVE_ALIAS): Define.
8692         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
8693         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
8694         OPT_mspe_.
8695         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
8696         Alias entries.
8697         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8698         mno-spe and mno-isel instead of mspe=no and -misel=no.
8699
8700 2011-03-29  Mark Wielaard  <mjw@redhat.com>
8701
8702         * common.opt (fdebug-types-section): New flag.
8703         * doc/invoke.texi: Document new -fno-debug-types-section flag.
8704         * dwarf2out.c (use_debug_types): New define.
8705         (struct die_struct): Mark die_id with GTY desc use_debug_types.
8706         (print_die): Guard output of type unit signatures using
8707         use_debug_types.
8708         (build_abbrev_table): Replace assert of dwarf_version >= 4
8709         with assert on use_debug_types.
8710         (size_of_die): Likewise.
8711         (unmark_dies): Likewise.
8712         (value_format): Decide AT_ref_external form on use_debug_types.
8713         (output_die): Replace dwarf_version version check guard with
8714         use_debug_types where appropriate.
8715         (modified_type_die): Likewise.
8716         (gen_reference_type_die): Likewise.
8717         (dwarf2out_start_source_file): Likewise.
8718         (dwarf2out_end_source_file): Likewise.
8719         (prune_unused_types_walk_attribs): Likewise.
8720         (dwarf2out_finish): Likewise.
8721
8722 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8723
8724         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
8725
8726 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8727
8728         PR rtl-optimization/48332
8729         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
8730         mode of input operand N and modeN to its actual mode.
8731
8732 2011-03-30  Jeff Law  <law@redhat.com>
8733
8734         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
8735         define accessor macro.
8736         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
8737         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
8738         (reg_equiv_init): Likewise.
8739         (reg_equivs_size): New variable.
8740         (reg_equiv_init_size): Remove.
8741         (allocate_initial_values): Move prototype to here from....
8742         * integrate.h (allocate_initial_values): Remove prototype.
8743         * integrate.c: Include reload.h.
8744         (allocate_initial_values): Corresponding changes.
8745         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
8746         (fix_reg_equiv_init, no_equiv): Corresponding changes.
8747         (update_equiv_regs): Corresponding changes.
8748         (ira): Corresponding changes.
8749         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
8750         (push_secondary_reload): Corresponding changes.
8751         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
8752         (make_memloc, find_reloads_address): Corresponding changes.
8753         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
8754         (find_reloads_address_1): Corresponding changes.
8755         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
8756         (refers_to_regno_for_reload_p): Corresponding changes.
8757         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
8758         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
8759         * reload1.c: Include ggc.h.
8760         (grow_reg_equivs): New function.
8761         (replace_pseudos_in, reload): Corresponding changes.
8762         (calculate_needs_all_insns, alter_regs): Corresponding changes.
8763         (eliminate_regs_1, elimination_effects): Corresponding changes.
8764         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
8765         (delete_output_reload): Likewise.
8766         * caller-save.c (mark_referenced_regs): Corresponding changes.
8767         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
8768         * frv/predicates.md (frv_load_operand): Corresponding changes.
8769         * microblaze/microblaze.c (double_memory_operand): Corresponding
8770         changes.
8771         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
8772         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
8773         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
8774         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
8775         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
8776         changes.
8777         * pa/pa.c (emit_move_sequence): Corresponding changes.
8778         * vax/vax.c (nonindexed_address_p): Corresponding changes.
8779
8780 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8781
8782         PR target/47551
8783         * config/arm/arm.c (coproc_secondary_reload_class): Handle
8784         structure modes.  Don't check neon_vector_mem_operand for
8785         vector or structure modes.
8786
8787 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8788             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8789
8790         PR target/43590
8791         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
8792         operand 1 and reshuffle the operands to match.
8793         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8794
8795 2011-03-30  Christian Schüler  <cschueler@gmx.de>
8796
8797         PR driver/48208
8798         * config/c.opt (F): Added 'Driver' to -F option.
8799
8800         PR driver/48260
8801         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
8802           handler function.
8803         * config/darwin.opt: Added '-arch' option.
8804
8805 2011-03-30  Nick Clifton  <nickc@redhat.com>
8806
8807         * config/rx/rx.md: Add peepholes and patterns to combine
8808         extending loads and simple arithmetic instructions.
8809         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
8810         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
8811         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
8812         modes to use pre-decrement and post-increment addressing.
8813         (rx_is_restricted_memory_address): Add range checking of REG+INT
8814         addresses.
8815         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
8816         (rx_memory_move_cost): Adjust cost of stores.
8817         (rx_adjust_insn_length): New function.
8818
8819 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
8820
8821         PR c/48305
8822         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8823         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
8824         matching arg00/arg01 types.
8825
8826 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8827
8828         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
8829         last_location to UNKNOWN_LOCATION.
8830
8831 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8832
8833         PR target/48349
8834         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
8835         FLOAT_SSE_REGS.
8836
8837 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8838             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8839
8840         PR bootstrap/48337
8841         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
8842         Init(PROCESSOR_V7).
8843         (sparc_cpu): Likewise.
8844         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
8845         PROCESSOR_V7.
8846
8847 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8848
8849         PR target/48336
8850         PR middle-end/48342
8851         PR rtl-optimization/48345
8852         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
8853         hard regs for given mode from profitable regs when doing secondary
8854         allocation.
8855
8856 2011-03-29  Jeff Law  <law@redhat.com>
8857
8858         PR bootstrap/48327
8859         * tree-ssa-threadupdate.c (struct redirection_data): Remove
8860         do_not_duplicate field.
8861         (lookup_redirection_data): Corresponding changes.
8862         (create_duplicates): Always create a template block.
8863         (redirect_edges): Remove code which reused the original block
8864         when it was going to become unreachable code.
8865         (thread_block): Don't set do_not_duplicate field.
8866
8867 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
8868
8869         * lto-opts.c (register_user_option_p, lto_register_user_option):
8870         Make type argument unsigned.
8871         * lto-streamer.h (lto_register_user_option): Make type argument
8872         unsigned.
8873         * opth-gen.awk: Make CL_* macros unsigned.
8874         * opts-common.c (find_opt): Make lang_mask argument unsigned.
8875         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
8876         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
8877         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
8878         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
8879         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
8880         (find_opt): Make lang_mask argument unsigned.
8881
8882 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8883
8884         PR rtl-optimization/48331
8885         PR rtl-optimization/48334
8886         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
8887         for any used algorithm.
8888
8889 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8890
8891         * ira-conflicts.c (build_object_conflicts): Add unused attribute
8892         to parent_max.
8893
8894 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
8895
8896         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
8897         (alpha_option_override): Don't set alpha_sr_alias_set.
8898         (emit_frame_store_1): Use gen_frame_mem rather than calling
8899         set_mem_alias_set.
8900         (alpha_expand_epilogue): Ditto.
8901
8902 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
8903
8904         PR tree-optimization/48290
8905         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
8906         vectorization, check that relevant phis in the basic block after
8907         the inner loop are really inner loop's exit phis.
8908
8909 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
8910
8911         PR debug/48190
8912         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
8913         (cached_dw_loc_list_def): New structure.
8914         (cached_dw_loc_list): New typedef.
8915         (cached_dw_loc_list_table): New variable.
8916         (cached_dw_loc_list_table_hash): New function.
8917         (cached_dw_loc_list_table_eq): Likewise.
8918         (add_location_or_const_value_attribute): Take a bool cache_p.
8919         Cache the list when the parameter is true.
8920         (gen_formal_parameter_die): Update caller.
8921         (gen_variable_die): Likewise.
8922         (dwarf2out_finish): Likewise.
8923         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
8924         while generating debug info for the decl.
8925         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
8926         (dwarf2out_init): Initialize cached_dw_loc_list_table.
8927         (resolve_addr): Cache the result of resolving a chain of
8928         location lists.
8929
8930 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
8931
8932         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
8933         conflict object hard regset nodes have intersecting hard reg sets.
8934
8935         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
8936         after regstat_init_n_sets_and_refs.
8937
8938         * ira.c: Add more comments at the top.
8939         (setup_stack_reg_pressure_class, setup_pressure_classes):
8940         Add comments how we compute the register pressure classes.
8941         (setup_allocno_and_important_classes): Add more comments.
8942         (setup_class_translate_array, reorder_important_classes)
8943         (setup_reg_class_relations): Add comments.
8944
8945         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
8946         start of the file.
8947
8948         * ira-color.c: Add 2011 to the Copyright line.
8949         (assign_hard_reg):  Add more comments.
8950         (improve_allocation): Ditto.
8951
8952         * ira-costs.c: Add 2011 to the Copyright line.
8953         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8954         comments.
8955         (setup_regno_cost_classes_by_mode): Ditto.
8956
8957         Initial patches from ira-improv branch:
8958
8959         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8960
8961         * ira-build.c (ira_create_object): Remove initialization of
8962         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
8963         (ira_create_allocno): Remove initialization of
8964         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8965         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8966         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8967         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8968         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8969         Initialize ALLOCNO_ADD_DATA.
8970         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8971         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8972         ALLOCNO_REG.
8973         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
8974         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8975
8976         * ira.c (ira_reallocate): Remove.
8977         (setup_pressure_classes): Call
8978         ira_init_register_move_cost_if_necessary.  Use
8979         ira_register_move_cost instead of ira_get_register_move_cost.
8980         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8981         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8982
8983         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8984         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8985         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8986         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8987         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8988         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8989         Fix formatting.
8990         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
8991         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8992         (struct allocno_color_data): New.
8993         (allocno_color_data_t): New typedef.
8994         (allocno_color_data): New definition.
8995         (ALLOCNO_COLOR_DATA): New macro.
8996         (struct object_color_data): New.
8997         (object_color_data_t): New typedef.
8998         (object_color_data): New definition.
8999         (OBJECT_COLOR_DATA): New macro.
9000         (update_copy_costs, calculate_allocno_spill_cost): Call
9001         ira_init_register_move_cost_if_necessary.  Use
9002         ira_register_move_cost instead of ira_get_register_move_cost.
9003         (move_spill_restore, update_curr_costs): Ditto.
9004         (allocno_spill_priority): Make it inline.
9005         (color_pass): Allocate and free allocno_color_dat and object_color_data.
9006         (struct coalesce_data, coalesce_data_t): New.
9007         (allocno_coalesce_data): New definition.
9008         (ALLOCNO_COALESCE_DATA): New macro.
9009         (merge_allocnos, coalesced_allocno_conflict_p): Use
9010         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
9011         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
9012         (coalesce_allocnos): Ditto.
9013         (setup_coalesced_allocno_costs_and_nums): Ditto.
9014         (collect_spilled_coalesced_allocnos): Ditto.
9015         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
9016         (setup_slot_coalesced_allocno_live_ranges): Ditto.
9017         (coalesce_spill_slots): Ditto.
9018         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
9019         free allocno_coalesce_data.
9020
9021         * ira-conflicts.c: Fix formatting.
9022         (process_regs_for_copy): Call
9023         ira_init_register_move_cost_if_necessary.  Use
9024         ira_register_move_cost instead of ira_get_register_move_cost.
9025         (build_object_conflicts): Optimize.
9026
9027         * ira-costs.c (record_reg_classes): Optimize.  Call
9028         ira_init_register_move_cost_if_necessary.  Use
9029         ira_register_move_cost, ira_may_move_in_cost, and
9030         ira_may_move_out_cost instead of ira_get_register_move_cost and
9031         ira_get_may_move_cost.
9032         (record_address_regs): Ditto.
9033         (scan_one_insn): Optimize.
9034         (find_costs_and_classes): Optimize.
9035         (process_bb_node_for_hard_reg_moves): Call
9036         ira_init_register_move_cost_if_necessary.  Use
9037         ira_register_move_cost instead of ira_get_register_move_cost.
9038
9039         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
9040         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
9041         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
9042         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
9043         definitions.
9044         (ira_initiate_emit_data, ira_finish_emit_data)
9045         (create_new_allocno): New functions.
9046         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
9047         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
9048         Use ira_register_move_cost instead of ira_get_register_move_cost.
9049
9050         * ira-int.h: Fix some comments.
9051         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
9052         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9053         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
9054         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
9055         add_data.
9056         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
9057         bitfield after mode.  Make hard_regno a short int.  Make
9058         hard_regno short.  Remove first_coalesced_allocno and
9059         next_coalesced_allocno.  Move mem_optimized_dest_p,
9060         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
9061         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
9062         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
9063         temp, colorable_p.  Add new member add_data.
9064         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
9065         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
9066         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
9067         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
9068         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
9069         (ALLOCNO_ADD_DATA): New macro.
9070         (ira_emit_data_t): New typedef.
9071         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
9072         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
9073         from struct ira_allocno.
9074         (ALLOCNO_EMIT_DATA): New macro.
9075         (ira_allocno_emit_data, allocno_emit_reg): New.
9076         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
9077         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
9078         (OBJECT_ADD_DATA): New macro.
9079         (ira_reallocate): Remove.
9080         (ira_initiate_emit_data, ira_finish_emit_data): New.
9081         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
9082         (ira_init_register_move_cost_if_necessary): New.
9083         (ira_object_conflict_iter_next): Merge into
9084         ira_object_conflict_iter_cond.
9085         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
9086
9087         * ira-live.c (process_single_reg_class_operands): Call
9088         ira_init_register_move_cost_if_necessary.  Use
9089         ira_register_move_cost instead of ira_get_register_move_cost.
9090
9091         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
9092
9093         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
9094
9095         * ira-costs.c: Fix formatting.
9096         (cost_classes, cost_classes_num): Remove.
9097         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
9098         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
9099         (cost_classes_del, cost_classes_htab): New.
9100         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
9101         (initiate_regno_cost_classes, setup_cost_classes): New.
9102         (setup_regno_cost_classes_by_aclass): New.
9103         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
9104         (record_reg_classes): Use regno_cost_classes instead of
9105         cost_classes.  Move checking opposite operand up.
9106         (record_address_regs): Use regno_cost_classes
9107         instead of cost_classes.
9108         (scan_one_insn): Ditto.  Use always general register.
9109         (print_allocno_costs): Use regno_cost_classes instead of
9110         cost_classes.
9111         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
9112         (find_costs_and_classes): Set up cost classes for each registers.
9113         Use also their mode for this.  Use regno_cost_classes instead of
9114         cost_classes.
9115         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
9116         cost_classes.
9117         (free_ira_costs, ira_init_costs): Don't use cost_classes.
9118         (ira_costs, ira_set_pseudo_classes): Call
9119         initiate_regno_cost_classes and finish_regno_cost_classes.
9120
9121         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9122
9123         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
9124
9125         * target.def (ira_cover_classes): Remove.
9126
9127         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
9128
9129         * doc/tm.texi.in: Ditto.
9130
9131         * ira-conflicts.c: Remove mentioning cover classes from the file.
9132         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
9133         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
9134
9135         * targhooks.c (default_ira_cover_classes): Remove.
9136
9137         * targhooks.h (default_ira_cover_classes): Ditto.
9138
9139         * haifa-sched.c: Remove mentioning cover classes from the file.
9140         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9141         ira_pressure_classes and ira_pressure_classes_num instead of
9142         ira_reg_class_cover_size and ira_reg_class_cover.  Use
9143         sched_regno_pressure_class instead of sched_regno_cover_class.
9144         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
9145         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9146
9147         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
9148         classes from the file.
9149         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
9150         (struct object_hard_regs, struct object_hard_regs_node): New.
9151         (struct ira_object): New members profitable_hard_regs,
9152         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
9153         (struct ira_allocno): Rename cover_class to aclass.  Rename
9154         cover_class_cost and updated_cover_class_cost to class_cost and
9155         updated_class_cost.  Remove splay_removed_p and
9156         left_conflict_size.  Add new members colorable_p.
9157         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
9158         (ALLOCNO_COLORABLE_P): New macro.
9159         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
9160         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
9161         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
9162         (OBJECT_...): Rename parameter C to O.
9163         (OBJECT_PROFITABLE_HARD_REGS): New macro.
9164         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
9165         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
9166         (struct target_ira_int): New members x_ira_max_memory_move_cost,
9167         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
9168         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
9169         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
9170         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
9171         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
9172         x_ira_reg_class_subunion.
9173         (ira_max_memory_move_cost, ira_max_register_move_cost)
9174         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
9175         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
9176         (ira_important_class_nums, ira_reg_class_superunion): New macros.
9177         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
9178         (ira_reg_class_union): Rename to ira_reg_class_subunion.
9179         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9180         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9181         (ira_tune_allocno_costs_and_cover_classes): Rename to
9182         ira_tune_allocno_costs.
9183         (ira_debug_hard_regs_forest): New.
9184         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
9185         (ira_object_conflict_iter_next): Fix comments.
9186         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
9187         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
9188         cover_class to aclass.
9189         (ira_allocate_and_accumulate_costs): Ditto.
9190         (ira_allocate_and_set_or_copy_costs): Ditto.
9191
9192         * opts.c (decode_options): Remove ira_cover_class check.
9193
9194         * ira-color.c: Remove mentioning cover classes from the file.  Use
9195         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
9196         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
9197         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
9198         (splay-tree.h): Remove include.
9199         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
9200         before copy_freq_compare_func.
9201         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
9202         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
9203         New definitions.
9204         (hard_regs_roots, hard_regs_node_vec): Ditto.
9205         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
9206         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
9207         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
9208         (create_new_object_hard_regs_node): Ditto.
9209         (add_new_object_hard_regs_node_to_forest): Ditto.
9210         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
9211         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
9212         Ditto.
9213         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
9214         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
9215         (remove_unused_object_hard_regs_nodes): Ditto.
9216         (enumerate_object_hard_regs_nodes): Ditto.
9217         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
9218         (object_hard_regs_subnode_t): Ditto.
9219         (struct object_hard_regs_subnode): Ditto.
9220         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
9221         (setup_object_hard_regs_subnode_index): Ditto.
9222         (get_object_hard_regs_subnodes_num): Ditto.
9223         (form_object_hard_regs_nodes_forest): Ditto.
9224         (finish_object_hard_regs_nodes_tree): Ditto.
9225         (finish_object_hard_regs_nodes_forest): Ditto.
9226         (allocnos_have_intersected_live_ranges_p): Rename to
9227         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
9228         (pseudos_have_intersected_live_ranges_p): Rename to
9229         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
9230         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
9231         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
9232         (update_copy_costs): Remove assert.  Skip cost update if the hard
9233         reg does not belong the class.
9234         (assign_hard_reg): Process only profitable hard regs.
9235         (uncolorable_allocnos_num): Make it scalar.
9236         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
9237         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
9238         and ira_reg_class_max_nregs.
9239         (bucket_allocno_compare_func): Check frequency first.
9240         (sort_bucket): Add compare function as a parameter.
9241         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
9242         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
9243         (push_allocno_to_stack): Rewrite for checking new allocno
9244         colorability.
9245         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
9246         (push_only_colorable): Pass new parameter to sort_bucket.
9247         (push_allocno_to_spill): Remove.
9248         (allocno_spill_priority_compare): Make it inline and rewrite.
9249         (splay_tree_allocate, splay_tree_free): Remove.
9250         (allocno_spill_sort_compare): New function.
9251         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
9252         build and use splay tree.  Choose first allocno in uncolorable
9253         allocno bucket to spill.  Remove setting spill cost.
9254         (all_conflicting_hard_regs): Remove.
9255         (setup_allocno_available_regs_num): Check only profitable hard
9256         regs.  Print info about hard regs nodes.
9257         (setup_allocno_left_conflicts_size): Remove.
9258         (put_allocno_into_bucket): Don't call
9259         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
9260         (improve_allocation): New.
9261         (color_allocnos): Call setup_profitable_hard_regs,
9262         form_object_hard_regs_nodes_forest, improve_allocation,
9263         finish_object_hard_regs_nodes_forest.  Setup spill cost.
9264         (print_loop_title): Use pressure classes.
9265         (color_allocnso): Ditto.
9266         (do_coloring): Remove allocation and freeing splay_tree_node_pool
9267         and allocnos_for_spilling.
9268         (ira_sort_regnos_for_alter_reg): Don't setup members
9269         {first,next}_coalesced_allocno.
9270         (color): Remove allocating and freeing removed_splay_allocno_vec.
9271         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
9272         prohibited_class_mode_regs.
9273
9274         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
9275         formatting.
9276         (update_allocno_pressure_excess_length): Use pressure classes.
9277         (inc_register_pressure, dec_register_pressure): Check for pressure
9278         class.
9279         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
9280         pressure class.  Use ira_reg_class_nregs instead of
9281         ira_reg_class_max_nregs.
9282         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
9283         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
9284         (single_reg_class): Use ira_reg_class_nregs instead of
9285         ira_reg_class_max_nregs.
9286         (process_bb_node_lives): Use pressure classes.
9287
9288         * ira-emit.c: Remove mentioning cover classes from the file.  Use
9289         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
9290         (change_loop): Use pressure classes.
9291         (modify_move_list): Call ira_set_allocno_class instead of
9292         ira_set_allocno_cover_class.
9293
9294         * ira-build.c: Remove mentioning cover classes from the file.  Use
9295         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
9296         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
9297         ALLOCNO_UPDATED_CLASS_COST instead of
9298         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
9299         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
9300         (ira_create_allocno): Remove initialization of
9301         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
9302         ALLOCNO_COLORABLE_P.
9303         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9304         Update conflict regs for the objects.
9305         (create_cap_allocno): Remove assert.  Don't propagate
9306         ALLOCNO_AVAILABLE_REGS_NUM.
9307         (ira_free_allocno_costs): New function.
9308         (finish_allocno): Change a part of code into call of
9309         ira_free_allocno_costs.
9310         (low_pressure_loop_node_p): Use pressure classes.
9311         (object_range_compare_func): Don't compare classes.
9312         (setup_min_max_conflict_allocno_ids): Ditto.
9313
9314         * loop-invariant.c: Remove mentioning cover classes from the file.
9315         Use ira_pressure_classes and ira_pressure_classes_num instead of
9316         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
9317         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
9318         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9319         Use reg_allocno_class instead of reg_cover_class.
9320         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
9321         STACK_REG_COVER_CLASS.
9322         (get_regno_cover_class): Rename to get_regno_pressure_class.
9323         (move_loop_invariants): Initialize and finalize regstat.
9324
9325         * ira.c: Remove mentioning cover classes from the file.  Add
9326         comments about coloring without cover classes.  Use ALLOCNO_CLASS
9327         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
9328         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
9329         setup_class_subset_and_memory_move_costs.
9330         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9331         (setup_cover_and_important_classes): Rename to
9332         setup_allocno_and_important_classes.
9333         (setup_class_translate_array): New.
9334         (setup_class_translate): Call it for allocno and pressure classes.
9335         (cover_class_order): Rename to allocno_class_order.
9336         (comp_reg_classes_func): Use ira_allocno_class_translate instead
9337         of ira_class_translate.
9338         (reorder_important_classes): Set up ira_important_class_nums.
9339         (setup_reg_class_relations): Set up ira_reg_class_superunion.
9340         (print_class_cover): Rename to print_classes.  Add parameter.
9341         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9342         Print pressure classes too.
9343         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
9344         setup_reg_subclasses.
9345         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9346         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9347         (setup_prohibited_class_mode_regs): Use
9348         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9349         (clarify_prohibited_class_mode_regs): New function.
9350         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9351         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9352         (ira_init_once): Initialize them.
9353         (free_register_move_costs): Process them.
9354         (ira_init): Move calls of find_reg_classes and
9355         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9356         Call clarify_prohibited_class_mode_regs.
9357         (ira_no_alloc_reg): Remove.
9358         (too_high_register_pressure_p): Use pressure classes.
9359
9360         * sched-deps.c: Remove mentioning cover classes from the file.
9361         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9362         ira_pressure_classes and ira_pressure_classes_num instead of
9363         ira_reg_class_cover_size and ira_reg_class_cover.
9364         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9365         sched_regno_pressure_class instead of sched_regno_cover_class.
9366         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
9367         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9368
9369         * ira.h: Add 2010 to Copyright.
9370         (ira_no_alloc_reg): Remove external.
9371         (struct target_ira): Rename x_ira_hard_regno_cover_class,
9372         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9373         x_ira_class_translate to x_ira_hard_regno_allocno_class,
9374         x_ira_allocno_classes_num, x_ira_allocno_classes, and
9375         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
9376         x_ira_pressure_classes, x_ira_pressure_class_translate, and
9377         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
9378         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
9379         x_ira_no_alloc_regs.
9380         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9381         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9382         ira_allocno_classes_num and ira_allocno_classes.
9383         (ira_class_translate): Rename to ira_allocno_class_translate.
9384         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9385         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9386         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9387         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9388         (ira_no_alloc_regs): New.
9389
9390         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
9391         classes from the file.  Use ALLOCNO_CLASS instead of
9392         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
9393         ALLOCNO_COVER_CLASS_COST.
9394         (regno_cover_class): Rename to regno_aclass.
9395         (record_reg_classes): Use ira_reg_class_subunion instead of
9396         ira_reg_class_union.
9397         (record_address_regs): Check overflow.
9398         (scan_one_insn): Ditto.
9399         (print_allocno_costs): Print total mem cost fore regional allocation.
9400         (print_pseudo_costs): Use REG_N_REFS.
9401         (find_costs_and_classes): Use classes intersected with them on the
9402         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
9403         ira_reg_class_union.  Use ira_allocno_class_translate and
9404         regno_aclass instead of ira_class_translate and regno_cover_class.
9405         Modify code for finding regno_aclass.  Setup preferred classes for
9406         the next pass.
9407         (setup_allocno_cover_class_and_costs): Rename to
9408         setup_allocno_class_and_costs.  Use regno_aclass instead of
9409         regno_cover_class.  Use ira_set_allocno_class instead of
9410         ira_set_allocno_cover_class.
9411         (init_costs, finish_costs): Use regno_aclass instead of
9412         regno_cover_class.
9413         (ira_costs): Use setup_allocno_class_and_costs instead of
9414         setup_allocno_cover_class_and_costs.
9415         (ira_tune_allocno_costs_and_cover_classes): Rename to
9416         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
9417         by processing objects.  Use ira_reg_class_max_nregs instead of
9418         ira_reg_class_nregs.
9419
9420         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9421
9422         * sched-int.h: Remove mentioning cover classes from the file.
9423         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9424
9425         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
9426         classes from the file.
9427         (struct reg_pref): Rename coverclass into allocnoclass.
9428         (reg_cover_class): Rename to reg_allocno_class.
9429
9430         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9431
9432         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9433
9434         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9435
9436         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9437
9438         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9439
9440         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9441
9442         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9443
9444         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9445
9446         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9447
9448         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9449
9450         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9451         (i386_ira_cover_classes): Ditto.
9452
9453         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9454
9455         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9456
9457         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9458
9459         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9460
9461         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9462
9463         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9464
9465         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9466         (mips_ira_cover_classes): Ditto.
9467
9468         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9469
9470         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9471
9472         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9473
9474         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9475
9476         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9477
9478         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9479         (IRA_COVER_CLASSES_VSX): Ditto.
9480
9481         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9482         (rs6000_ira_cover_classes): Ditto.
9483
9484         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9485
9486         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9487
9488         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9489
9490         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9491
9492         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9493
9494         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9495
9496         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9497
9498         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9499
9500         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9501
9502         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9503
9504 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
9505
9506         PR debug/48253
9507         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9508         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9509         dw_fde_unlikely_section_end_label, cold_in_std_section,
9510         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9511         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9512         fields.
9513         (output_fde): Use dw_fde_second_{begin,end} if second is
9514         true, otherwise dw_fde_{begin,end}.
9515         (output_call_frame_info): Test dw_fde_second_begin != NULL
9516         instead of dw_fde_switched_sections.
9517         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9518         fields, initialize new fields.  Initialize in_std_section
9519         unconditionally from the first partition.
9520         (dwarf2out_end_epilogue): Don't override dw_fde_end when
9521         dw_fde_second_begin is non-NULL.
9522         (dwarf2out_switch_text_section): Stop initializing removed
9523         dw_fde_struct fields, initialize new fields, initialize
9524         also dw_fde_end here.  Set dw_fde_switch_cfi even when
9525         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
9526         (struct var_loc_list_def): Add last_before_switch field.
9527         (arange_table, arange_table_allocated, arange_table_in_use,
9528         ARANGE_TABLE_INCREMENT, add_arange): Removed.
9529         (size_of_aranges): Count !in_std_section and !second_in_std_section
9530         hunks in fdes, instead of looking at arange_table_in_use.
9531         (output_aranges): Add aranges_length argument, don't call
9532         size_of_aranges here.  Instead of using aranges_table*
9533         emit ranges for fdes when !in_std_section resp.
9534         !second_in_std_section.
9535         (dw_loc_list): Break ranges crossing section switch.
9536         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
9537         use dw_fde_second_end instead of dw_fde_end as end of last range.
9538         (gen_subprogram_die): Don't call add_arange.  Use
9539         dw_fde_{begin,end} for first partition and if switched
9540         section dw_fde_second_{begin,end} for the second.
9541         (var_location_switch_text_section_1,
9542         var_location_switch_text_section): New functions.
9543         (dwarf2out_begin_function): Initialize cold_text_section even
9544         when function_section () isn't text_section.
9545         (prune_unused_types): Don't walk arange_table.
9546         (dwarf2out_finish): Don't needlessly test
9547         flag_reorder_blocks_and_partition when testing cold_text_section_used.
9548         If info_section_emitted, call size_of_aranges and if it indicates
9549         non-empty .debug_aranges, call output_aranges with the computed
9550         size.  Stop using removed dw_fde_struct fields, use
9551         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9552         for second.
9553
9554         PR debug/48203
9555         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9556         create ENTRY_VALUE if incoming or address of incoming's MEM
9557         is a hard REG.
9558         * dwarf2out.c (mem_loc_descriptor): Don't emit
9559         DW_OP_GNU_entry_value of DW_OP_fbreg.
9560         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9561         on ENTRY_VALUE is able to find the canonical parameter VALUE.
9562         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9563         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9564         ENTRY_VALUE_EXPs.
9565         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9566         is a REG_P or MEM_P with REG_P address, compute hash directly
9567         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9568         (preserve_only_constants): Don't clear VALUES forwaring
9569         ENTRY_VALUE to some other VALUE.
9570
9571 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
9572
9573         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9574         instead of GEN_INT.
9575
9576 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9577
9578         * cfgexpand.c (expand_gimple_cond): Always set the source location and
9579         block before expanding the statement.
9580         (expand_gimple_stmt_1): Likewise.  Set them here...
9581         (expand_gimple_stmt): ...and not here.  Tidy.
9582         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9583         unknown.
9584
9585 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9586
9587         * Makefile.in: New rule for cprop.o.
9588         * gcse.c: Move constant/copy propagation to cprop.c.
9589         (compute_local_properties): Only handle expression tables.
9590         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9591         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9592         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9593         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
9594         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
9595         compute_cprop_data, find_used_regs, try_replace_reg,
9596         find_avail_set, cprop_jump, constprop_register, cprop_insn,
9597         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9598         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9599         find_bypass_set, reg_killed_on_edge, bypass_block,
9600         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9601         execute_rtl_cprop, pass_rtl_cprop): Move to...
9602         * cprop.c: ...here.  New file, constant/copy propagation for RTL
9603         moved from gcse.c to here with minor cleanups in duplicated code.
9604
9605 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
9606
9607         * config/i386/i386.c (flag_opts): Fix a typo in
9608         -mavx256-split-unaligned-store.
9609
9610 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9611
9612         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9613         LIBCALL_VALUE): Remove macros.
9614         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9615         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9616         (h8300_function_value, h8300_libcall_value,
9617         h8300_function_value_regno_p): New functions.
9618
9619 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9620
9621         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
9622
9623 2011-03-28  Jeff Law  <law@redhat.com>
9624
9625         * tree-ssa-threadupdate.c (redirect_edges): Call
9626         create_edge_and_update_destination_phis as needed.
9627         (create_edge_and_update_destination_phis): Accept new BB argument.
9628         All callers updated.
9629         (thread_block): Do not update the profile when threading around
9630         intermediate blocks.
9631         (thread_single_edge): Likewise.
9632         (determine_bb_domination_status): If BB is not a successor of the
9633         loop header, return NONDOMINATING.
9634         (register_jump_thread): Note when we register a jump thread around
9635         an intermediate block.
9636         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
9637         (thread_across_edge): Use it.
9638
9639 2011-03-28  Tristan Gingold  <gingold@adacore.com>
9640
9641         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
9642         when for_return is 2.
9643
9644 2011-03-28  Jeff Law  <law@redhat.com>
9645
9646         * var-tracking.c (canonicalize_values_mark): Delete unused
9647         lhs assignment.
9648         (canonicalize_values_star, set_variable_part): Likewise.
9649         (clobber_variable_part, delete_variable_part): Likewise.
9650
9651 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9652
9653         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
9654
9655 2011-03-28  Martin Jambor  <mjambor@suse.cz>
9656
9657         * tree-inline.c (expand_call_inline): Do not check that destination
9658         node is analyzed.
9659         (optimize_inline_calls): Assert that destination node is analyzed.
9660         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
9661         not call tree_lowering_passes.
9662         * cgraph.h (cgraph_analyze_function): Declare.
9663         * cgraphunit.c (cgraph_analyze_function): Make public.
9664
9665 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
9666
9667         * config/sparc/sparc-opts.h: New.
9668         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
9669         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
9670         (sparc_option_override): Store processor_type enumeration rather
9671         than string in cpu_default.  Remove name and enumeration from
9672         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
9673         without using sparc_select.  Use target_flags_explicit instead of
9674         fpu_option_set.
9675         * config/sparc/sparc.h (enum processor_type): Move to
9676         sparc-opts.h.
9677         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
9678         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
9679         HeaderInclude entry.
9680         (mcpu=, mtune=): Use Var and Enum.
9681         (sparc_processor_type): New Enum and EnumValue entries.
9682
9683 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9684             Iain Sandoe  <iains@gcc.gnu.org>
9685
9686         PR target/48245
9687         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
9688
9689 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9690
9691         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
9692         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
9693         Insert new statements at it in lieu of STMT.
9694         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
9695         * tree-vect-stmts.c (vectorizable_store): Likewise.
9696         (vectorizable_load): Likewise.
9697
9698 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
9699
9700         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
9701         (divtf3): Ditto.
9702         (multf3): Ditto.
9703         (subtf3): Ditto.
9704
9705 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9706
9707         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
9708         unaligned 256bit load/store.
9709         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
9710         (*avx_movdqu<avxmodesuffix>): Likewise.
9711
9712 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9713
9714         PR target/48288
9715         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
9716         * config/pa/pa.md (iordi3): Use new predicate in expander.
9717         (iorsi3): Likewise.
9718
9719 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
9720
9721         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
9722         FUNCTION_VALUE_REGNO_P): Remove macros.
9723         * config/mips/mips-protos.h (mips_function_value): Remove.
9724         * config/mips/mips.c (mips_function_value): Rename to...
9725         (mips_function_value_1): ... this. Make static.  Handle receiving
9726         the function type in 'fn_decl_or_type' argument.
9727         (mips_function_value, mips_libcall_value,
9728         mips_function_value_regno_p): New function.
9729         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9730         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9731
9732 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9733
9734         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
9735         and -mavx256-split-unaligned-store.
9736         (ix86_option_override_internal): Split 32-byte AVX unaligned
9737         load/store by default.
9738         (ix86_avx256_split_vector_move_misalign): New.
9739         (ix86_expand_vector_move_misalign): Use it.
9740
9741         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
9742         -mavx256-split-unaligned-store.
9743
9744         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
9745         256bit load/store.  Generate unaligned store on misaligned memory
9746         operand.
9747         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
9748         256bit load/store.
9749         (*avx_movdqu<avxmodesuffix>): Likewise.
9750
9751         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
9752         -mavx256-split-unaligned-store.
9753
9754 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9755
9756         PR target/38598
9757         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
9758         Update commentary.
9759
9760 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9761
9762         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
9763         opno arguments with an expand_operand.  Use create_input_operand.
9764         (mips_prepare_builtin_target): Delete.
9765         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
9766         functions.
9767         (mips_expand_builtin_direct): Use create_output_operand and
9768         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
9769         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
9770         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
9771
9772 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
9773
9774         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
9775         function.
9776         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9777
9778 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
9779
9780         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
9781         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
9782         basic blocks and call commit_edge_insertions directly.
9783         (fixup_abnormal_edges): Move from here to...
9784         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
9785         on the edges and return whether some have actually been inserted.
9786         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
9787         compensation code.
9788
9789 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
9790
9791         PR rtl-optimization/48144
9792         * sel-sched-ir.c (merge_history_vect): Factor out from ...
9793         (merge_expr_data): ... here.
9794         (av_set_intersect): Rename to av_set_code_motion_filter.
9795         Update all callers.  Call merge_history_vect when an expression
9796         is found in both sets.
9797         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
9798
9799 2011-03-26  Alan Modra  <amodra@gmail.com>
9800
9801         * config/rs6000/predicates.md (word_offset_memref_op): Handle
9802         cmodel medium addresses.
9803         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
9804         64-bit gpr loads and stores.
9805         (rs6000_secondary_reload_ppc64): New function.
9806         * config/rs6000/rs6000-protos.h: Declare it.
9807         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
9808
9809 2011-03-26  Alan Modra  <amodra@gmail.com>
9810
9811         PR target/47487
9812         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
9813         GNU Go in traceback table.
9814
9815 2011-03-25  Richard Henderson  <rth@redhat.com>
9816
9817         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
9818         if there are exactly 6 operands.
9819         (set_storage_via_setmem): Similarly.
9820
9821 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9822
9823         * collect2.c (write_c_file_stat): Handle backslash
9824         as right-hand directory separator.
9825         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
9826         checking just for slash.
9827         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
9828         instead of checking for trailing slash.
9829         * gcc.c (record_temp_file): Use filename_cmp instead
9830         of strcmp.
9831         (do_spec_1): Likewise.
9832         (replace_outfile_spec_function): Likewise.
9833         (is_directory): Use filename_ncmp instead of strncmp.
9834         (print_multilib_info): Likewise.
9835         * gcov.c (find_source): Use filename_cmp instead
9836         instead of strcmp.
9837         (make_gcov_file_name): Fix order of slash/backslash
9838         checks.
9839         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
9840         (add_standard_paths): Likewise.
9841         * mips-tfile.c (saber_stop): Handle backslash.
9842         * prefix.c (update_path): Use filename_ncmp instead of
9843         strncmp.
9844         * profile.c (output_location): Use filename_cmp instead
9845         of strcmp.
9846         * read-md.c (handle_toplevel_file): Handle backslash.
9847         * tlink.c (frob_extension):  Likewise.
9848         * tree-cfg.c (same_line_p): Use filename_cmp instead of
9849         strcmp.
9850         * tree-dump.c (dequeue_and_dump): Handle backslash.
9851         * tree.c (get_file_function_name): Likewise.
9852         * gengtype.c (read_input_list): Likewise.
9853         (get_file_realbasename): Likewise.
9854         (get_output_file_with_visibility): Use filename_cmp
9855         instead of strcmp.
9856
9857 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
9858
9859         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
9860         case to VFPv1.
9861
9862 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9863
9864         * fold-const.c (expr_location_or): New function.
9865         (fold_truth_not_expr): Call it.
9866
9867 2011-03-25  Jeff Law  <law@redhat.com>
9868
9869         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
9870         va_end.
9871         * c-family/c-common.c (def_fn_type): Likewise.
9872         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
9873         * emit-rtl.c (gen_rtvec): Likewise.
9874         * lto/lto-lang.c (def_fn_type): Likewise.
9875
9876 2011-03-25  Richard Guenther  <rguenther@suse.de>
9877
9878         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
9879         also generate copies.
9880         (fini_copy_prop): Handle constant values properly.
9881
9882 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
9883
9884         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
9885         mode size instead of bitsize with DWARF2_ADDR_SIZE.
9886         (hash_loc_operands, compare_loc_operands): Handle
9887         DW_OP_GNU_entry_value.
9888
9889 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9890
9891         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
9892         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
9893         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
9894         comment and use macro TARGET_64BIT_MS_ABI instead.
9895         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
9896         and change default behavior for 32-bit MS_ABI.
9897         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
9898         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
9899         32-bit, too.
9900         (ix86_cfun_abi): Likewise.
9901         (ix86_maybe_switch_abi): Adjust comment.
9902         (init_cumulative_args): Check for bit-ness in MS_ABI case.
9903         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
9904         instead of checking for SYSV_ABI.
9905         (ix86_nsaved_sseregs): Likewise.
9906         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
9907         to 16 bytes.
9908         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
9909         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
9910         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
9911         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
9912         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
9913
9914 2011-03-25  Richard Guenther  <rguenther@suse.de>
9915
9916         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
9917         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9918         (verify_gimple): Remove.
9919         * tree-cfg.c (verify_gimple_call): Merge verification
9920         from verify_stmts.
9921         (verify_gimple_phi): Merge verification from verify_stmts.
9922         (verify_gimple_label): New function.
9923         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
9924         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9925         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
9926         (verify_stmts): Rename to verify_gimple_in_cfg.
9927         (verify_gimple_in_cfg): New function.
9928         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
9929         * tree-ssa.c (verify_ssa): Likewise.
9930         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
9931
9932 2011-03-25  Richard Guenther  <rguenther@suse.de>
9933
9934         * passes.c (init_optimization_passes): Add FRE pass after
9935         early SRA.
9936
9937 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
9938             Andrew Stubbs  <ams@codesourcery.com>
9939
9940         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
9941         for Cortex-A8.
9942         (arm_movdi_vfp_cortexa8): New pattern.
9943         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
9944         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9945         instructions when tuning for Cortex-A8.  Set attribute "arch".
9946         * config/arm/arm.md: Move include arm-tune.md up a bit.
9947         (define_attr "arch"): Add "onlya8" and "nota8" values.
9948         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9949
9950 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9951
9952         PR bootstrap/48282
9953         Revert:
9954         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9955
9956         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9957         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9958         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9959         * passes.c (init_optimization_passes): Move
9960         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9961
9962 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9963
9964         * c-typeck.c (comptypes_internal): Replace target
9965         hook call of comp_type_attributes by version in tree.c file.
9966         * gimple.c (gimple_types_compatible_p_1): Likewise.
9967         * tree-ssa.c (useless_type_conversion_p): Likewise.
9968         * tree.c (build_type_attribute_qual_variant): Likewise.
9969         (attribute_value_equal): New static helper function.
9970         (comp_type_attributes): New function.
9971         (merge_attributes): Use attribute_value_equal for comparison.
9972         (attribute_list_contained): Likewise.
9973         * tree.h (comp_type_attributes): New prototype.
9974
9975 2011-03-25  Richard Guenther  <rguenther@suse.de>
9976
9977         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9978         of complex types at -O0.
9979         (verify_gimple_assign_binary): Likewise.
9980         (verify_gimple_assign_ternary): Likewise.
9981
9982 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9983
9984         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9985         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9986
9987 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9988
9989         PR debug/48041
9990         * dwarf2out.c (output_abbrev_section): Only write table when
9991         abbrev_die_table_in_use > 1.
9992
9993 2011-02-24  Richard Henderson  <rth@redhat.com>
9994
9995         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9996         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9997         (alpha_expand_unaligned_load_words): Use extql.
9998         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9999         (emit_insxl): Handle all modes for consistency.
10000
10001 2011-02-24  Richard Henderson  <rth@redhat.com>
10002
10003         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
10004         (alpha_expand_unaligned_load): Likewise.
10005         (alpha_expand_unaligned_store): Likewise.
10006         (alpha_expand_unaligned_load_words): Likewise.
10007         (alpha_expand_unaligned_store_words): Likewise.
10008         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
10009         (alpha_split_lock_test_and_set_12): Likewise.
10010         (print_operand, alpha_fold_builtin_extxx): Likewise.
10011         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
10012         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
10013         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
10014         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
10015         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
10016         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
10017         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
10018         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
10019         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
10020         (extwl, extll, extql): Similarly.
10021         (inswh, inslh, insqh): Similarly.
10022         (mskbl, mskwl, mskll, mskql): Similarly.
10023         (mskwh, msklh, mskqh): Similarly.
10024
10025 2011-02-24  Richard Henderson  <rth@redhat.com>
10026
10027         * config/alpha/alpha.md (attribute isa): Add er, ner.
10028         (attribute enabled): Handle them.
10029         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
10030
10031 2011-02-24  Richard Henderson  <rth@redhat.com>
10032
10033         * config/alpha/alpha.md (attribute isa): Add vms.
10034         (attribute enabled): Handle it.
10035         (*movsf): Merge *movsf_{nofix,fix,nofp}.
10036         (*movdf): Merge *movdf_{nofix,fix,nofp}.
10037         (*movtf): Rename from *movtf_internal for consistency.
10038         (*movsi): Merge with *movsi_nt_vms.
10039         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
10040         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
10041         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
10042         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
10043
10044 2011-02-24  Richard Henderson  <rth@redhat.com>
10045
10046         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
10047         (extendqisi2, extendhisi2): Likewise.
10048         (extendqidi2): Simplify BWX/non-BWX expansions.
10049         (extendhidi2): Similarly.
10050
10051 2011-02-24  Richard Henderson  <rth@redhat.com>
10052
10053         * config/alpha/alpha.md (attribute isa): New.
10054         (attribute enabled): New.
10055         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
10056         (zero_extendqisi2, zero_extendqidi2): Similarly.
10057         (zero_extendhisi2, zero_extendhidi2): Similarly.
10058         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
10059
10060 2011-02-24  Richard Henderson  <rth@redhat.com>
10061
10062         * config/alpha/predicates.md (input_operand): Revert last change;
10063         update comment to mention 32-bit VMS rather than Windows.
10064
10065 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10066
10067         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10068         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
10069         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10070         * passes.c (init_optimization_passes): Move
10071         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10072
10073 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10074
10075         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
10076
10077 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
10078
10079         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
10080         correctly.
10081
10082 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
10083
10084         PR debug/48204
10085         * simplify-rtx.c (simplify_const_unary_operation): Call
10086         real_convert when changing mode class with FLOAT_EXTEND.
10087
10088 2011-03-24  Nick Clifton  <nickc@redhat.com>
10089
10090         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
10091         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10092         * config/rx/rx.c (rx_option_override): Set align_jumps,
10093         align_loops and align_labels if not set by the user.
10094         (rx_align_for_label): New function.
10095         (rx_max_skip_for_label): New function.
10096         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
10097         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
10098         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
10099         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
10100         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
10101
10102 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10103
10104         PR rtl-optimization/48263
10105         * optabs.c (expand_binop_directly): Reinstate convert_modes code
10106         and original commutative_p handling.  Use maybe_gen_insn.
10107
10108 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10109
10110         * reload.c (find_reloads_subreg_address): Add address_reloaded
10111         parameter and return true there if the full address has been
10112         reloaded.
10113         (find_reloads_toplev): Pass address_reloaded flag.
10114         (find_reloads_address_1): Don't use address_reloaded parameter.
10115
10116 2011-03-24  Jeff Law  <law@redhat.com>
10117
10118         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
10119         unused variable "ann".
10120         (remove_unused_locals): Likewise.
10121
10122         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
10123         statement.
10124
10125         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
10126         after it is freed.
10127
10128 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10129
10130         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
10131         for invalid symbolic addresses.
10132         (s390_secondary_reload): Don't use s390_check_symref_alignment for
10133         larl operands.
10134
10135 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10136
10137         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
10138         the argument in calls to fold_truth_not_expr.
10139
10140 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10141
10142         * tree.c (record_node_allocation_statistics): New function.
10143         (make_node_stat, copy_node_stat, build_string): Call it.
10144         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
10145         (build1_stat, build_omp_clause): Likewise.
10146
10147 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10148
10149         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
10150         last commit.
10151
10152 2011-03-24  Richard Guenther  <rguenther@suse.de>
10153
10154         PR tree-optimization/48271
10155         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
10156         blocks that still exist.
10157
10158 2011-03-24  Richard Guenther  <rguenther@suse.de>
10159
10160         PR tree-optimization/48270
10161         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
10162         not free datarefs before ddrs.
10163
10164 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10165
10166         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
10167         from the address built for a reference with variable offset.
10168
10169 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
10170
10171         PR target/48237
10172         * config/i386/i386.md (*movdf_internal_rex64): Do not split
10173         alternatives that can be handled with movq or movabsq insn.
10174         (*movdf_internal): Disable for !TARGET_64BIT.
10175         (*movdf_internal_nointeger): Ditto.
10176         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
10177
10178 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10179
10180         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10181         (FUNCTION_ARG_ADVANCE): Likewise.
10182         * tm.texi.in: Change references to them to hook references.
10183         * tm.texi: Regenerate.
10184         * targhooks.c (default_function_arg): Eliminate check for target macro.
10185         (default_function_incoming_arg): Likewise.
10186         (default_function_arg_advance): Likewise.
10187         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10188         (function_arg_advance): Likewise.
10189         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10190
10191 2011-03-24  Richard Guenther  <rguenther@suse.de>
10192
10193         PR middle-end/48269
10194         * tree-object-size.c (addr_object_size): Do not double-account
10195         for MEM_REF offsets.
10196
10197 2011-03-24  Diego Novillo  <dnovillo@google.com>
10198
10199         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
10200         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
10201         (lto_input_data_block): Move from lto-opts.c.  Make extern.
10202         Update all users.
10203         (lto_input_string): Rename from input_string.  Make extern.
10204         Update all users.
10205         * lto-streamer-out.c (lto_output_string_with_length): Rename from
10206         output_string_with_length.
10207         Output 0 to indicate a non-NULL string.  Update all callers to
10208         not emit 0.
10209         (lto_output_string): Rename from output_string.  Make extern.
10210         Update all users.
10211         (lto_output_decl_state_streams): Make extern.
10212         (lto_output_decl_state_refs): Make extern.
10213         * lto-streamer.h (lto_input_string): Declare.
10214         (lto_input_data_block): Declare.
10215         (lto_output_string): Declare.
10216         (lto_output_string_with_length): Declare.
10217         (lto_output_decl_state_streams): Declare.
10218         (lto_output_decl_state_refs): Declare.
10219
10220 2011-03-24  Richard Guenther  <rguenther@suse.de>
10221
10222         PR tree-optimization/46562
10223         * tree.c (build_invariant_address): New function.
10224         * tree.h (build_invariant_address): Declare.
10225         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
10226         a renamed function moved ...
10227         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
10228         Take valueization callback parameter.
10229         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
10230         * gimple-fold.h: New file.
10231         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
10232         (ccp_fold, fold_const_aggregate_ref,
10233         fold_ctor_reference, fold_nonarray_ctor_reference,
10234         fold_array_ctor_reference, fold_string_cst_ctor_reference,
10235         get_base_constructor): Move ...
10236         * gimple-fold.c: ... here.
10237         (gimple_fold_stmt_to_constant_1): New function
10238         split out from ccp_fold.  Take a valueization callback parameter.
10239         Valueize all operands.
10240         (gimple_fold_stmt_to_constant): New wrapper function.
10241         (fold_const_aggregate_ref_1): New function split out from
10242         fold_const_aggregate_ref.  Take a valueization callback parameter.
10243         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
10244         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
10245         invariant POINTER_PLUS_EXPRs to invariant form.
10246         (vn_valueize): New function.
10247         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
10248         * tree-vrp.c (vrp_valueize): New function.
10249         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
10250         to fold statements to constants.
10251         * tree-ssa-pre.c (eliminate): Properly guard propagation of
10252         function declarations.
10253         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
10254         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
10255
10256 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10257
10258         * config/h8300/predicates.md (jump_address_operand): Fix register
10259         mode check.
10260
10261 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
10262
10263         * doc/invoke.texi (max-stores-to-sink): Document.
10264         * params.h (MAX_STORES_TO_SINK): Define.
10265         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
10266         if either vectorization or if-conversion is disabled.
10267         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
10268         tree-vect-data-refs.c vect_equal_offsets.
10269         (dr_equal_offsets_p): New function.
10270         (find_data_references_in_bb): Remove static.
10271         * tree-data-ref.h (find_data_references_in_bb): Declare.
10272         (dr_equal_offsets_p): Likewise.
10273         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
10274         (vect_drs_dependent_in_basic_block): Update calls to
10275         vect_equal_offsets.
10276         (vect_check_interleaving): Likewise.
10277         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
10278         (cond_if_else_store_replacement): Rename to...
10279         (cond_if_else_store_replacement_1): ... this.  Change arguments and
10280         documentation.
10281         (cond_if_else_store_replacement): New function.
10282         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
10283         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
10284
10285 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
10286
10287         PR target/46934
10288         * config/arm/arm.md (casesi): Use the gen_int_mode() function
10289         to subtract lower bound instead of GEN_INT().
10290
10291 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
10292
10293         PR other/48179
10294         PR other/48221
10295         PR other/48234
10296         * doc/extend.texi (Alignment): Move section to match order in TOC.
10297         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
10298         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
10299
10300 2011-03-23  Jeff Law  <law@redhat.com>
10301
10302         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
10303         before removing the edge.
10304
10305         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
10306         it may have been freed by redirect_branch_edge or
10307         redirect_edge_succ_nodup.
10308
10309 2011-03-23  Richard Guenther  <rguenther@suse.de>
10310
10311         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
10312         (check_va_list_escapes): Likewise.
10313         (check_all_va_list_escapes): Likewise.
10314
10315 2011-03-23  Richard Guenther  <rguenther@suse.de>
10316
10317         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
10318         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
10319         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
10320         (alias.o): Likewise.
10321         (ipa-type-escape.o): Remove.
10322         (ipa-struct-reorg.o): Likewise.
10323         (GTFILES): Remove ipa-struct-reorg.c.
10324         * alias.c: Do not include ipa-type-escape.h.
10325         * tree-ssa-alias.c: Likewise.
10326         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
10327         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
10328         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
10329         and ipa-type-escape passes.
10330         * tree-pass.h (pass_ipa_type_escape): Remove.
10331         (pass_ipa_struct_reorg): Likewise.
10332         * ipa-struct-reorg.h: Remove.
10333         * ipa-struct-reorg.c: Likewise.
10334         * ipa-type-escape.h: Likewise.
10335         * ipa-type-escape.c: Likewise.
10336         * doc/invoke.texi (-fipa-struct-reorg): Remove.
10337         (--param struct-reorg-cold-struct-ratio): Likewise.
10338         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10339         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10340         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10341
10342 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10343
10344         * config/s390/2084.md: Enable all insn reservations also for z9_ec
10345         cpu attribute value.
10346         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10347         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10348         * config/s390/s390.c (processor_flags_table): New constant array.
10349         (s390_handle_arch_option): Remove.
10350         (s390_handle_option): Remove s390_handle_arch_option invocations
10351         and OPT_mwarn_framesize_ handling.
10352         (s390_option_override): Remove s390_handle_arch_option invocation.
10353         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10354         warnings.
10355         * config/s390/s390.md (cpu attribute): Add z9_ec value.
10356         * config/s390/s390.opt (s390_tune, s390_arch)
10357         (march=): Replace s390_arch_option enum and values with
10358         processor_type.  Set variable name to s390_arch.  Set
10359         initialization value.
10360         (mtune=): Replace s390_arch_option with processor_type.  Set
10361         variable name to s390_tune.  Set initialization value.
10362
10363 2011-03-23  Julian Brown  <julian@codesourcery.com>
10364
10365         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10366         accesses which are not naturally aligned.
10367
10368 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10369
10370         PR target/47553
10371         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10372
10373 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10374
10375         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10376         parameter from "int" to "enum insn_code".
10377         (expand_operand_type): New enum.
10378         (expand_operand): New structure.
10379         (create_expand_operand): New function.
10380         (create_fixed_operand, create_output_operand): Likewise
10381         (create_input_operand, create_convert_operand_to): Likewise.
10382         (create_convert_operand_from, create_address_operand): Likewise.
10383         (create_integer_operand): Likewise.
10384         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10385         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10386         (expand_insn, expand_jump_insn): Likewise.
10387         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10388         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10389         (expand_movstr, expand_builtin___clear_cache): Likewise.
10390         (expand_builtin_lock_release): Likewise.
10391         * explow.c (allocate_dynamic_stack_space): Likewise.
10392         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
10393         and use the default handling in that case.
10394         * expmed.c (check_predicate_volatile_ok): Delete.
10395         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10396         (emit_cstore): Likewise.
10397         * expr.c (emit_block_move_via_movmem): Likewise.
10398         (set_storage_via_setmem, expand_assignment): Likewise.
10399         (emit_storent_insn, try_casesi): Likewise.
10400         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
10401         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10402         (expand_vec_shift_expr, expand_binop_directly): Likewise.
10403         (expand_twoval_unop, expand_twoval_binop): Likewise.
10404         (expand_unop_direct, emit_indirect_jump): Likewise.
10405         (emit_conditional_move, vector_compare_rtx): Likewise.
10406         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10407         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10408         (expand_sync_lock_test_and_set): Likewise.
10409         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
10410         (emit_unop_insn): Likewise.
10411         (expand_copysign_absneg): Change icode to an insn_code.
10412         (create_convert_operand_from_type): New function.
10413         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10414         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10415         (expand_insn, expand_jump_insn): Likewise.
10416         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10417         than const_int_operand for operand 2.
10418
10419 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10420
10421         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10422         if possible.
10423
10424 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10425
10426         * emit-rtl.c (emit_pattern_before_noloc): New function.
10427         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10428         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10429         (emit_pattern_after_noloc): New function.
10430         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10431         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10432
10433 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10434
10435         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10436         (__ffsDI2): Likewise.
10437
10438 2011-03-22  Richard Henderson  <rth@redhat.com>
10439
10440         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10441         of !TARGET_ABI_OPEN_VMS.
10442         (alpha_trampoline_init, alpha_start_function): Likewise.
10443         (alpha_expand_epilogue, alpha_file_start): Likewise.
10444         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10445         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10446         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10447         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10448         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10449
10450 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10451
10452         * config/s390/s390-opts.h: New.
10453         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10454         s390_arch_flags, s390_warn_framesize, s390_stack_size,
10455         s390_stack_guard): Remove.
10456         (s390_handle_arch_option): Return void.  Take enum
10457         s390_arch_option value instead of string and searching array.
10458         (s390_handle_option): Don't assert that global structures are in
10459         use.  Access variables via opts pointer.  Use error_at.  Don't use
10460         sscanf for -mstack-guard= or -mstack-size=.  Update call to
10461         s390_handle_arch_option.
10462         (s390_option_override): Update call to s390_handle_arch_option.
10463         (s390_emit_prologue): Use %d format for s390_stack_size in
10464         diagnostic.  Use %wd for HOST_WIDE_INT.
10465         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10466         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10467         * config/s390/s390.opt (config/s390/s390-opts.h): New
10468         HeaderInclude entry.
10469         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10470         s390_arch_flags, s390_warn_framesize): New Variable entries.
10471         (s390_arch_option): New Enum and EnumValue entries.
10472         (march=): Use Enum instead of Var.
10473         (mstack-guard=, mstack-size=): Use UInteger and Var.
10474         (mtune=): Use Enum.
10475
10476 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10477
10478         * config/score/score.c (score_handle_option): Don't assert that
10479         global structures are in use.  Access target_flags via opts
10480         pointer.  Use value of -march= option to determine target_flags
10481         settings.
10482         * config/score/score.opt (march=): Use Enum.
10483         (score_arch): New Enum and EnumValue entries.
10484
10485 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10486
10487         * config/mep/mep.c (option_mtiny_specified): Remove.
10488         (mep_option_override): Move register handling for -mivc2 from
10489         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
10490         instead of option_mtiny_specified.
10491         (mep_handle_option): Access target_flags via opts pointer.  Don't
10492         assert that global structures are in use.  Defer part of -mivc2
10493         handling and move it to mep_option_override.
10494         * config/mep/mep.opt (IVC2): New Mask entry.
10495         (mivc2): Use Var and Defer instead of Mask.
10496
10497 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10498
10499         * config/v850/v850-opts.h: New.
10500         * config/v850/v850.c (small_memory): Replace with
10501         small_memory_physical_max array.  Make that array static const.
10502         (v850_handle_memory_option): Take integer value of argument.  Take
10503         gcc_options pointer, option text and location.  Return void.
10504         Update for changes to small memory structures.
10505         (v850_handle_option): Access target_flags via opts pointer.  Don't
10506         assert that global structures are in use.  Update calls to
10507         v850_handle_memory_option.
10508         (v850_encode_data_area): Update references to small memory settings.
10509         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10510         (enum small_memory_type): Move to v850-opts.h.
10511         * config/v850/v850.opt (config/v850/v850-opts.h): New
10512         HeaderInclude entry.
10513         (small_memory_max): New Variable entry.
10514         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
10515         (mtda, mzda): Likewise.
10516
10517 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10518
10519         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10520         pointer.  Don't assert that global structures are in use.
10521
10522 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10523
10524         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10525         via opts pointer.  Don't assert that global structures are in use.
10526
10527 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10528
10529         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10530         (munix=93): Use Var.
10531         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10532         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10533         * config/pa/pa-opts.h: New.
10534         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10535         (pa_handle_option): Don't assert that global structures are in
10536         use.  Access target_flags via opts pointer.  Don't handle
10537         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10538         OPT_munix_98 here.
10539         (pa_option_override): Handle deferred OPT_mfixed_range_.
10540
10541 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10542
10543         * config/mn10300/mn10300-opts.h: New.
10544         * config/mn10300/mn10300.c (mn10300_processor,
10545         mn10300_tune_string): Remove.
10546         (mn10300_handle_option): Don't assert that global structures are
10547         in use.  Access mn10300_processor via opts pointer.  Don't handle
10548         OPT_mtune_ here.
10549         * config/mn10300/mn10300.h (enum processor_type): Move to
10550         mn10300-opts.h.
10551         (mn10300_processor): Remove.
10552         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10553         HeaderInclude entry.
10554         (mn10300_processor): New Variable entry.
10555         (mtune=): Use Var.
10556
10557 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10558
10559         * config/microblaze/microblaze.c: Don't include opts.h.
10560         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10561         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10562         (mno-clearbss): Use Var and Warn.
10563
10564 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10565
10566         * config/m32r/m32r-opts.h: New.
10567         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10568         (m32r_handle_option): Don't assert that global structures are in
10569         use.  Access target_flags and m32r_cache_flush_func via opts
10570         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
10571         OPT_mno_flush_trap here.
10572         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10573         include of m32r-opts.h.
10574         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10575         HeaderInclude entry.
10576         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10577         (mmodel=): Use Enum and Var.
10578         (m32r_model): New Enum and EnumValue entries.
10579         (mno-flush-trap): Use Var.
10580         (msdata=): Use Enum and Var.
10581         (m32r_sdata): New Enum and EnumValue entries.
10582
10583 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10584
10585         * config/m32c/m32c.c: Don't include opts.h.
10586         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10587         m32c_handle_option): Remove.
10588         (m32c_option_override): Check global_options_set.x_target_memregs
10589         instead of target_memregs_set.
10590         * config/m32c/m32c.h (target_memregs): Remove.
10591         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10592         variable.
10593
10594 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10595
10596         * config/iq2000/iq2000-opts.h: New.
10597         * config/iq2000/iq2000.c: Don't include opts.h.
10598         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
10599         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
10600         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10601         HeaderInclude entry.
10602         (iq2000_tune): New Variable entry.
10603         (march=): Add comment.  Use Enum.
10604         (iq2000_arch): New Enum and EnumValue entries.
10605         (mcpu=): Use Enum and Var.
10606         (iq2000_tune): New Enum and EnumValue entries.
10607
10608 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10609
10610         * config/ia64/ia64-opts.h: New.
10611         * config/ia64/ia64.c (ia64_tune): Remove.
10612         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
10613         here.  Use error_at.
10614         (ia64_option_override): Handle deferred OPT_mfixed_range_.
10615         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
10616         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
10617         HeaderInclude entry.
10618         (ia64_tune): New Variable entry.
10619         (mfixed-range=): Use Defer and Var.
10620         (mtune=): Use Enum and Var.
10621         (ia64_tune): New Enum and EnumValue entries.
10622
10623 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10624
10625         * config/frv/frv-opts.h: New.
10626         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
10627         frv-opts.h.
10628         (frv_cpu_type): Remove.
10629         * config/frv/frv.c: Don't include opts.h.
10630         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
10631         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
10632         (frv_cpu_type): New Variable entry.
10633         (frv_cpu): New Enum and EnumValue entries.
10634
10635 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10636
10637         * config/cris/cris.c (cris_handle_option): Access target_flags via
10638         opts pointer.  Don't assert that global structures are in use.
10639         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
10640         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
10641
10642 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10643
10644         * config/bfin/bfin-opts.h: New.
10645         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
10646         bfin_si_revision, bfin_workarounds): Remove.
10647         (bfin_cpus): Make static const.
10648         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
10649         not bfin_lib_id_given.
10650         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
10651         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
10652         pointer. Use error_at.  Don't assert that global structures are in use.
10653         * config/bfin/bfin.h: Include bfin-opts.h.
10654         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
10655         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
10656         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
10657         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
10658         entries.
10659
10660 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10661
10662         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
10663         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
10664         or -msoft-float here.
10665         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
10666         -msoft-float and -mhard-float.
10667         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
10668         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10669         msoft-float.
10670         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
10671         -msoft-float.
10672         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
10673         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
10674         not mhard-float.
10675         (LIBGCC_SPEC): Don't handle -msoft-float.
10676         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
10677         -mhard-float.
10678         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10679         msoft-float.
10680         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
10681         -mfloat-abi=*, not -msoft-float and -mhard-float.
10682         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
10683         -msoft-float.
10684         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
10685         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
10686         mhard-float and msoft-float.
10687         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
10688         mfloat-abi=soft in comments, not mhard-float and msoft-float.
10689         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10690         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
10691         mhard-float.
10692         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
10693         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
10694         msoft-float.
10695         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
10696         not mhard-float.
10697         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
10698         not msoft-float.
10699
10700 2011-03-22  Richard Henderson  <rth@redhat.com>
10701
10702         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
10703         TARGET_ABI_WINDOWS_NT.
10704         (alpha_output_function_end_prologue): Likewise.
10705         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
10706         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10707         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
10708         (trap, *movsi_nt_vms): Likewise.
10709         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
10710         (*tablejump_osf_nt_internal): Remove.
10711         * config/alpha/predicates.md (input_operand): Only test Pmode.
10712
10713 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10714
10715         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
10716         via opts pointer.  Use error_at.  Don't assert that global
10717         structures are in use.
10718
10719 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10720
10721         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
10722         (ix86_handle_option): Access ix86_isa_flags and
10723         ix86_isa_flags_explicit via opts pointer.  Don't assert that
10724         global structures are in use.
10725         (ix86_function_specific_save, ix86_function_specific_restore):
10726         Update ix86_isa_flags_explicit field name.
10727         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
10728         (ix86_isa_flags_explicit): Rename TargetSave entry to
10729         x_ix86_isa_flags_explicit.
10730
10731 2011-03-22  Richard Henderson  <rth@redhat.com>
10732
10733         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
10734         (alpha_option_override, direct_return): Likewise.
10735         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
10736         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
10737         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
10738         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
10739         (alpha_expand_epilogue, alpha_end_function): Likewise.
10740         (alpha_init_libfuncs): Likewise.
10741         (struct machine_function): Remove unicosmk members.
10742         (print_operand) ['t']: Remove.
10743         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
10744         unicosmk_output_module_name, unicosmk_output_common,
10745         current_section_align, unicosmk_output_text_section_asm_op,
10746         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
10747         unicosmk_section_type_flags, unicosmk_unique_section,
10748         unicosmk_asm_named_section, unicosmk_insert_attributes,
10749         unicosmk_output_align, unicosmk_defer_case_vector,
10750         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
10751         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
10752         unicosmk_output_ssib, unicosmk_add_call_info_word,
10753         unicosmk_extern_head, unicosmk_output_default_externs,
10754         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
10755         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
10756         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
10757         * config/alpha/alpha-protos.h: Update.
10758         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
10759         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
10760         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
10761         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
10762         (*mulsi_se, mulvsi3): Likewise.
10763         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
10764         (*divmodsi_internal, call, call_value, realign): Likewise.
10765         (moddi3, umoddi3): Likewise; remove duplicate expander.
10766         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
10767         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
10768         (*movdi_nofix): Remove r/U alternative.
10769         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
10770         * config/alpha/constraints.md ("U"): Remove.
10771         * config/alpha/predicates.md (call_operand"): Don't test
10772         TARGET_ABI_UNICOSMK.
10773
10774 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10775
10776         * target.def (handle_option): Take gcc_options and
10777         cl_decoded_option pointers and location_t.
10778         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
10779         * doc/tm.texi: Regenerate.
10780         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
10781         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
10782         * lto-opts.c (lto_reissue_options): Generate option structure for
10783         targetm.handle_option call.
10784         * opts.c (target_handle_option): Update call to
10785         targetm.handle_option.  Remove assertions about values now passed
10786         down to hook.
10787         * targhooks.c (default_target_handle_option): New.
10788         * targhooks.h (default_target_handle_option): Declare.
10789         * config/alpha/alpha.c: Include opts.h.
10790         (alpha_handle_option): Update to new hook interface.
10791         * config/arm/arm.c: Include opts.h.
10792         (arm_handle_option): Update to new hook interface.
10793         * config/arm/t-arm (arm.o): Update dependencies.
10794         * config/bfin/bfin.c: Include opts.h.
10795         (bfin_handle_option): Update to new hook interface.
10796         * config/cris/cris.c: Include opts.h.
10797         (cris_handle_option): Update to new hook interface.
10798         * config/frv/frv.c: Include opts.h.
10799         (frv_handle_option): Update to new hook interface.
10800         * config/i386/i386.c: Include opts.h.
10801         (ix86_handle_option): Update to new hook interface.
10802         (ix86_valid_target_attribute_inner_p): Generate option structure
10803         for call to ix86_handle_option.
10804         * config/i386/t-i386 (i386.o): Update dependencies.
10805         * config/ia64/ia64.c: Include opts.h.
10806         (ia64_handle_option): Update to new hook interface.
10807         * config/ia64/t-ia64 (ia64.o): Update dependencies.
10808         * config/iq2000/iq2000.c: Include opts.h.
10809         (iq2000_handle_option): Update to new hook interface.
10810         * config/m32c/m32c.c: Include opts.h.
10811         (m32c_handle_option): Update to new hook interface.
10812         * config/m32r/m32r.c: Include opts.h.
10813         (m32r_handle_option): Update to new hook interface.
10814         * config/m68k/m68k.c: Include opts.h.
10815         (m68k_handle_option): Update to new hook interface.
10816         * config/mep/mep.c: Include opts.h.
10817         (mep_handle_option): Update to new hook interface.
10818         * config/microblaze/microblaze.c: Include opts.h.
10819         (microblaze_handle_option): Update to new hook interface.
10820         * config/mips/mips.c: Include opts.h.
10821         (mips_handle_option): Update to new hook interface.
10822         * config/mn10300/mn10300.c: Include opts.h.
10823         (mn10300_handle_option): Update to new hook interface.
10824         * config/pa/pa.c: Include opts.h.
10825         (pa_handle_option): Update to new hook interface.
10826         * config/pdp11/pdp11.c: Include opts.h.
10827         (pdp11_handle_option): Update to new hook interface.
10828         * config/rs6000/rs6000.c: Include opts.h.
10829         (rs6000_handle_option): Update to new hook interface.
10830         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10831         * config/rx/rx.c: Include opts.h.
10832         (rx_handle_option): Update to new hook interface.
10833         * config/s390/s390.c: Include opts.h.
10834         (s390_handle_option): Update to new hook interface.
10835         * config/score/score.c: Include opts.h.
10836         (score_handle_option): Update to new hook interface.
10837         * config/sh/sh.c: Include opts.h.
10838         (sh_handle_option): Update to new hook interface.
10839         * config/sparc/sparc.c: Include opts.h.
10840         (sparc_handle_option): Update to new hook interface.
10841         * config/v850/v850.c: Include opts.h.
10842         (v850_handle_option): Update to new hook interface.
10843
10844 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10845
10846         * gcc.c (driver_unknown_option_callback): Only permit and save
10847         unknown -Wno- options.
10848         (driver_wrong_lang_callback): Save options directly instead of via
10849         driver_unknown_option_callback.
10850
10851 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10852
10853         * combine.c (simplify_set): Try harder to find the best CC mode when
10854         simplifying a nested COMPARE on the RHS.
10855
10856 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10857
10858         * config/alpha/gnu.h: Remove.
10859         * config/arc: Remove directory.
10860         * config/arm/netbsd.h: Remove.
10861         * config/arm/t-pe: Remove.
10862         * config/crx: Remove directory.
10863         * config/i386/netbsd.h: Remove.
10864         * config/m68hc11: Remove directory.
10865         * config/m68k/uclinux-oldabi.h: Remove.
10866         * config/mcore/mcore-pe.h: Remove.
10867         * config/mcore/t-mcore-pe: Remove.
10868         * config/netbsd-aout.h: Remove.
10869         * config/rs6000/gnu.h: Remove.
10870         * config/sh/sh-symbian.h: Remove.
10871         * config/sh/symbian-base.c: Remove.
10872         * config/sh/symbian-c.c: Remove.
10873         * config/sh/symbian-cxx.c: Remove.
10874         * config/sh/symbian-post.h: Remove.
10875         * config/sh/symbian-pre.h: Remove.
10876         * config/sh/t-symbian: Remove.
10877         * config/svr3.h: Remove.
10878         * config/vax/netbsd.h: Remove.
10879         * config.build: Don't handle i[34567]86-*-pe.
10880         * config.gcc: Remove handling of deprecations for most deprecated
10881         targets.
10882         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
10883         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
10884         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
10885         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
10886         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
10887         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
10888         Remove cases.
10889         * config.host: Don't handle i[34567]86-*-pe.
10890         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
10891         (ASM_SPEC32): Don't handle -mcall-gnu.
10892         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
10893         -mcall-gnu.
10894         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
10895         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
10896         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10897         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
10898         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
10899         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
10900         conditional on SYMBIAN.
10901         * configure.ac: Don't handle powerpc*-*-gnu*.
10902         * configure: Regenerate.
10903         * doc/extend.texi (interrupt attribute): Don't mention CRX.
10904         * doc/install-old.texi (m6811, m6812): Don't mention.
10905         * doc/install.texi (arc-*-elf*): Don't document multilib option.
10906         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
10907         (m68k-uclinuxoldabi): Don't mention.
10908         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
10909         Remove.
10910         (-mcall-gnu): Remove.
10911         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
10912         families): Remove constraint documentation.
10913
10914 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
10915
10916         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
10917         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
10918         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
10919
10920 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10921
10922         PR target/48226
10923         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
10924         vector when peeking at the next token for vector, don't expand the
10925         keywords.
10926
10927 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
10928
10929         * config/avr/avr-protos.h (expand_epilogue): Change prototype
10930         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
10931         * config/avr/avr.c (init_cumulative_args)
10932         (avr_function_arg_advance): Use it.
10933         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
10934         sibcall epilogues.
10935         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
10936         (avr_function_ok_for_sibcall): ...this new function.
10937         (avr_lookup_function_attribute1): New static Function.
10938         (avr_naked_function_p, interrupt_function_p)
10939         (signal_function_p, avr_OS_task_function_p)
10940         (avr_OS_main_function_p): Use it.
10941         * config/avr/avr.md ("sibcall", "sibcall_value")
10942         ("sibcall_epilogue"): New expander.
10943         ("*call_insn", "*call_value_insn"): New insn.
10944         ("call_insn", "call_value_insn"): Remove
10945         ("call", "call_value", "epilogue"): Change expander to handle
10946         sibling calls.
10947
10948 2011-03-21  Nick Clifton  <nickc@redhat.com>
10949
10950         * doc/invoke.texi (Overall Options): Move closing brace to end of
10951         options list.
10952         (Optimization Options): Add missing @gol.
10953         (Directory Options): Likewise.
10954         (i386 and x86-64 Options): Likewise.
10955         (RS6000 and PowerPC Options): Likewise.
10956         (i386 and x86-64 Windows Options): Likewise.
10957         (V850 Options): Add text missing from descriptions.
10958
10959 2011-03-22  Richard Henderson  <rth@redhat.com>
10960
10961         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10962         (avr_incoming_return_addr_rtx): New.
10963         (emit_push_byte): New.
10964         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
10965         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
10966         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
10967         (emit_pop_byte): New.
10968         (expand_epilogue): Use it.  Pop frame pointer by bytes.
10969         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10970         (INCOMING_RETURN_ADDR_RTX): New.
10971         (INCOMING_FRAME_SP_OFFSET): New.
10972         (ARG_POINTER_CFA_OFFSET): New.
10973         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10974         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10975         (pophi): Remove.
10976
10977         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10978
10979 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10980
10981         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10982         (FUNCTION_ARG_ADVANCE): Likewise.
10983         * tm.texi.in: Change references to them to hook references.
10984         * tm.texi: Regenerate.
10985         * targhooks.c (default_function_arg): Eliminate check for target
10986         macro.
10987         (default_function_incoming_arg): Likewise.
10988         (default_function_arg_advance): Likewise.
10989         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10990         (function_arg_advance): Likewise.
10991         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10992
10993 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10994
10995         * tree.c (build_call_1): New function.
10996         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10997
10998 2011-03-22  Richard Guenther  <rguenther@suse.de>
10999
11000         PR tree-optimization/48228
11001         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
11002         for single-arg PHIs.
11003
11004 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
11005
11006         PR rtl-optimization/48143
11007         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
11008         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
11009         sse2_cvtps2pd): Likewise.
11010
11011 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11012
11013         * recog.c (canonicalize_change_group): Use validate_unshare_change.
11014
11015 2011-03-22  Richard Guenther  <rguenther@suse.de>
11016
11017         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
11018         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
11019         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
11020         and REALIGN_LOAD_EXPR.
11021         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
11022         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
11023         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
11024         DOT_PROD_EXPR case ...
11025         (expand_expr_real_2): ... here.
11026         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
11027         and REALIGN_LOAD_EXPR.
11028         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
11029         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
11030         (vect_create_epilog_for_reduction): Likewise.
11031         (vectorizable_reduction): Likewise.
11032         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
11033         * tree-vect-stmts.c (vectorizable_load): Likewise.
11034
11035 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
11036
11037         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
11038
11039 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11040
11041         * config/s390/s390.c (s390_delegitimize_address): Fix offset
11042         handling for PLTOFF/GOTOFF.
11043
11044 2011-03-22  Nick Clifton  <nickc@redhat.com>
11045
11046         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
11047         trailing backslash from the end of the macro definition.
11048
11049 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11050
11051         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
11052         and PLT unspecs.
11053
11054 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
11055
11056         * expr.h (prepare_operand): Move to...
11057         * optabs.h (prepare_operand): ...here and change the insn code
11058         parameter from "int" to "enum insn_code".
11059         (insn_operand_matches): Declare.
11060         * expr.c (init_expr_target): Use insn_operand_matches.
11061         (compress_float_constant): Likewise.
11062         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
11063         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
11064         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
11065         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
11066         Likewise.
11067         (gen_cond_trap): Likewise.
11068         (prepare_operand): Likewise.  Change icode to an insn_code.
11069         (insn_operand_matches): New function.
11070         * reload.c (find_reloads_address_1): Use insn_operand_matches.
11071         * reload1.c (gen_reload): Likewise.
11072         * targhooks.c (default_secondary_reload): Likewise.
11073
11074 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
11075
11076         * config/alpha/alpha.md (unspec): New define_c_enum.
11077         (unspecv): Ditto.
11078
11079 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
11080
11081         PR debug/48214
11082         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
11083         between a call and its CALL_ARG_LOCATION note.
11084
11085 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
11086
11087         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
11088
11089 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
11090
11091         PR c/42544
11092         PR c/48197
11093         * c-common.c (shorten_compare): If primopN is first sign-extended
11094         to opN and then zero-extended to result type, set primopN to opN.
11095
11096 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
11097
11098         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
11099         for barrier handlers.
11100
11101 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
11102
11103         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
11104         UNSPEC constants to be in the unspec enumeration, and redefine
11105         all UNSPECV constants to be in the unspecv enumeration, so that
11106         dumps print which unspec/unspec_volatile this is.
11107         * config/rs6000/vector.md (UNSPEC_*): Ditto.
11108         * config/rs6000/paired.md (UNSPEC_*): Ditto.
11109         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
11110         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
11111         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
11112
11113         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
11114         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
11115         UNSPECV_LWSYNC, since these are used as unspec_volatile.
11116         * config/rs6000/sync.md (isync, lwsync): Ditto.
11117
11118 2011-03-21  Richard Guenther  <rguenther@suse.de>
11119
11120         * params.def (lto-min-partition): Fix typo.
11121
11122 2011-03-21  Richard Guenther  <rguenther@suse.de>
11123
11124         PR c/47939
11125         * c-decl.c (grokdeclarator): Drop to the main variant only
11126         for array types.  Drop flag_gen_aux_info check.
11127
11128 2011-03-21  Richard Guenther  <rguenther@suse.de>
11129
11130         PR translation/47911
11131         * params.def (lto-partitions): Fix typo.
11132         (lto-min-partition): Fix wording.
11133
11134 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
11135
11136         * config/rs6000/t-freebsd: Remove duplication from file.
11137
11138 2011-03-21  Richard Guenther  <rguenther@suse.de>
11139
11140         PR middle-end/47661
11141         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
11142
11143 2011-03-21  Richard Guenther  <rguenther@suse.de>
11144
11145         PR lto/48210
11146         * params.def (lto-partitions): Require at least 1 partition.
11147
11148 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11149
11150         * gthr-solaris.h: Remove.
11151         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
11152         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
11153         (LIB_SPEC): Likewise.
11154         * config/sol2.opt (threads): Remove.
11155         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
11156         (sparc*-*-solaris2*): Likewise.
11157         * configure.ac (enable_threads): Enable solaris support.
11158         * configure: Regenerate.
11159         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
11160         * doc/install.texi (Configuration, --enable-threads=lib): Remove
11161         solaris.
11162
11163 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11164
11165         * config.gcc: Obsolete *-*-solaris2.8*.
11166         * doc/install.texi (Specific, *-*-solaris2*): Document it.
11167
11168 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11169
11170         PR bootstrap/48135
11171         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
11172         reference.  Solaris 8 perl works.
11173
11174 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11175
11176         PR bootstrap/48135
11177         * doc/install.texi (Prerequisites): Move jar etc. up.
11178         Explain support library version requirements.
11179
11180 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11181
11182         PR bootstrap/48135
11183         * doc/install.texi (Prerequisites): Move Perl to build
11184         requirements.  Always necessary on Solaris 2 with Sun ld.
11185
11186 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11187
11188         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
11189         binutils 2.21.
11190         (Specific, i?86-*-solaris2.[89]): Likewise.
11191         (Specific, i?86-*-solaris2.10): Likewise.
11192         (Specific, mips-sgi-irix6): Likewise.
11193         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
11194         Update for binutils 2.21.
11195
11196 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11197
11198         * configure.ac (gcc_cv_lto_plugin): Fix typo.
11199         Allow -fuse-linker-plugin for non-default plugin linker.
11200         * configure: Regenerate.
11201
11202 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11203
11204         PR bootstrap/48167
11205         * gengtype.c (files_rules): Added rule for cp/parser.h.
11206
11207 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
11208
11209         PR target/48213
11210         * config/s390/s390.c (s390_delegitimize_address): Don't call
11211         lowpart_subreg if orig_x has BLKmode.
11212
11213 2011-03-21  Kai Tietz  <ktietz@redhat.com>
11214
11215         PR target/12171
11216         * doc/plugins.texi: Adjust documentation for plugin register_callback.
11217         * tree.h (attribute_spec): Add new member affects_type_identity.
11218         * attribs.c (empty_attribute_table): Adjust attribute_spec
11219         initializers.
11220         * config/alpha/alpha.c: Likewise.
11221         * config/arc/arc.c: Likewise.
11222         * config/arm/arm.c: Likewise.
11223         * config/avr/avr.c: Likewise.
11224         * config/bfin/bfin.c: Likewise.
11225         * config/crx/crx.c: Likewise.
11226         * config/darwin.h: Likewise.
11227         * config/h8300/h8300.c: Likewise.
11228         * config/i386/cygming.h: Likewise.
11229         * config/i386/i386.c: Likewise.
11230         * config/ia64/ia64.c: Likewise.
11231         * config/m32c/m32c.c: Likewise.
11232         * config/m32r/m32r.c: Likewise.
11233         * config/m68hc11/m68hc11.c: Likewise.
11234         * config/m68k/m68k.c: Likewise.
11235         * config/mcore/mcore.c: Likewise.
11236         * config/mep/mep.c: Likewise.
11237         * config/microblaze/microblaze.c: Likewise.
11238         * config/mips/mips.c: Likewise.
11239         * config/rs6000/rs6000.c: Likewise.
11240         * config/rx/rx.c: Likewise.
11241         * config/sh/sh.c: Likewise.
11242         * config/sol2.h: Likewise.
11243         * config/sparc/sparc.c: Likewise.
11244         * config/spu/spu.c: Likewise.
11245         * config/stormy16/stormy16.c: Likewise.
11246         * config/v850/v850.c: Likewise.
11247
11248 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
11249
11250         * simplify-rtx.c (simplify_binary_operation_1): Handle
11251         (xor (and A B) C) case when B and C are both constants.
11252
11253 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
11254
11255         * tree-dfa.c (add_referenced_var): Fix typo in comment.
11256
11257 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
11258
11259         PR bootstrap/48168
11260         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
11261
11262 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
11263
11264         PR rtl-optimization/48156
11265         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
11266         assume df and df_lr are not NULL.
11267
11268 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11269
11270         PR debug/48023
11271         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
11272         between a call and its CALL_ARG_LOCATION note.
11273
11274 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
11275
11276         PR debug/48178
11277         * config/sh/sh.c (find_barrier): Don't emit a constant pool
11278         between a call and its corresponding CALL_ARG_LOCATION note.
11279
11280 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
11281
11282         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
11283         instead of loop. Use HARD_REGISTER_NUM_P predicate.
11284         * haifa-sched.c (setup_ref_regs): Ditto.
11285         * caller-save.c (add_used_regs_1): Ditto.
11286         * dse.c (look_for_hardregs): Ditto.
11287         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
11288         * sched-rgn.c (check_live_1): Ditto.
11289
11290 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
11291
11292         * c-decl.c (diagnose_mismatched_decls): Give an error for
11293         redefining a typedef with variably modified type.
11294
11295 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
11296
11297         * c-decl.c (grokfield): Don't allow typedefs for structures or
11298         unions with no tag by default.
11299         * doc/extend.texi (Unnamed Fields): Update.
11300
11301 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
11302
11303         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11304         Rewrite using indirect functions.
11305         (lwp_slwpcb): Ditto.
11306         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
11307         (avx_vinsertf128<mode>): Ditto.
11308
11309 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11310
11311         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
11312         unspecs.
11313
11314 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11315
11316         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
11317         splitting between a call and its corresponding CALL_ARG_LOCATION note.
11318
11319 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
11320
11321         PR rtl-optimization/48170
11322         * gcse.c (hoist_code): Remove bogus asserts.
11323
11324 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
11325
11326         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
11327         computation for prologue/epilogue.
11328
11329 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11330
11331         * Makefile.in (check-consistency): Remove.
11332
11333 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
11334
11335         PR debug/48176
11336         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11337         arange_table_in_use is 0, but either text_section_used or
11338         cold_text_section_used is true.  Don't call it if
11339         !info_section_emitted.
11340
11341 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
11342
11343         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11344         FUNCTION_VALUE_REGNO_P): Remove.
11345         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11346         Remove.
11347         * config/avr/avr.c (avr_ret_register): Make static inline.
11348         (avr_function_value_regno_p): New function.
11349         (avr_libcall_value): Make static. Add 'func' argument.
11350         (avr_function_value): Make static. Rename 'func' argument to
11351         'fn_decl_or_type', forward it to avr_libcall_value. Call
11352         avr_ret_register function instead of RET_REGISTER macro.
11353         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11354
11355 2011-03-18  Jason Merrill  <jason@redhat.com>
11356
11357         PR c++/23372
11358         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11359
11360 2011-03-18  Richard Guenther  <rguenther@suse.de>
11361
11362         * doc/install.texi (--enable-gold): Remove.
11363         (--with-plugin-ld): Document.
11364         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11365
11366 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
11367
11368         PR middle-end/47790
11369         * expr.c (optimize_bitfield_assignment_op): Revamp to work
11370         again after expansion changes.
11371
11372 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
11373
11374         * combine.c (try_combine): Do simplification only call of
11375         subst() on i2 even when i1 is present. Update comments.
11376
11377 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11378
11379         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11380         and UNSPEC_PCREL_SYMOFF.
11381
11382 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11383
11384         * config/s390/s390.md: Use define_c_enum for the unspec constant
11385         definitions.
11386
11387 2011-03-18  Richard Henderson  <rth@redhat.com>
11388             Jakub Jelinek  <jakub@redhat.com>
11389
11390         PR bootstrap/48161
11391         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11392         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11393
11394 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11395
11396         PR middle-end/47725
11397         * combine.c (cant_combine_insn_p): Don't check zero/sign
11398         extended hard registers.
11399
11400 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11401
11402         PR middle-end/47725
11403         * combine.c (cant_combine_insn_p): Check zero/sign extended
11404         hard registers.
11405
11406 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
11407
11408         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11409         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11410         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11411         Change return type to bool.
11412         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11413
11414 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11415
11416         PR debug/48163
11417         * var-tracking.c (prepare_call_arguments): If CALL target
11418         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11419         pc instead of looking it up using cselib_lookup and use
11420         Pmode for it if x has VOIDmode.
11421         * dwarf2out.c (gen_subprogram_die): If also both first and
11422         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11423
11424         PR debug/48163
11425         * function.c (assign_parms): For data.passed_pointer parms
11426         use MEM of data.entry_parm instead of data.entry_parm itself
11427         as DECL_INCOMING_RTL.
11428         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11429         also when passed and declared mode is the same, DECL_RTL
11430         is a MEM with pseudo as address and DECL_INCOMING_RTL is
11431         a MEM too.
11432
11433 2011-03-16  Jeff Law  <law@redhat.com>
11434
11435         PR rtl-optimization/37273
11436         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11437         handle them like argument loads from stack slots.  Do not double
11438         count memory for memory constants and argument loads from stack slots.
11439
11440 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11441
11442         PR debug/48160
11443         * var-tracking.c (prepare_call_arguments): Check SUBREG.
11444
11445 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11446
11447         PR target/48171
11448         * config/i386/i386.opt: Add Save to -mavx and -mfma.
11449
11450 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11451
11452         PR bootstrap/48153
11453         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11454         if dwarf_strict.
11455         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11456         Clear call_arg_locations and call_arg_loc_last always.
11457
11458         PR middle-end/48152
11459         * var-tracking.c (prepare_call_arguments): If argument needs to be
11460         passed by reference, adjust argtype and mode.
11461
11462 2011-03-17  Richard Guenther  <rguenther@suse.de>
11463
11464         PR middle-end/48134
11465         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11466         a value make sure to fold the statement.
11467
11468 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
11469
11470         PR target/43872
11471         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11472         return condition with !cfun->calls_alloca.
11473
11474 2011-03-17  Richard Guenther  <rguenther@suse.de>
11475
11476         PR bootstrap/48148
11477         * lto-cgraph.c (input_overwrite_node): Clear the abstract
11478         origin for decls in other ltrans units.
11479         (input_varpool_node): Likewise.
11480
11481 2011-03-17  Richard Guenther  <rguenther@suse.de>
11482
11483         PR middle-end/48165
11484         * tree-object-size.c (compute_object_offset): Properly return
11485         the offset operand of MEM_REFs as sizetype.
11486
11487 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11488
11489         PR rtl-optimization/48141
11490         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11491         * dse.c: Include params.h.
11492         (active_local_stores_len): New variable.
11493         (add_wild_read, dse_step1): Clear it when setting active_local_stores
11494         to NULL.
11495         (record_store, check_mem_read_rtx): Decrease it when removing
11496         from the chain.
11497         (scan_insn): Likewise.  Increase it when adding to chain, if it
11498         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11499         set active_local_stores to NULL before the addition.
11500         * Makefile.in (dse.o): Depend on $(PARAMS_H).
11501
11502         PR rtl-optimization/48141
11503         * dse.c (record_store): If no positions are needed in an insn
11504         that cannot be deleted, at least unchain it from active_local_stores.
11505
11506 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
11507
11508         PR debug/47510
11509         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11510         (lookup_type_die_strip_naming_typedef): ... here.
11511         (get_context_die): Use it.
11512         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11513         the anonymous struct named by the naming typedef.
11514
11515 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11516
11517         PR target/48154
11518         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11519         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11520
11521 2011-03-16  Jeff Law  <law@redhat.com>
11522
11523         * tree-vrp.c (identify_jump_threads): Slightly simplify type
11524         check for operands of conditional.  Allow type to be a pointer.
11525
11526 2011-03-16  Richard Guenther  <rguenther@suse.de>
11527
11528         PR tree-optimization/48149
11529         * fold-const.c (fold_binary_loc): Fold
11530         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11531
11532 2011-03-16  Richard Guenther  <rguenther@suse.de>
11533
11534         PR tree-optimization/26134
11535         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11536         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11537         (non_rewritable_mem_ref_base): Handle complex type component
11538         accesses, constrain offsets for vector and complex extracts
11539         more properly.
11540
11541 2011-03-16  Richard Guenther  <rguenther@suse.de>
11542
11543         PR tree-optimization/48146
11544         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11545         operands avoiding the need for renaming.
11546
11547 2011-03-16  Richard Guenther  <rguenther@suse.de>
11548
11549         * gimple-fold.c (maybe_fold_reference): Open-code relevant
11550         constant folding.  Move MEM_REF canonicalization first.
11551         Rely on fold_const_aggregate_ref for initializer folding.
11552         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11553
11554 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11555
11556         PR middle-end/48136
11557         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11558         arg0/arg1 or their arguments are always fold converted to matching
11559         types.
11560
11561         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11562         to nargs.
11563
11564 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11565
11566         PR lto/46944
11567         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11568         Handle in-tree gold.
11569         (ld_vers): Extract binutils version for gold.
11570         (gcc_cv_ld_hidden): Handle gold here.
11571         (gcc_cv_lto_plugin): Determine level of linker plugin support.
11572         * configure: Regenerate.
11573         * config.in: Regenerate.
11574         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11575         -fuse-linker-plugin otherwise.
11576         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
11577         (LINK_COMMAND_SPEC): Use it.
11578         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11579
11580 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11581
11582         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11583         * calls.c: Remove debug.h include.
11584         (emit_call_1): Don't call virtual_call_token debug hook.
11585         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11586         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11587         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11588         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11589         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11590         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11591         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11592         dwarf2out_virtual_call): Remove.
11593         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11594         copy_call_info and virtual_call hooks.
11595         (dwarf2out_init): Don't initialize vcall_insn_table,
11596         debug_dcall_section and debug_vcall_section.
11597         (prune_unused_types): Don't mark nodes from dcall_table.
11598         (dwarf2out_finish): Don't output dcall or vcall tables.
11599         * final.c (final_scan_insn): Don't call direct_call or
11600         virtual_call debug hooks.
11601         * debug.h (struct gcc_debug_hooks): Remove direct_call,
11602         virtual_call_token, copy_call_info and virtual_call hooks.
11603         (debug_nothing_uid): Remove prototype.
11604         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11605         copy_call_info and virtual_call hooks.
11606         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11607         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11608         * debug.c (do_nothing_debug_hooks): Likewise.
11609         (debug_nothing_uid): Remove.
11610         * doc/invoke.texi (-fenable-icf-debug): Remove.
11611         * common.opt (-fenable-icf-debug): Likewise.
11612
11613         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
11614         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
11615         call's MEM.  Handle functions returning aggregate through a hidden
11616         first pointer.  For virtual calls add clobbered pc to call arguments
11617         chain.
11618         * dwarf2out.c (gen_subprogram_die): Emit
11619         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
11620         can't be emitted.
11621
11622         PR debug/45882
11623         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
11624         * rtl.h (ENTRY_VALUE_EXP): Define.
11625         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
11626         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11627         * print-rtl.c (print_rtx): Likewise.
11628         * gengtype.c (adjust_field_rtx_def): Likewise.
11629         * var-tracking.c (vt_add_function_parameter): Adjust
11630         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
11631         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
11632         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
11633         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
11634         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
11635
11636         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
11637         Call var_location debug hook even on CALL_INSNs.
11638         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
11639         * rtl.def (ENTRY_VALUE): New.
11640         * dwarf2out.c: Include cfglayout.h.
11641         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11642         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
11643         (struct call_arg_loc_node): New type.
11644         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
11645         tail_call_site_count): New variables.
11646         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
11647         DW_TAG_GNU_call_site_parameter.
11648         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
11649         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
11650         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
11651         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
11652         and DW_AT_GNU_all_source_call_sites.
11653         (mem_loc_descriptor): Handle ENTRY_VALUE.
11654         (add_src_coords_attributes): Don't add enything if
11655         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
11656         (dwarf2out_abstract_function): Save and clear call_arg_location,
11657         call_site_count and tail_call_site_count around dwarf2out_decl call.
11658         (gen_call_site_die): New function.
11659         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
11660         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
11661         (dwarf2out_function_decl): Clear call_arg_locations,
11662         call_arg_loc_last, set call_site_count and tail_call_site_count
11663         to -1 and free block_map.
11664         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
11665         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
11666         followed by any real instructions.
11667         (dwarf2out_begin_function): Set call_site_count and
11668         tail_call_site_count to 0.
11669         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
11670         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
11671         attempt to force a DIE for it and worst case remove the attribute.
11672         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
11673         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
11674         the decl itself.
11675         * var-tracking.c: Include tm_p.h.
11676         (vt_stack_adjustments): For calls call note_register_arguments.
11677         (argument_reg_set): New variable.
11678         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
11679         ensure the VALUE is resolved.
11680         (call_arguments): New variable.
11681         (prepare_call_arguments): New function.
11682         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
11683         (struct expand_loc_callback_data): Add ignore_cur_loc field.
11684         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
11685         always use the best expression.
11686         (vt_expand_loc): Add ignore_cur_loc argument.
11687         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
11688         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
11689         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
11690         note for all calls.
11691         (vt_add_function_parameter): Use cselib_lookup_from_insn.
11692         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
11693         argument.  Don't call cselib_preserve_only_values and
11694         cselib_reset_table.
11695         (note_register_arguments): New function.
11696         (vt_initialize): Compute argument_reg_set.  Call
11697         vt_add_function_parameters before processing basic blocks instead of
11698         afterwards.  For calls call prepare_call_arguments before calling
11699         cselib_process_insn.
11700         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
11701         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
11702         (var-tracking.o): Depend on $(TM_P_H).
11703         * cfglayout.h (insn_scope): New prototype.
11704         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
11705         * cfglayout.c (insn_scope): No longer static.
11706         * insn-notes.def (CALL_ARG_LOCATION): New.
11707         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
11708         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
11709         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
11710         nothing for DECL_EXTERNAL BLOCK_VARS.
11711
11712 2011-03-16  Alan Modra  <amodra@gmail.com>
11713
11714         PR target/45844
11715         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11716         create invalid offset address for vsx splat insn.
11717         * config/rs6000/predicates.md (splat_input_operand): New.
11718         * config/rs6000/vsx.md (vsx_splat_*): Use it.
11719
11720 2011-03-15  Xinliang David Li  <davidxl@google.com>
11721
11722         PR c/47837
11723         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
11724         (normalize_preds): New function.
11725         (is_use_properly_guarded): Normalize def predicates.
11726
11727 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11728
11729         PR target/46788
11730         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
11731         in the output template.
11732
11733 2011-03-15  Richard Guenther  <rguenther@suse.de>
11734
11735         PR middle-end/47650
11736         * tree-pretty-print.c (dump_function_declaration): Properly
11737         dump unprototyped and varargs function types.
11738
11739 2011-03-15  Richard Guenther  <rguenther@suse.de>
11740
11741         PR tree-optimization/13954
11742         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
11743         and friends.
11744
11745 2011-03-15  Richard Guenther  <rguenther@suse.de>
11746
11747         PR tree-optimization/48037
11748         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
11749         selects into BIT_FIELD_REFs.
11750         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
11751         vector select.
11752
11753 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
11754
11755         PR tree-optimization/48129
11756         * builtins.c (fold_builtin_snprintf): Convert to type of
11757         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
11758         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
11759
11760 2011-03-15  Richard Guenther  <rguenther@suse.de>
11761
11762         PR tree-optimization/41490
11763         * tree-ssa-dce.c (propagate_necessity): Handle returns without
11764         value but with VUSE.
11765         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
11766         return statements.
11767         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
11768         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
11769         * tree-tailcall.c (find_tail_calls): Ignore returns.
11770
11771 2011-03-15  Richard Guenther  <rguenther@suse.de>
11772
11773         PR middle-end/48031
11774         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
11775         or variable-indexed array accesses when in gimple form.
11776
11777 2011-03-15  Richard Guenther  <rguenther@suse.de>
11778
11779         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
11780
11781 2011-03-15  Alan Modra  <amodra@gmail.com>
11782
11783         PR target/48032
11784         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
11785         presume symbol_refs without a symbol_ref_decl are suitably
11786         aligned, nor other trees we may see here.  Handle anchor symbols.
11787         (legitimate_constant_pool_address_p): Comment.  Add mode param.
11788         Check cmodel=medium addresses.  Adjust all calls.
11789         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
11790         creating cmodel=medium optimized access to locals.
11791         * config/rs6000/constraints.md (R): Pass QImode to
11792         legitimate_constant_pool_address_p.
11793         * config/rs6000/predicates.md (input_operand): Pass mode to
11794         legitimate_constant_pool_address_p.
11795         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
11796         Update prototype.
11797
11798 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11799
11800         PR target/48053
11801         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
11802         64-bit constants being loaded into registers other than GPRs such
11803         as loading 0 into a VSX register.
11804
11805 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11806
11807         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
11808
11809 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11810
11811         PR middle-end/47917
11812         * builtins.c (fold_builtin_snprintf): New function.
11813         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
11814         (fold_builtin_4): Likewise.
11815
11816         PR middle-end/38878
11817         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
11818         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
11819         and C - X == X also strip nops from +/-/p+ operand.
11820         When optimizing -X == C, fold C to arg0's type.
11821
11822         PR debug/47946
11823         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
11824         emit it as add_AT_int instead of add_AT_unsigned.
11825
11826 2011-03-14  Tom Tromey  <tromey@redhat.com>
11827
11828         * unwind-dw2.c: Include sys/sdt.h if it exists.
11829         (_Unwind_DebugHook): Use STAP_PROBE2.
11830         * config.in, configure: Rebuild.
11831         * configure.ac: Check for sys/sdt.h.
11832
11833 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
11834
11835         * config/i386/i386.md (ROUND_FLOOR): New constant.
11836         (ROUND_CEIL): Ditto.
11837         (ROUND_TRUNC): Ditto.
11838         (ROUND_MXCSR): Ditto.
11839         (ROUND_NO_EXC): Ditto.
11840         (rint<mode>2): Use new defines instead of numerical constants.
11841         (floor<mode>2): Ditto.
11842         (ceil<mode>2): Ditto.
11843         (btrunc<mode>2): Ditto.
11844         * config/i386/i386-builtin-types.def: Define ROUND function type
11845         aliases.
11846         * config/i386/i386.c (enum ix86_builtins): Add
11847         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
11848         (struct builtin_description): Add
11849         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
11850         (ix86_expand_sse_round): New static function.
11851         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
11852         function types.
11853         (ix86_builtin_vectorized_function): Handle
11854         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11855
11856 2011-03-14  Tom Tromey  <tromey@redhat.com>
11857
11858         * c-parser.c (c_parser_asm_string_literal): Clear
11859         warn_overlength_strings.
11860
11861 2011-03-14  Tom Tromey  <tromey@redhat.com>
11862
11863         * c-parser.c (disable_extension_diagnostics): Save
11864         warn_overlength_strings.
11865         (restore_extension_diagnostics): Restore warn_overlength_strings.
11866
11867 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11868
11869         * BASE-VER: Change to 4.7.0.
11870
11871 2011-03-14  Richard Guenther  <rguenther@suse.de>
11872
11873         PR middle-end/48098
11874         * tree.c (build_vector_from_val): Adjust assert to requirements
11875         and reality.
11876
11877 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11878
11879         PR bootstrap/48102
11880         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
11881
11882 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
11883
11884         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
11885         terms of target_flags_explicit. Adjust copyright year.
11886
11887         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
11888         * config/rs6000/t-freebsd: New file. Add override for
11889         LIB2FUNCS_EXTRA.
11890
11891 2011-03-13  Chris Demetriou  <cgd@google.com>
11892
11893         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
11894         (-fno-diagnostics-show-option): this, to reflect current default.
11895         (-Werror=): Update text about -fno-diagnostics-show-option.
11896
11897 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
11898
11899         PR target/48053
11900         * config/rs6000/predicates.md (easy_vector_constant_add_self,
11901         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
11902         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
11903         mode is not V2DImode or V2DFmode.
11904         (vspltis_constant): Do not handle V2DImode and V2DFmode.
11905         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
11906         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
11907         registers to 0.
11908         (movdi_internal64): Likewise.
11909
11910 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
11911
11912         PR tree-optimization/47127
11913         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
11914         parameter.
11915         (set_cloog_options): Same.
11916         (scop_to_clast): Same.
11917         (print_clast_stmt): Do not call cloog_state_malloc and
11918         cloog_state_free.
11919         (print_generated_program): Same.
11920         (gloog): Same.
11921         * graphite-clast-to-gimple.h (cloog_state): Declared.
11922         (scop_to_clast): Adjust declaration.
11923         * graphite.c (cloog_state): Defined here.
11924         (graphite_initialize): Call cloog_state_malloc.
11925         (graphite_finalize): Call cloog_state_free.
11926
11927 2011-03-11  Jason Merrill  <jason@redhat.com>
11928
11929         * attribs.c (lookup_attribute_spec): Take const_tree.
11930         * tree.h: Adjust.
11931
11932 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
11933
11934         * config/sparc/sparc.c (sparc_option_override): Use
11935         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
11936
11937 2011-03-11  Richard Guenther  <rguenther@suse.de>
11938
11939         PR tree-optimization/48067
11940         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
11941         multiplication result will be only used once on the target
11942         stmt.
11943
11944 2011-03-11  Richard Guenther  <rguenther@suse.de>
11945
11946         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11947
11948 2011-03-11  Richard Guenther  <rguenther@suse.de>
11949
11950         PR lto/48073
11951         * tree.c (find_decls_types_r): Do not walk types only reachable
11952         from IDENTIFIER_NODEs.
11953
11954 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11955
11956         PR middle-end/48044
11957         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11958         all vnode->force_output nodes as needed.
11959
11960 2011-03-11  Jason Merrill  <jason@redhat.com>
11961
11962         PR c++/48069
11963         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11964         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11965
11966 2011-03-11  Martin Jambor  <mjambor@suse.cz>
11967
11968         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11969         cgraph_node.
11970
11971 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11972
11973         PR tree-optimization/48063
11974         * ipa-inline.c (cgraph_decide_inlining): Don't try to
11975         inline functions called once if !tree_can_inline_p (node->callers).
11976
11977 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
11978
11979         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11980         extra_objs.
11981         * config/score/score3.c: Delete.
11982         * config/score/score3.h: Delete.
11983         * config/score/mul-div.S: Delete.
11984         * config/score/sfp-machine.h: Add new file.
11985         * config/score/constraints.md: Add new file.
11986         * config/score/t-score-softfp: Add new file.
11987         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
11988         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11989         (score7_extra_constraint): Delete.
11990         (score7_option_override): Remove unused code.
11991         * config/score/score.c: Remove score3 and score5 define and code.
11992         * config/score/score.h: Remove score3 and score5 define and code.
11993         * config/score/score.md: Remove score3 template and unusual insn.
11994         * config/score/score.opt: Remove score3 and score5 options.
11995
11996 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11997
11998         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11999         when _HPUX_SOURCE is defined.
12000         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
12001
12002 2011-03-10  Jason Merrill  <jason@redhat.com>
12003
12004         PR c++/48029
12005         * stor-layout.c (layout_type): Don't set structural equality
12006         on arrays of incomplete type.
12007         * tree.c (type_hash_eq): Handle comparing them properly.
12008
12009 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
12010
12011         PR debug/48043
12012         * config/s390/s390.c (s390_delegitimize_address): Make sure the
12013         result mode matches original rtl mode.
12014
12015 2011-03-10  Nick Clifton  <nickc@redhat.com>
12016
12017         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
12018         (andsi3, andsi3_flags): Fix timings for three operand alternative.
12019
12020 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
12021
12022         PR rtl-optimization/47866
12023         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
12024         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
12025         if target wasn't scalar.
12026         * function.c (assign_stack_temp_for_type): Assert that neither
12027         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
12028         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
12029         macro.
12030         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
12031
12032 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12033
12034         * config/s390/s390-protos.h (s390_label_align): New prototype.
12035         * config/s390/s390.c (s390_label_align): New function.
12036         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
12037
12038 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
12039
12040         PR target/47755
12041         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
12042         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
12043         (output_vec_const_move): Ditto.
12044
12045 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
12046
12047         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
12048         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
12049         * config/mips/mips.c (mips_preferred_reload_class): Make static.
12050         Change 'rclass' argument and result type to reg_class_t.
12051         (TARGET_PREFERRED_RELOAD_CLASS): Define.
12052
12053 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
12054
12055         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12056         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
12057         (TARGET_MEMORY_MOVE_COST): Define.
12058         (avr_register_move_cost, avr_memory_move_cost): New Functions.
12059
12060 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
12061
12062         PR debug/47881
12063         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
12064         removed anything.
12065
12066         PR tree-optimization/48022
12067         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
12068         for EQ/NE_EXPR.
12069
12070 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
12071
12072         PR debug/47991
12073         * var-tracking.c (find_use_val): Return NULL for
12074         cui->sets && cui->store_p BLKmode MEMs.
12075
12076 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
12077
12078         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
12079         Remove.
12080         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
12081         xstormy16_print_operand_address): Remove.
12082         * config/stormy16/stormy16.c (xstormy16_print_operand,
12083         xstormy16_print_operand_address): Make static.
12084         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12085
12086 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
12087
12088         PR target/47862
12089         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12090         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
12091         before definition.
12092
12093 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
12094
12095         PR bootstrap/48000
12096         * cfgloopmanip.c (fix_bb_placements): Return immediately
12097         if FROM is BASE_LOOP's header.
12098
12099 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
12100
12101         * gimplify.c (gimplify_function_tree): Fix building calls
12102         to __builtin_return_address.
12103
12104 2011-03-07  Alan Modra  <amodra@gmail.com>
12105
12106         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
12107         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
12108         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
12109         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
12110         return_mode args.
12111         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
12112         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
12113         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
12114         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
12115         * config/rs6000/rs6000.c
12116         (rs6000_elf_end_indicate_exec_stack): Rename to..
12117         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
12118         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
12119         (rs6000_file_start): ..here.
12120         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
12121         file scope variables.
12122         (call_ABI_of_interest): New function.
12123         (init_cumulative_args): Set above vars when function return value
12124         is a float, vector, or small struct.
12125         (rs6000_function_arg_advance_1): Likewise for function args.
12126         (rs6000_va_start): Set rs6000_passes_float if variable arg function
12127         references float args.
12128
12129 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
12130
12131         * doc/cfg.texi: Remove "See" before @ref.
12132         * doc/invoke.texi: Likewise.
12133
12134 2011-03-05  Jason Merrill  <jason@redhat.com>
12135
12136         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
12137
12138 2011-03-05  Anthony Green  <green@moxielogic.com>
12139
12140         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
12141
12142 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
12143
12144         PR rtl-optimization/47899
12145         * cfgloopmanip.c (fix_bb_placements): Fix first argument
12146         to flow_loop_nested_p when moving the loop upward.
12147
12148 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
12149
12150         PR target/47719
12151         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
12152
12153 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
12154
12155         PR tree-optimization/47967
12156         * ipa-cp.c (build_const_val): Return NULL instead of creating
12157         VIEW_CONVERT_EXPR for mismatching sizes.
12158         (ipcp_create_replace_map): Return NULL if build_const_val failed.
12159         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
12160         give up on versioning.
12161
12162 2011-03-05  Alan Modra  <amodra@gmail.com>
12163
12164         PR target/47986
12165         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12166         full cmodel medium/large lo_sum + high addresses.
12167
12168 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12169
12170         * config/s390/s390.c (s390_decompose_address): Reject non-literal
12171         pool references in UNSPEC_LTREL_OFFSET.
12172
12173 2011-03-04  Jan Hubicka  <jh@suse.cz>
12174
12175         PR lto/47497
12176         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
12177         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
12178         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
12179         Add node pointers.
12180         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
12181         cgraph_add_thunk): Add node pointers.
12182         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
12183         associated to right node.
12184         (input_node): Update use of cgraph_same_body_alias
12185         and cgraph_add_thunk.
12186
12187 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
12188
12189         * config/i386/i386.opt (mprefer-avx128): New flag.
12190         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
12191         modes when the flag -mprefer-avx128 is on.
12192
12193 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
12194
12195         * dwarf2out.c (compare_loc_operands): Fix address handling.
12196
12197 2011-03-04  Alan Modra  <amodra@gmail.com>
12198
12199         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
12200
12201 2011-03-04  Richard Guenther  <rguenther@suse.de>
12202
12203         PR middle-end/47968
12204         * expmed.c (extract_bit_field_1): Prefer vector modes that
12205         vec_extract patterns can handle.
12206
12207 2011-03-04  Richard Guenther  <rguenther@suse.de>
12208
12209         PR middle-end/47975
12210         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
12211
12212 2011-03-04  Richard Henderson  <rth@redhat.com>
12213
12214         * explow.c (emit_stack_save): Remove 'after' parameter.
12215         (emit_stack_restore): Likewise.
12216         * expr.h: Update to match.
12217         * builtins.c, calls.c, stmt.c: Likewise.
12218         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
12219         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
12220         * function.c (expand_function_end): Insert the emit_stack_save
12221         sequence before parm_birth_insn instead of after.
12222
12223 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
12224
12225         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
12226         (ssse3_pmaddubsw128): Ditto.
12227         (ssse3_pmaddubsw): Ditto.
12228
12229 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
12230
12231         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
12232
12233 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
12234
12235         PR c/47963
12236         * gimplify.c (omp_add_variable): Only call omp_notice_variable
12237         on TYPE_SIZE_UNIT if it is a DECL.
12238
12239         PR debug/47283
12240         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
12241         first operand is not is_gimple_mem_ref_addr, try to fold it.
12242         If the operand still isn't is_gimple_mem_ref_addr, clear
12243         MEM_EXPR on op0.
12244
12245 2011-03-03  Richard Guenther  <rguenther@suse.de>
12246
12247         PR middle-end/47283
12248         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
12249         match comment.
12250         (refs_may_alias_p_1): For release branches return true if
12251         we are confused by our input.
12252
12253 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12254
12255         * config/s390/s390.c (s390_function_value): Rename to ...
12256         (s390_function_and_libcall_value): ... this.
12257         (s390_function_value): New function.
12258         (s390_libcall_value): New function.
12259         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
12260         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
12261         target macro definitions.
12262         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
12263
12264 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
12265
12266         * config/i386/freebsd64.h (CC1_SPEC): Define.
12267         * config/i386/linux64.h (CC1_SPEC): Define.
12268         * config/i386/x86-64.h (CC1_SPEC): Don't define.
12269
12270 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
12271
12272         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12273         Remove.
12274         * config/stormy16/stormy16.c: Include reload.h.
12275         (xstormy16_memory_move_cost): New function.
12276         (TARGET_MEMORY_MOVE_COST): Define.
12277
12278 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
12279
12280         PR rtl-optimization/47925
12281         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
12282         with side effects.  Remove the more-specific check for volatile asms.
12283
12284 2011-03-02  Alan Modra  <amodra@gmail.com>
12285
12286         PR target/47935
12287         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
12288         toc relative addresses for valid offsets.
12289
12290 2011-03-01  Richard Guenther  <rguenther@suse.de>
12291
12292         PR tree-optimization/47890
12293         * tree-vect-loop.c (get_initial_def_for_induction): Set
12294         related stmt properly.
12295
12296 2011-03-01  Richard Guenther  <rguenther@suse.de>
12297
12298         PR lto/47924
12299         * lto-streamer.c (lto_record_common_node): Also register
12300         the canonical type.
12301
12302 2011-03-01  Richard Guenther  <rguenther@suse.de>
12303
12304         PR lto/46911
12305         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12306         Do not stream DECL_ABSTRACT_ORIGIN.
12307         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12308         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12309         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12310         Do not stream DECL_ABSTRACT_ORIGIN.
12311         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12312         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12313
12314 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
12315
12316         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
12317         FUNCTION_VALUE_REGNO_P): Remove.
12318         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
12319         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
12320         Add 'outgoing' argument.
12321         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
12322         function.
12323         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12324         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12325
12326 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
12327
12328         PR debug/28047
12329         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12330         (lookup_filename): Likewise.
12331         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
12332
12333 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
12334             Jakub Jelinek  <jakub@redhat.com>
12335
12336         PR middle-end/47893
12337         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12338         (assign_stack_local_1): Change last argument type to int.
12339         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12340         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
12341         don't record padding space into frame_space_list nor use those areas.
12342         (assign_stack_local): Adjust caller.
12343         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12344         of assign_stack_local, pass 0 as last argument.
12345         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12346         callers.
12347
12348 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
12349
12350         PR debug/47283
12351         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12352         Use target address_mode and pointer_mode hooks instead of hardcoded
12353         Pmode and ptr_mode.  Handle some simple cases of extending if
12354         POINTERS_EXTEND_UNSIGNED < 0.
12355         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12356         Call convert_debug_memory_address.
12357         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12358         convert_debug_memory_address.
12359
12360         PR middle-end/46790
12361         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12362         * configure: Regenerated.
12363         * config.in: Regenerated.
12364         * varasm.c (default_function_section): Return NULL
12365         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12366
12367 2011-02-28  Martin Jambor  <mjambor@suse.cz>
12368
12369         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12370         the description to match the printed values.
12371
12372 2011-02-28  Richard Guenther  <rguenther@suse.de>
12373
12374         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12375         of the copied scope tree.
12376
12377 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12378
12379         * doc/extend.texi (Function Attributes): Avoid deeply (and
12380         wrongly) nested tables.
12381
12382 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
12383
12384         PR middle-end/47903
12385         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12386         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12387         r isn't op0 nor op1.
12388
12389 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12390
12391         * config/avr/avr.md: Remove magic comment for emacs.
12392
12393 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12394
12395         PR target/45261
12396         * config/avr/avr.c (avr_option_override): Use error on bad options.
12397         (avr_help): New function.
12398         (TARGET_HELP): Define.
12399
12400 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
12401
12402         PR target/42240
12403         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12404         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12405
12406 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
12407
12408         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12409         (ARM Options): Ditto.
12410         (i386 and x86-64 Options): Ditto.
12411         (RX Options): Ditto.
12412         (SPARC Options): Ditto.
12413
12414 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
12415
12416         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12417         FreeBSD 6 and later.  Generally use cpu generic.
12418
12419 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
12420
12421         * doc/cpp.texi: Update copyright years.
12422
12423 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12424
12425         PR target/46898
12426         * config/lm32/lm32.md (ashrsi3): Added needed variable.
12427
12428 2011-02-25  Jon Beniston  <jon@beniston.com>
12429
12430         PR target/46898
12431         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12432         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12433         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12434         (lm32_block_move_inline): Add type cast to remove warning.
12435         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12436         (gen_int_relational): Move declarations to start of function.
12437
12438 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
12439
12440         PR tree-optimization/45470
12441         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12442         can throw internally only.
12443         * tree-vect-stmts.c (vectorizable_call): Likewise.
12444
12445 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
12446
12447         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12448         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12449         * config/stormy16/stormy16-protos.h
12450         (xstormy16_preferred_reload_class): Remove.
12451         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12452         static. Change 'rclass' argument and return type to reg_class_t.
12453         (TARGET_PREFERRED_RELOAD_CLASS,
12454         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12455
12456 2011-02-24  Richard Guenther  <rguenther@suse.de>
12457
12458         * lto-streamer-in.c (input_bb): Do not find referenced vars
12459         in debug statements.
12460
12461 2011-02-23  Jason Merrill  <jason@redhat.com>
12462
12463         * common.opt (fabi-version): Document v5 and v6.
12464
12465 2011-02-23  Richard Guenther  <rguenther@suse.de>
12466
12467         PR tree-optimization/47849
12468         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12469
12470 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12471
12472         * opts-common.c (decode_cmdline_option): Print empty string
12473         argument as "" in decoded->orig_option_with_args_text.
12474         * gcc.c (execute): Print empty string argument as ""
12475         in the verbose output.
12476         (do_spec_1): Keep empty string argument.
12477
12478 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
12479
12480         * config.gcc: Declare score-* and crx-* obsolete.
12481
12482 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12483
12484         PR rtl-optimization/47763
12485         * web.c (web_main): Ignore naked clobber when replacing register.
12486
12487 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
12488
12489         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12490         Remove.
12491
12492 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12493
12494         PR doc/47848
12495         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12496
12497 2011-02-22  Mike Stump  <mikestump@comcast.net>
12498
12499         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12500         assembler.
12501         * configure: Regenerate.
12502
12503 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
12504
12505         PR rtl-optimization/46002
12506         * ira-color.c (update_copy_costs): Change class intersection
12507         test to reg_class_contents[] test of 'hard_regno'.
12508
12509 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
12510
12511         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12512         than Driver option.
12513         * config/hpux11.opt (mt): Likewise.
12514         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12515         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12516         * config/vax/elf.opt (mno-asm-pic): Likewise.
12517         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12518
12519 2011-02-21  Mike Stump  <mikestump@comcast.net>
12520
12521         PR target/47822
12522         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12523         tree so we can get save the type.
12524         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12525         for CFString instead of trying to use past the end of the builtins.
12526         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12527         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12528         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12529         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12530         Rename to darwin_builtin_cfstring.
12531         (darwin_init_cfstring_builtins): Return the built type.
12532
12533 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
12534
12535         PR target/47840
12536         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12537         (_mm256_insert_epi64): Use _mm_insert_epi64.
12538
12539 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
12540
12541         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12542         * config/stormy16/stormy16-protos.h
12543         (xstormy16_mode_dependent_address_p): Remove.
12544         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12545         Make static. Change return type to bool. Change argument type to
12546         const_rtx. Remove dead code.
12547         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12548
12549 2011-02-21  Richard Guenther  <rguenther@suse.de>
12550
12551         PR lto/47820
12552         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12553         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12554         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12555         TUs context.
12556         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12557         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12558
12559 2011-02-20  Richard Guenther  <rguenther@suse.de>
12560
12561         PR lto/47822
12562         * tree.c (free_lang_data_in_decl): Clean builtins from
12563         the TU decl BLOCK_VARS.
12564
12565 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
12566
12567         PR debug/47620
12568         PR debug/47630
12569         * haifa-sched.c (fix_tick_ready): Skip tick computation
12570         for debug insns.
12571
12572 2011-02-19  Richard Guenther  <rguenther@suse.de>
12573
12574         PR lto/47647
12575         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12576         Remove lazy BLOCK_VARS streaming.
12577         (lto_input_ts_block_tree_pointers): Likewise.
12578         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12579
12580 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12581
12582         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12583
12584 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12585
12586         * config/i386/biarch32.h, config/i386/mach.h,
12587         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12588
12589 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
12590
12591         PR target/47800
12592         * config/i386/i386.md (peephole2 for shift and plus): Use
12593         operands[1] original mode in the first insn.
12594
12595 2011-02-18  Mike Stump  <mikestump@comcast.net>
12596
12597         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
12598
12599 2011-02-18  Jan Hubicka  <jh@suse.cz>
12600
12601         PR middle-end/47788
12602         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12603         to zero when the function is not inlinable at all.
12604
12605 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12606
12607         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
12608         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12609         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
12610         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
12611         * config/pa/t-pa64: Likewise.
12612         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12613
12614 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12615
12616         PR driver/47787
12617         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
12618
12619 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12620
12621         PR target/47792
12622         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
12623
12624 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
12625
12626         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12627         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
12628         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
12629         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12630         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
12631         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
12632         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
12633         m32r_load_postinc_p, m32r_store_preinc_predec_p,
12634         m32r_legitimate_address_p): New functions.
12635         * config/m32r/constraints.md (constraint "S"): Don't use
12636         STORE_PREINC_PREDEC_P.
12637         (constraint "U"): Don't use LOAD_POSTINC_P.
12638
12639 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
12640
12641         PR rtl-optimization/46178
12642         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
12643         compute ira_hard_regno_cover_class[].
12644
12645 2011-02-18  Richard Guenther  <rguenther@suse.de>
12646
12647         PR lto/47798
12648         * lto-streamer.h (lto_global_var_decls): Declare.
12649         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
12650         statics for global var processing.
12651
12652 2011-02-18  Richard Guenther  <rguenther@suse.de>
12653
12654         PR tree-optimization/47737
12655         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
12656         edge dominance check.
12657
12658 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12659
12660         PR debug/47780
12661         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
12662         avoid invalid rtx sharing.
12663
12664 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
12665
12666         * doc/cpp.texi (Obsolete Features): Add background on the
12667         origin of assertions.
12668
12669 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
12670
12671         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
12672         objc_abi == 2.
12673         * config/darwin.c (output_objc_section_asm_op): Added support for
12674         ABI v1 and v2.
12675         (is_objc_metadata): New.
12676         (darwin_objc2_section): New.
12677         (darwin_objc1_section): New.
12678         (machopic_select_section): Added support for ABI v1 and v2.
12679         (darwin_emit_objc_zeroed): New.
12680         (darwin_output_aligned_bss): Detect objc metadata and treat it
12681         appropriately.
12682         (darwin_asm_output_aligned_decl_common): Same.
12683         (darwin_asm_output_aligned_decl_local): Same.
12684         * config/darwin-sections.def: Updated for ABI v1 and v2.
12685         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
12686         compiling Objective-C code for the NeXT runtime, default to using
12687         ABI version 0 for 32-bit, and version 2 for 64-bit.
12688
12689 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12690
12691         * common.opt (optimize_fast): New Variable.
12692         * opts.c (default_options_optimization): Use opts->x_optimize_fast
12693         instead of local variable ofast.
12694
12695 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
12696
12697         * doc/invoke.texi (fobjc-abi-version): Documented.
12698         (fobjc-nilcheck): Documented.
12699         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
12700         version.
12701
12702 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12703
12704         PR driver/47390
12705         * common.opt (export-dynamic): New Driver option.
12706         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
12707
12708 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12709
12710         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
12711
12712 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
12713             Jan Hubicka  <jh@suse.cz>
12714
12715         PR debug/47106
12716         PR debug/47402
12717         * cfgexpand.c (account_used_vars_for_block): Remove.
12718         (estimated_stack_frame_size): Use referenced vars.
12719         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
12720         that were referenced in the original function.  Test src_fn
12721         rather than cfun.  Drop redundant get_var_ann.
12722         (setup_one_parameter): Drop redundant get_var_ann.
12723         (declare_return_variable): Likewise.
12724         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
12725         (copy_arguments_for_versioning): Drop redundant get_var_ann.
12726         * ipa-inline.c (compute_inline_parameters): Do not compute
12727         disregard_inline_limits here.
12728         (compute_inlinable_for_current, pass_inlinable): New.
12729         (pass_inline_parameters): Require PROP_referenced_vars.
12730         * cgraphunit.c (cgraph_process_new_functions): Don't run
12731         compute_inline_parameters explicitly unless function is in SSA form.
12732         (cgraph_analyze_function): Set .disregard_inline_limits.
12733         * tree-sra.c (convert_callers): Compute inliner parameters
12734         only for functions already in SSA form.
12735
12736 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12737
12738         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
12739         -mlittle-endian-data.
12740
12741 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12742
12743         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
12744         -mno-fpu, not -fpu and -no-fpu.
12745         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
12746         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
12747
12748 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
12749
12750         PR target/43653
12751         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
12752         input reload with PLUS RTX.
12753
12754 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12755
12756         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
12757         of InverseVar(MDMX).
12758
12759 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12760
12761         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
12762         --m4-340.
12763
12764 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12765
12766         * config/mn10300/mn10300.opt (mno-crt0): New.
12767
12768 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12769
12770         * config/m68k/uclinux.opt (static-libc): New Driver option.
12771
12772 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12773
12774         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
12775
12776 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12777
12778         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
12779         %{muser-extend-enabled}.
12780
12781 2011-02-16  Richard Guenther  <rguenther@suse.de>
12782
12783         PR tree-optimization/47738
12784         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
12785         the TODO from tree_predictive_commoning.
12786
12787 2011-02-15  Jeff Law  <law@redhat.com>
12788
12789         Revert
12790         2011-01-25  Jeff Law  <law@redhat.com>
12791
12792         PR rtl-optimization/37273
12793         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12794         handle them like argument loads from stack slots.  Do not double
12795         count memory for memory constants and argument loads from stack slots.
12796
12797 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12798
12799         PR middle-end/47725
12800         * combine.c (cant_combine_insn_p): Revert the last change.
12801
12802 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
12803
12804         PR target/47755
12805         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
12806         mode for vector constants.  Remove code that checks for TImode.
12807
12808 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12809
12810         PR debug/47106
12811         PR debug/47402
12812         * cgraph.h (compute_inline_parameters): Return void.
12813         * ipa-inline.c (compute_inline_parameters): Adjust.
12814
12815 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12816
12817         PR debug/47106
12818         PR debug/47402
12819         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
12820         rather than decl.
12821         * cfgexpand.c (estimated_stack_frame_size): Likewise.
12822         * ipa-inline.c (compute_inline_parameters): Adjust.
12823
12824 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12825
12826         PR debug/47106
12827         PR debug/47402
12828         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
12829         Adjust all users.  Pass FN to...
12830         * tree-flow-inline.h (first_referenced_var): ... this.  Add
12831         fn argument.
12832         * ipa-struct-reorg.c: Adjust.
12833         * tree-dfa.c: Adjust.
12834         * tree-into-ssa.c: Adjust.
12835         * tree-sra.c: Adjust.
12836         * tree-ssa-alias.c: Adjust.
12837         * tree-ssa-live.c: Adjust.
12838         * tree-ssa.c: Adjust.
12839         * tree-ssanames.c: Adjust.
12840         * tree-tailcall.c: Adjust.
12841
12842 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12843
12844         PR debug/47106
12845         PR debug/47402
12846         * tree-flow.h (referenced_var_lookup): Add fn parameter.
12847         Adjust all callers.
12848         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
12849         * tree-flow-inline.h: Adjust.
12850         * gimple-pretty-print.c: Adjust.
12851         * tree-into-ssa.c: Adjust.
12852         * tree-ssa.c: Adjust.
12853         * cfgexpand.c: Adjust.
12854
12855 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12856
12857         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
12858         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12859         (EXTRA_CONSTRAINT): Delete.
12860         * config/iq2000/constraints.md: New file.
12861         * config/iq2000/iq2000.md: Include it.
12862         (define_insn ""): Delete.
12863         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
12864         unsupported constraint letters from patterns.
12865         (call_value, call_value_internal1): Likewise.
12866         (call_value_multiple_internal1): Likewise.
12867
12868 2011-02-15  Nick Clifton  <nickc@redhat.com>
12869
12870         * config/mn10300/mn10300.c: Include tm-constrs.h.
12871         (struct liw_data): New data structure describing an LIW candidate
12872         instruction.
12873         (extract_bundle): Use struct liw_data.  Allow small integer
12874         operands for some instructions.
12875         (check_liw_constraints): Use struct liw_data.  Remove swapped
12876         parameter.  Add comments describing the checks.  Fix bug when
12877         assigning the source of liw1 to the source of liw2.
12878         (liw_candidate): Delete.  Code moved into extract_bundle.
12879         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
12880         before swapping.
12881         * config/mn10300/predicates.md (liw_operand): New predicate.
12882         Allows registers and small integer constants.
12883         * config/mn10300/constraints.md (O): New constraint.  Accetps
12884         integers in the range -8 to +7 inclusive.
12885         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
12886         for moving a small integer into a register.  Give this alternative
12887         LIW attributes.
12888         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
12889         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
12890         using the J,K,L and M constraints,
12891         (liw): Remove SI mode on second operands to allow for HI and QI
12892         mode values.
12893         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
12894         instruction.
12895
12896 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12897
12898         PR middle-end/47725
12899         * combine.c (cant_combine_insn_p): Check zero/sign extended
12900         hard registers.
12901
12902 2011-02-15  Richard Guenther  <rguenther@suse.de>
12903
12904         PR tree-optimization/47743
12905         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
12906         for a non-type-compatible VN lookup bail out.
12907
12908 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12909
12910         * config/fr30/constraints.md: New file.
12911         * config/fr30/fr30.md: Include it.
12912         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
12913         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12914         (EXTRA_CONSTRAINT): Delete.
12915
12916 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12917
12918         * config/frv/constraints.md: New file.
12919         * config/frv/predicates.md: Include it.
12920         * config/frv/frv.c (reg_class_from_letter): Delete.
12921         (frv_option_override): Don't initialize it.
12922         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
12923         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
12924         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
12925         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12926         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
12927         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12928         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
12929         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
12930         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
12931         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
12932         (REG_CLASS_FROM_CONSTRAINT): Delete.
12933
12934 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
12935
12936         PR middle-end/47581
12937         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
12938         if frame size is 0 in a leaf function.
12939
12940 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12941
12942         PR pch/14940
12943         * config/alpha/host-osf.c: New file.
12944         * config/alpha/x-osf: New file.
12945         * config.host (alpha*-dec-osf*): Use it.
12946
12947 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12948
12949         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12950         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12951         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12952         (rx_mode_dependent_address_p): ...this. Make static. Change argument
12953         type to const_rtx.
12954         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12955
12956 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12957
12958         * config/stormy16/constraints.md: New file.
12959         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12960         Use satisfies_constraint_Q and satisfies_constraint_R.
12961         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12962         Delete.
12963         (xstormy16_legitiamte_address_p): Declare.
12964         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12965         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12966         (EXTRA_CONSTRAINT): Delete.
12967         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
12968         Un-staticize.
12969         (xstormy16_extra_constraint_p): Delete.
12970
12971 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
12972
12973         PR tree-optimization/46494
12974         * loop-unroll.c (split_edge_and_insert): Adjust comment.
12975         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12976         (pass_rtl_loop_done): Add TODO_verify_flow.
12977         * fwprop.c (pass_rtl_fwprop): Likewise.
12978         * modulo-sched.c (pass_sms): Likewise.
12979         * tree-ssa-dom.c (pass_dominator): Likewise.
12980         * tree-ssa-loop-ch.c (pass_ch): Likewise.
12981         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12982         (pass_tree_loop_done): Likewise.
12983         * tree-ssa-pre.c (execute_pre): Likewise.
12984         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12985         * tree-ssa-sink.c (pass_sink_code): Likewise.
12986         * tree-vrp.c (pass_vrp): Likewise.
12987
12988 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12989
12990         * config/v850/constraints.md: New file.
12991         * config/v850/v850.md: Include it.
12992         * config/v850/predicates.md (reg_or_0_operand): Use
12993         satisfies_constraint_G.
12994         (special_symbolref_operand): Use satisfies_constraint_K.
12995         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12996         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12997         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12998         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12999         (EXTRA_CONSTRAINT): Delete.
13000         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
13001         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
13002         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
13003
13004 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
13005
13006         PR target/47696
13007         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
13008         description.
13009
13010 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
13011
13012         * config/mcore/constraints.md: New file.
13013         * config/mcore/mcore.md: Include it.
13014         * config/mcore/mcore.c (reg_class_from_letter): Delete.
13015         * config/mcore/mcore.h (reg_class_from_letter): Delete.
13016         (REG_CLASS_FROM_LETTER): Delete.
13017         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
13018         insn_const_int_ok_for_constraint.
13019         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
13020         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
13021         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13022         (EXTRA_CONSTRAINT): Delete.
13023
13024 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13025
13026         PR ada/41929
13027         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
13028         (IS_SIGHANDLER): Define.
13029         (sparc64_is_sighandler): New function, split off from
13030         sparc64_fallback_frame_state.
13031         (sparc_is_sighandler): New function, split off from
13032         sparc_fallback_frame_state.
13033         (sparc64_fallback_frame_state): Merge with ...
13034         (sparc_fallback_frame_state): ... this into ...
13035         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
13036         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
13037         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
13038         stack instead of hardcoded offsets.
13039
13040 2011-02-14  Andriy Gapon  <avg@freebsd.org>
13041
13042         PR target/45808
13043         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
13044
13045 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13046
13047         * configure: Regenerate.
13048
13049 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
13050
13051         PR driver/45731
13052         * gcc.c (asm_options): Correct spec matching --target-help.
13053
13054 2011-02-12  Martin Jambor  <mjambor@suse.cz>
13055
13056         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
13057         to gimple call error.
13058
13059 2011-02-12  Mike Stump  <mikestump@comcast.net>
13060
13061         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
13062         comments in backslash regions.
13063
13064 2011-02-12  Mike Stump  <mikestump@comcast.net>
13065             Jakub Jelinek  <jakub@redhat.com>
13066             Iain Sandoe  <iains@gcc.gnu.org>
13067
13068         PR target/47324
13069         * dwarf2out.c (output_cfa_loc): When required, apply the
13070         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
13071         (output_loc_sequence): Likewise.
13072         (output_loc_operands_raw): Likewise.
13073         (output_loc_sequence_raw): Likewise.
13074         (output_cfa_loc): Likewise.
13075         (output_loc_list): Suppress register number adjustment when
13076         calling output_loc_sequence()
13077         (output_die): Likewise.
13078
13079 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
13080
13081         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13082         Remove macros.
13083         * config/xtensa/xtensa.c (xtensa_register_move_cost,
13084         xtensa_memory_move_cost): New functions.
13085         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
13086
13087 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
13088
13089         PR lto/47225
13090         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
13091         in the current directory.
13092         * configure: Rebuilt.
13093
13094 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
13095
13096         * config/darwin.c (darwin_override_options): Add a hunk missed
13097         from the commit of r168571.  Trim comment line lengths and
13098         correct indents of the preceding block.
13099
13100 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
13101
13102         * gcc.c (driver_handle_option): Concatenate the argument to -F with
13103         the switch.
13104
13105 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
13106
13107         * common.opt (nostartfiles): New Driver option.
13108
13109 2011-02-11  Xinliang David Li  <davidxl@google.com>
13110
13111         PR tree-optimization/47707
13112         * tree-chrec.c (convert_affine_scev): Keep type precision.
13113
13114 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
13115
13116         PR tree-optimization/47420
13117         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
13118
13119 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
13120
13121         PR rtl-optimization/47614
13122         * rtl.h (check_for_inc_dec): Declare.
13123         * dse.c (check_for_inc_dec): Externalize...
13124         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
13125         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
13126
13127 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
13128
13129         PR driver/47678
13130         * gcc.c (main): Do not compile inputs if there were errors in
13131         option handling.
13132         * opts-common.c (read_cmdline_option): Check for wrong language
13133         after other error checks.
13134
13135 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
13136
13137         * cgraph.c: Fix comment typos.
13138         * cgraph.h: Likewise.
13139         * cgraphunit.c: Likewise.
13140         * ipa-cp.c: Likewise.
13141         * ipa-inline.c: Likewise.
13142         * ipa-prop.c: Likewise.
13143         * ipa-pure-const.c: Likewise.
13144         * ipa-ref.c: Likewise.
13145         * ipa-reference.c: Likewise.
13146
13147 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
13148
13149         PR debug/47684
13150         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
13151
13152 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13153
13154         PR testsuite/47400
13155         * doc/sourcebuild.texi (Require Support): Document
13156         dg-require-ascii-locale.
13157
13158 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
13159
13160         * doc/lto.texi (Write summary): Fix missing parentheses.
13161
13162 2011-02-10  DJ Delorie  <dj@redhat.com>
13163
13164         * config/m32c/m32c.c (m32c_option_override): Disable
13165         -fcombine-stack-adjustments until flag value tracking and compare
13166         optimization can be rewritten.
13167
13168 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
13169
13170         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
13171         PROCESSOR_POWER7.
13172         (PROCESSOR_DEFAULT64): Likewise.
13173
13174 2011-02-10  Richard Henderson  <rth@redhat.com>
13175
13176         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
13177         change from 2011-02-03.
13178         * config/rx/rx.c (flags_from_code): Likewise.
13179         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
13180         is valid, n/pz otherwise.
13181         (rx_select_cc_mode): Return CCmode if Y is not zero.
13182
13183 2011-02-10  Richard Guenther  <rguenther@suse.de>
13184
13185         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
13186
13187 2011-02-10  Richard Guenther  <rguenther@suse.de>
13188
13189         PR tree-optimization/47677
13190         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
13191
13192 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
13193
13194         PR target/47665
13195         * combine.c (make_compound_operation): Only change shifts into
13196         multiplication for SCALAR_INT_MODE_P.
13197
13198 2011-02-10  Jie Zhang  <jie@codesourcery.com>
13199
13200         PR testsuite/47622
13201         Revert
13202         2011-02-05  Jie Zhang  <jie@codesourcery.com>
13203         PR debug/42631
13204         * web.c (entry_register): Don't clobber the number of the
13205         first uninitialized reference in used[].
13206
13207 2011-02-09  Richard Guenther  <rguenther@suse.de>
13208
13209         PR tree-optimization/47664
13210         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
13211         all edges again.
13212
13213 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
13214
13215         PR target/46481
13216         PR target/47032
13217         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
13218         PROCESSOR_POWER7.
13219         (PROCESSOR_DEFAULT64): Same.
13220         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
13221
13222 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13223
13224         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
13225
13226 2011-02-09  Martin Jambor  <mjambor@suse.cz>
13227
13228         PR middle-end/45505
13229         * tree-sra.c (struct access): New flags grp_scalar_read and
13230         grp_scalar_write.  Changed description of assignment read and write
13231         flags.
13232         (dump_access): Dump new flags, reorder all of them.
13233         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
13234         to detect multiple scalar reads.
13235         (analyze_access_subtree): Use the new scalar read write flags instead
13236         of the old flags.  Adjusted comments.
13237
13238 2011-02-08  DJ Delorie  <dj@redhat.com>
13239
13240         PR target/47548
13241         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
13242         patterns.
13243
13244 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13245
13246         * config/m68k/uclinux.opt: New.
13247         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
13248
13249 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13250
13251         * config/cris/elf.opt (sim): New Driver option.
13252
13253 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13254
13255         * config/xtensa/elf.opt: New.
13256         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
13257
13258 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13259
13260         * config/vax/elf.opt: New.
13261         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
13262
13263 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13264
13265         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
13266
13267 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13268
13269         * config/gnu-user.opt: New.
13270         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
13271         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
13272         *-*-uclinux*): Use gnu-user.opt.
13273
13274 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
13275
13276         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
13277         * config/i386/gnu.h (CPP_SPEC): Likewise.
13278
13279 2011-02-08  Ian Lance Taylor  <iant@google.com>
13280
13281         * common.opt (fcx-limited-range): Add SetByCombined flag.
13282         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
13283         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
13284         (fassociative-math, freciprocal-math): Likewise.
13285         (funsafe-math-optimizations): Likewise.
13286         * opth-gen.awk: Handle SetByCombined.
13287         * optc-gen.awk: Likewise.
13288         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
13289         (set_unsafe_math_optimizations_flags): Likewise.
13290         * doc/options.texi (Option properties): Document SetByCombined.
13291
13292 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13293
13294         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
13295         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
13296         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
13297         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
13298         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
13299
13300 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
13301
13302         PR tree-optimization/46834
13303         PR tree-optimization/46994
13304         PR tree-optimization/46995
13305         * graphite-sese-to-poly.c (used_outside_reduction): New.
13306         (detect_commutative_reduction): Call used_outside_reduction.
13307         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
13308         translate_scalar_reduction_to_array only when at least one
13309         loop-phi/close-phi tuple has been detected.
13310
13311 2011-02-08  Richard Guenther  <rguenther@suse.de>
13312
13313         PR middle-end/47639
13314         * tree-vect-generic.c (expand_vector_operations_1): Update
13315         stmts here ...
13316         (expand_vector_operations): ... not here.  Cleanup EH info
13317         and the CFG if required.
13318
13319 2011-02-08  Richard Guenther  <rguenther@suse.de>
13320
13321         PR tree-optimization/47641
13322         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
13323         require type compatibility.
13324
13325 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13326
13327         * gimple-low.c (lower_function_body): Don't remove the location of
13328         the return statement here.
13329         (lower_gimple_return): Do it here instead but only if the return
13330         statement is actually used twice.
13331
13332 2011-02-08  Richard Guenther  <rguenther@suse.de>
13333
13334         PR tree-optimization/47632
13335         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13336         unused up_to_stmt parameter, return whether cfg-cleanup is
13337         necessary, remove EH info properly.
13338         (forward_propagate_into_gimple_cond): Adjust caller.
13339         (forward_propagate_into_cond): Likewise.
13340         (forward_propagate_comparison): Likewise.
13341         (tree_ssa_forward_propagate_single_use_vars): Make
13342         forward_propagate_comparison case similar to the two others.
13343
13344 2011-02-08  Nick Clifton  <nickc@redhat.com>
13345
13346         * config/mn10300/mn10300.opt (mliw): New command line option.
13347         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13348         (liw_bundling): New automaton.
13349         (liw): New attribute.
13350         (liw_op): New attribute.
13351         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13352         (movsi_internal): Add LIW attributes.
13353         (andsi3): Likewise.
13354         (iorsi3): Likewise.
13355         (xorsi3): Likewise.
13356         (addsi3): Separate register and immediate alternatives.
13357         Add LIW attributes.
13358         (subsi3): Likewise.
13359         (cmpsi): Likewise.
13360         (aslsi3): Likewise.
13361         (lshrsi3): Likewise.
13362         (ashrsi3): Likewise.
13363         (liw): New pattern.
13364         * config/mn10300/mn10300.c (liw_op_names): New
13365         (mn10300_print_operand): Handle 'W' operand descriptor.
13366         (extract_bundle): New function.
13367         (check_liw_constraints): New function.
13368         (liw_candidate): New function.
13369         (mn10300_bundle_liw): New function.
13370         (mn10300_reorg): New function.
13371         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13372         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13373         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13374         __LIW__ or __NO_LIW__.
13375         * doc/invoke.texi: Describe the -mliw command line option.
13376
13377 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13378
13379         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13380         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13381         pthread_mutex_unlock): Remove.
13382         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13383         * config/pa/t-pa64: Likewise.
13384         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13385         shared libc if not linking against libpthread.
13386         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13387
13388 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
13389
13390         PR target/47558
13391         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13392         on 10.6 and later to ensure that we always use the unwinder from
13393         the system.  Only add -no_compact_unwind when tarteting darwin
13394         10.6 or later.
13395
13396 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
13397
13398         PR target/46997
13399         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13400         (vec_interleave_lowv2sf): Ditto.
13401         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13402         (vec_extract_oddv2sf): Ditto.
13403
13404 2011-02-07  Mike Stump  <mikestump@comcast.net>
13405
13406         PR target/42333
13407         Add __ieee_divdc3 entry point.
13408         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13409         entry point.
13410         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13411         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13412         * config/darwin.c (darwin_rename_builtins): Add.
13413         * config/darwin-protos.h (darwin_rename_builtins): Add.
13414
13415 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
13416
13417         PR target/47636
13418         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13419         for the condition.
13420
13421 2011-02-07  Mike Stump  <mikestump@comcast.net>
13422
13423         * config/darwin.opt (mmacosx-version-min): Update default OS version.
13424
13425 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
13426
13427         PR target/47534
13428         * config/avr/libgcc.S (exit): Move .endfunc
13429
13430 2011-02-07  Richard Guenther  <rguenther@suse.de>
13431
13432         PR tree-optimization/47615
13433         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13434         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13435         (run_scc_vn): Initialize it.
13436         (visit_reference_op_load): Use it.
13437         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13438
13439 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13440
13441         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13442         DImode trapping arithmetic libfuncs.
13443
13444 2011-02-07  Richard Guenther  <rguenther@suse.de>
13445
13446         PR tree-optimization/47621
13447         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13448         two duplicates ...
13449         (execute_update_addresses_taken): ... here.  Make it more
13450         conservative in what we accept.
13451
13452 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13453
13454         * config/sparc/freebsd.h (ASM_SPEC): Define.
13455         * config/sparc/vxworks.h (ASM_SPEC): Define.
13456
13457 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13458
13459         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13460
13461 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
13462
13463         * doc/invoke.texi: Remove reference to compiler internals from
13464         user documentation.
13465
13466         * reg-notes.def: Remove REG_VALUE_PROFILE.
13467         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13468
13469 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
13470
13471         PR middle-end/47610
13472         * varasm.c (default_section_type_flags): If decl is NULL,
13473         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13474
13475 2011-02-05  Jie Zhang  <jie@codesourcery.com>
13476
13477         PR debug/42631
13478         * web.c (entry_register): Don't clobber the number of the
13479         first uninitialized reference in used[].
13480
13481 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
13482
13483         PR tree-optimization/46194
13484         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13485         (build_classic_dist_vector_1): Do not represent classic distance
13486         vectors when the access functions are variating in different loops.
13487
13488 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13489
13490         * config/mips/iris6.opt: New.
13491         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13492
13493 2011-02-04  Richard Henderson  <rth@redhat.com>
13494             Steve Ellcey  <sje@cup.hp.com>
13495
13496         PR target/46997
13497         * config/ia64/predicates.md (mux1_brcst_element): New.
13498         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13499         * config/ia64/ia64.c (ia64_unpack_assemble): New.
13500         (ia64_unpack_sign): New.
13501         (ia64_expand_unpack): Rewrite using new routines.
13502         (ia64_expand_widen_sum): Ditto.
13503         (ia64_expand_dot_prod_v8qi): Ditto.
13504         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13505         routines, add endian check.
13506         (pmpy2_even): Rename from pmpy2_r, add endian check.
13507         (pmpy2_odd): Rename from pmpy2_l, add endian check.
13508         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13509         (vec_widen_smult_hi_v4hi): Ditto.
13510         (vec_widen_umult_lo_v4hi): Ditto.
13511         (vec_widen_umult_hi_v4hi): Ditto.
13512         (mulv2si3): Change endian checks.
13513         (sdot_prodv4hi): Rewrite with new calls.
13514         (udot_prodv4hi): New.
13515         (vec_pack_ssat_v4hi): Add endian check.
13516         (vec_pack_usat_v4hi): Ditto.
13517         (vec_pack_ssat_v2si): Ditto.
13518         (max1_even): Rename from max1_r, add endian check.
13519         (max1_odd): Rename from max1_l, add endian check.
13520         (*mux1_rev): Format change.
13521         (*mux1_mix): Ditto.
13522         (*mux1_shuf): Ditto.
13523         (*mux1_alt): Ditto.
13524         (*mux1_brcst_v8qi): Use new predicate.
13525         (vec_extract_evenv8qi): Remove endian check.
13526         (vec_extract_oddv8qi): Ditto.
13527         (vec_interleave_lowv4hi): Format change.
13528         (vec_interleave_highv4hi): Ditto.
13529         (mix2_even): Rename from mix2_r, add endian check.
13530         (mix2_odd): Rename from mux2_l, add endian check.
13531         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13532         (vec_extract_evenodd_helper): Format change.
13533         (vec_extract_evenv4hi): Remove endian check.
13534         (vec_extract_oddv4hi): Remove endian check.
13535         (vec_interleave_lowv2si): Format change.
13536         (vec_interleave_highv2si): Format change.
13537         (vec_initv2si): Remove endian check.
13538         (vecinit_v2si): Add endian check.
13539         (reduc_splus_v2sf): Add endian check.
13540         (reduc_smax_v2sf): Ditto.
13541         (reduc_smin_v2sf): Ditto.
13542         (vec_initv2sf): Remove endian check.
13543         (fpack): Add endian check.
13544         (fswap): Add endian check.
13545         (vec_interleave_highv2sf): Add endian check.
13546         (vec_interleave_lowv2sf): Add endian check.
13547         (fmix_lr): Add endian check.
13548         (vec_setv2sf): Format change.
13549         (*vec_extractv2sf_0_be): Use shift to extract operand.
13550         (*vec_extractv2sf_1_be): New.
13551         (vec_pack_trunc_v4hi): Add endian check.
13552         (vec_pack_trunc_v2si): Format change.
13553
13554 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
13555
13556         PR inline-asm/23200
13557         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
13558         do bb, locus and block comparison and disallow loads if it is not set.
13559         (stmt_is_replaceable_p): New function.
13560         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13561         callers.
13562         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13563         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13564         SSA_NAME_DEF_STMT.
13565         * tree-flow.h (stmt_is_replaceable_p): New prototype.
13566
13567 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13568
13569         * config/rs6000/xilinx.opt: New.
13570         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13571
13572 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13573
13574         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13575
13576 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
13577
13578         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13579         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13580         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13581         secondary_reload_info, xtensa_secondary_reload): Remove.
13582         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13583         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13584         (xtensa_preferred_reload_class): Make static. Change return and
13585         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13586         Use CONST_DOUBLE_P predicate.
13587         (xtensa_preferred_output_reload_class): New function.
13588         (xtensa_secondary_reload): Make static.
13589
13590 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
13591
13592         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13593         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13594         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13595
13596 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13597
13598         PR middle-end/31490
13599         * output.h (SECTION_RELRO): Define.
13600         (SECTION_MACH_DEP): Adjust.
13601         (get_variable_section): New prototype.
13602         * varpool.c (varpool_finalize_named_section_flags): New function.
13603         (varpool_assemble_pending_decls): Call it.
13604         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13605         * cgraphunit.c (cgraph_output_in_order): Call
13606         varpool_finalize_named_section_flags.
13607         * varasm.c (get_section): Allow section flags conflicts between
13608         relro and read-only sections if the section hasn't been declared yet.
13609         Set SECTION_OVERRIDE after diagnosing section type conflict.
13610         (get_variable_section): No longer static.
13611         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
13612         readonly sections that need relocations.
13613         (decl_readonly_section_1): New function.
13614         (decl_readonly_section): Use it.
13615
13616         Revert:
13617         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
13618                     Steve Ellcey  <sje@cup.hp.com>
13619
13620         PR middle-end/31490
13621         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
13622         if section attribute used.
13623
13624 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13625
13626         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
13627         * config/darwin.c (SECTION_NO_ANCHOR): Define.
13628         (darwin_init_sections): Remove assertion.
13629
13630 2011-02-03  Nick Clifton  <nickc@redhat.com>
13631
13632         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
13633         lt and ge.
13634         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
13635         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
13636         instead of "n" and "pz".
13637         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
13638         CC_FLAG_S.
13639
13640 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13641
13642         PR target/47312
13643         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
13644         fma, expand FMA_EXPR as fma{,f,l} call.
13645
13646         PR lto/47274
13647         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
13648         copy them into a unsigned char variable and pass address of it to
13649         lto_output_data_stream.
13650
13651         PR target/47564
13652         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
13653         around backend_init_target and lang_dependent_init_target calls.
13654         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
13655         (verify_cgraph_node): Don't call set_cfun here.  Use
13656         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
13657         Set error_found for incorrectly represented calls to thunks.
13658
13659 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13660
13661         PR debug/43092
13662         PR rtl-optimization/43494
13663         * rtl.h (for_each_inc_dec_fn): New type.
13664         (for_each_inc_dec): Declare.
13665         * rtlanal.c (struct for_each_inc_dec_ops): New type.
13666         (for_each_inc_dec_find_inc_dec): New fn.
13667         (for_each_inc_dec_find_mem): New fn.
13668         (for_each_inc_dec): New fn.
13669         * dse.c (struct insn_size): Remove.
13670         (replace_inc_dec, replace_inc_dec_mem): Remove.
13671         (emit_inc_dec_insn_before): New fn.
13672         (check_for_inc_dec): Use it, along with for_each_inc_dec.
13673         (canon_address): Pass mem modes to cselib_lookup.
13674         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
13675         (cselib_lookup_from_insn): Likewise.
13676         (cselib_subst_to_values): Likewise.
13677         * cselib.c (find_slot_memmode): New var.
13678         (cselib_find_slot): New fn.  Use it instead of
13679         htab_find_slot_with_hash everywhere.
13680         (entry_and_rtx_equal_p): Use find_slot_memmode.
13681         (autoinc_split): New fn.
13682         (rtx_equal_for_cselib_p): Rename and implement in terms of...
13683         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
13684         Deal with autoinc.  Special-case recursion into MEMs.
13685         (cselib_hash_rtx): Likewise.
13686         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
13687         address and MEM modes.
13688         (cselib_subst_to_values): Add memmode, pass it on.
13689         Deal with autoinc.
13690         (cselib_lookup): Add memmode argument, pass it on.
13691         (cselib_lookup_from_insn): Add memmode.
13692         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
13693         (struct cselib_record_autoinc_data): New.
13694         (cselib_record_autoinc_cb): New fn.
13695         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
13696         mode to cselib_lookup.  Reset autoinced REGs here instead of...
13697         (cselib_process_insn): ... here.
13698         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
13699         to cselib_lookup.
13700         (add_uses): Likewise, also to cselib_subst_to_values.
13701         (add_stores): Likewise.
13702         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
13703         cselib_subst_to_values.
13704         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
13705         * gcse.c (do_local_cprop): Adjusted.
13706         * postreload.c (reload_cse_simplify_set): Adjusted.
13707         (reload_cse_simplify_operands): Adjusted.
13708         * sel-sched-dump (debug_mem_addr_value): Pass mode.
13709
13710 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13711
13712         PR tree-optimization/45122
13713         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
13714         unsafe assumptions when there's more than one loop exit.
13715
13716 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13717
13718         PR target/47272
13719         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13720         Document using vector double with the load/store builtins, and
13721         that the load/store builtins always use Altivec instructions.
13722
13723         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
13724         to use altivec memory instructions, even on VSX.
13725         (vector_altivec_store_<mode>): Ditto.
13726
13727         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
13728         function.
13729
13730         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13731         V2DF, V2DI support to load/store overloaded builtins.
13732
13733         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
13734         altivec load/store builtins for V2DF/V2DI types.
13735
13736         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13737         set avoid indexed addresses on power6 if -maltivec.
13738         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
13739         vector_altivec_load/vector_altivec_store builtins.
13740         (altivec_expand_st_builtin): Ditto.
13741         (altivec_expand_builtin): Add VSX memory builtins.
13742         (rs6000_init_builtins): Add V2DI types to internal types.
13743         (altivec_init_builtins): Add support for V2DF/V2DI altivec
13744         load/store builtins.
13745         (rs6000_address_for_altivec): Insure memory address is appropriate
13746         for Altivec.
13747
13748         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
13749         vec_vsx_ld and vec_vsx_st.
13750         (vsx_store_<mode>): Ditto.
13751
13752         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
13753         variables to hold long long types for VSX vector memory builtins.
13754         (RS6000_BTI_unsigned_long_long): Ditto.
13755         (long_long_integer_type_internal_node): Ditti.
13756         (long_long_unsigned_type_internal_node): Ditti.
13757
13758         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
13759         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
13760         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
13761
13762         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
13763         short cuts.
13764         (vec_vsx_st): Ditto.
13765
13766 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13767
13768         * config/pa/pa-hpux10.opt: New.
13769         * config/hpux11.opt (pthread): New Driver option.
13770         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
13771         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
13772
13773 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13774
13775         * config/ia64/vms.opt: New.
13776         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
13777
13778 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
13779
13780         PR target/47580
13781         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
13782         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
13783         generator functions.
13784         (vsx_floatuns<VSi><mode>2): Ditto.
13785         (vsx_fix_trunc<mode><VSi>2): Ditto.
13786         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
13787
13788 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13789
13790         * config/i386/djgpp.opt (posix): New Driver option.
13791
13792 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
13793
13794         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
13795         Move to the unsupported targets list.
13796
13797 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
13798
13799         PR rtl-optimization/47525
13800         * df-scan.c: Update copyright years.
13801         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
13802         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
13803
13804 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13805
13806         * config/i386/sysv4.h (TARGET_VERSION): Remove.
13807         (SUBTARGET_RETURN_IN_MEMORY): Remove.
13808         (ASM_OUTPUT_ASCII): Remove.
13809         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
13810
13811 2011-02-02  Jeff Law  <law@redhat.com>
13812
13813         PR middle-end/47543
13814         * reload.c (find_reloads_address): Handle reg+d address where both
13815         components are invalid by reloading the entire address.
13816
13817 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13818             Richard Guenther  <rguenther@suse.de>
13819
13820         PR tree-optimization/40979
13821         PR bootstrap/47044
13822         * passes.c (init_optimization_passes): After LIM call copy_prop
13823         and DCE to clean up.
13824         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
13825
13826 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13827
13828         PR tree-optimization/47576
13829         PR tree-optimization/47555
13830         * doc/invoke.texi (scev-max-expr-complexity): Documented.
13831         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13832         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
13833         * tree-scalar-evolution.c (follow_ssa_edge): Use
13834         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
13835
13836 2011-02-02  Richard Guenther  <rguenther@suse.de>
13837
13838         PR tree-optimization/47566
13839         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
13840
13841 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13842
13843         PR debug/47106
13844         PR debug/47402
13845         * tree-inline.c (declare_return_variable): Remove unused caller
13846         variable.
13847
13848         PR debug/47106
13849         PR debug/47402
13850         * tree-flow-inline.h (clear_is_used, is_used_p): New.
13851         * cfgexpand.c (account_used_vars_for_block): Use them.
13852         * tree-nrv.c (tree_nrv): Likewise.
13853         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
13854         (dump_scope_block): Likewise.
13855         (remove_unused_locals): Likewise.
13856
13857         PR debug/47106
13858         PR debug/47402
13859         * tree-inline.c (declare_return_variable): Add result decl to
13860         local decls only once.
13861         * gimple-low.c (record_vars_into): Mark newly-created variables
13862         as referenced.
13863
13864 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13865
13866         PR debug/47498
13867         PR debug/47501
13868         PR debug/45136
13869         PR debug/45130
13870         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13871         debug insns.
13872         (no_real_insns_p, schedule_block, set_priorities): Drop special
13873         treatment of boundary debug insns.
13874         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13875         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
13876         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13877         (BOUNDARY_DEBUG_INSN_P): Likewise.
13878         (SCHEDULE_DEBUG_INSN_P): Likewise.
13879         * sched-rgn.c (init_ready_list): Drop special treatment of
13880         boundary debug insns.
13881         * final.c (rest_of_clean_state): Clear notes' BB.
13882
13883 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13884
13885         * config/openbsd.opt (assert=): New Driver option.
13886
13887 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13888
13889         * config/i386/nto.opt: New.
13890         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
13891
13892 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13893
13894         * config/i386/netware.opt: New.
13895         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
13896
13897 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13898
13899         * config/interix.opt (posix): New Driver option.
13900
13901 2011-02-01  DJ Delorie  <dj@redhat.com>
13902
13903         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
13904
13905         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
13906         class for A0/A1.
13907
13908 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
13909
13910         PR tree-optimization/47561
13911         * toplev.c (process_options): Print the Graphite flags.  Add
13912         flag_loop_flatten to the list of options requiring Graphite.
13913
13914 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13915
13916         * config/i386/cygming.opt (posix): New Driver option.
13917
13918 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13919
13920         * config/arm/vxworks.opt: New.
13921         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
13922
13923 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13924
13925         * config/alpha/elf.opt: New.
13926         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
13927         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
13928
13929 2011-02-01  Richard Guenther  <rguenther@suse.de>
13930
13931         PR tree-optimization/47559
13932         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
13933         store-motion on references that can throw.
13934
13935 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
13936
13937         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
13938         * tree-pass.h (TDF_CSELIB): New macro.
13939         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
13940         cselib_lookup): Check for it rather than for TDF_DETAILS.
13941
13942 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
13943
13944         PR driver/47547
13945         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13946         is HOST_BIT_BUCKET.
13947
13948         * opts.c (finish_options): Don't add x_aux_base_name if it is
13949         HOST_BIT_BUCKET.
13950
13951 2011-02-01  Richard Guenther  <rguenther@suse.de>
13952
13953         PR tree-optimization/47555
13954         Revert
13955         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
13956
13957         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13958
13959 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
13960
13961         PR gcc/46692
13962         * config/lm32/t-lm32: Add multilib for all CPU options.
13963
13964 2011-02-01  Richard Guenther  <rguenther@suse.de>
13965
13966         PR tree-optimization/47541
13967         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13968         sure to have a field at offset zero.
13969
13970 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13971
13972         * config/arc/arc.opt (EB, EL): New Driver options.
13973
13974 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13975
13976         * config/alpha/osf5.opt: New.
13977         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13978
13979 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13980
13981         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13982
13983 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
13984
13985         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13986         -floop-interchange.
13987         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13988         is an alias of -floop-interchange and that it requires the
13989         Graphite infrastructure.
13990         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13991         flag_loop_interchange based on the value of flag_tree_loop_linear.
13992
13993 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
13994             Richard Guenther  <rguenther@suse.de>
13995
13996         PR tree-optimization/47538
13997         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13998         type instead of r1type, except for comparisons.  For right
13999         shifts and comparisons punt if there are mismatches in
14000         sizetype vs. non-sizetype types.
14001
14002 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14003
14004         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14005         avx_runtime.
14006
14007 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14008
14009         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
14010         version number.
14011         * configure: Regenerate.
14012
14013 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14014
14015         * configure.ac (gcc_cv_ld_static_option): Define.
14016         (gcc_cv_ld_dynamic_option): Define.
14017         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
14018         instead.
14019         (HAVE_LD_STATIC_DYNAMIC): Update message.
14020         (LD_STATIC_OPTION): Define.
14021         (LD_DYNAMIC_OPTION): Define.
14022         * configure: Regenerate.
14023         * config.in: Regenerate.
14024         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
14025         HAVE_LD_STATIC_DYNAMIC]: Use them.
14026
14027 2011-01-31  Nick Clifton  <nickc@redhat.com>
14028
14029         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
14030         registers inside interrupt handlers if the handler is not a leaf
14031         function.
14032
14033 2011-01-31  Nick Clifton  <nickc@redhat.com>
14034
14035         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
14036         reg_renumber returning an INVALID_REGNUM.
14037
14038 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
14039
14040         PR libgcj/44341
14041         * doc/install.texi: Document host options discarded when cross
14042         configuring target libraries.
14043
14044 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
14045
14046         Reverted:
14047         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14048         PR debug/45136
14049         PR debug/45130
14050         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14051         debug insns.
14052         (no_real_insns_p, schedule_block, set_priorities): Drop special
14053         treatment of boundary debug insns.
14054         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14055         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14056         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14057         (BOUNDARY_DEBUG_INSN_P): Likewise.
14058         (SCHEDULE_DEBUG_INSN_P): Likewise.
14059         * sched-rgn.c (init_ready_list): Drop special treatment of
14060         boundary debug insns.
14061         * final.c (rest_of_clean-state): Clear notes' BB.
14062
14063 2011-01-31  Alan Modra  <amodra@gmail.com>
14064
14065         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
14066         toc relative expressions as we do in print_operand_address.
14067
14068 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
14069
14070         * doc/extend.texi: Follow spelling conventions.
14071         * doc/invoke.texi: Fix a typo.
14072
14073 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
14074
14075         * config/hpux11.opt: New.
14076         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
14077         ia64*-*-hpux*): Use hpux11.opt.
14078
14079 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
14080
14081         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
14082         to tmake_file.
14083
14084 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14085
14086         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
14087         support sites.
14088
14089 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14090
14091         * doc/install.texi (Binaries): Remove outdated reference for
14092         Motorola 68HC11/68HC12 downloads.
14093
14094 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14095
14096         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
14097         Drepper's paper.
14098
14099 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
14100
14101         PR bootstrap/47147
14102         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
14103         used by NetBSD.
14104
14105 2011-01-28  Ahmad Sharif  <asharif@google.com>
14106
14107         * value-prof.c (check_counter): Corrected error message.
14108
14109 2011-01-29  Jie Zhang  <jie@codesourcery.com>
14110
14111         * config/arm/arm.c (arm_legitimize_reload_address): New.
14112         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14113         arm_legitimize_reload_address.
14114         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
14115
14116 2011-01-28  Ian Lance Taylor  <iant@google.com>
14117
14118         * godump.c (go_define): Ignore macros whose definitions include
14119         two adjacent operands.
14120
14121 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
14122
14123         PR target/42894
14124         * varasm.c (force_const_mem): Store copy of x in desc->constant
14125         instead of x itself.
14126         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
14127         itself into REG_EQUAL note.
14128
14129 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
14130
14131         * config/freebsd.opt (posix, rdynamic): New Driver options.
14132
14133 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14134
14135         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
14136         -Bstatic/-Bdynamic.
14137         * configure: Regenerate.
14138
14139 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
14140
14141         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
14142         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
14143
14144 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
14145
14146         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
14147         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
14148         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14149         (s390_preferred_reload_class): Make static. Change return and
14150         'rclass' argument type to reg_class_t.
14151
14152 2011-01-27  Jan Hubicka  <jh@suse.cz>
14153
14154         PR middle-end/46949
14155         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
14156         (process_function_and_variable_attributes): Check defined weakrefs.
14157
14158 2011-01-27  Martin Jambor  <mjambor@suse.cz>
14159
14160         PR tree-optimization/47228
14161         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
14162         build_ref_for_offset.
14163
14164 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14165
14166         * config/spu/spu-elf.h (ASM_SPEC): Remove.
14167
14168 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
14169
14170         PR rtl-optimization/46856
14171         * postreload.c (reload_combine_recognize_const_pattern): Do not
14172         separate cc0 setter and user on cc0 targets.
14173
14174 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
14175
14176         PR c/43082
14177         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
14178         passed a VOID_TYPE expression, immediately emit an error and
14179         return error_mark_node.
14180
14181 2011-01-26  Jeff Law  <law@redhat.com>
14182
14183         PR rtl-optimization/47464
14184         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
14185         rather than may_trap_p as needed.
14186
14187 2011-01-26  DJ Delorie  <dj@redhat.com>
14188
14189         PR rtl-optimization/46878
14190         * combine.c (insn_a_feeds_b): Check for the implicit cc0
14191         setter/user dependency as well.
14192
14193 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
14194
14195         PR rtl-optimization/44469
14196         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
14197         after removing trivially dead basic blocks.
14198
14199 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14200
14201         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
14202         * config/frv/frv.h (LINK_SPEC): Likewise.
14203         * config/i386/netware.h (LINK_SPEC): Likewise.
14204         * config/m68k/linux.h (ASM_SPEC): Likewise.
14205         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
14206         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14207         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14208         * config/sparc/linux.h (ASM_SPEC): Likewise.
14209         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14210         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14211
14212 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14213
14214         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
14215         * config/frv/frv.h (ASM_SPEC): Likewise.
14216         * config/m68k/linux.h (ASM_SPEC): Likewise.
14217         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14218         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
14219         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14220         * config/sparc/linux.h (ASM_SPEC): Likewise.
14221         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14222         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14223
14224 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14225
14226         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
14227         * config/frv/frv.h (LINK_SPEC): Likewise.
14228         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14229
14230 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14231
14232         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
14233         * config/frv/frv.h (ASM_SPEC): Likewise.
14234         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
14235         * config/m68k/linux.h (ASM_SPEC): Likewise.
14236         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14237         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
14238         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14239         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
14240         * config/sparc/linux.h (ASM_SPEC): Likewise.
14241         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14242         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14243         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
14244
14245 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
14246
14247         PR target/46997
14248         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
14249         (*mux2): Ditto.
14250         (vec_extract_evenodd_help): Ditto.
14251         (vec_extract_evenv4hi): Ditto.
14252         (vec_extract_oddv4hi): Ditto.
14253         (vec_interleave_lowv2si): Ditto.
14254         (vec_interleave_highv2si): Ditto.
14255         (vec_extract_evenv2si): Ditto.
14256         (vec_extract_oddv2si: Ditto.
14257         (vec_pack_trunc_v2si): Ditto.
14258
14259 2011-01-22  Jan Hubicka  <jh@suse.cz>
14260
14261         PR target/47237
14262         * cgraph.h (cgraph_local_info): New field can_change_signature.
14263         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
14264         signature can change.
14265         (ipcp_estimate_growth): Call sequence simplify only if calle signature
14266         can change.
14267         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
14268         (cgraph_function_versioning): We can not change signature of functions
14269         that don't allow that.
14270         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
14271         (lto_input_node): Likewise.
14272         * ipa-inline.c (compute_inline_parameters): Compute
14273         local.can_change_signature.
14274         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
14275         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
14276         functions that can not change signature.
14277         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
14278         init_cumulative_args): Do not use local calling conventions
14279         for functions that can not change signature.
14280
14281 2011-01-22  Jan Hubicka  <jh@suse.cz>
14282
14283         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
14284
14285 2011-01-26  Richard Guenther  <rguenther@suse.de>
14286
14287         PR tree-optimization/47190
14288         * cgraphunit.c (process_common_attributes): New function.
14289         (process_function_and_variable_attributes): Use it.
14290
14291 2011-01-26  Richard Guenther  <rguenther@suse.de>
14292
14293         PR lto/47423
14294         * cgraphbuild.c (record_eh_tables): Record reference to personality
14295         function.
14296
14297 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
14298
14299         PR debug/45454
14300         * sel-sched.c (moveup_expr): Don't let debug insns prevent
14301         non-debug insns from moving up.
14302
14303 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14304
14305         PR target/40125
14306         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
14307         t-dlldir{,-x} fragment for build and add it to tmake_file.
14308         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14309         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
14310         * config/i386/t-dlldir: New file.
14311         (SHLIB_DLLDIR): Define.
14312         * config/i386/t-dlldir-x: New file.
14313         (SHLIB_DLLDIR): Define.
14314         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
14315         (SHLIB_INSTALL): Use it.
14316
14317 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
14318
14319         PR target/47246
14320         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
14321         lower bound of the allowed Thumb-2 coprocessor load/store
14322         index range to -256. Add explaining comment.
14323
14324 2011-01-25  Ian Lance Taylor  <iant@google.com>
14325
14326         * godump.c (go_define): Improve lexing of macro expansion to only
14327         accept expressions which match Go spec.
14328
14329 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14330
14331         PR c++/43601
14332         * tree.c (handle_dll_attribute): Handle it.
14333         * doc/extend.texi (@item dllexport): Mention it.
14334         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14335
14336 2011-01-25  Ian Lance Taylor  <iant@google.com>
14337
14338         PR tree-optimization/26854
14339         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14340         (decl_jump_unsafe): Move higher in file, with no other change.
14341         (bind): Set has_jump_unsafe_decl if appropriate.
14342         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14343         (check_earlier_gotos): Likewise.
14344         (c_check_switch_jump_warnings): Likewise.
14345
14346 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
14347
14348         * doc/invoke.texi (Warning Options): Add missing hyphen.
14349         (-fprofile-dir): Minor grammatical fixes.
14350         (-fbranch-probabilities): Likewise.
14351
14352 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14353
14354         PR debug/45136
14355         PR debug/45130
14356         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14357         debug insns.
14358         (no_real_insns_p, schedule_block, set_priorities): Drop special
14359         treatment of boundary debug insns.
14360         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14361         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14362         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14363         (BOUNDARY_DEBUG_INSN_P): Likewise.
14364         (SCHEDULE_DEBUG_INSN_P): Likewise.
14365         * sched-rgn.c (init_ready_list): Drop special treatment of
14366         boundary debug insns.
14367         * final.c (rest_of_clean-state): Clear notes' BB.
14368
14369 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14370
14371         * Makefile.in (LAMBDA_H): Removed.
14372         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14373         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14374         lambda-trans.o, and tree-loop-linear.o.
14375         (lto-symtab.o): Remove dependence on LAMBDA_H.
14376         (tree-loop-linear.o): Remove rule.
14377         (lambda-mat.o): Same.
14378         (lambda-trans.o): Same.
14379         (lambda-code.o): Same.
14380         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14381         (tree-vect-slp.o): Same.
14382         * hwint.h (gcd): Moved here.
14383         (least_common_multiple): Same.
14384         * lambda-code.c: Removed.
14385         * lambda-mat.c: Removed.
14386         * lambda-trans.c: Removed.
14387         * lambda.h: Removed.
14388         * tree-loop-linear.c: Removed.
14389         * lto-symtab.c: Do not include lambda.h.
14390         * omega.c (gcd): Removed.
14391         * passes.c (init_optimization_passes): Remove pass_linear_transform.
14392         * tree-data-ref.c (print_lambda_vector): Moved here.
14393         (lambda_vector_copy): Same.
14394         (lambda_matrix_copy): Same.
14395         (lambda_matrix_id): Same.
14396         (lambda_vector_first_nz): Same.
14397         (lambda_matrix_row_add): Same.
14398         (lambda_matrix_row_exchange): Same.
14399         (lambda_vector_mult_const): Same.
14400         (lambda_vector_negate): Same.
14401         (lambda_matrix_row_negate): Same.
14402         (lambda_vector_equal): Same.
14403         (lambda_matrix_right_hermite): Same.
14404         * tree-data-ref.h: Do not include lambda.h.
14405         (lambda_vector): Moved here.
14406         (lambda_matrix): Same.
14407         (dependence_level): Same.
14408         (lambda_transform_legal_p): Removed declaration.
14409         (lambda_collect_parameters): Same.
14410         (lambda_compute_access_matrices): Same.
14411         (lambda_vector_gcd): Same.
14412         (lambda_vector_new): Same.
14413         (lambda_vector_clear): Same.
14414         (lambda_vector_lexico_pos): Same.
14415         (lambda_vector_zerop): Same.
14416         (lambda_matrix_new): Same.
14417         * tree-flow.h (least_common_multiple): Removed declaration.
14418         * tree-parloops.c (lambda_trans_matrix): Moved here.
14419         (LTM_MATRIX): Same.
14420         (LTM_ROWSIZE): Same.
14421         (LTM_COLSIZE): Same.
14422         (LTM_DENOMINATOR): Same.
14423         (lambda_trans_matrix_new): Same.
14424         (lambda_matrix_vector_mult): Same.
14425         (lambda_transform_legal_p): Same.
14426         * tree-pass.h (pass_linear_transform): Removed declaration.
14427         * tree-ssa-loop.c (tree_linear_transform): Removed.
14428         (gate_tree_linear_transform): Removed.
14429         (pass_linear_transform): Removed.
14430         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14431         flag_loop_interchange.
14432
14433 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14434
14435         PR tree-optimization/47265
14436         PR tree-optimization/47443
14437         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14438         if name still has some uses.
14439
14440 2011-01-25  Martin Jambor  <mjambor@suse.cz>
14441
14442         PR tree-optimization/47382
14443         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14444         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14445
14446 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
14447
14448         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14449         sjlj_except_unwind_info.
14450
14451 2011-01-25  Richard Guenther  <rguenther@suse.de>
14452
14453         PR tree-optimization/47426
14454         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14455         visible functions results escape.
14456
14457 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14458
14459         PR target/45701
14460         * config/arm/arm.c (any_sibcall_uses_r3): New function.
14461         (arm_get_frame_offsets): Use it.
14462
14463 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14464             Jakub Jelinek  <jakub@redhat.com>
14465
14466         PR tree-optimization/47271
14467         * tree-if-conv.c (bb_postdominates_preds): New.
14468         (if_convertible_bb_p): Call bb_postdominates_preds.
14469         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14470         (predicate_scalar_phi): Call bb_postdominates_preds.
14471
14472 2011-01-25  Nick Clifton  <nickc@redhat.com>
14473
14474         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14475         * config/rx/rx.c (rx_function_value): Likewise.
14476         (rx_promote_function_mode): Likewise.
14477         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14478         in order to make it legitimate.
14479         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14480         make sure that the first operand is the same as the result register.
14481         (addsi3_unspec): Delete.
14482         (subdi3): Do not accept immediate operands.
14483         (subdi3_internal): Likewise.
14484
14485 2011-01-25  Jeff Law  <law@redhat.com>
14486
14487         PR rtl-optimization/37273
14488         * ira-costs.c (scan_one_insn): Detect constants living in memory and
14489         handle them like argument loads from stack slots.  Do not double
14490         count memory for memory constants and argument loads from stack slots.
14491
14492 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14493
14494         PR tree-optimization/47427
14495         PR tree-optimization/47428
14496         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14497         coalesce if the new root var would be TREE_READONLY.
14498
14499 2011-01-25  Richard Guenther  <rguenther@suse.de>
14500
14501         PR middle-end/47414
14502         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14503         correct type for TBAA.
14504
14505 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14506
14507         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14508         (close_phi_written_to_memory): Call for_each_index with
14509         dr_indices_valid_in_loop.
14510
14511 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14512
14513         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14514         when it is initialized.
14515
14516 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14517
14518         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14519         call to graphite_find_data_references_in_stmt.
14520         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14521         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
14522         call to graphite_find_data_references_in_stmt.
14523         (analyze_drs_in_stmts): Same.
14524         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14525         in which the scalar analysis of indices is performed.
14526         (create_data_ref): Same.  Update call to dr_analyze_indices.
14527         (find_data_references_in_stmt): Update call to create_data_ref.
14528         (graphite_find_data_references_in_stmt): Same.
14529         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14530         declaration.
14531         (create_data_ref): Same.
14532         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14533         call to create_data_ref.
14534
14535 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14536
14537         * graphite-sese-to-poly.c (build_poly_scop): Move
14538         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14539
14540 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14541
14542         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14543         VAR_DECL, PARM_DECL, and RESULT_DECL.
14544
14545 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14546
14547         * graphite-dependences.c (reduction_dr_1): Allow several reductions
14548         in a reduction PBB.
14549         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14550         that have already been marked as PBB_IS_REDUCTION.
14551
14552 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14553
14554         * graphite-scop-detection.c (same_close_phi_node): New.
14555         (remove_duplicate_close_phi): New.
14556         (make_close_phi_nodes_unique): New.
14557         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14558
14559 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14560
14561         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14562         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14563         of both data references to be the same.
14564
14565 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14566
14567         * graphite-dependences.c (build_lexicographical_constraint): Remove
14568         the gdim parameter.
14569         (build_lexicographical_constraint): Adjust call to
14570         ppl_powerset_is_empty.
14571         (dependence_polyhedron): Same.
14572         (graphite_legal_transform_dr): Same.
14573         (graphite_carried_dependence_level_k): Same.
14574         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14575         parameter.
14576         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14577
14578 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14579
14580         * graphite-sese-to-poly.c
14581         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14582         (close_phi_written_to_memory): New.
14583         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14584         and unshare_expr.
14585
14586 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14587
14588         * doc/install.texi: Update the expected version number of PPL to 0.11.
14589         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14590         #if PPL_VERSION_MINOR < 11.
14591
14592 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14593
14594         * graphite-dependences.c: Include graphite-cloog-util.h.
14595         (new_poly_ddr): Inlined into dependence_polyhedron.
14596         (free_poly_ddr): Moved close by new_poly_ddr.
14597         (dependence_polyhedron_1): Renamed dependence_polyhedron.
14598         Early return NULL when ppl_powerset_is_empty returns true.
14599         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
14600         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
14601         (graphite_legal_transform_dr): Call new_poly_ddr.
14602         (graphite_carried_dependence_level_k): Same.
14603         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
14604         (dot_transformed_deps_stmt_1): Removed.
14605         (dot_deps_stmt_1): Call dot_deps_stmt_2.
14606         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
14607         (dot_deps_1): Call dot_deps_2.
14608         * Makefile.in (graphite-dependences.o): Add missing dependence on
14609         graphite-cloog-util.h.
14610
14611 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14612
14613         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
14614         (build_lexicographical_constraint): Same.
14615         (dependence_polyhedron_1): Same.
14616         (graphite_legal_transform_dr): Same.
14617         (graphite_carried_dependence_level_k): Same.
14618         * graphite-ppl.c (ppl_powerset_is_empty): New.
14619         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
14620         * tree-data-ref.c (dump_data_reference): Print the basic block index.
14621
14622 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14623
14624         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
14625         the "a followed by b" relation and document it.
14626
14627 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14628
14629         * graphite-dependences.c (build_lexicographical_constraint): Stop the
14630         iteration when the bag of constraints is empty.
14631
14632 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14633
14634         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
14635
14636 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14637
14638         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
14639         nest and two loop depths as parameters.
14640         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
14641         lst_perfect_nestify.
14642
14643 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14644
14645         * graphite-dependences.c (print_pddr): Call
14646         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
14647
14648 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14649
14650         * graphite-ppl.c (debug_gmp_value): New.
14651         * graphite-ppl.h (debug_gmp_value): Declared.
14652
14653 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
14654
14655         * doc/install.texi: Document availability of cloog-0.16.
14656
14657 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
14658
14659         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
14660         invalid postdominance info.
14661
14662 2011-01-24  Jan Hubicka  <jh@suse.cz>
14663
14664         PR c/21659
14665         * doc/extend.texi (weak pragma): Drop claim that it must
14666         appear before definition.
14667         * varasm.c (merge_weak, declare_weak): Only sanity check
14668         that DECL is not output at a time it is declared weak.
14669
14670 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
14671
14672         * machmode.def: Fixed comments.
14673
14674 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
14675
14676         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
14677
14678 2011-01-24  Paul Koning  <ni1d@arrl.net>
14679
14680         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
14681         WORDS_BIG_ENDIAN.
14682
14683 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
14684
14685         PR target/46519
14686         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
14687         (block_info): Add scanned and prev.
14688         (move_or_delete_vzeroupper_2): Return if the basic block
14689         has been scanned and the upper 128bit state is unchanged
14690         from the last scan.
14691         (move_or_delete_vzeroupper_1): Return true if the exit
14692         state is changed.
14693         (move_or_delete_vzeroupper): Visit basic blocks using the
14694         work-list based algorithm based on vt_find_locations in
14695         var-tracking.c.
14696
14697         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
14698
14699 2011-01-24  Nick Clifton  <nickc@redhat.com>
14700
14701         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
14702         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
14703         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
14704         then define __v850e1__.
14705         * doc/invoke.texi: Document -mv850es.
14706
14707 2011-01-24  Richard Henderson  <rth@redhat.com>
14708
14709         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
14710         compound unordered comparisons.
14711         * config/rx/rx.c (rx_split_fp_compare): Remove.
14712         * config/rx/rx-protos.h: Update.
14713         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
14714         (cbranchsf4): Don't call rx_split_fp_compare.
14715         (*cbranchsf4): Use rx_split_cbranch.
14716         (*cmpsf): Don't accept "i" constraint.
14717         (*conditional_branch): Only valid after reload.
14718         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
14719
14720 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
14721
14722         PR target/47385
14723         * config/rs6000/altivec.md (vector constant splitters): Add
14724         support for creating vector single precision constants if -mvsx is
14725         used and we would create the constant using Altivec primitives.
14726
14727 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
14728             Richard Sandiford  <rdsandiford@googlemail.com>
14729
14730         PR rtl-optimization/47166
14731         * reload1.c (emit_reload_insns): Disable the spill_reg_store
14732         mechanism for PRE_MODIFY and POST_MODIFY.
14733         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
14734         reloadreg.
14735
14736 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
14737
14738         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
14739
14740 2011-01-22  Jan Hubicka  <jh@suse.cz>
14741
14742         PR lto/47333
14743         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
14744
14745 2011-01-22  Jan Hubicka  <jh@suse.cz>
14746
14747         PR tree-optimization/43884
14748         PR lto/44334
14749         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
14750         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
14751
14752 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
14753
14754         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14755         * config/s390/s390.c (s390_register_move_cost,
14756         s390_memory_move_cost): New.
14757         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14758
14759 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14760
14761         PR middle-end/47401
14762         * except.c (sjlj_assign_call_site_values): Move setting the
14763         crtl->uses_eh_lsda flag to ...
14764         (sjlj_mark_call_sites): ... here.
14765         (sjlj_emit_function_enter): Support NULL dispatch label.
14766         (sjlj_build_landing_pads): In a function with no landing pads
14767         that still has must-not-throw regions, generate code to register
14768         a personality function with empty LSDA.
14769
14770 2011-01-21  Richard Henderson  <rth@redhat.com>
14771
14772         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
14773
14774         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
14775
14776         * compare-elim.c: New file.
14777         * Makefile.in (OBJS-common): Add it.
14778         (compare-elim.o): New.
14779         * common.opt (fcompare-elim): New.
14780         * opts.c (default_options_table): Add OPT_fcompare_elim.
14781         * tree-pass.h (pass_compare_elim_after_reload): New.
14782         * passes.c (init_optimization_passes): Add it.
14783         * recog.h: Protect against re-inclusion.
14784         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
14785         * doc/invoke.texi (-fcompare-elim): Document it.
14786         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
14787         * doc/tm.texi: Rebuild.
14788
14789 2011-01-22  Nick Clifton  <nickc@redhat.com>
14790
14791         * config/rx/rx.md (cstoresf4): Pass comparison operator to
14792         rx_split_fp_compare.
14793
14794 2011-01-22  Nick Clifton  <nickc@redhat.com>
14795
14796         * config/rx/rx.md (UNSPEC_CONST): New.
14797         (deallocate_and_return): Wrap the amount popped off the stack in
14798         an UNSPEC_CONST in order to stop it being rejected by
14799         -mmax-constant-size.
14800         (pop_and_return): Add a "(return)" rtx.
14801         (call): Drop the immediate operand.
14802         (call_internal): Likewise.
14803         (call_value): Likewise.
14804         (call_value_internal): Likewise.
14805         (sibcall_internal): Likewise.
14806         (sibcall_value_internal): Likewise.
14807         (sibcall): Likewise.  Generate an explicit call using
14808         sibcall_internal.
14809         (sibcall_value): Likewise.
14810         (mov<>): FAIL if a constant operand is not legitimate.
14811         (addsi3_unpsec): New pattern.
14812
14813         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
14814         (ok_for_max_constant): New function.
14815         (gen_safe_add): New function.
14816         (rx_expand_prologue): Use gen_safe_add.
14817         (rx_expand_epilogue): Likewise.
14818         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
14819         UNSPEC CONSTs.
14820
14821 2011-01-21  Jeff Law  <law@redhat.com>
14822
14823         PR tree-optimization/47053
14824         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
14825         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
14826         statements are deleted.
14827         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
14828         is nonempty, then purge dead edges and cleanup the CFG.
14829
14830 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14831
14832         PR debug/47402
14833         Temporarily revert:
14834         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14835         PR debug/47106
14836         * tree-dfa.c (create_var_ann): Mark variable as used.
14837
14838 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14839
14840         PR middle-end/45566
14841         * except.c (convert_to_eh_region_ranges): Emit queued no-region
14842         notes from other section in hot/cold partitioning even if
14843         last_action is -3.  Increment call_site_base.
14844
14845         PR rtl-optimization/47366
14846         * fwprop.c (forward_propagate_into): Return bool.  If
14847         any changes are made, -fnon-call-exceptions is used and
14848         REG_EH_REGION note is present, call purge_dead_edges
14849         and return true if it purged anything.
14850         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
14851         any EH edges were purged.
14852
14853 2011-01-21  Jeff Law  <law@redhat.com>
14854
14855         PR rtl-optimization/41619
14856         * caller-save.c (setup_save_areas): Break out code to determine
14857         which hard regs are live across calls by examining the reload chains
14858         so that it is always used.
14859         Eliminate code which checked REG_N_CALLS_CROSSED.
14860
14861 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14862
14863         PR tree-optimization/47355
14864         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
14865         NOP has non-debug uses beyond PHIs in new_bb.
14866
14867 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14868
14869         PR debug/47106
14870         * cfgexpand.c (account_used_vars_for_block): Only account vars
14871         that are annotated as used.
14872         (estimated_stack_frame_size): Don't set TREE_USED.
14873         * tree-dfa.c (create_var_ann): Mark variable as used.
14874
14875 2011-01-21  Richard Guenther  <rguenther@suse.de>
14876
14877         PR middle-end/47395
14878         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
14879
14880 2011-01-21  Richard Guenther  <rguenther@suse.de>
14881
14882         PR tree-optimization/47365
14883         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
14884         (vn_reference_lookup_pieces): Adjust.
14885         (vn_reference_lookup): Likewise.
14886         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
14887         (vn_reference_lookup_3): Only look through kills if in
14888         VN_WALKREWRITE mode.
14889         (vn_reference_lookup_pieces): Adjust.
14890         (vn_reference_lookup): Likewise.
14891         (visit_reference_op_load): Likewise.
14892         (visit_reference_op_store): Likewise.
14893         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
14894         (compute_avail): Likewise.
14895         (eliminate): Likewise.
14896
14897 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14898
14899         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
14900         DECL_IGNORED_P non-reg vars if they are used.
14901
14902         PR tree-optimization/47391
14903         * varpool.c (const_value_known_p): Return false if
14904         decl is volatile.
14905
14906 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
14907
14908         PR bootstrap/47215
14909         * config/i386/i386.c (ix86_local_alignment): Handle
14910         case for va_list_type_node is nil.
14911         (ix86_canonical_va_list_type): Likewise.
14912
14913 2011-01-21  Alan Modra  <amodra@gmail.com>
14914
14915         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
14916         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
14917
14918 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14919
14920         * config/arm/arm.md (define_attr type): Rename f_load
14921         and f_store to f_fpa_load and f_fpa_store. Update.
14922         (write_conflict): Deal with rename fallout.
14923         (*push_fp_multi): Likewise.
14924         * config/arm/fpa.md (f_load): Use f_fpa_load.
14925         (f_store): Use f_fpa_store.
14926         (*movsf_fpa): Likewise.
14927         (*movdf_fpa): Likewise.
14928         (*movxf_fpa): Likewise.
14929         (*thumb2_movsf_fpa): Likewise.
14930         (*thumb2_movdf_fpa): Likewise.
14931         (*thumb2_movxf_fpa): Likewise.
14932         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
14933         f_loadd and f_stored.
14934         (*thumb2_movdi_vfp): Likewise.
14935         (*thumb2_movsf_vfp): Fix attribute to f_loads.
14936         (*thumb2_movsi_vfp): Likewise.
14937         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
14938         Use f_loads instead of f_load.
14939         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
14940
14941 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
14942
14943         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14944         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14945         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14946         (xtensa_mode_dependent_address_p): New function.
14947         (constantpool_address_p): Make static. Change return type to bool.
14948         Change argument type to const_rtx. Use CONST_INT_P predicate.
14949
14950 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
14951
14952         PR debug/46583
14953         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14954
14955 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14956
14957         PR debug/47283
14958         * cfgexpand.c (expand_debug_expr): Instead of generating
14959         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14960         etc. handling.
14961
14962 2011-01-20  Richard Guenther  <rguenther@suse.de>
14963
14964         PR middle-end/47370
14965         * tree-inline.c (remap_gimple_op_r): Recurse manually for
14966         the pointer operand of MEM_REFs.
14967
14968 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14969
14970         PR tree-optimization/46130
14971         * ipa-split.c (consider_split): If return_bb contains non-virtual
14972         PHIs other than for retval or if split_function would not adjust it,
14973         refuse to split.
14974
14975 2011-01-20  Richard Guenther  <rguenther@suse.de>
14976
14977         PR tree-optimization/47167
14978         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14979         Revert previous change, only avoid enumeral type changes.
14980
14981 2011-01-19  Mike Stump  <mikestump@comcast.net>
14982
14983         * doc/tm.texi.in (BRANCH_COST): Englishify.
14984         * doc/tm.texi (BRANCH_COST): Likewise.
14985
14986 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
14987
14988         PR c++/47291
14989         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
14990         (gen_scheduled_generic_parms_dies): New functions.
14991         (gen_struct_or_union_type_die): Schedule template parameters DIEs
14992         generation for the end of CU compilation.
14993         (dwarf2out_finish): Generate template parameters DIEs here.
14994
14995 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14996
14997         PR debug/46240
14998         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14999         debug bind stmt on merge edges.
15000
15001 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
15002
15003         PR debug/47079
15004         PR debug/46724
15005         * function.c (instantiate_expr): Instantiate incoming rtl of
15006         implicit arguments, and recurse on VALUE_EXPRs.
15007         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
15008         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
15009
15010 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
15011
15012         * c-parser.c (c_parser_for_statement): Initialize
15013         collection_expression.
15014
15015 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15016
15017         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
15018
15019 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15020
15021         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
15022         (LINK_SHLIB_SPEC): Don't use %(link_path).
15023         (SUBTARGET_EXTRA_SPECS): Remove link_path.
15024
15025 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15026
15027         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
15028         (NO_SHARED_LIB_SUPPORT): Remove.
15029         (LINK_SHLIB_SPEC): Remove one conditional definition.
15030
15031 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15032
15033         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
15034         %{call_shared}.
15035         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
15036         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
15037         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
15038         %{call_shared} and conditionals on these options not being passed.
15039         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
15040         %{call_shared}.
15041
15042 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
15043
15044         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
15045         simplify.
15046
15047         * ipa-split.c: Spelling fixes.
15048
15049 2011-01-19  Richard Henderson  <rth@redhat.com>
15050
15051         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
15052         (*mulsi3): Likewise.
15053
15054         * longlong.h [__mn10300__] (count_leading_zeros): New.
15055         [__mn10300__] (umul_ppmm, smul_ppmm): New.
15056         [__mn10300__] (add_ssaaaa, subddmmss): New.
15057         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
15058         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
15059
15060 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15061
15062         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
15063
15064 2011-01-19  Richard Henderson  <rth@redhat.com>
15065
15066         * config/mn10300/mn10300.md (addsi3_flags): New.
15067         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
15068         (subsi3_flags, subc_internal, subdi3): New.
15069         (subdi3_internal, *subdi3_degenerate): New.
15070         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
15071
15072         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
15073         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
15074         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
15075         * config/mn10300/mn10300-protos.h: Update.
15076         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
15077         (return_ret): Likewise.  Rename from return_internal_regs.
15078         (return_internal): Remove.
15079
15080         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
15081         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
15082         (mn10300_legitimate_constant_p): Likewise.
15083         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
15084         (mn10300_frame_size): New.
15085         (mn10300_expand_prologue): Use it.
15086         (mn10300_expand_epilogue): Likewise.
15087         (mn10300_initial_offset): Likewise.
15088         * config/mn10300/mn10300-protos.h: Update.
15089         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
15090         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
15091         (prologue, epilogue, return_internal): Tidy output code.
15092         (mn10300_store_multiple_operation, return): Likewise.
15093         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
15094         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
15095         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
15096         (load_pic, am33_load_pic): New.
15097         (mn10300_load_pic0, mn10300_load_pic1): New.
15098
15099         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
15100         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
15101         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
15102         (cc_flags_for_mode, cc_flags_for_code): New.
15103         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
15104         overflow flag is not valid.  Validate that the flags we need
15105         for the comparison are valid.
15106         (mn10300_output_cmp): Remove.
15107         (mn10300_output_add): New.
15108         (mn10300_select_cc_mode): Use cc_flags_for_code.
15109         (mn10300_split_cbranch): New.
15110         (mn10300_match_ccmode): New.
15111         (mn10300_split_and_operand_count): New.
15112         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
15113         to the function.
15114         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
15115         (addsi3): ... here.  Use mn10300_output_add.
15116         (*addsi3_flags): New.
15117         (*am33_subsi3, *mn10300_subsi3): Merge...
15118         (subsi3): ... here.  Use attribute isa.
15119         (*subsi3_flags): New.
15120         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
15121         when possible.
15122         (*am33_andsi3, *mn10300_andsi3): Merge...
15123         (andsi3): ... here.
15124         (*andsi3_flags): New.
15125         (andsi3 splitters): New.
15126         (*am33_iorsi3, *mn10300_iorsi3): Merge...
15127         (iorsi3): ... here.
15128         (*iorsi3_flags): New.
15129         (*am33_xorsi3, *mn10300_xorsi3): Merge...
15130         (xorsi3): ... here.
15131         (*xorsi3_flags): New.
15132         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
15133         (one_cmplsi2): ... here.
15134         (*one_cmplsi2_flags): New.
15135         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
15136         instead of "dax" in constraints.  Use mn10300_split_cbranch.
15137         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
15138         use matching constraints to eliminate a self-comparison.
15139         (*integer_conditional_branch): Rename from integer_conditional_branch.
15140         Use int_mode_flags to match CC_REG.
15141         (*cbranchsi4_btst, *btstsi): New.
15142         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
15143         mn10300_split_cbranch.
15144         (*am33_cmpsf): Rename from am33_cmpsf.
15145         (*float_conditional_branch): Rename from float_conditional_branch.
15146         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
15147         (zero_extendqisi2): ... here.
15148         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
15149         (zero_extendhisi2): ... here.
15150         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
15151         (extendqisi2): ... here.
15152         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
15153         (extendhisi2): ... here.
15154         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
15155         (ashlsi3): ... here.
15156         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
15157         (lshrsi3): ... here.
15158         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
15159         (ashrsi3): ... here.
15160         (consecutive add peephole): Remove.
15161         * config/mn10300/predicates.md (label_ref_operand): New.
15162         (int_mode_flags): New.
15163         (CCZN_comparison_operator): New.
15164
15165         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
15166         (throughput_42_latency_43): New reservation.
15167         (mulsidi3, umulsidi3): New expanders.
15168         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
15169         the MDR register to allocation; separately allocate the low and
15170         high parts of the DImode result.
15171         (umulsidi3_internal): Similarly.
15172         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
15173         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
15174         (udivsi3, umodsi3): Remove.
15175         (udivmodsi4, divmodsi4): New expanders.
15176         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
15177         (*divmodsi4): Simiarly.
15178         (ext_internal): New.
15179
15180         * config/mn10300/constraints.md ("z"): New constraint.
15181         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
15182         (FIXED_REGISTERS): Don't fix MDR.
15183         (CALL_USED_REGSITERS): Reformat nicely.
15184         (REG_ALLOC_ORDER): Add MDR.
15185         (enum regclass): Add MDR_REGS.
15186         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
15187         (IRA_COVER_CLASSES): Add MDR_REGS.
15188         (REGNO_REG_CLASS): Handle MDR_REG.
15189         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
15190         (mn10300_register_move_cost): Likewise.
15191         * config/mn10300/mn10300.md (MDR_REG): New.
15192         (*movsi_internal): Handle moves to/from MDR_REGS.
15193
15194         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
15195         POST_MODIFY.
15196         (mn10300_secondary_reload): Tidy combination reload classes.
15197         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
15198         addresses for AM33.  Allow symbolic offsets for reg+imm.
15199         (mn10300_regno_in_class_p): New.
15200         (mn10300_legitimize_reload_address): New.
15201         * config/mn10300/mn10300.h (enum reg_class): Remove
15202         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
15203         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
15204         SP_OR_GENERAL_REGS.
15205         (REG_CLASS_NAMES): Update to match.
15206         (REG_CLASS_CONTENTS): Likewise.
15207         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
15208         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
15209         (REGNO_IN_RANGE_P): Remove.
15210         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
15211         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
15212         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
15213         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
15214         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
15215         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
15216         (REGNO_GENERAL_P): New.
15217         (HAVE_POST_MODIFY_DISP): New.
15218         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
15219         (LEGITIMIZE_RELOAD_ADDRESS): New.
15220         * config/mn10300/mn10300-protos.h: Update.
15221
15222         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
15223         DATA_REGS for AM33 stack-pointer destination.
15224         (mn10300_preferred_output_reload_class): Likewise.
15225         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
15226         into a form appropriate for ...
15227         (TARGET_SECONDARY_RELOAD): New.
15228         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
15229         * config/mn10300/mn10300-protos.h: Update.
15230         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
15231         reload_insi; use the "A" constraint for the scratch; handle AM33
15232         moves of sp to non-address registers.
15233
15234         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
15235         (*movqi_internal): ... here.
15236         (*am33_movhi, *mn10300_movhi): Merge into...
15237         (*movhi_internal): ... here.
15238         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
15239         as the source/destination of moves from/to SP.
15240         (movsf): Only allow for AM33-2.
15241         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
15242         any integer constant constraint.  Only allow for AM33-2.  Tidy
15243         all of the alternative outputs.
15244         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
15245         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
15246         for MN103.
15247         (udivsi3, umodsi3): New patterns for MN103 only.
15248
15249 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
15250
15251         * doc/tm.texi.in: Spell out that a lack of register class unions
15252         can lead to ICEs.
15253         * doc/tm.texi: Regenerate.
15254
15255 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
15256
15257         PR rtl-optimization/47337
15258         * dce.c (check_argument_store): New function.
15259         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
15260
15261         PR tree-optimization/47290
15262         * tree-eh.c (infinite_empty_loop_p): New function.
15263         (cleanup_empty_eh): Use it.
15264
15265 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
15266
15267         PR target/46997
15268         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
15269         (a64_expand_widen_sum): Ditto.
15270         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
15271         (vec_extract_evenodd_help): Ditto.
15272         (vec_extract_evenv4hi): Ditto.
15273         (vec_extract_oddv4hi): Ditto.
15274         (vec_extract_evenv2si): Ditto.
15275         (vec_extract_oddv2si): Ditto.
15276         (vec_extract_evenv2sf): Ditto.
15277         (vec_extract_oddv2sf): Ditto.
15278         (vec_pack_trunc_v4hi: Ditto.
15279         (vec_pack_trunc_v2si): Ditto.
15280         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
15281         (vec_interleave_highv8qi): Ditto.
15282         (mix1_r): Ditto.
15283         (vec_extract_oddv8qi): Ditto.
15284         (vec_interleave_lowv4hi): Ditto.
15285         (vec_interleave_highv4hi): Ditto.
15286         (vec_interleave_lowv2si): Ditto.
15287         (vec_interleave_highv2si): Ditto.
15288
15289 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15290
15291         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
15292         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
15293         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
15294         (pa_c_mode_for_suffix): New.
15295         (TARGET_EXPAND_BUILTIN): Define.
15296         (TARGET_C_MODE_FOR_SUFFIX): Define.
15297         (pa_builtins): Define.
15298         (pa_init_builtins): Register __float128 type and init new support
15299         builtins.
15300         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
15301         * config/pa/quadlib.c (_U_Qfcopysign): New.
15302
15303 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
15304
15305         PR middle-end/46894
15306         * explow.c (allocate_dynamic_stack_space): Do not assume more than
15307         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
15308         are defined.
15309
15310 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15311
15312         PR tree-optimization/47179
15313         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
15314         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
15315
15316 2011-01-18  Richard Guenther  <rguenther@suse.de>
15317
15318         PR rtl-optimization/47216
15319         * emit-rtl.c: Include tree-flow.h.
15320         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
15321         of replicating it with different semantics.
15322         * Makefile.in (emit-rtl.o): Adjust.
15323
15324 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15325
15326         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
15327         (cortex_a9_dp): Handle neon types correctly.
15328
15329 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
15330
15331         PR rtl-optimization/47299
15332         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
15333         subtarget.  Use normal multiplication if both operands are constants.
15334         * expmed.c (expand_widening_mult): Don't try to optimize constant
15335         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
15336         before using it.
15337
15338 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15339
15340         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
15341         spacing after 'e.g.', typos, comma, hyphenation.
15342
15343 2011-01-17  Richard Henderson  <rth@redhat.com>
15344
15345         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15346         (rx_restricted_mem_operand): New.
15347         (rx_shift_operand): Use register_operand.
15348         (rx_source_operand, rx_compare_operand): Likewise.
15349         * config/rx/rx.md (addsi3_flags): New expander.
15350         (adddi3): Rewrite as expander.
15351         (adc_internal, *adc_flags, adddi3_internal): New patterns.
15352         (subsi3_flags): New expander.
15353         (subdi3): Rewrite as expander.
15354         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15355
15356         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15357         (rx_init_builtins): Remove sat builtin.
15358         (rx_expand_builtin): Likewise.
15359         * config/rx/rx.md (ssaddsi3): New.
15360         (*sat): Rename from sat.  Represent the CC_REG input.
15361
15362         * config/rx/predicates.md (rshift_operator): New.
15363         * config/rx/rx.c (rx_expand_insv): Remove.
15364         * config/rx/rx-protos.h: Update.
15365         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
15366         operand to the canonical position.
15367         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15368         (*bitclr, *bitclr_in_memory): Similarly.
15369         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15370         (insv): Retain the zero_extract in the expansion.
15371
15372         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15373         (bswaphi2, bitinvert, revw): Likewise.
15374
15375         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15376         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15377         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15378         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15379         (bitset, bitset_in_memory): Likewise.
15380         (bitinvert, bitinvert_in_memory): Likewise.
15381         (bitclr, bitclr_in_memory): Likewise.
15382         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15383         (rx_strend, rx_cmpstrn): Likewise.
15384         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
15385         (bitop peep2 patterns): Remove.
15386
15387         * config/rx/rx.c (rx_match_ccmode): New.
15388         * config/rx/rx-protos.h: Update.
15389         * config/rx/rx.md (abssi2): Clobber, don't set flags.
15390         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15391         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15392         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15393         (fix_truncsfsi2, floatsisf2): Likewise.
15394         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15395         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15396         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15397         (*subsi3_flags, *xorsi3_flags): New.
15398
15399         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15400
15401         * config/rx/rx.c (rx_print_operand): Remove workaround for
15402         unsplit comparison operations.
15403
15404         * config/rx/rx.md (movsicc): Split after reload.
15405         (*movsicc): Merge *movsieq and *movsine via match_operator.
15406         (*stcc): New pattern.
15407
15408         * config/rx/rx.c (rx_float_compare_mode): Remove.
15409         * config/rx/rx.h (rx_float_compare_mode): Remove.
15410         * config/rx/rx.md (cstoresi4): Split after reload.
15411         (*sccc): New pattern.
15412
15413         * config/rx/predicates.md (label_ref_operand): New.
15414         (rx_z_comparison_operator): New.
15415         (rx_zs_comparison_operator): New.
15416         (rx_fp_comparison_operator): New.
15417         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15418         Validate that the flags are set properly for the comparison.
15419         (rx_gen_cond_branch_template): Remove.
15420         (rx_cc_modes_compatible): Remove.
15421         (mode_from_flags): New.
15422         (flags_from_code): Rename from flags_needed_for_conditional.
15423         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15424         (rx_select_cc_mode): Likewise.
15425         (rx_split_fp_compare): New.
15426         (rx_split_cbranch): New.
15427         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15428         (*cbranchsi4): Use match_operator and rx_split_cbranch.
15429         (*cbranchsf4): Similarly.
15430         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
15431         match_operator and rx_split_cbranch.
15432         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15433         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
15434         (*cmpsi): Rename from cmpsi.
15435         (*tstsi): Rename from tstsi.
15436         (*cmpsf): Rename from cmpsf; use CC_Fmode.
15437         (*conditional_branch): Rename from conditional_branch.
15438         (*reveresed_conditional_branch): Remove.
15439         (b<code>): Remove expander.
15440         * config/rx/rx-protos.h: Update.
15441
15442         * config/rx/rx.c (rx_compare_redundant): Remove.
15443         * config/rx/rx.md (cmpsi): Don't use it.
15444         * config/rx/rx-protos.h: Update.
15445
15446         * config/rx/rx-modes.def (CC_F): New mode.
15447         * config/rx/rx.c (rx_select_cc_mode): New.
15448         * config/rx/rx.h (SELECT_CC_MODE): Use it.
15449         * config/rx/rx-protos.h: Update.
15450
15451 2011-01-17  Richard Henderson  <rth@redhat.com>
15452
15453         * except.c (dump_eh_tree): Fix stray ; after for statement.
15454
15455 2011-01-17  Richard Guenther  <rguenther@suse.de>
15456
15457         PR tree-optimization/47313
15458         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15459         handling before copying the body.  Properly deal with
15460         by-reference result in SSA form.
15461
15462 2011-01-17  Ian Lance Taylor  <iant@google.com>
15463
15464         PR target/47219
15465         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15466         (struct_value_alias_set): Don't define.
15467         (sparc_option_override): Don't set sparc_sr_alias_set and
15468         struct_value_alias_set.
15469         (save_or_restore_regs): Use gen_frame_mem rather than calling
15470         set_mem_alias_set.
15471         (sparc_struct_value_rtx): Likewise.
15472
15473 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
15474
15475         PR target/47318
15476         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15477         (_mm_maskstore_pd): Likewise.
15478         (_mm_maskload_ps): Likewise.
15479         (_mm_maskstore_ps): Likewise.
15480         (_mm256_maskload_pd): Change mask to __m256i.
15481         (_mm256_maskstore_pd): Likewise.
15482         (_mm256_maskload_ps): Likewise.
15483         (_mm256_maskstore_ps): Likewise.
15484
15485         * config/i386/i386-builtin-types.def: Updated.
15486         (ix86_expand_special_args_builtin): Likewise.
15487
15488         * config/i386/i386.c (bdesc_special_args): Update
15489         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15490         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15491         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15492         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15493
15494         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15495         Use <avxpermvecmode> on mask register.
15496         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15497
15498 2011-01-17  Olivier Hainque  <hainque@adacore.com>
15499             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
15500             Eric Botcazou  <ebotcazou@adacore.com>
15501
15502         PR target/46655
15503         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15504         if <= USHRT_MAX in 32-bit mode.
15505
15506 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15507
15508         * doc/install.texi (Configuration, Specific): Wrap long
15509         lines in examples.  Allow line wrapping in long options
15510         and URLs where beneficial for PDF output.
15511
15512 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
15513
15514         * config/mips/mips.c (mips_classify_symbol): Don't return
15515         SYMBOL_PC_RELATIVE for nonlocal labels.
15516
15517 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15518
15519         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15520
15521 2011-01-15  Jan Hubicka  <jh@suse.cz>
15522
15523         PR tree-optimization/47276
15524         * ipa.c (function_and_variable_visibility): Do not try to mark alias
15525         declarations as needed.
15526
15527 2011-01-15  Martin Jambor  <mjambor@suse.cz>
15528
15529         * common.opt (fdevirtualize): New flag.
15530         * doc/invoke.texi (Option Summary): Document it.
15531         * opts.c (default_options_table): Add devirtualize flag.
15532         * ipa-prop.c (detect_type_change): Return immediately if
15533         devirtualize flag is not set.
15534         (detect_type_change_ssa): Likewise.
15535         (compute_known_type_jump_func): Likewise.
15536         (ipa_analyze_virtual_call_uses): Likewise.
15537
15538 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15539
15540         PR tree-optimization/45934
15541         PR tree-optimization/46302
15542         * ipa-prop.c (type_change_info): New type.
15543         (stmt_may_be_vtbl_ptr_store): New function.
15544         (check_stmt_for_type_change): Likewise.
15545         (detect_type_change): Likewise.
15546         (detect_type_change_ssa): Likewise.
15547         (compute_complex_assign_jump_func): Check for dynamic type change.
15548         (compute_complex_ancestor_jump_func): Likewise.
15549         (compute_known_type_jump_func): Likewise.
15550         (compute_scalar_jump_functions): Likewise.
15551         (ipa_analyze_virtual_call_uses): Likewise.
15552         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15553
15554 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15555
15556         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15557         * config/i386/i386.opt (msse5): New Alias.
15558
15559 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15560
15561         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15562         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15563         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15564         * config/sparc/sparc.h (CC1_SPEC): Likewise.
15565
15566 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15567
15568         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15569         -mcpu options.
15570         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15571         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15572         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15573         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15574         Likewise.
15575         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15576
15577 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15578
15579         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
15580
15581 2011-01-14  Mike Stump  <mikestump@comcast.net>
15582
15583         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15584         * config/fr30/fr30.md: Likweise
15585         (movsi_push): Likewise.
15586         (movsi_pop): Likewise.
15587         (enter_func): Likewise.
15588         * config/moxie/moxie.md (movsi_push): Likewise.
15589         (movsi_pop): Likewise.
15590
15591 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15592
15593         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15594         %{no_archive} %{exact_version}.
15595         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15596         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15597         %{no_archive} %{exact_version}.
15598         * config/mips/openbsd.h (LINK_SPEC): Likewise.
15599         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15600         * config/mips/vxworks.h: Likewise.
15601
15602 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15603
15604         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
15605
15606 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15607
15608         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
15609         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
15610
15611 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15612
15613         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
15614         -nodefaultlib.
15615
15616 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15617
15618         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
15619         for mcpu not cpu.
15620         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
15621         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
15622         not cpu.
15623         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
15624         Don't handle -shlib.
15625
15626 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15627
15628         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
15629         (CC1_SPEC): Don't handle -profile.
15630
15631 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15632
15633         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
15634         * config/mips/mips.h (CC1_SPEC): Likewise.
15635
15636 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15637
15638         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
15639         * config/mips/mips.h (CC1_SPEC): Likewise.
15640
15641 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15642
15643         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
15644         * config/m32r/linux.h (LINK_SPEC): Likewise.
15645         * config/mips/linux.h (LINK_SPEC): Likewise.
15646         * config/mips/linux64.h (LINK_SPEC): Likewise.
15647         * config/sparc/linux.h (LINK_SPEC): Likewise.
15648         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15649         LINK_SPEC): Likewise.
15650         * config/xtensa/linux.h (LINK_SPEC): Likewise.
15651
15652 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15653
15654         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
15655         %{version:-v}.
15656         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
15657
15658 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15659
15660         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
15661         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
15662
15663 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15664
15665         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
15666
15667 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15668
15669         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
15670         supports -Bstatic/-Bdynamic.
15671         * configure: Regenerate.
15672
15673 2011-01-14  Jan Hubicka  <jh@suse.cz>
15674             Jack Howarth  <howarth@bromo.med.uc.edu>
15675
15676         PR target/46037
15677         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
15678         when checking debug_info_level. Test write_symbols instead of
15679         debug_hooks->var_location when setting flag_var_tracking_uninit.
15680
15681 2011-01-14  Richard Guenther  <rguenther@suse.de>
15682
15683         PR tree-optimization/47179
15684         * target.def (ref_may_alias_errno): New target hook.
15685         * targhooks.h (default_ref_may_alias_errno): Declare.
15686         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
15687         (default_ref_may_alias_errno): New function.
15688         * target.h (struct ao_ref_s): Declare.
15689         * tree-ssa-alias.c: Include target.h.
15690         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
15691         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
15692         (targhooks.o): Likewise.
15693         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
15694         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
15695
15696 2011-01-14  Richard Guenther  <rguenther@suse.de>
15697
15698         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
15699
15700 2011-01-14  Richard Guenther  <rguenther@suse.de>
15701
15702         PR tree-optimization/47280
15703         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
15704         return CFG changes.
15705         (tree_ssa_forward_propagate_single_use_vars): Deal with
15706         CFG changes from associate_plusminus.
15707
15708 2011-01-14  Richard Guenther  <rguenther@suse.de>
15709
15710         PR middle-end/47281
15711         Revert
15712         2011-01-11  Richard Guenther  <rguenther@suse.de>
15713
15714         PR tree-optimization/46076
15715         * tree-ssa.c (useless_type_conversion_p): Conversions from
15716         unprototyped to empty argument list function types are useless.
15717
15718 2011-01-14  Richard Guenther  <rguenther@suse.de>
15719
15720         PR tree-optimization/47286
15721         * tree-ssa-structalias.c (new_var_info): Register variables are global.
15722
15723 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15724
15725         PR middle-end/46823
15726         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
15727
15728 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
15729
15730         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
15731         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15732         * config/xtensa/xtensa.c (xtensa_libcall_value,
15733         xtensa_function_value_regno_p): New functions.
15734         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15735
15736 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
15737
15738         PR c++/47213
15739         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
15740         PE specific hook.
15741         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
15742         New function prototype.
15743         * config/i386/winnt.c (i386_pe_assemble_visibility):
15744         Warn only if attribute was specified by user.
15745
15746 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15747
15748         PR target/47251
15749         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
15750         floating point.
15751         (floatunsdidf2_fcfidu): Ditto.
15752
15753 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15754
15755         * config/s390/s390.c (print_operand_address): Replace 'error' with
15756         'output_operand_lossage'.
15757         (print_operand): Likewise.
15758
15759 2011-01-13  Jeff Law  <law@redhat.com>
15760
15761         PR rtl-optimization/39077
15762         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
15763         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
15764         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
15765         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
15766         * gcse.c (prune_insertions_deletions): New function.
15767         (compute_pre_data): Use it.
15768
15769 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
15770
15771         PR debug/PR46973
15772         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
15773         static function.
15774         (prune_unused_types_mark): Use it.
15775
15776 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
15777
15778         PR rtl-optimization/45352
15779         * sel-sched.c: Update copyright years.
15780         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
15781         in the advancing loop when we have issued issue_rate insns.
15782
15783 2011-01-12  Richard Henderson  <rth@redhat.com>
15784
15785         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
15786         (TARGET_MD_ASM_CLOBBERS): New.
15787
15788         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
15789         (TARGET_DELEGITIMIZE_ADDRESS): New.
15790
15791         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
15792         (clzsi2, *bsch): New patterns.
15793
15794         * config/mn10300/mn10300.md (INT): New mode iterator.
15795         (*mov<INT>_clr): New pattern, and peep2 to generate it.
15796
15797         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
15798         flag_split_wide_types.
15799
15800         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
15801         (mn10300_trampoline_init): Rewrite without a template, an immediate
15802         load and a direct branch.
15803         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
15804
15805 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
15806
15807         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15808         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
15809         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
15810         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15811
15812 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
15813
15814         PR debug/47209
15815         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
15816         of type.
15817
15818 2011-01-12  Jan Hubicka  <jh@suse.cz>
15819
15820         PR driver/47244
15821         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
15822         (PLUGIN_COND_CLOSE): New macro.
15823         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
15824
15825 2011-01-12  Richard Guenther  <rguenther@suse.de>
15826
15827         PR lto/47259
15828         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
15829         register variables in a MEM_REF.
15830
15831 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
15832
15833         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
15834         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
15835         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
15836         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15837         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15838         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
15839         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
15840         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
15841         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
15842         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
15843         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
15844         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
15845         * config/gnu-user.h: New.  Copied from linux.h.
15846         (LINUX_TARGET_STARTFILE_SPEC): Rename to
15847         GNU_USER_TARGET_STARTFILE_SPEC.
15848         (LINUX_TARGET_ENDFILE_SPEC): Rename to
15849         GNU_USER_TARGET_ENDFILE_SPEC.
15850         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
15851         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
15852         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
15853         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
15854         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15855         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15856         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
15857         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
15858         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
15859         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
15860         * config/arm/linux-eabi.h (CC1_SPEC): Use
15861         GNU_USER_TARGET_CC1_SPEC.
15862         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
15863         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
15864         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
15865         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
15866         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
15867         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
15868         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
15869         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
15870
15871 2011-01-12  Richard Guenther  <rguenther@suse.de>
15872
15873         PR other/46946
15874         * doc/invoke.texi (ffast-math): Document it is turned on
15875         with -Ofast.
15876
15877 2011-01-12  Jan Hubicka  <jh@suse.cz>
15878
15879         PR tree-optimization/47233
15880         * opts.c (common_handle_option): Disable ipa-reference with profile
15881         feedback.
15882
15883 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15884
15885         * c-parser.c (c_parser_objc_at_property_declaration): Improved
15886         error message.
15887
15888 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15889
15890         * c-parser.c (c_lex_one_token): Updated and reindented some
15891         comments.  No changes in code.
15892
15893 2011-01-11  Ian Lance Taylor  <iant@google.com>
15894
15895         * godump.c (go_output_var): Don't output the variable if there is
15896         already a type with the same name.
15897
15898 2011-01-11  Ian Lance Taylor  <iant@google.com>
15899
15900         * godump.c (go_format_type): Don't generate float80.
15901
15902 2011-01-11  Richard Henderson  <rth@redhat.com>
15903
15904         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
15905         declaration.  Rewrite for both speed and size.
15906         (mn10300_address_cost_1): Remove.
15907         (mn10300_register_move_cost): New.
15908         (mn10300_memory_move_cost): New.
15909         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
15910         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
15911         extensions, shifts, BSWAP, CLZ.
15912         (mn10300_wide_const_load_uses_clr): Remove.
15913         (TARGET_REGISTER_MOVE_COST): New.
15914         (TARGET_MEMORY_MOVE_COST): New.
15915         * config/mn10300/mn10300-protos.h: Update.
15916         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
15917
15918         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
15919         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
15920         * config/mn10300/mn10300-protos.h: Update.
15921         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
15922         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
15923         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
15924         (*test_int_bitfield, *test_byte_bitfield): Remove.
15925         (*bit_test, *subreg_bit_test): Remove.
15926         * config/mn10300/predicates.md (const_8bit_operand): Remove.
15927
15928         * config/mn10300/constraints.md ("c"): Rename from "A".
15929         ("A", "D"): New constraint letters.
15930         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
15931         (fmssf4, fnmasf4, fnmssf4): Likewise.
15932
15933         * config/mn10300/mn10300.md (isa): New attribute.
15934         (enabled): New attribute.
15935
15936         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
15937         (abssf2, negsf2): Define only for hardware fp.
15938         (sqrtsf2): Reformat.
15939         (addsf3, subsf3, mulsf3): Merge expander and insn.
15940
15941         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
15942         (DEBUGGER_AUTO_OFFSET): Remove.
15943         (DEBUGGER_ARG_OFFSET): Remove.
15944
15945         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15946         Emit register stores with the same offsets as the hardware.
15947         (mn10300_store_multiple_operation): Don't check that the register
15948         save offsets are monotonic.
15949         * config/mn10300/mn10300-protos.h: Update.
15950
15951         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15952
15953         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15954         in terms of the value on the stack, not the MDR register.
15955
15956 2011-01-11  Jan Hubicka  <jh@suse.cz>
15957
15958         PR lto/45721
15959         PR lto/45375
15960         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15961         (symbol_alias_set_destroy, symbol_alias_set_contains,
15962         propagate_aliases_backward): Declare.
15963         * lto-streamer-out.c (struct sets): New sturcture.
15964         (trivally_defined_alias): New function.
15965         (output_alias_pair_p): Rewrite.
15966         (output_unreferenced_globals): Fix output of alias pairs.
15967         (produce_symtab): Likewise.
15968         * ipa.c (function_and_variable_visibility): Set weak alias destination
15969         as needed in lto.
15970         * varasm.c (symbol_alias_set_t): Remove.
15971         (symbol_alias_set_destroy): Export.
15972         (propagate_aliases_forward, propagate_aliases_backward): New functions
15973         based on ...
15974         (compute_visible_aliases): ... this one; remove.
15975         (trivially_visible_alias): New
15976         (trivially_defined_alias): New.
15977         (remove_unreachable_alias_pairs): Rewrite.
15978         (finish_aliases_1): Reorganize code checking if alias is defined.
15979         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15980         in LTO mode.
15981
15982 2011-01-11  Richard Guenther  <rguenther@suse.de>
15983
15984         PR tree-optimization/46076
15985         * tree-ssa.c (useless_type_conversion_p): Conversions from
15986         unprototyped to empty argument list function types are useless.
15987
15988 2011-01-11  Richard Guenther  <rguenther@suse.de>
15989
15990         PR middle-end/45235
15991         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15992         volatile MEMs as MEM_READONLY_P.
15993
15994 2011-01-11  Richard Guenther  <rguenther@suse.de>
15995
15996         PR tree-optimization/47239
15997         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15998
15999 2011-01-11  Jeff Law  <law@redhat.com>
16000
16001         PR tree-optimization/47086
16002         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
16003         IVs from statements that might throw.
16004
16005 2011-01-10  Jan Hubicka  <jh@suse.cz>
16006
16007         PR lto/45375
16008         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
16009
16010 2011-01-10  Jan Hubicka  <jh@suse.cz>
16011
16012         PR lto/45375
16013         * profile.c (read_profile_edge_counts): Ignore profile inconistency
16014         when correcting profile.
16015
16016 2011-01-10  Jan Hubicka  <jh@suse.cz>
16017
16018         PR lto/46083
16019         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
16020         DECL_FINI_PRIORITY.
16021         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
16022         Restore DECL_FINI_PRIORITY.
16023
16024 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16025
16026         * doc/gimple.texi: Fix quoting of multi-word return values in
16027         @deftypefn statements.  Ensure presence of return value.  Wrap
16028         overlong @deftypefn lines.
16029         (is_gimple_operand, is_gimple_min_invariant_address): Remove
16030         descriptions of removed functions.
16031         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
16032         of multi-word return value in @deftypefn statement.
16033
16034 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16035
16036         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
16037         (Conditional Expressions, Logical Operators)
16038         (Statement and operand traversals): Do not indent smallexample
16039         code.  Fix duplicate function argument in example.
16040
16041 2011-01-10  Jeff Law  <law@redhat.com>
16042
16043         PR tree-optimization/47141
16044         * ipa-split.c (split_function): Handle case where we are
16045         returning a value and the return block has a virtual operand phi.
16046
16047 2011-01-10  Jan Hubicka  <jh@suse.cz>
16048
16049         PR tree-optimization/47234
16050         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
16051         (pass_feedback_split_functions): Declare.
16052         * passes.c (init_optimization_passes): Add ipa-split as subpass of
16053         tree-profile.
16054         * ipa-split.c (gate_split_functions): Update comments; disable
16055         split-functions for profile_arc_flag and branch_probabilities.
16056         (gate_feedback_split_functions): New function.
16057         (execute_feedback_split_functions): New function.
16058         (pass_feedback_split_functions): New global var.
16059
16060 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
16061
16062         PR lto/46760
16063         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
16064         calling gimple_call_set_cannot_inline.
16065
16066 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
16067
16068         * config/darwin-sections.def: Remove unused section.
16069
16070 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
16071
16072         PR c++/47218
16073         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
16074
16075 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
16076
16077         PR objc/47232
16078         * c-parser.c (c_parser_declaration_or_fndef): Improved
16079         error message.
16080
16081 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
16082
16083         * config/i386/winnt.c (i386_pe_start_function): Make sure
16084         to switch back to function's section.
16085
16086 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
16087
16088         PR gcc/46902
16089         PR testsuite/46912
16090         * plugin.c: Move include of dlfcn.h from here...
16091         * system.h: ... to here.
16092
16093 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16094
16095         * doc/cpp.texi (C++ Named Operators): Fix markup for header
16096         file name.
16097         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
16098         two extra empty pages in PDF output.
16099
16100 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
16101
16102         PR objc/47078
16103         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
16104         for error recovery purposes behave as if it was not specified so
16105         that the default type is usd.
16106
16107 2011-01-07  Jan Hubicka  <jh@suse.cz>
16108
16109         PR tree-optmization/46469
16110         * ipa.c (function_and_variable_visibility): Clear needed flags on
16111         nodes with external decls; handle weakrefs merging correctly.
16112
16113 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
16114
16115         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
16116         not false.
16117
16118 2011-01-07  Jan Hubicka  <jh@suse.cz>
16119
16120         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
16121         and no longer claim that gold is required for linker plugin.
16122         * configure: Regenerate.
16123         * gcc.c (PLUGIN_COND): New macro.
16124         (LINK_COMMAND_SPEC): Use it.
16125         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
16126         * config.in (HAVE_LTO_PLUGIN): New.
16127         * configure.ac (--with-lto-plugin): New parameter; autodetect
16128         HAVE_LTO_PLUGIN.
16129
16130 2011-01-07  Jan Hubicka  <jh@suse.cz>
16131
16132         PR tree-optimization/46367
16133         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
16134         when we can update original.
16135         (cgraph_mark_inline_edge): Sanity check.
16136         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
16137
16138 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16139
16140         * config/spu/spu.h (ASM_COMMENT_START): Define.
16141
16142 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16143
16144         PR driver/42445
16145         * gcc.c (%>S): New.
16146         (SWITCH_KEEP_FOR_GCC): Likewise.
16147         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
16148         (do_spec_1): Handle "%>".
16149
16150         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
16151
16152 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
16153
16154         PR target/47201
16155         * config/i386/i386.c (ix86_delegitimize_address): If
16156         simplify_gen_subreg fails, return orig_x.
16157
16158         PR bootstrap/47187
16159         * value-prof.c (gimple_stringop_fixed_value): Handle
16160         lhs of the call properly.
16161
16162 2011-01-07  Jan Hubicka  <jh@suse.cz>
16163
16164         PR lto/45375
16165         * lto-opt.c (lto_reissue_options): Set flag_shlib.
16166
16167 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
16168
16169         * target.def (function_switched_text_sections): New hook.
16170         * doc/tm.texi: Regenerated.
16171         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16172         * final.c (default_function_switched_text_sections): New.
16173         (final_scan_insn): Call function_switched_text_sections when a
16174         mid-function section change occurs.
16175         * output.h (default_function_switched_text_sections): Declare.
16176         * config/darwin-protos.h (darwin_function_switched_text_sections):
16177         Likewise.
16178         * config/darwin.c (darwin_function_switched_text_sections): New.
16179         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16180
16181 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
16182
16183         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
16184         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
16185         the secondary code fragment when outputting for DWARF == 2.
16186
16187 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
16188
16189         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16190         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
16191         Remove.
16192         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
16193         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16194
16195 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
16196
16197         PR debug/46704
16198         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
16199         when it is not empty.
16200
16201 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
16202
16203         Bobcat Enablement
16204         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
16205         (case ${target}): Add btver1.
16206         * config/i386/driver-i386.c (host_detect_local_cpu): Let
16207         -march=native recognize btver1 processors.
16208         * config/i386/i386-c.c (ix86_target_macros_internal): Add
16209         btver1 def_and_undef
16210         * config/i386/i386.c (struct processor_costs btver1_cost): New
16211         btver1 cost table.
16212         (m_BTVER1): New definition.
16213         (m_AMD_MULTIPLE): Includes m_BTVER1.
16214         (initial_ix86_tune_features): Add btver1 tune.
16215         (processor_target_table): Add btver1 entry.
16216         (static const char *const cpu_names): Add btver1 entry.
16217         (software_prefetching_beneficial_p): Add btver1.
16218         (ix86_option_override_internal): Add btver1 instruction sets.
16219         (ix86_issue_rate): Add btver1.
16220         (ix86_adjust_cost): Add btver1.
16221         * config/i386/i386.h (TARGET_BTVER1): New definition.
16222         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
16223         (enum processor_type): Add PROCESSOR_BTVER1.
16224         * config/i386/i386.md (define_attr "cpu"): Add btver1.
16225
16226 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16227
16228         PR target/43309
16229         * config/i386/i386.c (legitimize_tls_address)
16230         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
16231         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
16232         (tls_initial_exec_64_sun): New pattern.
16233
16234 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
16235
16236         * doc/invoke.texi (Overall Options): Improve wording and markup
16237         of the description of -wrapper.
16238
16239 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
16240
16241         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
16242         rdynamic, threads): New Driver options.
16243
16244 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16245
16246         PR target/38118
16247         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
16248         if coming from .tdata.
16249         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16250
16251 2011-01-06  Jan Hubicka  <jh@suse.cz>
16252
16253         PR lto/47188
16254         * collect2.c (main): Do not enable LTOmode when plugin is active.
16255
16256 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16257
16258         PR other/45915
16259         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
16260         --version output if supported.
16261         * configure: Regenerate.
16262
16263 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
16264
16265         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
16266         Driver options.
16267
16268 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
16269
16270         PR c/47150
16271         * c-convert.c (convert): When converting a complex expression
16272         other than COMPLEX_EXPR to a different complex type, ensure
16273         c_save_expr is called instead of save_expr, unless in_late_binary_op.
16274         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
16275         when converting COMPLEX_TYPE.
16276
16277 2011-01-06  Ira Rosen  <irar@il.ibm.com>
16278
16279         PR tree-optimization/47139
16280         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
16281         only the last reduction value is used outside the loop.  Update
16282         documentation.
16283
16284 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
16285
16286         * config/rtems.opt: New.
16287         * config.gcc (*-*-rtems*): Use rtems.opt.
16288
16289 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
16290
16291         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
16292         processors do not support 3DNow instructions.
16293
16294 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16295
16296         * config/spu/spu.c (spu_option_override): Set parameter
16297         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
16298
16299 2011-01-05  Jan Hubicka  <jh@suse.cz>
16300
16301         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
16302         at the command line.
16303
16304 2011-01-05  Martin Jambor  <mjambor@suse.cz>
16305
16306         PR lto/47162
16307         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
16308         deltas on streamed outgoing edges.
16309         (output_node_opt_summary): Output info for outgoing edges only when
16310         the node is in new parameter set.
16311         (output_cgraph_opt_summary): New parameter set, passed to the two
16312         aforementioned functions.  Update its forward declaration and its
16313         callee too.
16314
16315 2011-01-05  Tom Tromey  <tromey@redhat.com>
16316
16317         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
16318         operator to c_finish_omp_atomic.
16319         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
16320         (build_unary_op): Update.
16321         (build_modify_expr): Update.
16322         (build_asm_expr): Update.
16323
16324 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16325
16326         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
16327         newly inserted insns.
16328         (pad_bb): Likewise.
16329         (spu_emit_branch_hint): Likewise.
16330         (insert_hbrp_for_ilb_runout): Likewise.
16331         (spu_machine_dependent_reorg): Call df_finish_pass after
16332         schedule_insns returns.
16333
16334 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16335
16336         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16337
16338 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
16339
16340         PR tree-optimization/47005
16341         * tree-sra.c (struct access): Add 'non_addressable' bit.
16342         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16343         (decide_one_param_reduction): Return 0 if the parameter is passed by
16344         reference and one of the accesses in the group is non_addressable.
16345
16346 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16347
16348         PR tree-optimization/47056
16349         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16350         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
16351         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
16352
16353 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16354
16355         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16356         initializer.  Skip view conversions from aggregate types.
16357
16358 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
16359
16360         PR bootstrap/47055
16361         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16362
16363 2011-01-04  Philipp Thomas  <pth@suse.de>
16364
16365         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16366         obvious typo.
16367
16368 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16369
16370         * function.c (thread_prologue_and_epilogue_insns): Do not crash
16371         on empty epilogue sequences.
16372
16373 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
16374
16375         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16376         non-static): New Driver options.
16377
16378 2011-01-04  Jie Zhang  <jie@codesourcery.com>
16379
16380         PR driver/47137
16381         * gcc.c (default_compilers[]): Set combinable field to 0
16382         for all assembly languages.
16383
16384 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
16385
16386         * config/mips/loongson3a.md: New file.
16387         * config/mips/mips.md: Include loongson3a.md.
16388         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16389         TUNE_LOONGSON_3A.
16390
16391 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16392
16393         PR middle-end/47017
16394         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16395         instead of convert_memory_address_addr_space on the base expression.
16396
16397 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16398
16399         * config/spu/spu.c (spu_option_override): Update error text
16400         for bad -march= / -mtune= values.
16401
16402 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16403
16404         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16405         if branch-hint optimization will be performed.
16406
16407 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16408
16409         PR tree-optimization/47148
16410         * ipa-split.c (split_function): Convert arguments to
16411         DECL_ARG_TYPE if possible.
16412
16413         PR tree-optimization/47155
16414         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16415         when computing uns.
16416
16417         PR rtl-optimization/47157
16418         * combine.c (try_combine): If undobuf.other_insn becomes
16419         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16420         and set *new_direct_jump_p too.
16421
16422 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16423
16424         PR tree-optimization/47021
16425         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16426
16427 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16428
16429         * gcc.c (process_command): Update copyright notice dates.
16430         * gcov.c (print_version): Likewise.
16431         * gcov-dump.c (print_version): Likewise.
16432         * mips-tfile.c (main): Likewise.
16433         * mips-tdump.c (main): Likewise.
16434
16435 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16436
16437         PR tree-optimization/46801
16438         * tree-sra.c (type_internals_preclude_sra_p): Check whether
16439         aggregate fields start at byte boundary instead of the bit-field flag.
16440
16441 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16442
16443         PR driver/47137
16444         * gcc.c (main): Revert revision 168407.
16445
16446 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16447
16448         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16449
16450 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16451
16452         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16453         vector optab to expand vector/scalar shift, update gimple to vector.
16454
16455 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16456
16457         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16458         a thunk.
16459
16460 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16461
16462         PR tree-optimization/46984
16463         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16464         HOST_WIDE_INT.
16465         (cgraph_create_indirect_edge): Fixed line length.
16466         (cgraph_indirect_call_info): Declare.
16467         (cgraph_make_edge_direct) Update declaration.
16468         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16469         (cgraph_create_indirect_edge): Use it.
16470         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
16471         callees.
16472         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16473         the new thunk_delta representation.
16474         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16475         HOST_WIDE_INT.
16476         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16477         (ipa_read_indirect_edge_info): Likewise.
16478         * lto-cgraph.c (output_edge_opt_summary): New function.
16479         (output_node_opt_summary): Call it on all outgoing edges.
16480         (input_edge_opt_summary): New function.
16481         (input_node_opt_summary): Call it on all outgoing edges.
16482
16483 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
16484
16485         PR driver/47137
16486         * gcc.c (main): Don't check have_o when settting combine_inputs.
16487
16488 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
16489
16490         * regrename.c: Add general comment describing the pass.
16491         (struct du_head): Remove 'length' field.
16492         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16493         (regrename_optimize): Do not sort chains.  Rework comments, add others.
16494         Force renaming to the preferred class (if any) in the first pass and do
16495         not consider registers that belong to it in the second pass.
16496         (create_new_chain): Do not set 'length' field.
16497         (scan_rtx_reg): Likewise.
16498
16499 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
16500
16501         PR tree-optimization/47140
16502         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16503         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16504         to bit_value_binop.
16505
16506         PR rtl-optimization/47028
16507         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16508         parm_birth_insn instead of at the beginning of first bb.
16509
16510 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
16511
16512         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16513         Remove the word "see" before "@pxref".
16514         * doc/rtl.texi: Remove the word "see" before "@pxref".
16515
16516 2011-01-01  Jan Hubicka  <jh@suse.cz>
16517
16518         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16519         memory.
16520
16521 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
16522
16523         PR target/38662
16524         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16525
16526 \f
16527 Copyright (C) 2011 Free Software Foundation, Inc.
16528
16529 Copying and distribution of this file, with or without modification,
16530 are permitted in any medium without royalty provided the copyright
16531 notice and this notice are preserved.