Print location for conflicting global regs.
[official-gcc.git] / gcc / ChangeLog
blobfb53fdcc2af58216b5522e5f029928979bd7c3c7
1 2011-06-08  Andi Kleen  <ak@linux.intel.com>
3         * reginfo.c (global_regs_decl): Add.
4         (globalize_reg): Add decl parameter. Compute location.
5         Pass location to warnings and add inform. Store decl
6         in global_regs_decl.
7         * rtl.h (globalize_reg): Update prototype.
8         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
10 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
12         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
14 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
16         PR target/49305
17         * config/sh/predicates.md (general_movsrc_operand): Check
18         mode for memory with indexed address for QI and HImode.
19         (general_movdst_operand): Likewise.
21 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
23         * doc/objc.texi (Traditional GNU Objective-C runtime API):
24         Updated.
26 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
28         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
29         (num_ssa_operands): Likewise.
30         (op_iter_init_phiuse): Forward-declare.
31         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
33 2011-06-08  Nick Clifton  <nickc@redhat.com>
35         * doc/invoke.texi (ARM Options): Update description of
36         -mthumb-interwork.
38 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
40         * config/i386/driver-i386.c (host_detect_local_cpu): Support
41         unknown Intel family 0x6 CPUs.
43 2011-06-08  Martin Jambor  <mjambor@suse.cz>
45         * tree-sra.c (mark_rw_status): Removed.
46         (analyze_access_subtree): New parameter parent instead of
47         mark_read and mark_write, propagate from that.
49 2011-06-08  Julian Brown  <julian@codesourcery.com>
51         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
52         for double-precision helper functions in hard-float mode if only
53         single-precision arithmetic is supported in hardware.
55 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
57         PR rtl-optimization/49303
58         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
59         code_motion_path_driver returned 0 or 1.
60         (sel_region_finish): Clear h_d_i_d.
62 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
64         * config/sh/sh.c (prepare_move_operands): Set pic register
65         appropriately for global and local dynamic tls models even
66         if flag_pic is unset.
68 2011-06-07  Jason Merrill  <jason@redhat.com>
70         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
72 2011-06-07  Xinliang David Li  <davidxl@google.com>
73         * passes.c (enable_disable_pass): Handle assembler name.
74         (is_pass_explicitly_enabled_or_disabled): Ditto.
76 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
78         PR tree-optimization/48497
79         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
81 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
83         PR tree-optimization/46728
84         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
85         to use gimple_val_nonnegative_real_p.
86         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
87         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
89 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
91         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
93 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
95         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
96         constant vectors.
98 2011-06-07  Richard Guenther  <rguenther@suse.de>
100         * stor-layout.c (initialize_sizetypes): Initialize all
101         sizetypes based on target definitions.
102         (set_sizetype): Remove.
103         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
104         * tree.h (set_sizetype): Remove.
106 2011-06-07  Nick Clifton  <nickc@redhat.com>
108         * config.gcc: Unify V850 architecture options and add support for
109         newer V850 architectures.
110         * config/v850/t-v850e: Delete.
112 2011-06-07  Richard Guenther  <rguenther@suse.de>
114         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
115         Call set_sizetype from here.
117 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
119         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
120         (*maddhisi4tb, *maddhisi4tt): New define_insns.
122 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
123             Andrew Stubbs  <ams@codesourcery.com>
125         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
126         multiplies.
127         * doc/md.texi (Canonicalization of Instructions): Document widening
128         multiply canonicalization.
130 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
132         PR gcov-profile/49299
133         * value-prof.c (gimple_ic): Don't assume icall has
134         a fallthru edge.
136 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
138         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
139         a pointer.
140         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
141         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
142         vect_recog_pow_pattern): Likewise.
143         (vect_pattern_recog_1): Remove declaration.
144         (widened_name_p): Remove declaration.  Add new argument to specify
145         whether to check that both types are either signed or unsigned.
146         (vect_recog_widen_mult_pattern): Update documentation.  Handle
147         unsigned patterns and multiplication by constants.
148         (vect_pattern_recog_1): Update vect_recog_func references.  Use
149         statement information from the statement returned from pattern
150         detection functions.
151         (vect_pattern_recog): Update vect_recog_func reference.
152         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
153         multiplication by a constant use the type of the other operand.
155 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
157         PR rtl-optimization/49145
158         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
160 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
162         PR debug/49262
163         * dwarf2out.c (native_encode_initializer): Decrement count in each
164         iteration.
166         PR debug/49294
167         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
168         non-MODE_INT modes.
170         PR c++/49264
171         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
172         if stmt folded into nothing.
173         * tree-inline.c (fold_marked_statements): If a builtin at the
174         end of a bb folded into nothing, just update cgraph edges
175         and move to next bb.
176         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
177         to be NULL.  Don't compute count and frequency if new_call is NULL.
179 2011-06-04  Diego Novillo  <dnovillo@google.com>
181         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
182         (cgraph.o): Likewise.
183         (cgraphunit.o): Likewise.
184         * cgraphunit.c: Include lto-streamer.h
185         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
186         if LTO is enabled.
187         * lto-streamer-in.c (unpack_value_fields): Call
188         streamer_hooks.unpack_value_fields if set.
189         (lto_materialize_tree): For unhandled nodes, first try to
190         call lto_streamer_hooks.alloc_tree, if it exists.
191         (lto_input_ts_decl_common_tree_pointers): Move reading of
192         DECL_INITIAL to lto_streamer_read_tree.
193         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
194         (lto_streamer_read_tree): New.
195         (lto_reader_init): Rename from lto_init_reader.
196         Move initialization code to lto/lto.c.
197         * lto-streamer-out.c (pack_value_fields): Call
198         streamer_hooks.pack_value_fields if set.
199         (lto_output_tree_ref): For tree nodes that are not
200         normally indexable, call streamer_hooks.indexable_with_decls_p
201         before giving up.
202         (lto_output_ts_decl_common_tree_pointers): Move handling
203         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to
204         lto_streamer_write_tree.
205         (lto_output_tree_header): Call streamer_hooks.is_streamable
206         instead of lto_is_streamable.
207         Call lto_streamer_hooks.output_tree_header if set.
208         (lto_write_tree): Call lto_streamer_hooks.write_tree if
209         set.
210         (lto_streamer_write_tree): New.
211         (lto_output): Call lto_streamer_init directly.
212         (lto_writer_init): Remove.
213         * lto-streamer.c (streamer_hooks): New.
214         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
215         instead of lto_preload_common_nodes.
216         (lto_is_streamable): Move from lto-streamer.h
217         (lto_streamer_hooks_init): New.
218         (streamer_hooks): New.
219         (streamer_hooks_init): New.
220         * lto-streamer.h (struct output_block): Forward declare.
221         (struct lto_input_block): Likewise.
222         (struct data_in): Likewise.
223         (struct bitpack_d): Likewise.
224         (struct streamer_hooks): Declare.
225         (streamer_hooks): Declare.
226         (lto_streamer_hooks_init): Declare.
227         (lto_streamer_write_tree): Declare.
228         (lto_streamer_read_tree): Declare.
229         (streamer_hooks_init): Declare.
230         (lto_is_streamable): Move to lto-streamer.c
232 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
234         * longlong.h (smul_ppmm): The resulting register pair contains the
235         higher order word first.
237 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
239         PR tree-optimization/46728
240         * builtins.c (powi_table): Remove.
241         (powi_lookup_cost): Remove.
242         (powi_cost): Remove.
243         (expand_powi_1): Remove.
244         (expand_powi): Remove.
245         (expand_builtin_pow_root): Remove.
246         (expand_builtin_pow): Remove.
247         (expand_builtin_powi): Eliminate handling of constant exponent.
248         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
249         
250 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
252         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
254 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
256         * dce.c (reset_unmarked_insns_debug_uses): New.
257         (delete_unmarked_insns): Skip debug insns.
258         (prescan_insns_for_dce): Likewise.
259         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
260         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
261         active reg can be found.
262         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
263         (convert_regs_1): Use it.
265 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
267         * tree-pretty-print.c (dump_function_header): Add flags.
268         Don't dump decl_uid with nouid.
269         * tree-pretty-print.h (dump_function_header): Adjust.
270         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
271         * passes.c (pass_init_dump_file): Pass dump_flags on.
272         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
274 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
276         PR bootstrap/49270
277         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
279 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
281         PR tree-optimization/49243
282         * calls.c (setjmp_call_p): Also check if fndecl has the
283         returns_twice attribute.
285 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
287         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
288         -ffast-math etc.
290 2011-06-06  Richard Henderson  <rth@redhat.com>
291             Georg-Johann Lay  <avr@gjlay.de>
293         PR target/42210
294         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
295         New predicates.
296         * config/avr/avr.md ("insv"): New insn expander.
297         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
298         "*insv.not.io", "*insv.reg"): New insns.
300 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
302         PR target/49285
303         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct
304         predicate to nonimmediate_operand from memory_operand for the
305         operand that is to be forced to memory by the expander.  Lose
306         the constraints.
308 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
310         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
311         EH return when delayed branches are disabled.
313 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
315         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
316         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
317         calculation.
318         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
319         Simplify MODE_V1DF and MODE_V2SF handling.
320         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
321         Simplify MODE_SF handling.
323 2011-06-04  Jan Hubicka  <jh@suse.cz>
325         PR tree-optimization/48893
326         PR tree-optimization/49091
327         PR tree-optimization/49179
328         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
329         Bounds check.
331 2011-06-04  Jan Hubicka  <jh@suse.cz>
333         PR lto/48954
334         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args bitmaps.
336 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
338         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
340 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
342         PR target/49281
343         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
344         to be strictly smaller than 1 << shiftcount.
346 2011-06-04  Jan Hubicka  <jh@suse.cz>
348         PR tree-optimize/48929
349         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
350         of empty predicate.
352 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
354         PR debug/48333
355         * calls.c (emit_call_1): Prefer the __builtin declaration of
356         builtin functions.
358 2011-06-03   Diego Novillo  <dnovillo@google.com>
360         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
361         (lto_input_tree_pointers): Likewise.
362         * lto-streamer-out.c (pack_value_fields): Likewise.
363         (lto_output_tree_pointers): Likewise.
364         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
365         and OPTIMIZATION_NODE.
367 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
369         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
370         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
371         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
372         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
373         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
374         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
375         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
376         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
377         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
378         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
379         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
380         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
381         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
382         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
383         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
384         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
385         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
386         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
387         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
388         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
389         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
390         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
391         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
392         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
393         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
394         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
395         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
396         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
397         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
398         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
399         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
400         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
401         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
402         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
403         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
404         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
405         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
406         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
407         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
408         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
409         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
410         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
411         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
412         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
413         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
414         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
415         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
416         * system.h (MD_UNWIND_SUPPORT): Poison.
417         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
418         * doc/tm.texi: Regenerate.
419         * unwind-dw2.c: Include md-unwind-support.h instead of
420         MD_UNWIND_SUPPORT.
421         * config/ia64/unwind-ia64.c: Likewise.
422         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
424 2011-06-03  Jack Howarth <howarth@bromo.med.uc.edu>
426         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
428 2011-06-03  Richard Henderson  <rth@redhat.com>
429             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
431         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
432         (sigill_hdlr): Correct insn, insn size.
433         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
435 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
437         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
438         t-slibgcc-dummy.
439         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
440         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
441         * config/mips/t-iris: Remove.
442         * config/mips/t-irix6: New file.
443         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
445 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
447         * Makefile.in (LIB2ADDEHDEP): Remove.
448         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
449         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
450         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
451         * config/t-darwin (LIB2ADDEHDEP): Remove.
452         * config/t-freebsd (LIB2ADDEHDEP): Remove.
453         * config/t-linux (LIB2ADDEHDEP): Remove.
455 2011-06-03  Diego Novillo  <dnovillo@google.com>
457         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
458         (lto_register_var_decl_in_symtab): Likewise.
459         (lto_register_function_decl_in_symtab): Likewise.
460         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
461         logic to uniquify_nodes.
463 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
465         * config/alpha/t-osf5: Remove.
466         * config/alpha/t-osf-pthread: Remove.
467         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
468         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
470 2011-06-03  Julian Brown  <julian@codesourcery.com>
472         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
473         (strongarm1110): Use strongarm tuning.
474         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
475         * config/arm/arm.c (arm_strongarm_tune): New.
476         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
477         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
478         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
479         setting, using previous defaults or 1 for Cortex-A5.
480         (arm_option_override): Set max_insns_skipped from current tuning.
482 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
484         * doc/install.texi (Options specification): Document --with-specs.
486 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
488         * config/arm/neon.md (orndi3_neon): Actually split it.
490 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
492         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
493         * var-tracking.c (reverse_op): Limite recurse depth to 5.
495 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
497         PR debug/47590
498         * target.def (delay_sched2, delay_vartrack): New.
499         * doc/tm.texi.in: Update.
500         * doc/tm.texi: Rebuild.
501         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
502         * var-tracking.c (gate_handle_var_tracking): Likewise.
503         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
504         (bfin_flag_var_tracking): Drop.
505         (output_file_start): Don't save and override flag_var_tracking.
506         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
507         (bfin_reorg): Test original variables.
508         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
509         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
510         (ia64_flag_var_tracking): Drop.
511         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
512         (ia64_file_start): Don't save and override flag_var_tracking.
513         (ia64_override_options_after_change): Ditto
514         flag_schedule_insns_after_reload.
515         (ia64_reorg): Test original variables.
516         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
517         (picochip_flag_var_tracking): Drop.
518         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
519         (picochip_option_override): Don't save and override
520         flag_schedule_insns_after_reload.
521         (picochip_asm_file_start): Ditto flag_var_tracking.
522         (picochip_reorg): Test original variables.
523         * config/spu/spu.c (spu_flag_var_tracking): Drop.
524         (TARGET_DELAY_VARTRACK): Define.
525         (spu_var_tracking): New.
526         (spu_machine_dependent_reorg): Call it.
527         (asm_file_start): Don't save and override flag_var_tracking.
529 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
531         PR target/49163
532         * config/sh/predicates.md (general_movsrc_operand): Return 0
533         for memory and memory subreg of which address is an invalid
534         indexed address for QI and HImode.
535         (general_movdst_operand): Likewise.
537 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
539         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
540         edges only, when there is a non-local label in the function.
541         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
543 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
545         * config/i386/constraints.md (Y3): New register constraint.
546         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
547         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
548         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
549         *sse2_interleave_lowv2df.
551 2011-06-02  Julian Brown  <julian@codesourcery.com>
553         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
554         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
555         (arm_cortex_a5_tune): New.
557 2011-06-02  Julian Brown  <julian@codesourcery.com>
559         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
560         * config/arm/arm.c (arm_default_branch_cost): New.
561         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
562         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
563         (arm_fa726_tune): Set branch_cost field using
564         arm_default_branch_cost.
565         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
566         current_tune structure.
567         * dojump.c (tm_p.h): Include file.
569 2011-06-02  Julian Brown  <julian@codesourcery.com>
571         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
572         tuning.
573         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
574         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
575         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
576         field.
577         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
578         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
579         (arm_fa726te_tune): Add prefer_constant_pool setting.
580         (arm_v6t2_tune, arm_cortex_tune): New.
581         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
582         prefer_constant_pool setting.
584 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
586         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
587         switch statement.
588         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
589         (*movdf_internal) <case 6,7,8>: Ditto.
591         * config/i386/constraints.md (Y4): New register constraint.
592         * config/i386/sse.md (vec_set<mode>_0): Merge with
593         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
594         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
595         *vec_extractv2di_1_sse.
596         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
597         and *vec_concatv2di_rex64_sse.
599 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
601         PR target/48807
602         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
603         of cgraph_local_info for null before attempting to use it.
605 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
607         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
608         (current_function_dynamic_alloc_count): Delete.
609         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
610         (expand_builtin_nonlocal_goto): Remove obsolete comment.
611         (expand_builtin_update_setjmp_buf): Remove dead code.
612         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
613         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
614         support.
615         * function.c (instantiate_virtual_regs): Likewise.
616         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
617         for a block with a single abnormal incoming edge.
618         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
619         (SETJMP_VIA_SAVE_AREA): Delete.
620         * config/sparc/sparc-protos.h (load_got_register): Declare.
621         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
622         (load_got_register): Make global.
623         (sparc_frame_pointer_required): Add 'static'.
624         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
625         (sparc_builtin_setjmp_frame_value): New function.
626         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
627         (save_stack_nonlocal): New expander.
628         (restore_stack_nonlocal): Likewise.
629         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
630         (nonlocal_goto_internal): New insn.
631         (goto_handler_and_restore): Delete.
632         (builtin_setjmp_setup): Likewise.
633         (do_builtin_setjmp_setup): Likewise.
634         (setjmp): Likewise.
635         (builtin_setjmp_receiver): New expander.
637 2011-06-01  David Li  <davidxl@google.com>
639         PR middle-end/49261
640         * tree-pretty-print.c (dump_function_header): Format cleanup.
642 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
644         PR target/49238
645         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
646         needed when original operands are used for msw_skip comparison.
648 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
650         PR debug/49250
651         * var-tracking.c (add_uses, add_stores): Don't call
652         cselib_subst_to_values on ENTRY_VALUE.
654 2011-06-01  Diego Novillo  <dnovillo@google.com>
656         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
657         output_record_start with LTO_null instead of output_zero.
658         (lto_output_ts_binfo_tree_pointers): Likewise.
659         (lto_output_tree): Likewise.
660         (output_eh_try_list): Likewise.
661         (output_eh_region): Likewise.
662         (output_eh_lp): Likewise.
663         (output_eh_regions): Likewise.
664         (output_bb): Likewise.
665         (output_function): Likewise.
666         (output_unreferenced_globals): Likewise.
667         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
668         instead of NUM_TREE_CODES.
669         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
670         (lto_output_int_in_range): Change << to >> when shifting VAL.
672 2011-06-01  Diego Novillo  <dnovillo@google.com>
674         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
675         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
677 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
679         PR target/45074
680         * optabs.h (valid_multiword_target_p): Declare.
681         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
682         doing multi-word operations.
683         * optabs.c (expand_binop): Likewise.
684         (expand_doubleword_bswap): Likewise.
685         (expand_absneg_bit): Likewise.
686         (expand_unop): Likewise.
687         (expand_copysign_bit): Likewise.
688         (multiword_target_p): New function.
690 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
692         PR rtl-optimization/48830
693         PR rtl-optimization/48808
694         PR rtl-optimization/48792
695         * reload.c (push_reload): Check contains_reg_of_mode.
696         * reload1.c (strip_paradoxical_subreg): New function.
697         (gen_reload_chain_without_interm_reg_p): Use it to handle
698         paradoxical subregs.
699         (emit_output_reload_insns, gen_reload): Likewise.
701 2011-06-01  David Li  <davidxl@google.com>
703         * predict.c : Change pass name
704         * ipa.c: Ditto.
705         * dce.c: Ditto.
706         * tree-profile.c: Ditto.
707         * except.c: Ditto.
709 2011-06-01  David Li  <davidxl@google.com>
711         * tree-pretty-print.c (dump_function_header): New function.
712         * final.c (rest_of_clean_state): Use header dumper.
713         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
714         * passes.c (pass_init_dump_file): Use header dumper.
716 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
718         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
719         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
720         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
721         New functions.
722         (mem_loc_descriptor): Use them.
724         * var-tracking.c (create_entry_value): New function.
725         (vt_add_function_parameter): Use it.
727 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
729         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
730         Include <signal.h>, <ucontext.h>.
731         (sigill_caught): Define.
732         (sigill_hdlr): New function.
733         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
734         insns can be executed.
735         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
736         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
738 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
740         * config/t-slibgcc-darwin: Move to ...
741         * config/t-slibgcc-dummy: ... this.  Clarify comments.
742         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
743         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
744         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
745         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
746         Remove i386/t-crtstuff from tmake_file.
747         (i[34567]86-*-solaris2*): Remove t-svr4,
748         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
749         t-slibgcc-dummy.
750         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
751         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
752         sparc/t-crtfm from tmake_file.
753         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
754         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
755         Remove extra_parts.
756         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
757         * config/i386/t-nwld (SHLIB_LINK): Remove.
758         * config/i386/t-rtems-i386: Rename to ...
759         * config/i386/t-rtems: ... this.
760         ($(T)crti.o, $(T)crtn.o): Remove.
761         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
762         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
763         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
764         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
765         EXTRA_MULTILIB_PARTS): Remove.
766         * config/sparc/t-sol2-64: Likewise.
767         * config/sparc/t-sol2: Remove.
768         * config/sparc/t-crtin: Remove.
769         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
770         * config/i386/gmon-sol2.c: Remove.
771         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
772         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
773         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
774         * config/i386/sol2-gc1.asm: Remove.
775         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
776         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
777         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
778         * config/t-slibgcc-sld: Remove.
780 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
782         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
783         base_type_for_mode with op_mode instead of mode.
785 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
787         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
788         Cortex-A15.
789         * config/arm/arm-tune.md: Regenerate.
790         * config/arm/arm-tables.opt: Regenerate.
791         * config/arm/arm.c (FL_DIV): Rename...
792         (FL_THUMB_DIV): ... to this.
793         (FL_ARM_DIV): Define.
794         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
795         (arm_arch_hwdiv): Remove.
796         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
797         (arm_issue_rate): Add cortexr5.
798         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
799         __ARM_ARCH_EXT_IDIV__.
800         (TARGET_IDIV): Define.
801         (arm_arch_hwdiv): Remove.
802         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
803         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
804         (divsi3, udivsi3): New patterns.
805         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
806         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
808 2011-06-01  Martin Jambor  <mjambor@suse.cz>
810         * ipa-utils.c (ipa_dfs_info): New field scc_no.
811         * ipa-utils.c (searchc): Set scc_no.
813 2011-06-01  Martin Jambor  <mjambor@suse.cz>
815         * ipa-utils.c (searchc_env): New field allow_overwritable.
816         (searchc): do not ignore edges to overwritable nodes if indicated
817         by env->allow_overwritable.
818         (ipa_reduced_postorder): Set env.allow_overwritable.
820 2011-06-01  Richard Guenther  <rguenther@suse.de>
822         * tree.c (free_lang_data): Do not reset boolean_type_node nor
823         char_type_node.
824         * lto-streamer.c (lto_record_common_node): Take node pointer,
825         do not register types.
826         (lto_preload_common_nodes): Explicitly skip preloading nodes
827         that differ between frontends.
829 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
831         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
832         NON_FLOAT_REGS.
834 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
836         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
837         parameter value for dump. Dump cost on outermost call only.
838         (rs6000_memory_move_cost): Dump cost on outermost call only.
840 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
842         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
843         DW_OP_GNU_convert ops.
845         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
846         cselib_preserve_constants.
847         (cselib_lookup_1): If cselib_preserve_constants,
848         a new VALUE is being created for REG and there is a VALUE for the
849         same register in wider mode, add another loc with lowpart SUBREG of
850         the wider VALUE.
851         (cselib_subst_to_values): Handle ENTRY_VALUE.
852         * var-tracking.c  (replace_expr_with_values): Return NULL for
853         ENTRY_VALUE too.
854         * dwarf2out.c (convert_descriptor_to_signed): New function.
855         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
856         instead of two shifts.
857         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
858         the right mode if needed.
859         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
860         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
861         convert_descriptor_to_signed.
862         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
863         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
865         PR target/48688
866         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
868 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
870         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
871         of X87MODEI12 and SWI48x instead of SSEMODEI24.
872         (SWI248x): New mode iterator, rename from X87MODEI.
873         (X87MODEI): Remove mode iterator.
874         (X87MODEI12): Ditto.
875         (SSEMODEI24): Ditto.
877 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
879         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
880         * doc/invoke.texi: Document max-vartrack-expr-depth.
881         * var-tracking.c (EXPR_DEPTH): New.
882         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
884 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
886         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
887         * config/i386/sse.md: Add n to negated FMA pattern names.
889 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
891         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
893 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
895         * gengtype-state.c (read_state_params_structs): Initialize previous.
897 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
899         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
900         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
902 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
904         * config/i386/i386.md (*movtf_internal): Avoid allocating general
905         registers.  Penalize F*r->o alternative to prevent partial memory
906         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
907         CONST_DOUBLE immediates when optimizing function for size.  Do not move
908         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
909         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
910         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
911         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
912         alternatives.
913         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
915         (fp_register_operand splitters): Use fp_register_operand
916         constraint.  Do not use FP_REG_P in insn condition.
917         (any_fp_register_operand splitters): Use any_fp_register_operand
918         constraint.  Do not use ANY_FP_REG_P in insn condition.
920 2011-05-31  Jan Hubicka  <jh@suse.cz>
922         * cgraph.h (cgraph_inline_failed_t): Give enum a name
923         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
924         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
925         (lto_output_edge): Use output_enum and var_len_unsigned.
926         (lto_output_varpool_node): Likewise.
927         (input_overwrite_node): Do not take resolution parameter;
928         extract it from a bitpack.
929         (input_node): Do not read resolution; use input_enum and
930         var_len_unsigned.
931         (input_varpool_node): Likewise.
932         (input_edge): Likewise.
933         (input_cgraph_1): Likewise.
935 2011-05-31  Richard Guenther  <rguenther@suse.de>
937         * gimple.c (gimple_register_canonical_type): Do not register
938         any types via gimple_register_type.
940 2011-05-31  Jan Hubicka  <jh@suse.cz>
942         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
943         of thunks.
945 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
947         PR rtl-optimization/49235
948         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
949         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
951 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
953         PR tree-optimization/49093
954         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
955         data references.
957 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
959         PR debug/49047
960         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
961         for concrete functions containing the code of cloned functions.
963 2011-05-31  Richard Guenther  <rguenther@suse.de>
965         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
966         to ...
967         (forward_propagate_into_comparison_1): ... this.
968         (forward_propagate_comparison): Rename to ...
969         (forward_propagate_into_comparison): ... this.  Split out
970         real forward propagation code to ...
971         (forward_propagate_comparison): ... this.
972         (forward_propagate_into_gimple_cond): Remove looping.
973         (forward_propagate_into_cond): Likewise.
974         (simplify_not_neg_expr): Return whether we have done something.
975         (simplify_gimple_switch): Likewise.
976         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
977         (ssa_forward_propagate_and_combine): ... this.  Re-structure
978         to do a forward forward-propagation walk on BBs and a backward
979         stmt combining walk on BBs.  Consistently re-scan changed statements.
980         (pass_forwprop): Adjust.
982 2011-05-30  Ian Lance Taylor  <iant@google.com>
984         * godump.c (go_format_type): Correct length of name added to
985         obstack for anonymous field.
987 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
989         PR target/49186
990         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
991         part of the second operand is 0.
993 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
995         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
996         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
997         to memory for !TARGET_MEMORY_MISMATCH_STALL.
998         (*movdf_internal_rex64): Do not penalize F->r alternative.
999         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
1000         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
1001         when optimizing function for size.  Do not move CONST_DOUBLEs
1002         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
1003         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
1004         SUBREGs.  Do not check for MEM_P operands in the insn condition,
1005         check for ANY_FP_REGNO_P instead.
1006         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
1007         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
1008         function for speed.
1009         * config/i386/i386.c (ix86_option_override_internal): Do not
1010         set TARGET_INTEGER_DFMODE_MOVES here.
1012 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
1014         PR target/49168
1015         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
1017 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
1019         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
1020         DW_TAG_rvalue_reference_type even for
1021         -gdwarf-4 -fno-debug-types-section.
1023 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1025         PR tree-optimization/46728
1026         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
1027         (build_and_insert_binop): New.
1028         (gimple_expand_builtin_pow): Reorder args for
1029         build_and_insert_call; use build_and_insert_binop; add more
1030         optimizations for fractional exponents.
1032 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
1034         PR bootstrap/49190
1036         Revert:
1037         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
1039         * tree.h (struct tree_identifier): Inherit from tree_typed, not
1040         tree_common.
1041         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
1042         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
1043         TS_BASE instead of TS_COMMON.
1044         * varasm.c (assemble_name): Remove assert.
1046 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
1048         * config.gcc: Keep obselete list sorted.
1050 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
1051             Eric Botcazou  <ebotcazou@adacore.com>
1053         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
1054         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
1055         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
1056         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
1057         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
1059 2011-05-30  Richard Guenther  <rguenther@suse.de>
1061         * gimple.c (gimple_types_compatible_p_1): Compare record
1062         and union type members properly.
1064 2011-05-30  Richard Guenther  <rguenther@suse.de>
1066         PR tree-optimization/49210
1067         * ipa-split.c (split_function): Care for the case where the call
1068         result is not trivially convertible to the result holding variable.
1070 2011-05-30  Richard Guenther  <rguenther@suse.de>
1072         PR tree-optimization/49218
1073         * tree-vrp.c (adjust_range_with_scev): Properly check whether
1074         overflow occured.
1076 2011-05-30  Richard Guenther  <rguenther@suse.de>
1078         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
1079         New function split out from ...
1080         (forward_propagate_into_gimple_cond): ... here.  Adjust.
1081         (forward_propagate_into_cond): Likewise.
1082         (forward_propagate_comparison): Also propagate into
1083         comparisons on assignment RHS.  Change return value to
1084         behave similar to forward_propagate_into_cond.
1085         (tree_ssa_forward_propagate_single_use_vars): Handle
1086         strict-overflow warnings properly for forward_propagate_comparison.
1088 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1090         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
1091         from plugin linker.
1092         * configure: Regenerate.
1094 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
1096         PR tree-optimization/49199
1097         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
1098         non-reduction operands are either defined in the loop or by induction.
1100 2011-05-29  Xinliang David Li  <davidxl@google.com>
1102         * opts-global.c (handle_common_deferred_options): Handle new options.
1103         * passes.c (register_one_dump_file): Call register_pass_name.
1104         (execute_one_pass): Check explicit enable/disable flag.
1105         (passr_hash): New function.
1106         (passr_eq): Ditto.
1107         (register_pass_name): Ditto.
1108         (get_pass_by_name): Ditto.
1109         (pass_hash): Ditto.
1110         (pass_eq): Ditto.
1111         (enable_pass): Ditto.
1112         (disable_pass): Ditto.
1113         (is_pass_explicitly_enabled_or_disabled): Ditto.
1115 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
1117         * config/i386/i386.md (*movoi_internal_avx): Use
1118         standard_sse_constant_opcode for alternative 0.
1119         (*movti_internal_sse): Ditto.
1120         (*movti_internal_rex64): Use standard_sse_constant_opcode for
1121         alternative 2.
1122         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
1123         sselog1 type moves.
1124         (*movsi_internal): Ditto.
1125         (*movdi_internal): Ditto.  Add ssecvt type moves.
1127 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1129         PR target/48830
1130         * rtlanal.c (simplify_subreg_regno): Adjust comment.
1132 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
1134         PR rtl-optimization/49095
1135         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
1136         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
1138 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
1140         PR target/43995
1141         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
1142         recurse_p argument.  Only follow register copies if it is set,
1143         and prevent mips_find_pic_call_symbol from recursing.
1144         (mips_find_pic_call_symbol): Add a recurse_p argument.
1145         Pass it to mips_pic_call_symbol_from_set.
1146         (mips_annotate_pic_calls): Update accordingly.
1148 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
1150         * emit-rtl.c (try_split): Use a loop to search for
1151         NOTE_INSN_CALL_ARG_LOCATIONs.
1153 2011-05-29  Richard Guenther  <rguenther@suse.de>
1155         PR tree-optimization/49217
1156         * ipa-pure-const.c (propagate_pure_const): Fix typos.
1158 2011-05-28  Jan Hubicka  <jh@suse.cz>
1160         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
1161         length.
1162         (string_slot_free): Remove
1163         (create_output_block): Initialize obstack.
1164         (destroy_output_block): Free obstack.
1165         (lto_string_index): Add PERSISTENT parameter; do not duplicate
1166         the string unless it needs to be added into the hash.
1167         (lto_output_string_with_length): Add persistent attribute;
1168         handle NULL strings.
1169         (lto_output_string): Add PERSISTENT parameter.
1170         (output_string_cst, output_identifier): Simplify.
1171         (lto_output_location_bitpack): Update.
1172         (lto_output_builtin_tree): Update.
1173         * lto-streamer.h (struct output_block): Add obstack.
1174         (lto_output_string, lto_output_string_with_length): Remove
1175         declarations; functions are static now.
1177 2011-05-28  Jan Hubicka  <jh@suse.cz>
1179         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
1180         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
1181         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
1182         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
1183         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
1184         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
1185         unpack_ts_decl_with_vis_value_fields,
1186         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
1187         lto_get_builtin_tree): Use enum and variable length i/o.
1188         * basic-block.h (profile_status_d): Add PROFILE_LAST.
1189         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
1190         New functions.
1191         (bp_pack_enum, bp_unpack_enum): New macros.
1193 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
1195         * genrecog.c: Remove redundant forward declarations.
1197 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
1199         * config.gcc: Deprecate mips*-*-openbsd*.
1201 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
1203         PR bootstrap/49195
1204         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
1205         for match_op_dup.
1207 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
1209         PR middle-end/48981
1210         * gengtype.c (vec_prefix_type): New function.
1211         (note_def_vec): Use vec_prefix_type and change the length
1212         attribute to be based on the prefix.
1213         * vec.c: Include coretypes.h before vec.h.
1214         (struct vec_prefix): Remove.
1215         (vec_gc_p_reserve): Change the offsetof to sizeof.
1216         (vec_gc_p_reserve_exact): Likewise.
1217         (vec_heap_p_reserve): Likewise.
1218         (vec_heap_p_reserve_exact): Likewise.
1219         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
1220         (vec_stack_p_reserve): Change the offsetof to sizeof.
1221         (vec_stack_p_reserve_exact): Likewise.
1222         * vec.h (struct vec_prefix): New struct definition.
1223         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
1224         (VEC_T_GTY(T,B)): Likewise.
1225         (DEF_VEC_FUNC_P(T)): Use prefix field.
1226         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
1227         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
1229 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1231         PR tree-optimization/46728
1232         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
1233         (powi_as_mults): Add gimple_set_location.
1234         (build_and_insert_call): New.
1235         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
1236         0.5, 0.25, 0.75, 1./3., or 1./6.
1238 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
1240         * doc/contrib.texi: Update copyright years.
1241         (Contributors): Add Zdenek Sojka.
1243 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
1245         * c-decl.c (c_push_function_context): Copy the current statement
1246         list stack.
1247         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
1248         (finish_struct): Call building_stmt_list_p instead of checking
1249         cur_stmt_list.
1250         * c-parser.c (c_parser_postfix_expression): Likewise.
1251         * c-typeck.c (c_end_compound_stmt): Likewise.
1252         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
1253         * tree-iterator.c (stmt_list_cache): Change to a VEC.
1254         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
1255         (free_stmt_list): Likewise.
1256         * tree.h (struct tree_statement_list): Include typed_tree instead
1257         of tree_common.
1258         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
1259         as TS_TYPED instead of TS_COMMON.
1261 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1262             Uros Bizjak  <ubizjak@gmail.com>
1264         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
1265         (HAVE_AS_IX86_TLSGDPTL): Define.
1266         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
1267         (HAVE_AS_IX86_TLSLDMPLT): Define.
1268         * configure: Regenerate.
1269         * config.in: Regenerate.
1270         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
1271         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
1272         TARGET_SUN_TLS, use @tlsgdplt or @plt.
1273         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
1274         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
1275         @tlsldmplt or @plt.
1276         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
1278 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
1280         * sched-int.h (struct _haifa_deps_insn_data): New members cond
1281         and reverse_cond.
1282         (INSN_COND, INSN_REVERSE_COND): New macros.
1283         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
1284         once.
1285         (sched_get_condition_with_rev): Cache the results, and look them up
1286         if possible.
1287         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
1288         are clobbered by the current insn.
1289         * target.def (exposed_pipline): New sched data hook.
1290         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
1291         * doc/tm.texi: Regenerate.
1293 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1295         PR tree-optimization/49170
1296         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
1297         sincos or cexp.
1299 2011-05-27  Richard Guenther  <rguenther@suse.de>
1301         PR middle-end/49189
1302         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
1303         of comparisons.
1305 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
1307         * haifa-sched.c (sched_scan_info): Remove.
1308         (schedule_block): Call sched_extend_luids rather than sched_init_luids
1309         with NULL args.
1310         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
1311         Remove functions.
1312         (sched_scan): Remove.
1313         (sched_extend_luids): Renamed from luids_extend_insn and no longer
1314         static.  All callers changed.
1315         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
1316         static.  All callers changed.
1317         (sched_init_luids): Remove all arguments except the first.  All
1318         callers changed.  Don't use sched_scan.
1319         (haifa_init_h_i_d): Likewise.
1320         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
1321         manually rather than using sched_init_luids.  Likewise with
1322         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
1323         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
1324         rather than sched_init_luids with NULL args.
1325         * sel-sched-ir.c (new_insns): Remove variable.
1326         (sched_scan): New static function, previously in haifa-sched.c.  Remove
1327         all arguments but the first two; all callers changed.
1328         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
1329         rather than sched_init_luids.
1330         (sel_init_bbs): Remove second argument.  All callers changed.
1331         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
1332         with NULL arguments.
1333         (create_insn_rtx_from_pattern): Likewise.
1334         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
1335         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
1336         (sched_init_insn_luid, sched_extend_luids): Declare.
1337         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
1338         declarations.
1340 2011-05-27  Richard Guenther  <rguenther@suse.de>
1342         PR middle-end/49177
1343         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
1344         A CMP B ? (T) true : (T) false for non-integral types T again.
1346 2011-05-27  Jan Hubicka  <jh@suse.cz>
1348         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
1349         so 0 means NULL string.
1350         (lto_output_string_with_length): ... here.
1351         (lto_output_string, output_string_cst, output_identifier): Update
1352         handling of NULL strings.
1353         (lto_output_location_bitpack): New function.
1354         (lto_output_location): Use it.
1355         (lto_output_tree_ref): Use output_record_start.
1356         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
1357         len values.
1358         * lto-streamer-in.c (string_for_index): Break out from ...; offset
1359         values by 1.
1360         (input_string_internal): ... here;
1361         (input_string_cst, input_identifier, lto_input_string): Update handling
1362         of NULL strings.
1363         (lto_input_location_bitpack): New function
1364         (lto_input_location): Use it.
1365         (unpack_ts_type_common_value_fields): Pack align & alias in var len
1366         values.
1367         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
1368         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
1369         (bp_pack_value): Sanity check the value range.
1370         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
1371         New functions.
1372         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
1373         New functions.
1375 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
1377         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
1378         call_arg_location instructions down the floor.
1380 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
1382         PR rtl-optimization/49154
1383         * ira.c (setup_pressure_classes): Process class without sublcasses
1384         as a candidate for pressure classes.
1386 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
1388         PR rtl-optimization/48575
1389         * genrecog.c (position_type): New enum.
1390         (position): New structure.
1391         (decision): Use position structure instead of a string.
1392         (root_pos, peep2_insn_pos_list): New variables.
1393         (next_position, compare_positions): New functions.
1394         (new_decision): Use position structures instead of strings.
1395         (maybe_both_true): Likewise.
1396         (change_state): Likewise.
1397         (write_tree): Likewise.
1398         (make_insn_sequence): Likewise.
1400 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
1402         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
1403         TS_BASE instead of TS_COMMON.
1404         (find_decls_types_r): Check for TS_TYPED structure before looking at
1405         TREE_TYPE.
1406         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
1407         Add chain field.
1408         (BLOCK_CHAIN): Use new chain field.
1410 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
1412         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
1413         moves expensive on Power7 also.
1415 2011-05-26  Richard Guenther  <rguenther@suse.de>
1417         * fold-const.c (fold_unary_loc): Remove bogus code.
1419 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
1421         * tree.h (struct tree_identifier): Inherit from tree_typed, not
1422         tree_common.
1423         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
1424         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
1425         TS_BASE instead of TS_COMMON.
1426         * varasm.c (assemble_name): Remove assert.
1428 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
1430         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
1431         substituted first.
1432         * libgcc-std.ver: Delete file.
1434 2011-05-26  Richard Guenther  <rguenther@suse.de>
1436         PR tree-optimization/48702
1437         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
1438         only when we know the base address is within bounds.
1439         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
1440         assume the base address of TARGET_MEM_REFs is in bounds.
1442 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1444         PR target/49099
1445         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
1446         declaration in TARGET_SOLARIS.
1448 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
1450         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
1451         The instruction is then expanded explicitly.
1452         (supported_compare): Callable instruction.
1453         (compare): Likewise.
1455 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
1457         PR c++/49165
1458         * gimplify.c (shortcut_cond_r): Don't special case
1459         COND_EXPRs if they have void type on one of their arms.
1461 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
1463         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
1464         to reduce duplication, and to achieve a slightly more logical order
1465         of operations.
1467 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
1469         PR tree-optimization/49161
1470         * tree-vrp.c (struct case_info): New type.
1471         (compare_case_labels): Sort case_info structs instead of
1472         trees, and not primarily by CASE_LABEL uids but by
1473         label_for_block indexes.
1474         (find_switch_asserts): Put case labels into struct case_info
1475         array instead of TREE_VEC, adjust sorting, compare label_for_block
1476         values instead of CASE_LABELs.
1478 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1480         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
1481         ("orndi3_neon"): Likewise.
1482         ("bic<mode>3_neon"): Likewise.
1484 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
1486         PR tree-optimization/49038
1487         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
1488         Ensure at least one epilogue iteration if required by data
1489         accesses with gaps.
1490         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1491         to mark loops that require peeling for gaps.
1492         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
1493         (vect_get_known_peeling_cost): Take peeling for gaps into
1494         account.
1495         (vect_transform_loop): Generate epilogue if required by data
1496         access with gaps.
1497         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
1498         loop as requiring an epilogue if there are gaps in the end of
1499         the strided group.
1501 2011-05-25  Ian Lance Taylor  <iant@google.com>
1503         * godump.c (go_format_type): Output the first field with a usable
1504         Go type, if any.
1506 2011-05-25  Ian Lance Taylor  <iant@google.com>
1508         * godump.c (go_format_type): Check for invalid type names, pointer
1509         target types, and struct field types.
1511 2011-05-25  Jason Merrill  <jason@redhat.com>
1513         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
1515 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
1517         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
1519 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1521         * config/i386/i386.md (*movqi_extv_1)): Put back
1522         "register_operand" check in "type" calculation.
1523         (*movqi_extzv_2): Likewise.
1525 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1527         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
1529 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
1531         PR bootstrap/49160
1532         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
1533         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
1534         __divxc3, __divtc3): Wrap definitions in #ifndef.
1536 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1538         PR target/49142
1539         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
1540         "register_operand" check and replace q_regs_operand with
1541         QIreg_operand in "type" calculation.
1542         (*movqi_extv_1): Likewise.
1543         (*movqi_extzv_2_rex64): Likewise.
1544         (*movqi_extzv_2): Likewise.
1546         * config/i386/predicates.md (QIreg_operand): New.
1548 2011-05-25  Richard Guenther  <rguenther@suse.de>
1550         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
1551         type-based offset disambiguation, streamline MEM_REF and
1552         TARGET_MEM_REF handling.
1554 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1556         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
1557         (bdesc_special_args): Add pause intrinsic.
1559         * config/i386/i386.md (UNSPEC_PAUSE): New.
1560         (pause): Likewise.
1561         (*pause): Likewise.
1562         * config/i386/ia32intrin.h (__pause): Likewise.
1564         * doc/extend.texi (X86 Built-in Functions): Add documentation for
1565         pause intrinsic.
1567 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1569         PR tree-optimization/46728
1570         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
1571         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
1573 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1575         * tree.h (struct tree_exp): Inherit from struct tree_typed.
1576         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
1577         instead of TS_COMMON.
1579 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
1581         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
1582         LIBGCC2_GNU_PREFIX is defined.
1583         (__N): New macro.
1584         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
1585         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
1586         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
1587         __clz_tab): Define using __N.
1588         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
1589         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1590         * target.def (libfunc_gnu_prefix): New hook.
1591         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
1592         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
1593         * doc/tm.texi: Regenerate.
1594         * system.h (LIBGCC2_GNU_PREFIX): Poison.
1595         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
1596         account.
1597         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
1598         (init_optabs): Likewise for the bswap libfuncs.
1599         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
1600         and divide.
1601         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
1602         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
1603         * libgcc-std.ver: Remove.
1604         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
1605         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
1606         libgcc-std.ver.
1607         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1608         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
1609         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
1610         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
1611         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
1612         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1613         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1614         * config/fixed-bit.h (FIXED_OP): Define differently depending on
1615         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
1616         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
1618 2011-05-25  Jan Hubicka  <jh@suse.cz>
1620         * lto-streamer-out.c (output_record_start): Use lto_output_enum
1621         (lto_output_tree): Use output_record_start.
1622         * lto-streamer-in.c (input_record_start): Use lto_input_enum
1623         (lto_get_pickled_tree): Use input_record_start.
1624         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
1625         (lto_value_range_error): New function.
1626         * lto-streamer.h (lto_value_range_error): Declare.
1627         (lto_output_int_in_range, lto_input_int_in_range): New functions.
1628         (lto_output_enum, lto_input_enum): New macros.
1630 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1632         * common.opt (flag_stack_usage_info): New variable.
1633         (-Wstack-usage): New option.
1634         * doc/invoke.texi (Warning options): Document -Wstack-usage.
1635         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
1636         <OPT_fstack_usage>: Likewise.
1637         * toplev.c (output_stack_usage): Handle -Wstack-usage.
1638         * calls.c (expand_call): Test flag_stack_usage_info variable instead
1639         of flag_stack_usage.
1640         (emit_library_call_value_1): Likewise.
1641         * explow.c (allocate_dynamic_stack_space): Likewise.
1642         * function.c (instantiate_virtual_regs ): Likewise.
1643         (prepare_function_start): Likewise.
1644         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
1645         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
1646         * config/arm/arm.c (arm_expand_prologue): Likewise.
1647         (thumb1_expand_prologue): Likewise.
1648         * config/avr/avr.c (expand_prologue): Likewise.
1649         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1650         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1651         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
1652         * config/mips/mips.c (mips_expand_prologue): Likewise.
1653         * config/pa/pa.c (hppa_expand_prologue): Likewise.
1654         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1655         * config/s390/s390.c (s390_emit_prologue): Likewise.
1656         * config/sh/sh.c (sh_expand_prologue): Likewise.
1657         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1658         * config/spu/spu.c (spu_expand_prologue): Likewise.
1660 2011-05-25  Richard Guenther  <rguenther@suse.de>
1662         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
1663         (gimple_canonical_types_compatible_p): Likewise.
1665 2011-05-25  Jan Hubicka  <jh@suse.cz>
1667         PR middle-end/49062
1668         * ipa.c (function_and_variable_visibility): Only add to same
1669         comdat group list if DECL_ONE_ONLY.
1671 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
1673         PR rtl-optimization/49014
1674         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
1676 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
1678         PR target/49128
1679         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1681 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1683         PR rtl-optimization/48757
1684         * ira-build.c (loop_with_eh_edge_p): Rename to
1685         loop_with_complex_edge_p, check edges on complexity, make function
1686         conditional.
1687         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
1688         conditional.
1690 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1692         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
1693         force flag_ira_share_save_slots to 0.
1695 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1697         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
1698         (vt_initialize): Set PROLOGUE_BB unconditionally.
1699         Add block comment about CFA_BASE_RTX machinery.
1700         Reset FP_CFA_OFFSET to -1 on all invalid paths.
1701         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
1703 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1705         PR objc/48187
1706         * c-parser.c (c_parser_objc_class_instance_variables): More robust
1707         parsing of syntax error in ObjC instance variable lists.  In
1708         particular, avoid an infinite loop if there is a stray ']'.
1709         Updated error message.
1711 2011-05-24  Ian Lance Taylor  <iant@google.com>
1713         * godump.c (go_define): Don't accept a string immediately after
1714         another operand.
1716 2011-05-24  Ian Lance Taylor  <iant@google.com>
1718         * godump.c (struct godump_container): Add invalid_hash field.
1719         (go_format_type): Return false if type is found in invalid_hash.
1720         (go_output_typedef): Add invalid type to invalid_hash.
1721         (go_finish): Create and delete invalid_hash.
1723 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1725         PR tree-optimization/46728
1726         * tree-ssa-math-opts.c (powi_table): New.
1727         (powi_lookup_cost): New.
1728         (powi_cost): New.
1729         (powi_as_mults_1): New.
1730         (powi_as_mults): New.
1731         (gimple_expand_builtin_powi): New.
1732         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
1733         (gate_cse_sincos): Remove sincos/cexp restriction.
1735 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1737         PR target/3746
1738         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
1739         mips-tdump native.
1740         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
1741         * mips-tdump.c: Likewise.
1743 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1745         PR target/49128
1746         * config/i386/driver-i386.c (host_detect_local_cpu): Always
1747         add -mno-XXX.  Handle FMA.
1749 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1751         PR rtl-optimization/48633
1752         * ira-build.c (loop_with_eh_edge_p): New function.
1753         (mark_loops_for_removal): Use it.
1755 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1757         PR rtl-optimization/48971
1758         * ira.c (setup_pressure_classes): Don't check register move cost
1759         for classes with one registers.  Don't add pressure class if there
1760         is a pressure class with the same available hard registers.
1761         Check contains_reg_of_mode.  Fix a typo in collecting
1762         temp_hard_regset.  Ignore hard registers not belonging to a class.
1764 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
1766         PR target/49133
1767         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
1769 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1770             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1772         PR gcov-profile/48845
1773         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
1775 2011-05-24  Richard Guenther  <rguenther@suse.de>
1777         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
1778         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
1779         (gimple_types_compatible_p_1): Adjust.
1780         (iterative_hash_canonical_type): Do not bother about complete vs.
1781         incomplete types.
1782         (gimple_canonical_types_compatible_p): Likewise.
1784 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1786         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
1788 2011-05-24  Richard Guenther  <rguenther@suse.de>
1790         PR bootstrap/49078
1791         * gimple.c (gimple_register_canonical_type): Revert
1792         previous change.
1793         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
1794         does not for a tree for the case where it matters.  Cache
1795         pointer-type alias-sets.
1797 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
1799         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
1800         (OBJS): Remove options.o, opts-common.o and prefix.o.
1801         (OBJS-libcommon-target): New.
1802         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
1803         (BACKEND): Include libcommon-target.a.
1804         (MOSTLYCLEANFILES): Include libcommon-target.a.
1805         (libcommon-target.a): New.
1806         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
1807         prefix.o.
1809 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
1811         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
1812         parts of output shared with the driver.
1813         * optc-gen.awk: Don't generate parts of output not shared with the
1814         driver.
1815         * opth-gen.awk: Remove GCC_DRIVER conditionals.
1816         * doc/options.texi (SourcerInclude): Mention options-save.c.
1817         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
1818         (OBJS): Add options-save.o.
1819         (options-save.c, options-save.o): New.
1820         (options.o): Update dependencies.
1821         (gcc-options.o): Remove.
1822         (mostlyclean): Remove options-save.c.
1824 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1826         PR debug/49032
1827         * dbxout.c: Include cgraph.h.
1828         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
1829         and without value expr, return NULL if no varpool node exists for
1830         it or if it is not needed.
1831         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
1833         PR c/49120
1834         * c-decl.c (start_decl): Convert expr to void_type_node.
1836 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
1838         PR rtl-optimization/48826
1839         * emit-rtl.c (try_split): When splitting a call that is followed
1840         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
1842 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1844         * cfgexpand.c (expand_debug_expr): For unused non-addressable
1845         parameters passed in memory prefer using DECL_INCOMING_RTL over
1846         the pseudos it will be copied into.
1848 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1850         PR target/47315
1851         * config/i386/i386.c (ix86_option_override_internal): Save the
1852         initial options after checking vzeroupper.
1854 2011-05-23  David Li  <davidxl@google.com>
1856         PR tree-optimization/48988
1857         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1858         Initialize has_valid_pred for each pred chain.
1860 2011-05-23  Richard Guenther  <rguenther@suse.de>
1862         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1863         (iterative_hash_gimple_type): Always hash type names.
1865 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
1867         * c-typeck.c (build_function_call_vec): Tweak call to
1868         check_function_arguments.
1870 2011-05-23  Richard Guenther  <rguenther@suse.de>
1872         PR tree-optimization/49115
1873         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1874         is not necessarily carried out, do not claim it kills the ref.
1875         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1877 2011-05-23  Richard Guenther  <rguenther@suse.de>
1879         PR middle-end/15419
1880         * builtins.c (fold_builtin_memory_op): Be less restrictive about
1881         what pointer types we accept for folding.
1883 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1885         * gthr-gnat.c: Remove.
1886         * gthr-gnat.h: Remove.
1887         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1888         * config/t-freebsd (LIB2ADDEH): Likewise.
1889         * config/t-linux (LIB2ADDEH): Likewise.
1890         * config/t-sol2 (LIB2ADDEH): Likewise.
1891         * config/ia64/t-vms (LIB2ADDEH): Likewise.
1892         * configure.ac (target_thread_file): Remove gnat handling.
1893         * configure: Regenerate.
1894         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1896 2011-05-23  Tristan Gingold  <gingold@adacore.com>
1897             Eric Botcazou  <ebotcazou@adacore.com>
1899         * gcov.c (create_file_names): If no object directory is specified,
1900         keep the directory of the file.
1902 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1904         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1905         * configure: Regenerate.
1907 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1909         PR middle-end/48973
1910         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1911         failed and the comparison has a single bit signed type, use
1912         constm1_rtx instead of const1_rtx for true value.
1913         (do_store_flag): If ops->type is single bit signed type, disable
1914         signel bit test optimization and pass -1 instead of 1 as last
1915         parameter to emit_store_flag_force.
1917 2011-05-23  Tom de Vries  <tom@codesourcery.com>
1919         PR target/45098
1920         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1921         function.
1922         (infer_loop_bounds_from_undefined): Use new function.
1924 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1926         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1927         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
1928         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1929         and -O0 otherwise.
1930         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1932 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1934         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1935         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1936         returns true.
1938 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1940         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1942 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1944         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1945         UNSPEC_MOVE_PIC pattern.
1947 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1949         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1950         (sparc-*-rtems*): Likewise.
1951         (sparc64-*-elf*): Likewise.
1952         (sparc64-*-rtems*): Likewise.
1953         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
1954         * config/sparc/t-crtin: New file.
1955         * config/sparc/t-sol2 (crti.o): Delete rule.
1956         (crtn.o): Likewise.
1957         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1958         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1959         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1960         (ENDFILE_SPEC): Add crtn.o.
1962 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1964         PR middle-end/48689
1965         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1966         CODE_CONTAINS_STRUCT (TS_COMMON).
1968 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
1970         PR middle-end/49029
1971         * expmed.c (extract_fixed_bit_field): Test whether target can be used
1972         only after deciding which mode to use.
1974 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1976         PR target/45098
1977         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1978         for call to get_shiftadd_cost.
1980 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
1982         PR target/49104
1983         * config/i386/cpuid.h (bit_MMXEXT): New define.
1985 2011-05-22  Nick Clifton  <nickc@redhat.com>
1987         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1988         initialisation of non-existant args[2] element.  Use args[] array
1989         not arg[] array to pass arguments to build_function_type_list.
1991 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
1993         PR tree-optimization/49087
1994         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1996 2011-05-21  Jason Merrill  <jason@redhat.com>
1998         PR c++/49092
1999         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
2000         static storage duration.
2002 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2004         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
2005         frame pointer.
2007 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2009         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
2010         false if there are call-saved registers here...
2011         (sparc_can_use_return_insn_p): ...but here instead.
2012         (save_or_restore_regs): Fix thinko.
2013         (sparc_expand_prologue): Use current_function_is_leaf.
2014         (sparc_frame_pointer_required): Likewise.
2016 2011-05-21  Nick Clifton  <nickc@redhat.com>
2018         PR target/49098
2019         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
2021 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2023         * gengtype.c (walk_type): Implemented "atomic" GTY option.
2024         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
2026 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
2028         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
2029         * optc-gen.awk: Move common code to opt-read.awk.
2030         * opth-gen.awk: Likewise.
2031         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
2033 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
2035         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
2037 2011-05-20  Tom de Vries  <tom@codesourcery.com>
2039         PR target/45098
2040         * tree-ssa-loop-ivopts.c: Include expmed.h.
2041         (get_shiftadd_cost): New function.
2042         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
2044 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
2046         PR bootstrap/49086
2047         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
2048         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
2050 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
2052         * Makefile.in: Update comment referring to $(OBJS-common).
2054 2011-05-20  Ian Lance Taylor  <iant@google.com>
2056         * godump.c (go_output_typedef): Put enum constants in the macro
2057         hash table to avoid duplicate Go const definitions.
2059 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
2061         * Makefile.in (LIBDEPS): Add libcommon.a.
2062         (LIBS): Likewise.
2063         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
2064         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
2065         pretty-print.o and version.o.
2066         (OBJS-libcommon): New.
2067         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
2068         (BACKEND): Add libcommon.a.
2069         (MOSTLYCLEANFILES): Likewise.
2070         (libcommon.a): New.
2071         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
2072         (cpp$(exeext)): Likewise.
2073         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
2074         pretty-print.o and input.o.
2075         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
2076         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
2077         (errors.o): Remove.
2078         (mips-tfile): Don't explicitly use version.o.
2079         (mips-tdump): Likewise.
2080         (gcov.o): Depend on $(DIAGNOSTIC_H).
2081         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
2082         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
2083         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
2084         * gcov-dump.c: Include intl.h and diagnostic.h.
2085         (main): Initialize diagnostics.
2086         * gcov.c: Include diagnostic.h.
2087         (fnotice): Remove.
2088         (main): Initialize diagnostics.
2089         * lto-wrapper.c: Include diagnostic.h.
2090         (main): Initialize diagnostics.
2092 2011-05-20  Michael Matz  <matz@suse.de>
2094         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
2096 2011-05-20  Michael Matz  <matz@suse.de>
2097             Richard Guenther  <rguenther@suse.de>
2099         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
2100         use lto_streamer_cache_append directly instead of returning a VEC.
2101         (preload_common_node): Remove.
2102         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
2103         track seen nodes.
2104         (lto_streamer_cache_create): Call lto_preload_common_nodes.
2106 2011-05-20  Richard Guenther  <rguenther@suse.de>
2108         PR tree-optimization/49079
2109         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
2110         MEM_REFs correctly for the trailing array access detection.
2111         Special case constants the same way as decls for overall size
2112         constraining.
2114 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
2116         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
2117         argument expansion.
2119 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
2121         PR tree-optimization/49073
2122         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
2123         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
2124         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
2126 2011-05-20  Richard Guenther  <rguenther@suse.de>
2128         PR middle-end/48849
2129         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
2130         of pointer types the same way the middle-end does.
2132 2011-05-20  Richard Guenther  <rguenther@suse.de>
2134         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
2135         or pointer-to chains.  Delay all fixup to uniquify_nodes.
2137 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
2139         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
2140         (fma4_fmaddsub): Likewise
2142 2011-05-19  Jan Hubicka  <jh@suse.cz>
2144         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
2145         (GIMPLE_TYPE_PAIR_SIZE): New macro.
2146         (type_pair_cache): New static var.
2147         (lookup_type_pair): Use fixed sized custom hash; make inline.
2148         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
2149         calls of lookup_type_pair.
2150         (print_gimple_types_stats): Remove cache stats.
2151         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
2152         and gtc_ob.
2154 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
2156         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
2157         when TARGET_RDRND is active.
2158         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
2159         Generate dummy SImode target register when target is NULL.
2161 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
2163         * config/arm/arm-fpus.def: New.
2164         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
2165         arm-fpus.def.
2166         * config/arm/arm-tables.opt: Regenerate.
2167         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
2168         (arm_option_override): Don't decode FPU name to string here.
2169         * config/arm/arm.opt (mfpu=): Use Enum.
2170         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
2171         Update dependencies.
2173 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
2175         * collect2.c: Include diagnostic.h.
2176         (fatal_perror, fatal, error, fancy_abort): Remove.
2177         (main): Set progname.  Call xmalloc_set_program_name and
2178         diagnostic_initialize.
2179         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
2180         scan_libraries, resolve_lib_name): Call fatal_error instead of
2181         fatal and fatal_perror.
2182         * collect2.h (error, fatal, fatal_perror): Don't declare.
2183         * tlink.c: Include diagnostic-core.h.
2184         (recompile_files): Call fatal_error instead of fatal_perror.
2185         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
2186         pretty-print.o and input.o.
2187         (collect2.o, tlink.o): Update dependencies.
2189 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2191         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
2193 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2195         PR target/40483
2196         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
2197         COMDAT group syntax, both SPARC and x86 variants.
2198         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
2199         * configure: Regenerate.
2200         * config/sol2.h (TARGET_SOLARIS): Define.
2201         (PUSHSECTION_FORMAT): Remove.
2202         (SECTION_NAME_FORMAT): Define.
2203         * config/sol2.c: Include hashtab.h.
2204         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
2205         expansion, using SECTION_NAME_FORMAT.
2206         (solaris_comdat_htab): New variable.
2207         (struct comdat_entry): Define.
2208         (comdat_hash): New function.
2209         (comdat_eq): New function.
2210         (solaris_elf_asm_comdat_section): New function.
2211         (solaris_define_comdat_signature): New function.
2212         (solaris_code_end): New function.
2213         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
2214         (solaris_code_end): Declare.
2215         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
2216         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
2217         solaris_code_end.
2218         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
2219         Remove ATTRIBUTE_UNUSED.
2220         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
2221         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
2222         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2223         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
2224         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
2225         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
2226         (PUSHSECTION_FORMAT): Remove.
2227         (SECTION_NAME_FORMAT): Redefine.
2229 2011-05-19  Kai Tietz  <ktietz@redhat.com>
2231         * tree-cfg.c (verify_gimple_assign_binary): Barf on
2232         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
2233         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
2235 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
2236             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2238         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
2240 2011-05-19  Richard Guenther  <rguenther@suse.de>
2242         PR middle-end/48985
2243         * tree-object-size.c (addr_object_size): If the pointed-to
2244         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
2246 2011-05-19  Richard Guenther  <rguenther@suse.de>
2248         * gimple.c (gimple_types_compatible_p_1): Compare names of
2249         the types themselves.
2250         (iterative_hash_gimple_type): And hash them that way.
2251         (gimple_register_type_1): If we register a main variant properly
2252         initialize the leader to ourselves.
2254 2011-05-19  Tom de Vries  <tom@codesourcery.com>
2256         PR target/45098
2257         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
2258         get_loop_invariant_expr_id.
2259         (get_loop_invariant_expr_id): Use get_expr_id.
2260         (parm_decl_cost): New function.
2261         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
2262         Improve bound cost estimation.  Use different inv_expr_id for elim and
2263         express cases.
2265 2011-05-19  Tom de Vries  <tom@codesourcery.com>
2267         PR target/45098
2268         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
2269         cost_base.cost == 0.
2271 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
2273         PR target/49002
2274         * config/i386/sse.md
2275         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
2276         load cast.
2278 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
2280         PR tree-optimization/49039
2281         * tree-vrp.c (extract_range_from_binary_expr): For
2282         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
2283         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
2285 2011-05-18  Tom de Vries  <tom@codesourcery.com>
2287         PR target/45098
2288         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
2290 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
2292         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
2293         (*tls_global_dynamic_64): Ditto.
2294         (*tls_local_dynamic_base_32_gnu): Ditto.
2295         (*tls_local_dynamic_base_64): Ditto.
2296         (tls_initial_exec_64_sun): Ditto.
2298 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
2300         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
2301         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2302         bf592-none.
2303         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2304         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2305         * config/bfin/bfin.c (bfin_cpus): Add bf592.
2306         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2307         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
2308         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
2309         * config/bfin/elf.h (LIB_SPEC): Add bf592.
2311 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
2313         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
2314         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
2315         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
2316         target_thread_pointer, arm_structure_size_boundary, struct
2317         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
2318         struct abi_name, arm_all_abis): Remove.
2319         (arm_option_override) Don't process most enumerated option values here.
2320         Don't process target_fpe_name here.  Work with integer not string for
2321         structure size boundary; use separate diagnostics for each case.
2322         * config/arm/arm.h (enum float_abi_type, enum
2323         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
2324         to arm-opts.h.
2325         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
2326         arm_structure_size_boundary): Remove.
2327         * config/arm/arm.opt (mabi=): Use Enum and Init.
2328         (arm_abi_type): New Enum and EnumValue entries.
2329         (mfloat-abi=): Use Enum and Init.
2330         (float_abi_type): New Enum and EnumValue entries.
2331         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
2332         (mfp16-format=): Use Enum and Init.
2333         (arm_fp16_format_type): New Enum and EnumValue entries.
2334         (mstructure-size-boundary=): Use UInteger and Init.
2335         (mtp=): Use Enum and Init.
2336         (arm_tp_type): New Enum and EnumValue entries.
2338 2011-05-18  Richard Guenther  <rguenther@suse.de>
2340         PR tree-optimization/49018
2341         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
2342         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
2343         gimple_has_side_effects.
2345 2011-05-18  Richard Guenther  <rguenther@suse.de>
2347         * gimple.c (gimple_register_type_1): New function, split out from ...
2348         (gimple_register_type): ... here.  Avoid infinite recursion.
2350 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
2352         PR tree-optimization/41881
2353         * tree-vectorizer.h (struct _loop_vec_info): Add new field
2354         reduction_chains along with a macro for its access.
2355         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
2356         (destroy_loop_vec_info): Free reduction chains.
2357         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
2358         (vect_is_slp_reduction): New function.
2359         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
2360         (vect_create_epilog_for_reduction): Support SLP reduction chains.
2361         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
2362         definition types for reduction chains.
2363         (vect_supported_load_permutation_p): Don't allow permutations for
2364         reduction chains.
2365         (vect_analyze_slp_instance): Support reduction chains.
2366         (vect_analyze_slp): Try to build SLP instance from reduction chains.
2367         (vect_get_constant_vectors):  Handle reduction chains.
2368         (vect_schedule_slp_instance): Mark the first statement of the
2369         reduction chain as reduction.
2371 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
2373         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
2374         names for group elements access.
2375         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
2376         reduction chains as well.  Remove data reference and interleaving
2377         related words from the fields names.
2378         * tree-vect-loop.c (vect_transform_loop): Use new names for group
2379         elements access.
2380         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
2381         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
2382         vect_update_interleaving_chain, vect_same_range_drs,
2383         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
2384         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
2385         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
2386         vect_analyze_group_access, vect_analyze_data_ref_access,
2387         vect_create_data_ref_ptr, vect_transform_strided_load,
2388         vect_record_strided_load_vectors): Likewise.
2389         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
2390         vect_model_load_cost, vectorizable_store, vectorizable_load,
2391         vect_remove_stores, new_stmt_vec_info): Likewise.
2392         * tree-vect-slp.c (vect_build_slp_tree,
2393         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
2395 2011-05-18  Richard Guenther  <rguenther@suse.de>
2397         PR middle-end/48989
2398         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
2399         operand verification.
2400         (verify_gimple_assign_binary): Likewise.
2401         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
2402         to non-1-precision BOOLEAN_TYPEs.
2404 2011-05-18  Tom de Vries  <tom@codesourcery.com>
2406         PR target/45098
2407         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
2409 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
2411         PR tree-optimization/49000
2412         * tree-ssa.c (execute_update_addresses_taken): Call
2413         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
2414         be rewritten and decl has been marked for renaming, reset
2415         the debug stmt.
2417 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
2419         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
2420         enum_opts_set when testing if attributes have set -mfpmath=.
2422 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
2424         * config/mips/mips.c (mips_handle_option): Remove unused variable.
2426 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
2428         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
2429         info->entry with 0
2430         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
2431         id.transform_lang_insert_block with NULL.
2433 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
2435         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
2436         (output_fp_compare): Change args 3 and 4 to bool.
2437         (ix86_expand_call): Change arg 6 to bool.
2438         (ix86_attr_length_immediate_default): Change arg 2 to bool.
2439         (ix86_attr_length_vex_default): Change arg 3 to bool.
2440         * config/i386/i386.md: Update all uses.
2441         * config/i386/i386.c: Ditto.
2442         (ix86_flags_dependent): Change return type to bool.
2444 2011-05-17  Richard Guenther  <rguenther@suse.de>
2446         * gimple.c (type_hash_pair_compare): Fix comparison.
2448 2011-05-17  Richard Guenther  <rguenther@suse.de>
2450         * gimple.c (iterative_hash_gimple_type): Simplify singleton
2451         case some more, fix final hash value of the non-singleton case.
2453 2011-05-17  Richard Guenther  <rguenther@suse.de>
2455         PR bootstrap/49013
2456         Revert
2457         2011-05-16  Richard Guenther  <rguenther@suse.de>
2459         * gimple.c (gimple_types_compatible_p_1): Use names of the
2460         type itself, not its main variant.
2461         (iterative_hash_gimple_type): Likewise.
2463 2011-05-17  Richard Guenther  <rguenther@suse.de>
2465         * gimple.c (gimple_register_canonical_type): Use the main-variant
2466         leader for computing the canonical type.
2468 2011-05-17  Nick Clifton  <nickc@redhat.com>
2470         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
2471         moves.
2473         * config/rx/rx.md: Add peephole to remove redundant extensions
2474         after loads.
2475         (bitset_in_memory): Use rx_restricted_mem_operand.
2476         (bitinvert_in_memory): Likewise.
2477         (bitclr_in_memory): Likewise.
2479 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
2480             Nick Clifton  <nickc@redhat.com>
2482         * config/rx/rx.md: Add peepholes to match a register move followed
2483         by a comparison of the moved register.  Replace these with an
2484         addition of zero that does both actions in one instruction.
2486 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
2488         PR target/48986
2489         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
2490         predicate to allow CONST_INT.
2491         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
2493 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
2495         * opts-common.c (opt_enum_arg_to_value): New.
2496         * opts.h (opt_enum_arg_to_value): Declare.
2497         * config/i386/i386.opt (fpmath): Remove.
2498         (mfpmath=): Use Enum, Init and Save.
2499         (fpmath_unit): New Enum and EnumValue entries.
2500         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
2501         name for function fpmath state.
2502         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
2503         * config/i386/i386.c: Include diagnostic.h.
2504         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
2505         (ix86_target_string): Take enum fpmath_unit value instead of string.
2506         (ix86_debug_options): Update call to ix86_target_string.
2507         (ix86_option_override_internal): Don't process fpmath strings here.
2508         (x86_function_specific_save, ix86_function_specific_restore):
2509         Don't handle fpmath state specially.
2510         (ix86_function_specific_print): Pass fpmath state to
2511         ix86_target_string instead of printing in this function.
2512         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
2513         Handle enum attributes.
2514         (IX86_ATTR_ENUM, ix86_opt_enum): New.
2515         (ix86_valid_target_attribute_tree): Update option_strings
2516         handling.  Handle fpmath as enum option.
2517         (ix86_can_inline_p): Update field names for function fpmath state.
2518         (ix86_expand_builtin): Update call to ix86_target_string.
2519         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
2520         (ix86_fpmath): Remove.
2521         * config/i386/t-i386 (i386.o): Update dependencies.
2523 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
2525         PR preprocessor/48677
2526         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
2527         from decoded_options[0], not from itself.
2529 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
2531         * config/i386/constraints.md (z): New constraint.
2532         * config/i386/i386.c (c): New mode attribute.
2533         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
2534         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
2535         constraint for operand 0.
2536         (*call_vzeroupper): Ditto.
2537         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
2538         (*call_rex64_ms_sysv_vzeroupper): Ditto.
2539         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
2540         Use "lzm" constraint for operand 0.
2541         (*call_pop_vzeroupper): Ditto.
2542         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
2543         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
2544         constraint for operand 0.
2545         (*sibcall_vzeroupper): Ditto.
2546         (*sibcall_rex64_ms_sysv): Ditto.
2547         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
2548         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
2549         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
2550         (*sibcall_pop_vzeroupper): Ditto.
2551         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
2552         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
2553         mode iterator.  Use "<c>zm" constraint for operand 1.
2554         (*call_value_vzeroupper): Ditto.
2555         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
2556         for operand 1.
2557         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
2558         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
2559         *call_value_pop_1.  Use "lzm" constraint for operand 1.
2560         (*call_value_pop_vzeroupper): Ditto.
2561         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
2562         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
2563         mode iterator.  Use "Uz" constraint for operand 1.
2564         (*sibcall_value_vzeroupper): Ditto.
2565         (*sibcall_value_rex64_ms_sysv): Ditto.
2566         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
2567         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
2568         constraint for operand 1.
2569         (*sibcall_value_pop_vzeroupper): Ditto.
2570         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
2571         and "z" constraint for operand 2.
2572         (*tls_global_dynamic_32_gnu): Ditto.
2573         (*tls_local_dynamic_base_32_gnu): Ditto.
2574         (*tls_local_dynamic_base_64): Ditto.
2575         (*tls_local_dynamic_32_once): Ditto.
2576         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
2577         Update all callers.
2578         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
2580 2011-05-16  Richard Guenther  <rguenther@suse.de>
2582         * gimple.c (gimple_types_compatible_p_1): Use names of the
2583         type itself, not its main variant.
2584         (iterative_hash_gimple_type): Likewise.
2586 2011-05-16  Richard Guenther  <rguenther@suse.de>
2588         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
2589         always visit pointer target and function result and argument types.
2591 2011-05-16  Jason Merrill  <jason@redhat.com>
2593         PR c++/48999
2594         * tree-inline.c (copy_statement_list): Put back recursion.
2596 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
2598         PR target/27663
2599         PR target/41076
2600         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
2601         * config/avr/avr.md ("*ior<mode>qi.byte0",
2602         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
2604 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
2606         PR target/45099
2607         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
2608         register is needed for a function argument.
2610 2011-05-16  Richard Guenther  <rguenther@suse.de>
2612         * gimple.c (struct type_hash_pair): New type.
2613         (type_hash_pair_compare): New function.
2614         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
2616 2011-05-16  Revital Eres  <revital.eres@linaro.org>
2618         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
2620 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
2622         * config/i386/i386.md (floating point move splitters): Fix
2623         usage of standard_80387_constant_p.
2624         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
2626 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
2628         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
2630 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2632         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
2633         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
2634         (tree_ssa_lim_finalize): Likewise.
2636 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
2638         * config/i386/constraint.md (Yd, Yx): New register constraints.
2639         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
2640         Yd conditional register constraint.
2641         (*movtf_internal): Use standard_sse_constant_opcode.
2642         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
2643         Yx conditional register constraint.
2644         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
2645         Yd conditional register constraint.  Use standard_sse_constant_p to
2646         check for valid SSE constants and call standard_sse_constant_opcode to
2647         output SSE insn.
2648         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
2649         constants and call standard_sse_constant_opcode to output SSE insn.
2650         * config/i386/i386.c (ix86_option_ovverride_internal): Set
2651         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
2652         optimize_size is set.
2653         (standard_sse_constant_opcode): Output conditional AVX insn templates.
2655 2011-05-14  Tobias Burnus  <burnus@net-b.de>
2657         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
2659 2011-05-13  Martin Jambor  <mjambor@suse.cz>
2661         * ipa-prop.c (ipa_cst_from_jfunc): New function.
2662         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
2663         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
2664         (evaluate_conditions_for_ipcp_clone): Removed.
2665         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
2666         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
2667         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
2669 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2671         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
2672         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
2673         lieu of MAY_HAVE_DEBUG_STMTS.
2674         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
2675         debug statements if !MAY_HAVE_DEBUG_STMTS.
2677 2011-05-13  Martin Thuresson  <martint@google.com>
2679         PR gcov-profile/47793
2680         * libgcov.c (gcov_exit): Support relative profile paths.
2681         * doc/invoke.texi (-fprofile-dir): Update for above change.
2683 2011-05-13  Richard Guenther  <rguenther@suse.de>
2685         * gimple.c (gimple_canonical_types_compatible_p): Do not use
2686         type-pair caching, do not compare hashes.
2688 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
2690         PR middle-end/48965
2691         * tree-cfg.c (edge_to_cases_cleanup): Return true.
2692         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
2694 2011-05-13  Kai Tietz  <ktietz@redhat.com>
2696         * gimplify.c (gimplify_expr): Make sure operand is boolified.
2697         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
2698         compatible type for TRUTH_NOT_EXPR.
2700 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2702         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2703         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
2704         can_create_pseudo_p ().
2706 2011-05-13  Richard Guenther  <rguenther@suse.de>
2708         PR lto/48978
2709         * gimple.c (iterative_hash_gimple_type): Revert change in
2710         pointer target and function result and argument hashing.
2712 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
2714         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
2715         (*movxf_internal_nointeger): Ditto.
2716         (*movdf_internal_rex64): Ditto.
2717         (*movdf_internal): Ditto.
2718         (*movdf_internal_nointeger): Ditto.
2719         (*movsf_internal): Ditto.
2720         (sincos splitters): Use can_create_pseudo ().
2722 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
2724         * config/i386/i386-opts.h: New.
2725         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
2726         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
2727         ix86_section_threshold): Remove.
2728         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
2729         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
2730         OPT_mbranch_cost_.
2731         (ix86_option_override_internal): Don't decode strings for options
2732         other than -march=, -mtune= and -mfpmath=.  Don't allow for
2733         __attribute__ uses in remaining diagnostics for options with
2734         string arguments.  Don't check for integer arguments being negative.
2735         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
2736         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
2737         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
2738         ix86_branch_cost, ix86_section_threshold): Remove.
2739         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
2740         HeaderInclude.
2741         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
2742         but not Var.
2743         (masm=): Use Enum and Init.
2744         (asm_dialect): New Enum and EnumValue entries.
2745         (mbranch-cost=): Use UInteger.
2746         (mlarge-data-threshold=): Use UInteger and Init.
2747         (mcmodel=): Use Enum and Init.
2748         (cmodel): New Enum and EnumValue entries.
2749         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
2750         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
2751         mregparm=): Use UInteger.
2752         (mstringop-strategy=): Use Enum and Init.
2753         (stringop_alg): New Enum and EnumValue entries.
2754         (mtls-dialect=): Use Enum and Init.
2755         (tls_dialect): New Enum and EnumValue entries.
2756         (mabi=): Use Enum and Init.
2757         (calling_abi): New Enum and EnumValue entries.
2758         (mveclibabi=): Use Enum and Init.
2759         (ix86_veclibabi): New Enum and EnumValue entries.
2761 2011-05-13  Nick Clifton  <nickc@redhat.com>
2763         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
2764         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
2766 2011-05-13  Kai Tietz  <ktietz@redhat.com>
2768         PR middle-end/48984
2769         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
2770         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
2771         (gimple_boolify): Check for cast for boolean_type_node instead for
2772         BOOLEAN_TYPE.
2774 2011-05-13  Richard Guenther  <rguenther@suse.de>
2776         PR tree-optimization/48172
2777         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
2778         multiplying by number of iterations for equal step.
2779         (vect_create_cond_for_alias_checks): Likewise.
2781 2011-05-13  Andreas Schwab  <schwab@redhat.com>
2783         * configure.ac: Use AS_HELP_STRING throughout.
2784         * configure: Regenerate.
2786 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2788         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
2789         (ix86_emit_restore_regs_using_mov): Likewise.
2790         (ix86_emit_restore_sse_regs_using_mov): Likewise.
2792 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
2794         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
2795         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
2796         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
2797         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
2798         RTX_OK_FOR_OLO10_P): ...here.
2799         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
2800         SYMBOLIC_CONST.
2802 2011-05-12  Kai Tietz  <ktietz@redhat.com>
2804         * gimplify.c (gimple_boolify): Re-boolify expression
2805         arguments even if expression type is of kind BOOLEAN_TYPE.
2806         (gimplify_boolean_expr): Removed.
2807         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
2808         and XOR. Additional take care that we keep expression's type.
2809         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
2810         of TRUTH_AND|OR|XOR_EXPR.
2812 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
2814         PR tree-optimization/48975
2815         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
2816         on all bbs here and free and clear ifc_bbs at the end.
2818 2011-05-12  Richard Guenther  <rguenther@suse.de>
2820         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
2821         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
2822         until after simple checks.
2823         (gimple_types_compatible_p): Likewise.
2824         (iterative_hash_gimple_type): Always hash pointer targets
2825         and function return and argument types.
2826         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
2827         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
2828         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
2829         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
2830         completely in the simple compare section.
2831         (gimple_register_canonical_type): Query the cache again after
2832         registering.
2834 2011-05-12  Richard Guenther  <rguenther@suse.de>
2836         PR tree-optimization/48172
2837         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
2838         the number of iterations from the segment size calculation.
2839         (vect_create_cond_for_alias_checks): Adjust.
2841 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
2843         PR debug/48967
2844         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
2845         if validate_subreg fails.
2847 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
2849         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
2850         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
2851         early.
2853 2011-05-12  DJ Delorie  <dj@redhat.com>
2855         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
2856         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
2857         created builtin into rx_builtins array.
2858         (rx_builtin_decl): New function.
2859         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
2861 2011-05-12  DJ Delorie  <dj@redhat.com>
2862             Nick Clifton  <nickc@redhat.com>
2864         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2865         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2866         (rx_is_legitimate_address): Add pre-decrement and post-increment
2867         addressing in HImode and QImode.  Fix test for out of range
2868         REG+INT addressing.
2869         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
2870         (rx_align_for_label): Test label before extracting its usage count.
2871         (rx_adjust_insn_lengths): Fix selection of insn codes.
2872         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
2874 2011-05-11  Jason Merrill  <jason@redhat.com>
2876         * tree.c (type_hash_canon): Use struct tree_type_non_common.
2878 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2880         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2881         reindent the subsequent block.
2883 2011-05-11  Satoru Takabayashi  <satorux@google.com>
2884             Paul Pluzhnikov  <ppluzhnikov@google.com>
2886         * doc/install.texi (Configuration): Document --with-linker-hash-style.
2887         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2888         * config.in: Add LINKER_HASH_STYLE.
2889         * configure.ac: Add --with-linker-hash-style.
2890         * configure: Regenerate.
2892 2011-05-11  Richard Guenther  <rguenther@suse.de>
2894         PR middle-end/48964
2895         * gimple.c (iterative_hash_canonical_type): Fix typo.
2897 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
2899         * config/i386/i386.c (legitimize_tls_address)
2900         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2901         expanders directly for TARGET_GNU2_TLS.  Determine pic and
2902         __tls_get_addr symbol reference here.  Update call to
2903         gen_tls_global_dynamic_{32,64} for added arguments.
2904         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2905         expanders directly for TARGET_GNU2_TLS.  Determine
2906         __tls_get_addr symbol reference here.  Update call to
2907         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
2908         unique UNSPEC REG_EQUIV to libcall block.
2909         (ix86_tls_get_addr): Declare static.
2910         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2911         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2912         Do not determine pic and __tls_get_addr symbol reference here. Do not
2913         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2914         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2915         (tls_global_dynamic_64): Add operand 2.  Do not determine
2916         __tls_get_addr symbol reference here.  Do not call
2917         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2918         (tls_local_dynamic_base64): Ditto for operand 1.
2920 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2922         * function.c (expand_function_start): Initialize stack_check_probe_note
2923         only if the generic stack checking mechanism is used.
2925 2011-05-11  Richard Guenther  <rguenther@suse.de>
2927         PR tree-optimization/15256
2928         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2929         (A & B) | C, combine (A op CST1) op CST2.
2930         (tree_ssa_forward_propagate_single_use_vars): Only bother to
2931         visit assigns that have uses.
2933 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
2935         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2936         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2937         (unpack_ts_type_common_value_fields): ...this.  Update comment.
2938         (unpack_value_fields): Adjust for renaming.
2939         (lto_input_ts_type_tree_pointers): Split into...
2940         (lto_input_ts_type_common_tree_pointer): ...this and...
2941         (lto_input_ts_type_non_common_tree_pointers): ...this.
2942         (lto_input_tree_pointers): Adjust for above split.
2943         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2944         (pack_ts_type_common_value_fields): ...this.  Update comment.
2945         (lto_output_ts_type_tree_pointers): Split into...
2946         (lto_output_ts_type_common_tree_pointers): ...this and...
2947         (lto_output_ts_type_non_common_tree_pointers): ...this.
2948         (lto_output_tree_pointers): Adjust for above split.
2949         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2950         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2951         * stor-layout.c (vector_type_mode): Adjust location of mode field.
2952         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2953         Define.
2954         (struct tree_type): Split into...
2955         (struct tree_type_common: ...this and...
2956         (struct tree_type_with_lang_specific): ...this and...
2957         (struct tree_type_non_common): ...this.  Adjust accessor macros
2958         accordingly.
2959         (TYPE_VALUES_RAW): Define.
2960         (union tree_node): Update for above changes.
2961         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2962         TS_TYPE_NON_COMMON.
2963         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2964         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2965         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2966         * treestructu.def (TS_TYPE): Remove.
2967         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2968         Define.
2970 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
2972         PR debug/48159
2973         * tree-ssa.c (reset_debug_uses): New function.
2974         * tree-flow.h (reset_debug_uses): New prototype.
2975         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2976         * tree-loop-distribution.c (generate_loops_for_partition): Call
2977         reset_debug_uses on the stmts that will be removed.  Keep around
2978         all debug stmts, don't count them as bits in partition bitmap.
2979         (generate_builtin): Don't count debug stmts or labels as bits in
2980         partition bitmap.
2982 2011-05-11  Richard Guenther  <rguenther@suse.de>
2984         * gimple.c (gimple_type_hash_1): Merge with ...
2985         (gimple_type_hash): ... this.
2986         (gtc_visit): Remove mode parameter and simplify accordingly.
2987         (gimple_types_compatible_p_1): Likewise.
2988         (gimple_types_compatible_p): Likewise.
2989         (iterative_hash_gimple_type): Likewise.
2990         (visit): Likewise.
2991         (gimple_type_eq): Adjust.
2993 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2995         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2996         enters the branch create an anti edge in the opposite direction
2997         to prevent the creation of reg-moves.
2998         * modulo-sched.c: Adjust comment to reflect the fact we are
2999         scheduling closing branch.
3000         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
3001         (stage_count): New field in struct partial_schedule.
3002         (calculate_stage_count): New function.
3003         (normalize_sched_times): Rename to reset_sched_times and handle
3004         incrementing the sched time of the nodes by a constant value
3005         passed as parameter.
3006         (duplicate_insns_of_cycles): Skip closing branch.
3007         (sms_schedule_by_order): Schedule closing branch.
3008         (ps_insn_find_column): Handle closing branch.
3009         (sms_schedule): Call reset_sched_times and adjust the code to
3010         support scheduling of the closing branch.
3011         (ps_insert_empty_row): Update calls to normalize_sched_times
3012         and rotate_partial_schedule functions.
3014 2011-05-11  Richard Guenther  <rguenther@suse.de>
3016         PR middle-end/48953
3017         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
3019 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
3021         * opts.c (finish_options): Move warning settings from process_options.
3022         * toplev.c (process_options): Move warning settings to finish_options.
3024 2011-05-11  Richard Guenther  <rguenther@suse.de>
3026         PR tree-optimization/18041
3027         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
3028         (simplify_bitwise_binary): ... this.  Handle operand conversions
3029         by applying them to the result instead.
3030         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
3032 2011-05-11  Richard Guenther  <rguenther@suse.de>
3034         * gimple.c (gimple_canonical_types_compatible_p): Split out
3035         from gimple_types_compatible_p and friends.  Do not recurse
3036         to pointed-to types.
3037         (gimple_canonical_type_eq): Use it.
3038         (iterative_hash_canonical_type): Split out from
3039         iterative_hash_gimple_type and friends.  Do not recurse
3040         to pointed-to types.
3041         (gimple_canonical_type_hash): Use it, allocate the hash here.
3043 2011-05-11  Revital Eres  <revital.eres@linaro.org>
3045         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
3046         recognizing doloop.
3048 2011-05-11  Revital Eres  <revital.eres@linaro.org>
3050         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
3051         instead of PREV_INSN.
3053 2011-05-11  Revital Eres  <revital.eres@linaro.org>
3055         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
3056         * loop-doloop.c (doloop_condition_get): Likewise.
3057         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
3058         (doloop_end): New.
3059         * config/arm/arm.md (*addsi3_compare0): Remove "*".
3061 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
3063         * tree.def (CASE_LABEL_EXPR): Add an operand.
3064         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
3066 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
3068         * c-decl.c (c_override_global_bindings_to_false): Remove.
3069         (global_bindings_p): Don't check
3070         c_override_global_bindings_to_false.
3071         * c-tree.h (c_override_global_bindings_to_false): Remove.
3072         * c-typeck.c (composite_type): Don't set
3073         c_override_global_bindings_to_false.
3075 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
3077         PR target/48857, 48495
3078         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
3079         (VSX_MODE): Ditto.
3080         (VSX_MOVE_MODE): Ditto.
3081         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
3082         VSX vector types.  Add V2DImode.
3083         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
3084         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
3085         (MODES_TIEABLE_P): Ditto.
3087         * config/rs6000/rs6000.c (rs6000_emit_move): Use
3088         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
3089         VSX_VECTOR_MODE.
3090         (init_cumulative_args): Ditto.
3091         (rs6000_function_arg_boundary): Ditto.
3092         (rs6000_function_arg_advance_1): Ditto.
3093         (rs6000_function_arg): Ditto.
3094         (rs6000_function_ok_for_sibcall): Ditto.
3095         (emit_frame_save): Ditto.
3096         (rs6000_function_value): Ditto.
3097         (rs6000_libcall_value): Ditto.
3099 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
3101         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3102         i386/darwin-lib.h to $libgcc_tm_file.
3103         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
3105 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
3107         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
3109 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
3111         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
3112         * config/rs6000/rs6000-tables.opt: New file (generated).
3113         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
3114         rs6000/rs6000-tables.opt to extra_options.
3115         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
3116         * config/rs6000/rs6000.c (rs6000_select): Remove.
3117         (processor_target_table): Move contents to rs6000-cpus.def.
3118         (darwin_rs6000_override_options): Check
3119         global_options_set.x_rs6000_cpu_index instead of
3120         rs6000_select[1].string.
3121         (rs6000_option_override_internal): Likewise.
3122         (rs6000_handle_option): Don't assert that global structures are in
3123         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
3124         (rs6000_default_cpu): New variable.
3125         (rs6000_file_start): Set it instead of local default_cpu.  Check
3126         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
3127         global_options_set.x_rs6000_tune_index instead of rs6000_select.
3128         (rs6000_darwin_file_start): Check rs6000_default_cpu and
3129         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
3130         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
3131         rs6000_select): Remove.
3132         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
3133         Remove.
3134         (mcpu=, mtune=): Use Var, Init, Enum and Save.
3135         * config/rs6000/t-rs6000
3136         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
3137         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3138         global_options_set.x_rs6000_cpu_index instead of
3139         rs6000_select[1].string.
3140         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3141         global_options_set.x_rs6000_cpu_index instead of
3142         rs6000_select[1].string.
3144 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
3146         * config.gcc (libgcc_tm_file): Define instead of including files
3147         from ../../libgcc/config/ in tm_file.
3148         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
3149         * configure: Regenerate.
3150         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
3151         libgcc_tm.h, cs-libgcc_tm.h): New.
3152         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
3153         (clean): Remove libgcc_tm.h.
3154         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
3155         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
3156         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
3158 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
3160         PR target/48896
3161         * config/avr/avr.c (avr_ret_register): Return unsigned int
3162         instead of int.
3163         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
3164         it to avr_libcall_value.
3165         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
3166         expand_expr.
3167         (avr_expand_binop_builtin): Ditto.
3168         (avr_expand_unop_builtin): Ditto.
3170 2011-05-10  DJ Delorie  <dj@redhat.com>
3172         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
3173         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
3174         * config/rx/rx.c (rx_align_for_label): Add label and
3175         uses_threshold parameters.  Do not align when the label is not
3176         used enough.
3177         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
3179 2011-05-10  Richard Guenther  <rguenther@suse.de>
3181         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
3182         a series of conversions and apply foldings similar to what
3183         fold-const does.
3184         (tree_ssa_forward_propagate_single_use_vars): Call it.
3186 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
3188         PR tree-optimization/48611
3189         PR tree-optimization/48794
3190         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
3191         referenced from RESX or EH_DISPATCH arguments.
3193         PR debug/48928
3194         * dfp.c (decimal_to_decnumber): Handle conversion from
3195         dconst{1,2,m1,half}.
3197 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3199         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
3200         for !flag_prefer_avx128.
3201         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
3203 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
3205         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
3206         (fold_ternary_loc): Use expr_location_or.
3208 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3210         PR debug/48853
3211         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
3212         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
3213         Pmode and mem_mode is not VOIDmode.
3215 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
3217         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
3218         TYPE_QUAL_RESTRICT): Convert to enum.
3220 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3222         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
3223         (const_pow2_1_to_8_operand): Ditto.
3224         (const_pow2_1_to_128_operand): Ditto.
3225         (const_pow2_1_to_32768_operand): Ditto.
3226         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
3227         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
3228         in insn constraint to check integer value of operand 3.
3229         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
3231         (PINSR_MODE): New mode iterator.
3232         (sse2p4_1): New mode attribute.
3233         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
3234         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
3235         iterator.  Use const_int_operand instead of
3236         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
3237         exact_log2 in insn constraint to check integer value of operand 3.
3239 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3241         * config/i386/sse.md (blendbits): Remove mode attribute.
3242         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
3243         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
3244         Check integer value of operand 3 in insn constraint.
3246 2011-05-09  Richard Guenther  <rguenther@suse.de>
3248         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
3249         for diagnostics.
3250         (lto_symtab_merge): Likewise.  Do not register types here.
3251         (lto_symtab_merge_decls_2): Likewise.
3252         (lto_symtab_merge_decls_1): Likewise.
3253         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
3254         * gimple.c (enum gtc_mode): Declare.
3255         (gimple_types_compatible_p): Make static.
3257 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3259         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
3260         temporary register to match Pmode.
3262 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3264         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
3265         and *vec_concatv4si_1_avx.
3267 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3269         PR rtl-optimization/48927
3270         * ira-conflicts.c (commutative_constraint_p): Use
3271         recog_data.alternative_enabled_p to disable alternatives where
3272         "enabled" attribute is false.
3273         (get_dup_num): Ditto.
3274         * ira-lives.c (single_reg_class): Ditto.
3275         (ira_implicitly_set_insn_hard_regs): Ditto.
3277 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
3279         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
3280         (dataflow_set_preserve_mem_locs): Likewise.
3282 2011-05-09  Philipp Thomas  <pth@suse.de>
3284         * config/mep/mep.c (mep_validate_vliw): Syntax description
3285         should not be translated.
3287 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
3289         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
3290         * config/mips/mips-tables.opt: New file (generated).
3291         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
3292         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
3293         MIPS_ARCH_OPTION_NATIVE): Define.
3294         * config/mips/mips.c (mips_cpu_info_table): Move contents to
3295         mips-cpus.def.
3296         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
3297         mips_parse_cpu): Remove.
3298         (mips_cpu_info_from_opt, mips_default_arch): New.
3299         (mips_handle_option): Don't assert that global structures are in
3300         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
3301         (mips_option_override): Use new variables and functions to set
3302         state of these options.  Use strcmp to check for individual CPU names.
3303         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
3304         definition.
3305         * config/mips/mips.opt (march=): Use ToLower and Enum.
3306         (mips): Use ToLower, Enum and Var.
3307         (mtune=): Use ToLower and Enum.
3308         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
3310 2011-05-08  Jan Hubicka  <jh@suse.cz>
3312         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
3313         Arrange type pairs to be UID ordered.
3314         (gimple_lookup_type_leader): Make inline.
3316 2011-05-09  Nick Clifton  <nickc@redhat.com>
3318         PR target/48899
3319         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
3320         PROCESSOR_DEFAULT.
3322         PR target/48897
3323         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
3324         variable 's'.
3326 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
3328         * combine.c (simplify_comparison): Abstract out parts into...
3329         (simplify_compare_const): ... new function.
3330         (try_combine): Generalize parallel arithmetic/compare combining
3331         to call simplify_compare_const() and CANONICALIZE_COMPARE().
3333 2011-05-08  Jan Hubicka  <jh@suse.cz>
3335         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
3336         (cgraph_create_virtual_clone): Call hooks once virtual clone
3337         is finished.
3338         * cgraph.h (cgraph_clone_node): Update prototype.
3339         * ipa-cp.c (ipcp_estimate_growth): Use
3340         estimate_ipcp_clone_size_and_time.
3341         * ipa-inline-transform.c (clone_inlined_nodes): Update.
3342         * lto-cgraph.c (input_node): Update.
3343         * ipa-inline.c (recursive_inlining): Update.
3344         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
3345         (evaluate_conditions_for_known_args): Break out from ...
3346         (evaluate_conditions_for_edge): ... here.
3347         (evaluate_conditions_for_ipcp_clone): New function.
3348         (inline_node_duplication_hook): Update clone summary based
3349         on parameter map.
3350         (estimate_callee_size_and_time): Rename to ...
3351         (estimate_node_size_and_time): take NODE instead of EDGE;
3352         take POSSIBLE_TRUTHS as argument.
3353         (estimate_callee_size_and_time): Update.
3354         (estimate_ipcp_clone_size_and_time): New function.
3355         (do_estimate_edge_time): Update.
3357 2011-05-08  Richard Guenther  <rguenther@suse.de>
3359         PR middle-end/48908
3360         PR middle-end/48905
3361         * expmed.c (expand_shift_1): Compute adjusted constant shift
3362         amount manually.
3364 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3366         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
3368 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3370         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
3372 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
3374         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
3376 2011-05-07  Jan Hubicka  <jh@suse.cz>
3378         * ipa-inline-transform.c (inline_call): Account when program size
3379         decreases.
3380         * ipa-inline.c (relative_time_benefit): New function.
3381         (edge_badness): Reorganize to be power 2 based; fix thinko when
3382         computing badness for negative growth; update comments to match
3383         reality; better dumps.
3385 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
3387         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
3388         type to bool and adjust comment.
3389         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
3390         (fold_mathfn_compare): Remove calls to global_bindings_p.
3391         (fold_inf_compare): Likewise.
3392         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
3393         * c-tree.h (global_bindings_p): Adjust prototype.
3394         * c-decl.c (global_bindings_p): Return bool and simplify.
3396 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
3398         PR tree-optimization/48837
3399         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
3400         when accumulator transformation is performed.
3402 2011-05-06  Jan Hubicka  <jh@suse.cz>
3404         * i386.h (ix86_tune_indices): Add
3405         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
3406         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
3407         * i386.c (initial_ix86_tune_features): Add
3408         X86_SOFTARE_PREFETCHING_BENEFICIAL.
3409         (software_prefetching_beneficial_p): Remove predicate.
3410         (ix86_option_override_internal): Use new macro.
3412 2011-05-06  Jan Hubicka  <jh@suse.cz>
3414         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
3416 2011-05-06  Jan Hubicka  <jh@suse.cz>
3418         * cgraph.c (cgraph_add_thunk): Create real function node instead
3419         of alias node; finalize it and mark needed/reachale; arrange visibility
3420         to be right and add it into the corresponding same comdat group list.
3421         (dump_cgraph_node): Dump thunks.
3422         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
3423         cgraph_function_with_gimple_body_p,
3424         cgraph_first_function_with_gimple_body,
3425         cgraph_next_function_with_gimple_body): New functions.
3426         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
3427         New macros.
3428         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
3429         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3430         * cgraphunit.c (cgraph_finalize_function): Only look into possible
3431         devirtualization when optimizing.
3432         (verify_cgraph_node): Verify thunks.
3433         (cgraph_analyze_function): Analyze thunks.
3434         (cgraph_mark_functions_to_output): Output thunks only in combination
3435         with function they are assigned to.
3436         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
3437         alias into normal node.
3438         (assemble_thunks): New functoin.
3439         (cgraph_expand_function): Use it.
3440         * lto-cgraph.c (lto_output_node): Stream thunks.
3441         (input_overwrite_node): Stream in thunks.
3442         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
3443         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
3444         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
3445         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
3446         (inline_analyze_function): Do not care about thunk jump functions.
3447         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
3448         * ipa-prop.c (ipa_prop_write_jump_functions): Use
3449         cgraph_function_with_gimple_body_p.
3450         * passes.c (do_per_function_toporder): Use
3451         cgraph_function_with_gimple_body_p.
3452         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3453         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
3454         (function_called_by_processed_nodes_p): Likewise.
3456 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
3458         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
3459         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
3460         entries.
3461         (mabi=): Replace with separate entries for mabi=altivec,
3462         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
3463         mabi=ieeelongdouble and mabi=ibmlongdouble.
3464         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
3465         check for -mabi=spe without SPE ABI support here.
3466         (rs6000_handle_option): Replace OPT_mabi_ handling with
3467         OPT_mabi_altivec and OPT_mabi_spe handling.
3469 2011-05-06  Cary Coutant  <ccoutant@google.com>
3471         * dwarf2out.c (contains_subprogram_definition): New function.
3472         (should_move_die_to_comdat): Call it.
3474 2011-05-06  Jeff Law  <law@redhat.com>
3476         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
3477         remove_ctrl_stmt_and_useless_edges.
3478         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
3479         (fixup_template_block, thread_single_edge): Likewise.
3480         (mark_threaded_blocks): Use THREAD_TARGET.
3482 2011-05-06  Alan Modra  <amodra@gmail.com>
3484         PR target/48900
3485         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
3486         const0_rtx as the arg to the dummy __tls_get_addr libcall.
3488 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
3490         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
3491         constraint modifier to "r".
3493 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
3495         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
3496         fall through for OPT_mcmodel_.
3498 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3500         * config/s390/s390.c (s390_asm_trampoline_template): Comment
3501         instruction sizes.
3502         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
3504 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3506         PR target/47930
3507         * config/arm/arm.opt (marm): Document it.
3508         (mthumb): Reject negative variant.
3510 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
3512         PR target/48898
3513         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3514         Fix typo in "ccvt" variable name.
3516 2011-05-06  Tristan Gingold  <gingold@adacore.com>
3518         PR target/48895
3519         * config/vms/vms-ar.c (main): Remove cwd variable.
3521 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
3523         PR debug/48902
3524         * var-tracking.c (prepare_call_arguments): Move else before #endif.
3526 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
3528         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
3529         * gimplify.c (gimplify_switch_expr): Likewise.
3530         * omp-low.c (expand_omp_sections): Likewise.
3531         * tree-eh.c (lower_try_finally_switch): Likewise.
3532         (lower_eh_dispatch): Likewise.
3533         * tree.h (build_case_label): Declare.
3534         * tree.c (build_case_label): Define.
3536 2011-05-05  Jason Merrill  <jason@redhat.com>
3538         PR c++/40975
3539         * tree-inline.c (copy_tree_r): Use copy_statement_list.
3540         (copy_statement_list): Don't recurse.
3541         * stor-layout.c (copy_self_referential_tree_r): Don't allow
3542         STATEMENT_LIST.
3544 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3546         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
3547         through from -mfpu= handling.
3548         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
3550 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
3552         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
3553         POST_MODIFY.
3555 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
3557         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
3558         for 11.31.
3559         (hppa[12]*-*-hpux11*): Ditto.
3560         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
3561         * config/ia64/hpux-unix2003.h: New.
3562         * config/pa/pa-hpux1131.opt: New.
3563         * config/pa/pa-hpux1131.h: New.
3564         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
3565         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
3566         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
3568 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
3570         PR debug/48853
3571         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
3572         instead of mode as 3rd argument to recursive call.
3573         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
3574         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
3575         VOIDmode.
3576         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
3577         don't give up if mode is Pmode and mem_mode is not VOIDmode.
3578         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
3579         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
3581 2011-05-05  Julian Brown  <julian@codesourcery.com>
3583         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
3584         parenthesis in D-register case.
3586 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3588         * opt-functions.awk (var_type_struct): Handle Enum options.
3589         * optc-gen.awk: Don't check range of variables of character type.
3590         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
3591         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
3592         rs6000_sdata_name, rs6000_explicit_options): Remove.
3593         (rs6000_option_override_internal): Check for -malign-power here.
3594         Use global_options_set instead of rs6000_explicit_options.
3595         (rs6000_parse_fpu_option): Remove.
3596         (rs6000_handle_option): Access variables via opts and opts_set
3597         pointers.  Use error_at and warning_at.  Add fall-through
3598         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
3599         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
3600         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
3601         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
3602         here.  Don't use rs6000_parse_fpu_option.
3603         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
3604         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
3605         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
3606         (mrecip=): Use Var.
3607         (mspe): Use Var and Save.
3608         (mtraceback=): Use Enum and Var.
3609         (rs6000_traceback_type): New Enum and EnumValue entries.
3610         (mfloat-gprs=): Use Enum, Var and Save.
3611         (rs6000_float_gprs): New Enum and EnumValue entries.
3612         (mlong-double-): use Var and Save.
3613         (msched-costly-dep=, minsert-sched-nops=): Use Var.
3614         (malign-): Use Enum and Var.
3615         (rs6000_alignment_flags): New Enum and EnumValue entries.
3616         (mfpu=): Use Enum.
3617         (fpu_type_t): New Enum and EnumValue entries.
3618         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3619         global_options_set instead of rs6000_explicit_options.
3620         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3621         global_options_set instead of rs6000_explicit_options.
3622         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3623         global_options_set instead of rs6000_explicit_options.
3624         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3625         global_options_set instead of rs6000_explicit_options.
3626         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
3627         global_options_set instead of rs6000_explicit_options.
3628         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3629         global_options_set instead of rs6000_explicit_options.
3630         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
3631         definition.
3632         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3633         global_options_set instead of rs6000_explicit_options.
3634         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
3635         (rs6000_cmodel): New Enum and EnumValue entries.
3636         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3637         global_options_set instead of rs6000_explicit_options.
3638         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
3639         (mtls-size=): Use Enum and Var.
3640         (rs6000_tls_size): New Enum and EnumValue entries.
3642 2011-05-05  Michael Matz  <matz@suse.de>
3644         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
3645         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
3646         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
3647         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
3648         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
3649         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
3650         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
3651         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
3652         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
3653         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
3654         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
3655         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
3656         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
3657         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
3658         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
3659         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
3661 2011-05-05  Richard Guenther  <rguenther@suse.de>
3663         * expmed.c (expand_variable_shift): Rename to ...
3664         (expand_shift_1): ... this.  Take an expanded shift amount.
3665         For rotates recurse directly not building trees for the shift amount.
3666         (expand_variable_shift): Wrap around expand_shift_1.
3667         (expand_shift): Adjust.
3669 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
3671         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
3673 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3675         * tree.h (get_pending_sizes): Remove prototype.
3676         (put_pending_size): Likewise.
3677         (put_pending_sizes): Likewise.
3678         * stor-layout.c (pending_sizes): Delete.
3679         (get_pending_sizes): Likewise.
3680         (put_pending_size): Likewise.
3681         (put_pending_sizes): Likewise.
3682         (variable_size): Do not call put_pending_size and tidy up.
3683         * function.h (struct function): Remove dont_save_pending_sizes_p.
3684         * lto-streamer-in.c (input_function): Do not stream it.
3685         * lto-streamer-out.c (output_function): Likewise.
3686         * tree-inline.c (initialize_cfun): Do not copy it.
3687         * c-decl.c (store_parm_decls): Do not set it.
3688         * omp-low.c (create_task_copyfn): Likewise.
3689         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3691 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
3693         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
3694         conditions.
3695         (*movdf_internal): Ditto.
3696         (*movdf_internal_nointeger): Ditto.
3697         (*movsf_internal): Ditto.
3699 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3701         * c-decl.c (finish_decl): Don't call get_pending_sizes.
3702         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
3703         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
3704         (c_variable_size): Remove.
3705         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
3706         call put_pending_sizes.
3707         (get_parm_info): Add parameter expr.  Use it to set
3708         arg_info->pending_sizes.
3709         (store_parm_decls): Use arg_info->pending_sizes instead or calling
3710         get_pending_sizes.
3711         * c-parser.c (c_parser_parms_declarator): Update call to
3712         c_parser_parms_list_declarator.
3713         (c_parser_parms_list_declarator): Take parameter expr.  Update
3714         call to push_parm_decl.  Update recursive call.  Don't call
3715         get_pending_sizes.  Update calls to get_parm_info.
3716         (c_parser_objc_method_definition): Update calls to
3717         c_parser_objc_method_decl and objc_start_method_definition.
3718         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
3719         (c_parser_objc_method_decl): Add parameter expr.  Update call to
3720         grokparm.
3721         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
3722         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
3723         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
3725 2011-05-05  Michael Hope  <michael.hope@linaro.org>
3727         PR pch/45979
3728         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
3729         __ARM_EABI__ hosts.
3731 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3733         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
3734         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
3735         (spu_output_mi_thunk): New function.
3737 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3739         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
3740         targetm.asm_out.print_operand.
3741         * config/sol2.c: Include target.h.
3743 2011-05-04  Jan Hubicka  <jh@suse.cz>
3745         * ipa-inline.c (reset_edge_caches): New function.
3746         (update_caller_keys): Add check_inlinablity_for; do not
3747         reset edge caches; remove now unnecesary loop.
3748         (update_callee_keys): Add comments; reset node_growth_cache of callee.
3749         (update_all_callee_keys): Likewise.
3750         (inline_small_functions): Sanity check cache; update code
3751         recomputing it.
3753 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
3755         PR rtl-optimization/47612
3756         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
3757         as the last insn of the sequence to be moved.
3759 2011-05-04  Tobias Burnus  <burnus@net-b.de>
3761         PR fortran/48864
3762         * doc/invoke.texi (Ofast): Document that it
3763         enables Fortran's -fno-protect-parens.
3765 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3767         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
3769 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3771         * stor-layout.c (variable_size): Do not issue errors.
3773 2011-05-04  Richard Guenther  <rguenther@suse.de>
3775         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
3776         for array-ref indices.
3777         (tree_coverage_counter_addr): Likewise.
3778         (build_fn_info_type): Use size_int for index types.
3779         (build_gcov_info): Likewise.
3781 2011-05-04  Richard Guenther  <rguenther@suse.de>
3783         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
3784         to build_int_cst.
3785         * c-typeck.c (really_start_incremental_init): Use bitsize_int
3786         for constructor indices.
3787         (push_init_level): Likewise.
3789 2011-05-04  Richard Guenther  <rguenther@suse.de>
3791         * explow.c (promote_mode): Move variable declarations before code.
3793 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
3795         * tree.h (build_function_type_array): Declare.
3796         (build_varargs_function_type_array): Declare.
3797         (build_function_type_vec, build_varargs_function_type_vec): Define.
3798         * tree.c (build_function_type_array_1): New function.
3799         (build_function_type_array): New function.
3800         (build_varargs_function_type_array): New function.
3802 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
3804         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
3805         before setting STMT_VINFO_TYPE.
3807 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3809         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
3810         instead of spu_pass_by_reference.
3812 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3814         * calls.c (emit_library_call_value_1): Invoke
3815         promote_function_mode hook on libcall arguments.
3816         * explow.c (promote_function_mode, promote_mode): Handle TYPE
3817         argument being NULL.
3818         * targhooks.c (default_promote_function_mode): Lisewise.
3819         * config/s390/s390.c (s390_promote_function_mode): Likewise.
3820         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
3822         * doc/tm.texi: Document that TYPE argument might be NULL.
3824 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3826         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
3828 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3830         From Bernd Schmidt
3831         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
3833 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3835         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
3836         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
3837         Move ...
3838         * mips-tfile.c: ... here.
3839         Don't include coretypes.h, tm.h, filenames.h.
3840         (saber_stop): Remove definition and all calls.
3841         [__SABER__]: Remove.
3842         (__LINE__): Remove default.
3843         (Size_t, Ptrdiff_t): Remove definitions.
3844         Replace by size_t, ptrdiff_t.
3845         [!MIPS_DEBUGGING_INFO]: Remove.
3846         (SHASH_SIZE, THASH_SIZE): Remove defaults.
3847         (progname): Add const.
3848         (STATIC): Remove.
3849         Replace all uses by static.
3850         (ALIGN_SYMTABLE_OFFSET): Remove default.
3851         * mips-tdump.c: Don't include coretypes.h, tm.h.
3852         Remove !MIPS_IS_STAB guard.
3853         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
3854         $(TM_H), filenames.h dependencies.
3855         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
3857 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3859         From Jie Zhang
3860         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
3861         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3863 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3865         From Bernd Schmidt
3866         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3867         account and save/restore RETS.
3868         (PROFILE_BEFORE_PROLOGUE): Define.
3869         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
3870         the push insn to use predecrement.
3872 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3874         From Jie Zhang
3875         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
3877 2011-05-04  Nick Clifton  <nickc@redhat.com>
3879         * config/mn10300/mn10300.c: Include cfgloop.h.
3880         (DUMP): New macro.
3881         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
3882         Lcc or a FLcc insn into the instruction stream.
3883         (mn10300_block_contains_call): New function.  Returns true if the
3884         given basic block contains a CALL insn.
3885         (mn10300_loop_contains_call_insn): New function.  Returns true if
3886         the given loop contains a CALL insn.
3887         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
3888         to use the SETLB and Lcc or FLcc insns.
3889         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3890         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3891         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
3892         disable the SETLB optimization.
3893         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3894         __SETLB__ or __NO_SETLB__.
3895         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3896         (movsf_internal): Handle MDR register.
3897         (cmpsi): Make visible.
3898         (setlb): New pattern.
3899         (Lcc): New pattern.
3900         (FLcc): New pattern.
3902 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3904         PR target/48860
3905         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3906         for reg<->xmm moves.
3907         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3908         (vec_concatv2di_rex64_sse): Ditto.
3909         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3910         (*vec_extractv2di_1_rex64): Ditto.
3912         Revert:
3913         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3915         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3916         reg<->xmm moves.
3917         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3919 2011-05-04  Richard Guenther  <rguenther@suse.de>
3921         * tree.h (int_const_binop): Remove notrunc argument.
3922         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
3923         create integer constants that are properly truncated.
3924         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3925         (const_binop): Remove zero notrunc argument to int_const_binop.
3926         (size_binop_loc): Likewise.
3927         (fold_div_compare): Likewise.
3928         (maybe_canonicalize_comparison_1): Likewise.
3929         (fold_comparison): Likewise.
3930         (fold_binary_loc): Likewise.
3931         (multiple_of_p): Likewise.
3932         * expr.c (store_constructor): Likewise.
3933         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3934         (maybe_fold_stmt_addition): Likewise.
3935         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3936         * stor-layout.c (layout_type): Likewise.
3937         * tree-data-ref.c (tree_fold_divides_p): Likewise.
3938         * tree-sra.c (build_ref_for_offset): Likewise.
3939         (build_user_friendly_ref_for_offset): Likewise.
3940         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3941         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3942         * tree-ssa-loop-niter.c (inverse): Likewise.
3943         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3944         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3945         * tree-switch-conversion.c (check_range): Likewise.
3946         (build_constructors): Likewise.
3947         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3948         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3949         (extract_range_from_assert): Likewise.
3950         (vrp_int_const_binop): Likewise.
3951         (extract_range_from_binary_expr): Likewise.
3952         (extract_range_from_unary_expr): Likewise.
3953         (check_array_ref): Likewise.
3954         (find_case_label_range): Likewise.
3955         (simplify_div_or_mod_using_ranges): Likewise.
3956         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3957         comparing case labels for merging.
3959 2011-05-03  Mark Wielaard  <mjw@redhat.com>
3961         * dwarf2out.c (debug_str_hash_forced): Removed.
3962         (gen_label_for_indirect_string): Removed.
3963         (get_debug_string_label): Removed.
3964         (AT_string_form): Generate label directly.
3965         (output_indirect_string): Test indirect_string_node for
3966         DW_FORM_strp instead of checking label and refcount.
3967         (prune_indirect_string): Removed.
3968         (prune_unused_types): Don't check debug_str_hash_forced or
3969         call prune_indirect_string.
3971 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3973         PR other/48093
3974         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3976 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3978         PR debug/47994
3979         PR debug/47919
3980         * combine.c (try_combine): Skip debug insns at m_split tests.
3982 2011-04-26  Mark Wielaard  <mjw@redhat.com>
3984         PR42288
3985         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3986         when info_section_emitted.
3988 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
3990         * config/mips/mips-opts.h: New.
3991         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3992         to mips-opts.h.
3993         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3994         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3995         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
3996         via opts pointer.
3997         * config/mips/mips.h (enum mips_code_readable_setting): Move to
3998         mips-opts.h.
3999         (mips_abi, mips_code_readable): Don't declare.
4000         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
4001         (mabi=): Use Enum and Var.
4002         (mips_abi): New Enum and EnumValue entries.
4003         (mcode-readable=): Use Enum and Var.
4004         (mips_code_readable_setting): New Enum and EnumValue entries.
4005         (mr10k-cache-barrier=): Use Enum and Var.
4006         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
4008 2011-05-03  Jan Hubicka  <jh@suse.cz>
4010         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
4011         replace hash by pointer map.
4012         (cgraph_node_set_element_def, cgraph_node_set_element,
4013         const_cgraph_node_set_element, varpool_node_set_element_def,
4014         varpool_node_set_element, const_varpool_node_set_element): Remove.
4015         (free_cgraph_node_set, free_varpool_node_set): New function.
4016         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
4017         * tree-emutls.c: Free varpool node set.
4018         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
4019         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
4020         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
4021         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
4022         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
4023         Move here from ipa.c; implement using pointer_map
4024         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
4025         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
4026         debug_cgraph_node_set, varpool_node_set_new,
4027         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
4028         dump_varpool_node_set, debug_varpool_node_set):
4029         Move to ipa-uitls.c.
4030         * passes.c (ipa_write_summaries): Update.
4032 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4034         From Mike Frysinger:
4035         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
4036         bf542/bf544/bf547/bf548/bf549.
4038 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
4040         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
4042 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4044         From Bernd Schmidt:
4045         * config/bfin/bfin.md (MOVCC): New mode_macro.
4046         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
4047         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
4048         comments from generated assembly.
4050 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4052         From Bernd Schmidt
4053         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
4054         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
4055         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
4056         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
4057         * config/bfin/lib1funcs.asm (___muldi3): New function.
4059 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4061         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
4062         build_function_type_list instead of build_function_type.
4063         Rearrange initialization of `args' to do so.
4065 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4067         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
4068         instead of build_function_type.
4070 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4072         * config/rs6000/rs6000.c (spe_init_builtins): Call
4073         build_function_type_list instead of build_function_type.
4074         (paired_init_builtins, altivec_init_builtins): Likewise.
4075         (builtin_function_type): Likewise.
4077 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4079         * config/sh/sh.c (sh_media_init_builtins): Call
4080         build_function_type_list instead of build_function_type.
4082 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4084         * config/sparc/sparc.c (sparc_file_end): Call
4085         build_function_type_list instead of build_function_type.
4087 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4089         * config/alpha/alpha.c (alpha_init_builtins): Call
4090         build_function_type_list instead of build_function_type.
4092 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4094         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
4095         build_function_type_list instead of build_function_type.
4097 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4099         * config/iq2000/i2000.c (iq2000_init_builtins): Call
4100         build_function_type_list instead of build_function_type.
4101         Delete `endlink' variable.
4103 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4105         * config/avr/avr.c (avr_init_builtins): Call
4106         build_function_type_list instead of build_function_type.
4108 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4110         * config/picochip/picochip.c (picochip_init_builtins): Call
4111         build_function_type_list instead of build_function_type.
4112         Delete `endlink' variable.
4114 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
4116         * config/bfin/bfin.c (bfin_init_builtins): Call
4117         build_function_type_list instead of build_function_type.
4119 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4121         From Bernd Schmidt
4122         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
4123         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
4125 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4127         From Jie Zhang:
4128         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
4129         libbffastfp overrides libgcc when -mfast-fp.
4131 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4133         Originally from Bernd Schmidt
4134         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
4135         * config/bfin/bfin.c (override_options): Test it and error if
4136         TARGET_FDPIC.
4138 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4140         Originally From Bernd Schmidt
4141         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
4142         FD-PIC.
4144 2011-05-03  Jeff Law  <law@redhat.com>
4146         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
4147         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
4148         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
4149         than accessing AUX field directly.  Free the AUX field before
4150         clearing it.
4151         (thread_block, thread_through_loop_header): Likewise.
4152         (thread_single_edge, mark_threaded_blocks): Likewise.
4153         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
4154         (register_jump_thread): Do not attempt to thread to a NULL edge.
4156 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
4158         * function.c (init_function_start): Call decide_function_section.
4159         * varasm.c (decide_function_section): New function.
4160         (assemble_start_function): When not using
4161         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
4162         or first_function_block_is_cold.
4163         * rtl.h (decide_function_section): Declare.
4165 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
4166             Jakub Jelinek  <jakub@redhat.com>
4168         PR target/48774
4169         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
4170         only succeed if req_mode is the same as set_mode.
4172 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
4174         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
4175         * genemit.c (gen_exp): Handle RETURN.
4176         * emit-rtl.c (verify_rtx_sharing): Likewise.
4177         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
4178         * rtl.c (copy_rtx): RETURN is shared.
4179         * rtl.h (enum global_rtl_index): Add GR_RETURN.
4180         (ret_rtx): New.
4181         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
4182         * config/s390/s390.c (s390_emit_epilogue): Likewise.
4183         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
4184         * config/cris/cris.c (cris_expand_return): Likewise.
4185         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
4186         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
4187         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
4188         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
4189         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
4190         Likewise.
4191         * config/v850/v850.c (expand_epilogue): Likewise.
4192         * config/bfin/bfin.c (bfin_expand_call): Likewise.
4193         * config/arm/arm.md (epilogue): Likewise.
4194         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
4195         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
4196         variable to ret_reg.
4198 2011-05-03  Richard Guenther  <rguenther@suse.de>
4200         PR lto/48846
4201         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
4202         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
4203         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4205 2011-05-03  Richard Guenther  <rguenther@suse.de>
4207         * c-decl.c (grokdeclarator): Instead of looking at
4208         TREE_OVERFLOW check if the constant fits in the index type.
4210 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
4212         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
4213         (vec_store_lanes<mode><mode>): Likewise.
4215 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
4217         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
4218         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
4219         convert_optab_index values.
4220         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
4221         * genopinit.c (optabs): Initialize the new optabs.
4222         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
4223         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
4224         (expand_STORE_LANES): New functions.
4225         * tree.h (build_array_type_nelts): Declare.
4226         * tree.c (build_array_type_nelts): New function.
4227         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
4228         (vect_model_load_cost): Likewise.
4229         (vect_store_lanes_supported, vect_load_lanes_supported)
4230         (vect_record_strided_load_vectors): Declare.
4231         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
4232         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
4233         (vect_transform_strided_load): Split out statement recording into...
4234         (vect_record_strided_load_vectors): ...this new function.
4235         * tree-vect-stmts.c (create_vector_array, read_vector_array)
4236         (write_vector_array, create_array_ref): New functions.
4237         (vect_model_store_cost): Add store_lanes_p argument.
4238         (vect_model_load_cost): Add load_lanes_p argument.
4239         (vectorizable_store): Try to use store-lanes functions for
4240         interleaved stores.
4241         (vectorizable_load): Likewise load-lanes and loads.
4242         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
4243         to vect_model_store_cost.
4244         (vect_build_slp_tree): Likewise vect_model_load_cost.
4246 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
4248         * hooks.h (hook_bool_mode_uhwi_false): Declare.
4249         * hooks.c (hook_bool_mode_uhwi_false): New function.
4250         * target.def (array_mode_supported_p): New hook.
4251         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
4252         * doc/tm.texi: Regenerate.
4253         * stor-layout.c (mode_for_array): New function.
4254         (layout_type): Use it.
4255         * config/arm/arm.c (arm_array_mode_supported_p): New function.
4256         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
4258 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4260         PR target/48723
4261         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
4262         for -fstack-check if the size to allocate is negative.
4264 2011-05-02  Lawrence Crowl  <crowl@google.com>
4266         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
4267         (timevar_cond_start): New for starting a timer only when it is not
4268         already running.
4269         (timevar_cond_stop): New for stopping a timer when it was not already
4270         running.
4272         * timevar.c (timevar_stop): Enable start/stop timers to start again.
4273         (timevar_cond_start): New as above.
4274         (timevar_cond_stop): New as above.
4276         * timevar.def: Add start/stop timers for compiler phases,
4277         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
4278         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
4279         and TV_PHASE_FINALIZE.
4280         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
4281         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
4282         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
4283         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
4284         Make unused TV_OVERLOAD into a start/stop timer.
4286         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
4287         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
4288         to indicate that they are start/stop timers.
4290         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
4291         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
4292         Move initialization to do_compile.
4293         (do_compile): Add initialization from above.
4294         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
4296         * c-decl.c (c_write_global_declarations): Add start/stop of
4297         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
4299         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
4300         or TV_PARSE_INLINE, as appropriate.
4301         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
4302         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
4304 2011-05-02  Jason Merrill  <jason@redhat.com>
4306         PR c++/40975
4307         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
4309 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
4311         PR c/35445
4312         * c-decl.c (finish_decl): Only create a composite if the types are
4313         compatible.
4315 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
4317         * config/fr30/fr30-protos.h (Mmode): Don't define.
4318         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
4319         definition where used.
4320         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
4321         define.  Expand definitions where used.
4322         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
4323         Expand definitions where used.
4324         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
4325         rx_function_arg, rx_function_arg_advance,
4326         rx_function_arg_boundary): Expand definitions of those macros.
4327         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
4328         definition where used.
4330 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
4332         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
4333         reg<->xmm moves.
4334         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
4335         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
4336         with *movv2sf_internal_rex64_avx.
4337         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
4338         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
4339         Use %v prefix in insn mnemonic to handle TARGET_AVX.
4340         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
4341         "vex" in "prefix" attribute calculation.
4342         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
4344 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
4346         PR target/47951
4347         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
4348         inputs match the output.
4350 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
4352         PR target/47955
4353         * config/m68k/m68k.c (m68k_expand_prologue): Set
4354         current_function_static_stack_size.
4356 2011-05-02   Jan Hubicka  <jh@suse.cz>
4358         * lto-streamer.c (lto_streamer_cache_insert_1,
4359         lto_streamer_cache_lookup, lto_streamer_cache_create,
4360         lto_streamer_cache_delete): Use pointer map instead of hashtable.
4361         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
4363 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
4365         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
4366         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
4367         config/m68k/t-opts: New files.
4368         * config/m68k/m68k-tables.opt: New file (generated).
4369         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
4370         extra_options and m68k/t-opts to tmake_file.
4371         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
4372         (all_isas): Initialize using m68k-isas.def.
4373         (all_microarchs): Initialize using m68k-microarchs.def.
4374         (m68k_find_selection): Remove.
4375         (m68k_handle_option): Don't assert that global structures are in
4376         use.  Use error_at.  Access variables via opts pointer.  Don't
4377         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
4378         directly for -m68020-40 and -m68020-60.
4379         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
4380         m68k_tune_entry here.
4381         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
4382         to m68k-opts.h.
4383         (m68k_library_id_string): Remove declaration.
4384         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
4385         (m68k_library_id_string): New Variable.
4386         (march=, mcpu=, mtune=): Use Enum and Var.
4388 2011-05-02  Richard Guenther  <rguenther@suse.de>
4390         * varasm.c (output_constructor_regular_field): Compute zero-based
4391         index with double-ints.  Make sure to ICE instead of producing
4392         wrong code.
4393         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
4394         in asserts.  Properly use a signed type.
4396 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
4398         * config/i386/sse.md (V): New mode iterator.
4399         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
4400         TARGET_SSE2.
4401         (V_256): Rename from AVX256MODE.
4402         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
4403         condition to all users.
4404         (VF1): Ditto.
4405         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
4406         condition to all users.
4407         (VF_128): Make V4SF mode unconditional.
4408         (VF_256): Rename from AVX256MODEF2P.
4409         (VI4F_128): Rename from SSEMODE4S.
4410         (VI8F_128): Rename from SSEMODE2D.
4411         (VI4F_256): Rename from AVX256MODE8P.
4412         (VI8F_256): Rename from AVX256MODE4P.
4413         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
4414         (ssescalarmodesuffix): Remove SF and DF modes.
4415         (SSEMODE124): Remove.
4416         (SSEMODE1248): Ditto.
4417         (SSEMODEF2P): Ditto.
4418         (AVXMODEF2P): Ditto.
4419         (AVXMODEFDP): Ditto.
4420         (AVXMODEFSP): Ditto.
4421         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
4422         unconditional.
4423         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
4424         unconditional.
4425         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
4426         xop_pcmov_<mode>256.  Use V mode iterator.
4428         Adjust RTX patterns globally for renamed mode attributes.
4430 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4432         * haifa-sched.c (sched_emit_insn): Emit insn before first
4433         non-scheduled insn.  Inform back-end about new insn.  Add
4434         new insn to scheduled_insns list.
4436 2011-05-02  Richard Guenther  <rguenther@suse.de>
4438         PR tree-optimization/48822
4439         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
4440         (process_scc): Indicate which iteration we start.
4442 2011-05-02  Jan Hubicka  <jh@suse.cz>
4444         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
4445         (lto_section_overrun): New.
4446         * lto-section-out.c (append_block): Rename to ...
4447         (lto_append_block): ... this one; export.
4448         (lto_output_1_stream): Move lto lto-streamer.h
4449         (lto_output_data_stream): Update.
4450         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
4451         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
4452         functions.
4454 2011-05-02  Richard Guenther  <rguenther@suse.de>
4456         * tree.c (tree_code_counts): New global array.
4457         (record_node_allocation_statistics): Count individual tree codes.
4458         (dump_tree_statistics): Dump individual code stats.
4460 2011-05-01  Jan Hubicka  <jh@suse.cz>
4462         * ipa-inline.c (caller_growth_limits): Fix thinko when
4463         looking for largest stack frame.
4464         * ipa-inline.h (dump_inline_summary): Declare.
4465         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
4466         on stack usage.
4467         (dump_inline_summary): Export.
4468         (debug_inline_summary): Declare as DEBUG_FUNCTION.
4470 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
4472         * reginfo.c (memory_move_cost): Change rclass argument type form
4473         'enum reg_class' to reg_class_t.
4474         * reload.h (memory_move_cost): Update prototype.
4475         * postreload.c reload_cse_simplify_set): Change type dclass var to
4476         reg_class_t.
4477         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
4478         Update prototype.
4479         (ira_allocate_and_set_costs): Change aclass argument type form
4480         'enum reg_class' to reg_class_t.
4481         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
4482         Change aclass argument type to reg_class_t.
4483         (update_conflict_hard_reg_costs): Change type aclass and pref vars
4484         to reg_class_t.
4485         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
4486         memory_move_cost call.
4488         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
4489         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
4490         Change type tmp var to reg_class_t.
4492 2011-04-30  Jan Hubicka  <jh@suse.cz>
4494         * ipa-inline.c (can_inline_edge_p): Disregard limits when
4495         inlining into function with flatten attribute.
4496         (want_inline_small_function_p): Be more realistic about inlining
4497         cold calls where callee size grows.
4499 2011-04-30  Jan Hubicka  <jh@suse.cz>
4501         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
4502         flags.
4504 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
4506         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4507         PRINT_OPERAND_PUNCT_VALID_P): Remove.
4508         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
4509         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
4510         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4511         (print_operand): Rename to...
4512         (sparc_print_operand): ...this. Make static. Adjust
4513         sparc_print_operand function call.
4514         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
4515         functions.
4517 2011-04-30  Jan Hubicka  <jh@suse.cz>
4519         PR middle-end/48752
4520         * ipa-inline.c (early_inliner): Disable when doing late
4521         addition of function.
4523 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
4525         * dwarf2out.c (get_address_mode): New inline.
4526         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
4527         if not dwarf_strict emit
4528         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
4529         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
4530         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
4531         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
4532         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
4533         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
4534         mem_loc_descriptor callers.
4535         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
4536         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
4537         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
4538         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
4539         (base_types): New variable.
4540         (get_base_type_offset, calc_base_type_die_sizes,
4541         base_type_for_mode, mark_base_types, base_type_cmp,
4542         move_marked_base_types): New functions.
4543         (calc_die_sizes): Assert that die_offset is 0 or equal to
4544         next_die_offset.
4545         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
4546         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
4547         callers.  If not dwarf_strict, call mem_loc_descriptor even for
4548         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
4549         (gen_subprogram_die): Don't give up on call site parameters
4550         with non-integral or large integral modes.  Adjust
4551         mem_loc_descriptor callers.
4552         (prune_unused_types): Call prune_unused_types_mark on base_types
4553         vector entries.
4554         (resolve_addr): Call mark_base_types.
4555         (dwarf2out_finish): Call move_marked_base_types.
4557         PR tree-optimization/48809
4558         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
4559         type.
4560         (gen_inbound_check): Don't compute index_expr - range_min in utype
4561         again, instead reuse SSA_NAME initialized in build_arrays.
4562         Remove two useless gsi_for_stmt calls.
4564 2011-04-29  Jeff Law  <law@redhat.com>
4566         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
4568 2011-04-29  Martin Jambor  <mjambor@suse.cz>
4570         * cgraph.h (cgraph_postorder): Remove declaration.
4571         * ipa-utils.h (ipa_free_postorder_info): Declare.
4572         (ipa_reverse_postorder): Likewise.
4573         * cgraphunit.c: Include ipa-utils.h.
4574         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
4575         * ipa-inline.c: Include ipa-utils.h.
4576         (ipa_inline): Update call to ipa_reverse_postorder.
4577         * ipa-pure-const.c (propagate_pure_const): Update call to
4578         ipa_reduced_postorder and ipa_print_order.  Call
4579         ipa_free_postorder_info to clean up.
4580         (propagate_nothrow): Likewise.
4581         * ipa-reference.c (propagate): Removed a useless call to
4582         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
4583         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
4584         * ipa.c: Include ipa-utils.h.
4585         (ipa_profile): Update call to ipa_reverse_postorder.
4586         (cgraph_postorder): Moved to...
4587         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
4588         (ipa_utils_print_order): Renamed to ipa_print_order.
4589         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
4590         comments.
4591         (ipa_free_postorder_info): New function.
4592         * passes.c: Include ipa-utils.h.
4593         (do_per_function_toporder): Update call to ipa_reverse_postorder.
4594         (ipa_write_summaries): Likewise.
4595         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
4596         (cgraphunit.o): Likewise.
4597         (ipa.o): Likewise.
4598         (ipa-inline.o): Likewise.
4600 2011-04-29  Jan Hubicka  <jh@suse.cz>
4602         * gcc.dg/tree-ssa/inline-10.c: New testcase.
4603         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
4604         * ipa-inline.h (clause_t): Turn into unsigned int.
4605         * ipa-inline-analysis.c (add_clause): Do more simplification.
4606         (and_predicates): Shortcut more cases.
4607         (predicates_equal_p): Move forward; check that clauses are properly
4608         ordered.
4609         (or_predicates): Shortcut more cases.
4610         (edge_execution_predicate): Rewrite as...
4611         (set_cond_stmt_execution_predicate): ... this function; handle
4612         __builtin_constant_p.
4613         (set_switch_stmt_execution_predicate): New .
4614         (compute_bb_predicates): New.
4615         (will_be_nonconstant_predicate): Update TODO.
4616         (estimate_function_body_sizes): Use compute_bb_predicates
4617         and free them later, always try to estimate if stmt is constant.
4618         (estimate_time_after_inlining, estimate_size_after_inlining):
4619         Gracefully handle optimized out edges.
4620         (read_predicate): Fix off by one error.
4622 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4624         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
4626 2011-04-27  Xinliang David Li  <davidxl@google.com>
4628         * tree-profile.c (init_ic_make_global_vars): Set
4629         tls attribute on ic vars.
4630         * coverage.c (coverage_end_function): Initialize
4631         function_list with zero.
4633 2011-04-29  Richard Guenther  <rguenther@suse.de>
4635         * builtins.c (fold_builtin_classify_type): Use integer_type_node
4636         for the type of the result.
4637         (fold_builtin_isascii): Likewise.
4638         (fold_builtin_toascii): Use integer_type_node where appropriate.
4639         (fold_builtin_logb): Likewise.
4640         (fold_builtin_frexp): Likewise.
4641         (fold_builtin_strstr): Likewise.
4642         (fold_builtin_strpbrk): Likewise.
4643         (fold_builtin_fputs): Likewise.
4644         (fold_builtin_sprintf): Likewise.
4645         (fold_builtin_snprintf): Likewise.
4646         (fold_builtin_printf): Likewise.
4647         (do_mpfr_remquo): Use a proper type for the assigned constant.
4648         (do_mpfr_lgamma_r): Likewise.
4649         * dwarf2out.c (resolve_one_addr): Use size_int.
4650         * except.c (init_eh): Likewise.
4651         (assign_filter_values): Use integer_type_node for filter values.
4652         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
4653         indices.
4654         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
4655         for EH region numbers.
4656         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
4657         for the shift amount.
4659 2011-04-29  Richard Guenther  <rguenther@suse.de>
4661         * expr.h (expand_shift): Rename to ...
4662         (expand_variable_shift): ... this.
4663         (expand_shift): Take a constant shift amount.
4664         * expmed.c (expand_shift): Rename to ...
4665         (expand_variable_shift): ... this.
4666         (expand_shift): New wrapper around expand_variable_shift.
4667         * expr.c (convert_move, emit_group_load_1, emit_group_store,
4668         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
4669         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
4670         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
4671         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
4672         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
4673         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
4674         emit_store_flag_1, emit_store_flag): Likewise.
4675         * builtins.c (expand_builtin_signbit): Likewise.
4676         * calls.c (load_register_parameters): Likewise.
4677         * function.c (assign_parm_setup_block): Likewise.
4678         * lower-subreg.c (resolve_shift_zext): Likewise.
4679         * optabs.c (widen_bswap, expand_abs_nojump,
4680         expand_one_cmpl_abs_nojump, expand_float): Likewise.
4681         * spu/spu.c (spu_expand_extv): Likewise.
4682         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4684 2011-04-29  Richard Guenther  <rguenther@suse.de>
4686         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
4687         for the remapped region number.
4688         * predict.c (build_predict_expr): Use integer_type_node for the
4689         predict kind.
4690         * fold-const.c (fold_binary_loc): Use integer_type_node for
4691         the shift amount.  Use a proper type for the PLUS_EXPR operand.
4693 2011-04-29  Michael Matz  <matz@suse.de>
4695         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
4696         other trees that just builtins.
4697         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
4699 2011-04-29  Richard Guenther  <rguenther@suse.de>
4701         * tree-nested.c (get_trampoline_type): Use size_int.
4702         (get_nl_goto_field): Likewise.
4703         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
4704         for all indexes.
4705         (lower_eh_constructs_2): Likewise.
4706         (lower_resx): Likewise.
4707         (lower_eh_dispatch): Likewise.
4708         * tree-mudflap.c (mf_build_string): Use size_int.
4709         (mudflap_register_call): Use integer_type_node for the flag.
4710         (mudflap_enqueue_constant): Use size_int.
4711         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
4712         instead of rebuilding it.
4714 2011-04-29  Richard Guenther  <rguenther@suse.de>
4716         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
4717         Handle OBJ_TYPE_REF.
4718         (find_func_aliases_for_call): Use it more consistently.
4720 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
4722         * haifa-sched.c (last_nondebug_scheduled_insn): New.
4723         (rank_for_schedule): Use it.
4724         (schedule_block): Set it.
4726 2011-04-28  David Li  <davidxl@google.com>
4728         * tree.c (crc32_string): Use crc32_byte.
4729         (crc32_byte): New function.
4730         * tree.h (crc32_byte): New function.
4731         * gcov.c (read_graph_file): Handle new cfg_cksum.
4732         (read_count_file): Ditto.
4733         * profile.c (instrument_values): Ditto.
4734         (get_exec_counts): Ditto.
4735         (read_profile_edge_counts): Ditto.
4736         (compute_branch_probabilities): Ditto.
4737         (compute_value_histograms): Ditto.
4738         (branch_prob): Ditto.
4739         (end_branch_prob): Ditto.
4740         * coverage.c (read_counts_file): Ditto.
4741         (get_coverage_counts): Ditto.
4742         (tree_coverage_counter_addr): Ditto.
4743         (coverage_checksum_string): Ditto.
4744         (coverage_begin_output): Ditto.
4745         (coverage_end_function): Ditto.
4746         (build_fn_info_type): Ditto.
4747         (build_fn_info_value): Ditto.
4748         * libgcov.c (gcov_exit): Ditto.
4749         * gcov-dump.c (tag_function): Ditto.
4750         (compute_checksum): Remove.
4752 2011-04-29  Alan Modra  <amodra@gmail.com>
4754         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4755         unspec plus offset.  Tidy macho code.
4757 2011-04-29  Martin Jambor  <mjambor@suse.cz>
4759         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
4760         node instead of a decl.  Update all callers.
4761         * cgraph.h: Update declaration.
4763 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
4765         PR tree-optimization/48765
4766         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
4767         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
4768         to indicate if loop aware SLP is being used.  Scan the statements
4769         and update the vectorization factor according to the type of
4770         vectorization before statement analysis.
4771         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
4772         pass it to vect_analyze_loop_operations.
4773         (vectorizable_reduction): Set number of copies to 1 in case of pure
4774         SLP statement.
4775         * tree-vect-stmts.c (vectorizable_conversion,
4776         vectorizable_assignment, vectorizable_shift,
4777         vectorizable_operation, vectorizable_type_demotion,
4778         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
4779         Likewise.
4780         (vectorizable_condition): Move the check that it is not SLP
4781         vectorization before the number of copies check.
4782         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
4783         to vectorize the loop using SLP.
4785 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
4787         PR middle-end/48597
4788         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
4789         inline asm.
4791 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
4793         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
4794         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
4795         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
4796         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
4797         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
4798         linux*.h headers.
4799         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
4800         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4801         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4802         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4803         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4804         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
4805         REG_NAME.
4806         * config/i386/linux.h (REG_NAME): Don't define.
4807         * config/i386/linux64.h (REG_NAME): Don't define.
4808         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
4809         Undefine before defining.
4811 2011-04-28  Jan Hubicka  <jh@suse.cz>
4813         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
4814         nonconstant_names array.
4815         (estimate_function_body_sizes): Build nonconstant_names array; handle
4816         BUILT_IN_CONSTANT_P.
4818 2011-04-28  Richard Guenther  <rguenther@suse.de>
4820         PR bootstrap/48804
4821         Revert
4822         2011-04-28  Richard Guenther  <rguenther@suse.de>
4824         * tree-ssa-structalias.c (solve_constraints): Build succ graph
4825         as late as possible.
4827 2011-04-28  Richard Guenther  <rguenther@suse.de>
4829         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
4830         (debug_constraint): Do it here.
4831         (dump_constraints): And here.
4832         (rewrite_constraints): And here.
4833         (dump_constraint_edge): Remove.
4834         (dump_constraint_graph): Rewrite to produce DOT output.
4835         (solve_constraints): Build succ graph as late as possible.
4836         Dump constraint graphs before and after solving.
4838 2011-04-28  Richard Guenther  <rguenther@suse.de>
4840         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4841         New function split out from ...
4842         (find_func_aliases): ... here.  Call it.
4843         (find_func_aliases_for_call): Likewise.
4845 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4847         * internal-fn.h (internal_fn_name_array): Declare.
4848         (internal_fn_flags_array): Likewise.
4850 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4852         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
4853         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
4854         Move from sse.md.
4855         (ssemodefsuffix): Remove.
4856         (ssevecmodesuffix): New mode attribute.
4857         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
4858         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4859         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4860         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4861         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
4862         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
4863         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
4864         ssemodesuffix mode attribute.
4865         (float splitters): Use ssevecmodesuffix mode attribute.
4866         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
4867         (sseinsmode): Rename from avxvecmode.
4868         (avxsizesuffix): Rename from avxmodesuffix.
4869         (sseintvecmode): Rename from avxpermvecmode.
4870         (ssedoublevecmode): Rename from ssedoublesizemode.
4871         (ssehalfvecmode): Rename from avxhalfvecmode.
4872         (ssescalarmode): Rename from avxscalarmode.
4873         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
4874         templates for ssemodesuffix mode attribute.
4875         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
4876         mode attribute.
4878         Adjust RTX patterns globally for renamed mode attributes.
4880 2011-04-27  Jan Hubcika  <jh@suse.cz>
4882         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
4883         * ipa-inline-analysis.c: Include alloc-pool.h.
4884         (edge_predicate_pool): New.
4885         (trye_predicate_p): New function
4886         (false_predicate_p): New function.
4887         (add_clause): Sanity check that false clauses are "optimized";
4888         never add clauses to predicate that is already known to be false.
4889         (and_predicate): Use flase_predicate_p.
4890         (evaulate_predicate): Rename to ...
4891         (evaluate_predicate): ... this one; update all callers; assert
4892         that false is not listed among possible truths.
4893         (dump_predicate): Use true_predicate_p.
4894         (account_size_time): Use false_predicate_p.
4895         (evaulate_conditions_for_edge): Rename to ...
4896         (evaluate_conditions_for_edge) ... this one.
4897         (edge_set_predicate): New function.
4898         (inline_edge_duplication_hook): Duplicate edge predicates.
4899         (inline_edge_removal_hook): Free edge predicates.
4900         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4901         (dump_inline_summary): Update.
4902         (estimate_function_body_sizes): Set edge predicates.
4903         (estimate_calls_size_and_time): Handle predicates.
4904         (estimate_callee_size_and_time): Update.
4905         (remap_predicate): Add toplev_predicate; update comment.
4906         (remap_edge_predicates): New function.
4907         (inline_merge_summary): Compute toplev predicate; update.
4908         (read_predicate): New function.
4909         (read_inline_edge_summary): Use it.
4910         (inline_read_section): Likewise.
4911         (write_predicate): New function.
4912         (write_inline_edge_summary): Use it.
4913         (inline_write_summary): Likewise.
4914         (inline_free_summary): Free alloc pool and edge summary vec.
4916 2011-04-27  Richard Guenther  <rguenther@suse.de>
4918         * tree-ssa-structalias.c (changed_count): Remove.
4919         (changed): Use a bitmap.
4920         (unify_nodes): Adjust.
4921         (do_sd_constraint): Likewise.
4922         (do_ds_constraint): Likewise.
4923         (do_complex_constraint): Likewise.
4924         (solve_graph): Likewise.
4926 2011-04-27  Jan Hubicka  <jh@suse.cz>
4928         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4930 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4932         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4933         (avx_vperm2f128_*_operand): Ditto.
4934         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4935         Use avx_vpermilp_parallel in insn condition.
4936         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4937         Use avx_vperm2f128_parallel in insn condition.
4939 2011-04-27  Richard Guenther  <rguenther@suse.de>
4941         * Makefile.in (tree-ssa-structalias.o): Remove
4942         gt-tree-ssa-structalias.h dependency.
4943         (GTFILES): Remove tree-ssa-structalias.c.
4944         * tree.c (allocate_decl_uid): New function.
4945         (make_node_stat): Use it.
4946         (copy_node_stat): Likewise.
4947         * tree.h (allocate_decl_uid): Declare.
4948         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4949         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4950         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4951         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4952         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4953         (struct heapvar_map): Likewise.
4954         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4955         heapvar_insert): Likewise.
4956         (make_heapvar_for): Rename to ...
4957         (make_heapvar): ... this.  Simplify.
4958         (fake_var_decl_obstack): New global var.
4959         (build_fake_var_decl): New function.
4960         (make_constraint_from_heapvar): Adjust.
4961         (handle_lhs_call): Likewise.
4962         (create_function_info_for): Likewise.
4963         (intra_create_variable_infos): Likewise.
4964         (init_alias_vars): Allocate fake_var_decl_obstack.
4965         (init_alias_heapvars, delete_alias_heapvars): Remove.
4966         (compute_points_to_sets): Do not call init_alias_heapvars.
4967         (ipa_pta_execute): Likewise.
4968         (delete_points_to_sets): Free fake_var_decl_obstack.
4970 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4972         * config/spu/divmovti4.c (union qword_UTItype): New data type.
4973         (si_from_UTItype, si_to_UTItype): New functions.
4974         (__udivmodti4): Use them to implement type-punning.
4975         * config/spu/multi3.c (union qword_TItype): New data type.
4976         (si_from_TItype, si_to_TItype): New functions.
4977         (__multi3): Use them to implement type-punning.
4979 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4981         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4983 2011-04-27  Jan Hubicka  <jh@suse.cz>
4985         * ipa-prop.c (function_insertion_hook_holder): New holder.
4986         (ipa_add_new_function): New function.
4987         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4988         Register/deregister holder.
4990 2011-04-27  Richard Guenther  <rguenther@suse.de>
4992         PR tree-optimization/48772
4993         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4995 2011-04-27  Richard Guenther  <rguenther@suse.de>
4997         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4998         TARGET_MEM_REF handling.
5000 2011-04-27  Nick Clifton  <nickc@redhat.com>
5002         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
5003         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
5004         (REG_CLASS_NAMES): Likewise.
5005         (REG_CLASS_CONTENTS): Likewise.
5006         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
5007         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
5008         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
5009         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
5010         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
5011         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
5012         duplicate register classes.
5013         (frv_class_likely_spilled_p): Likewise.
5014         (frv_register_move_cost): Likewise.
5016         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
5017         end of the regno_reg_class array.
5019 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
5021         PR c/48742
5022         * c-typeck.c (build_binary_op): Don't wrap arguments if
5023         int_operands is true.
5025 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
5027         PR target/48767
5028         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
5029         targetm.calls.must_pass_in_stack for void type.
5031 2011-04-26  Jan Hubicka  <jh@suse.cz>
5033         * cgraphbuild.c (build_cgraph_edges): Update call
5034         of cgraph_create_edge and cgraph_create_indirect_edge.
5035         * cgraph.c (cgraph_create_edge_including_clones,
5036         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
5037         cgraph_update_edges_for_call_stmt_node): Do not take nest
5038         argument; do not initialize call_stmt_size/time.
5039         (dump_cgraph_node): Do not dump nest.
5040         (cgraph_clone_edge): Do not take loop_nest argument;
5041         do not propagate it; do not clone call_stmt_size/time.
5042         (cgraph_clone_node): Likewise.
5043         (cgraph_create_virtual_clone): Update.
5044         * cgraph.h (struct cgraph_edge): Remove
5045         call_stmt_size/call_stmt_time/loop_nest.
5046         (cgraph_create_edge, cgraph_create_indirect_edge,
5047         cgraph_create_edge_including_clones, cgraph_clone_node): Update
5048         prototype.
5049         * tree-emutls.c (gen_emutls_addr): Update.
5050         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
5051         loop_nest; handle indirect calls, too.
5052         (clone_inlined_nodes): Do not care about updating inline summaries.
5053         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
5054         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
5055         stream call_stmt_size/call_stmt_time/loop_nest.
5056         * ipa-inline.c (edge_badness): Update.
5057         (ipa_inline): dump summaries after inlining.
5058         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
5059         New.
5060         (inline_edge_summary): New function.
5061         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
5062         (inline_edge_removal_hook): Handle edge summaries.
5063         (inline_edge_duplication_hook): New hook.
5064         (inline_summary_alloc): Alloc hooks.
5065         (initialize_growth_caches): Do not register removal hooks.
5066         (free_growth_caches); Do not free removal hook.
5067         (dump_inline_edge_summary): New function.
5068         (dump_inline_summary): Use it.
5069         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
5070         (inline_update_callee_summaries): New function.
5071         (inline_merge_summary): Use it.
5072         (do_estimate_edge_time, do_estimate_edge_growth): Update.
5073         (read_inline_edge_summary): New function.
5074         (inline_read_section): Use it.
5075         (write_inline_edge_summary): New function.
5076         (inline_write_summary): Use it.
5077         (inline_free_summary): Free edge new holders.
5078         * tree-inline.c (copy_bb): Update.
5080 2011-04-26  Jason Merrill  <jason@redhat.com>
5082         * tree-eh.c (lower_try_finally_switch): Create the label along with
5083         the CASE_LABEL_EXPR.
5085 2011-04-26  David S. Miller  <davem@davemloft.net>
5086             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5088         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
5089         * configure: Regenerate.
5091 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
5093         PR target/48258
5094         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
5095         reduction.
5096         (VEC_reduc): New code iterator and splitters for vector reduction.
5097         (VEC_reduc_name): Ditto.
5098         (VEC_reduc_rtx): Ditto.
5099         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
5100         (reduc_<VEC_reduc_name>_v4sf): Ditto.
5102         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
5103         support for extracting SF on VSX.
5105         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
5106         generating xscvspdp.
5107         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
5108         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
5109         double add, minimum, maximum vector reduction.
5110         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
5111         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
5112         optimize double vector reduction.
5113         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
5115 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
5117         * config/fr30/fr30.h (inhibit_libc): Don't define.
5118         * config/m32r/m32r-protos.h: Correct comment.
5119         * config/v850/v850.h (GHS_default_section_names,
5120         GHS_current_section_names): Use tree, not union tree_node *.
5122 2011-04-26  Xinliang David Li  <davidxl@google.com>
5124         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
5125         * c-family/c-opts.c (c_common_handle_option): Set
5126         warn_maybe_uninitialized.
5127         * opts.c (common_handle_option): Ditto.
5128         * common.opt:  New option.
5129         * tree-ssa.c (warn_uninit): Add one more parameter.
5130         (warn_uninitialized_var): Pass warning code.
5131         * tree-flow.h: Interface change.
5133 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5135         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
5136         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
5137         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
5139 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5141         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
5142         * config/mips/mips.opt (mmips-tfile): Remove.
5144         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
5145         mips-tdump reference to ...
5146         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
5147         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
5148         reference by Tru64 UNIX.
5150 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
5152         PR debug/48768
5153         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
5154         is error_mark_node, set value to NULL.
5156         PR tree-optimization/48734
5157         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
5158         if return value from maybe_fold_*_comparsions isn't something
5159         the code is prepared to handle.
5161 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
5163         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
5164         mode check.
5165         (ext_QIreg_nomode_operands): Remove.
5166         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
5167         (*andsi_1): Ditto.
5168         (*andhi_1): Ditto.
5170 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
5172         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
5174 2011-04-26  Richard Guenther  <rguenther@suse.de>
5176         * c-typeck.c (build_unary_op): Do not expand array-refs via
5177         pointer arithmetic.  Only adjust qualifiers for function types.
5179 2011-04-26  Richard Guenther  <rguenther@suse.de>
5181         PR middle-end/48694
5182         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
5183         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
5184         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
5185         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
5187 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
5189         * doc/extend.texi: Document __underlying_type.
5191 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
5193         * config/rs6000/titan.md (automata_option "progress"): Remove.
5195 2011-04-25  Jeff Law  <law@redhat.com>
5197         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
5199 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
5201         * system.h (ENUM_BITFIELD): Remove.
5203 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
5204             Eric Botcazou  <ebotcazou@adacore.com>
5206         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
5207         for STORE_FLAG_VALUE==-1 case.
5209 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
5211         PR target/43804
5212         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
5213         LEGITIMATE_PIC_OPERAND_P.
5215 2011-04-24  Jan Hubicka  <jh@suse.cz>
5217         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
5218         WPA hack.
5219         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
5220         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
5221         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
5222         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
5223         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
5224         Sanity check predicate length.
5225         (remap_predicate): Likewise; sanity check jump functions.
5226         (inline_read_section, inline_write_summary): Sanity check
5227         predicate length.
5229 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5231         PR other/48748
5232         * doc/extend.texi (Type Traits): Document __is_standard_layout,
5233         __is_literal_type, and __is_trivial; update throughout about
5234         possibly cv-qualified void types.
5236 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
5238         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
5239         testsuite and make it version agnostic.
5241 2011-04-22  Jan Hubicka  <jh@suse.cz>
5243         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
5245 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
5247         PR c/48685
5248         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
5249         to VOID_TYPE even around MODIFY_EXPR.
5251 2011-04-22  Mike Stump  <mikestump@comcast.net>
5253         * gensupport.c (read_md_rtx): Fix typo in comment.
5254         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
5255         comment.
5257 2011-04-22  Jan Hubicka  <jh@suse.cz>
5259         * gengtype.c (open_base_files): Add ipa-inline.h include.
5260         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
5261         ipa-prop.c; update all uses.
5262         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
5263         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
5264         merge summary of inlined function into former caller.
5265         * ipa-inline.c (max_benefit): Remove.
5266         (edge_badness): Compensate for removal of benefits.
5267         (update_caller_keys): Use
5268         reset_node_growth_cache/reset_edge_growth_cache.
5269         (update_callee_keys): Likewise.
5270         (update_all_callee_keys): Likewise.
5271         (inline_small_functions): Do not collect max_benefit; do not reset
5272         estimated_growth; call free_growth_caches and initialize_growth_caches.
5273         * ipa-inline.h (struct condition, type clause_t, struct predicate,
5274         struct size_time_entry): New structures.
5275         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
5276         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
5277         and estimated_growth.
5278         (edge_growth_cache_entry): New structure.
5279         (node_growth_cache, edge_growth_cache): New global vars.
5280         (estimate_growth): Turn into inline.
5281         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
5282         initialize_growth_caches, free_growth_caches): Declare.
5283         (estimate_edge_growth): Rewrite.
5284         (estimate_edge_time): Implement as inline cache lookup.
5285         (reset_node_growth_cache, reset_edge_growth_cache): New inline
5286         functions.
5287         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
5288         (NUM_CONDITIONS): New constant.
5289         (predicate_conditions): New enum.
5290         (IS_NOT_CONSTANT): New constant.
5291         (edge_removal_hook_holder): New var.
5292         (node_growth_cache, edge_growth_cache): New global vars.
5293         (true_predicate, single_cond_predicate, false_predicate,
5294         not_inlined_predicate, add_condition, add_clause, and_predicates,
5295         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
5296         dump_clause, dump_predicate, account_size_time,
5297         evaulate_conditions_for_edge): New functions.
5298         (inline_summary_alloc): Move to heap.
5299         (inline_node_removal_hook): Clear condition and entry vectors.
5300         (inline_edge_removal_hook): New function.
5301         (initialize_growth_caches, free_growth_caches): New function.
5302         (dump_inline_summary): Update.
5303         (edge_execution_predicate): New function.
5304         (will_be_nonconstant_predicate): New function.
5305         (estimate_function_body_sizes): Compute BB and constantness predicates.
5306         (compute_inline_parameters): Do not clear estimated_growth.
5307         (estimate_edge_size_and_time): New function.
5308         (estimate_calls_size_and_time): New function.
5309         (estimate_callee_size_and_time): New function.
5310         (remap_predicate): New function.
5311         (inline_merge_summary): New function.
5312         (do_estimate_edge_time): New function based on...
5313         (estimate_edge_time): ... this one.
5314         (do_estimate_edge_growth): New function.
5315         (do_estimate_growth): New function based on....
5316         (estimate_growth): ... this one.
5317         (inline_analyze_function): Analyze after deciding on jump functions.
5318         (inline_read_section): New function.
5319         (inline_read_summary): Use it.
5320         (inline_write_summary): Write all the new data.
5321         * ipa-prop.c (ipa_get_param_decl_index): Export.
5322         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
5323         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
5324         Declare.
5325         (ipa_get_lattice): Move here from ipa-cp.c
5326         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
5327         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
5328         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
5329         cgraph_edge_inlinable_p): Remove.
5330         * cgraphunit.c: Include ipainline.h
5331         (cgraph_process_new_functions): Update call of
5332         compute_inline_parameters.
5334 2011-04-22  Richard Guenther  <rguenther@suse.de>
5336         * tree.c (build_int_cst): Properly create canonicalized integer
5337         constants.
5338         (build_int_cst_type): Remove scary comments.
5340 2011-04-22  Xinliang David Li  <davidxl@google.com>
5342         * toplev.c (process_options): Enable -Werror=coverage-mismatch
5343         by default when -Wno-error is not specified.
5344         * opts-global.c (decode_options): Remove call to
5345         control_warning_options.
5347 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
5349         PR tree-optimization/48717
5350         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
5351         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
5353 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
5355         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
5356         definition where used.
5358 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
5360         PR c/48716
5361         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
5362         TREE_STATIC variables declared inside of some OpenMP construct.
5364 2011-04-22  Martin Jambor  <mjambor@suse.cz>
5366         PR middle-end/48585
5367         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
5369 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
5371         PR c/36750
5372         * c-typeck.c (pop_init_level): Do not warn about initializing
5373         with ` = {0}'.
5375 2011-04-22  Alan Modra  <amodra@gmail.com>
5377         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
5378         when returning call_cookie.
5379         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
5380         pointers, to functions with no more vector args than the current
5381         function, and some non-local calls for ABI_V4.
5382         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
5383         sibcall_nonlocal_aix64): Combine to ..
5384         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
5385         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
5386         (sibcall_value_nonlocal_aix<mode>): ..likewise.
5387         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
5388         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
5389         operand.
5390         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
5391         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
5392         sibcall_value_symbolic_64): Delete.
5394 2011-04-21  Xinliang David Li  <davidxl@google.com>
5396         * cgraph.h: Remove pid.
5397         * cgraph.c: Remove pid.
5398         * value-prof.c (init_node_map): New function.
5399         (del_node_map): New function.
5400         (find_func_by_funcdef_no): New function.
5401         (gimple_ic_transform): Call new function.
5402         * cgraphunit.c (cgraph_finalize_function): Remove pid.
5403         * function.c (get_last_funcdef_no): New function.
5404         * function.h (get_last_funcdef_no): New function.
5405         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
5406         to libgcov function.
5407         (tree-profiling): Call node map init and delete function.
5409 2011-04-21  Ian Lance Taylor  <iant@google.com>
5411         * godump.c (go_format_type): Use exported Go name for anonymous
5412         field name.
5414 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
5416         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
5417         Call builtin_function_type_list instead of builtin_function_type.
5418         (UNARY, BINARY, TRINARY, QUAD): Likewise.
5420 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
5422         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
5423         build_function_type_list instead of build_function_type.
5424         Delete variable `endlink'.
5426 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
5428         * config/s390/s390.c (s390_init_builtins): Call
5429         build_function_type_list instead of build_function_type.
5431 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
5433         * config/ia64/ia64.c (ia64_init_builtins): Call
5434         build_function_type_list instead of builtin_function_type.
5436 2011-04-21  Easwaran Raman  <eraman@google.com>
5438         * cfgexpand.c (stack_var): Remove OFFSET...
5439         (add_stack_var): ...and its reference here...
5440         (expand_stack_vars): ...and here.
5441         (stack_var_cmp): Sort by descending order of size.
5442         (partition_stack_vars): Change heuristic.
5443         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
5444         (dump_stack_var_partition): Add newline after each partition.
5446 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
5447             Jeff Law  <law@redhat.com>
5449         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
5450         * gengtype.c (matching_file_name_substitute): Likewise.
5452 2011-04-21  Richard Guenther  <rguenther@suse.de>
5454         PR lto/48703
5455         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
5457 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
5459         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
5461 2011-04-21  Richard Guenther  <rguenther@suse.de>
5463         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
5464         file name.
5466 2011-04-21  Richard Guenther  <rguenther@suse.de>
5468         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
5469         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
5470         Use DECL_P, not SSA_VAR_P.
5471         (ptr_derefs_may_alias_p): Likewise.
5472         (ptr_deref_may_alias_ref_p_1): Likewise.
5473         (decl_refs_may_alias_p): Likewise.
5474         (refs_may_alias_p_1): Likewise.
5475         (ref_maybe_used_by_call_p_1): Likewise.
5476         (call_may_clobber_ref_p_1): Likewise.
5477         (indirect_ref_may_alias_decl_p): Assume indirect refrences
5478         are either MEM_REF or TARGET_MEM_REF.
5479         (indirect_refs_may_alias_p): Likewise.
5480         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
5481         for MEM_EXPR of indirect calls.
5483 2011-04-21  Tristan Gingold  <gingold@adacore.com>
5485         * vmsdbgout.c (write_srccorr): Compute file length from the string.
5486         (dst_file_info_struct): Remove flen field.
5487         (lookup_filename): Remove code that set flen field.
5489 2011-04-21  Tristan Gingold  <gingold@adacore.com>
5491         * config/ia64/ia64.c (ia64_start_function): Add a guard.
5493 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
5495         PR target/48708
5496         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
5497         vec_extract and vec_concat for non-SSE4_1 targets.
5499 2011-04-21  Richard Guenther  <rguenther@suse.de>
5501         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
5502         return statements.
5504 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
5506         * config/i386/cygming.h (union tree_node, TREE): Don't define or
5507         undefine.
5508         (FILE): Don't undefine.
5510 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
5512         * config/alpha/alpha.c (struct machine_function): Use rtx, not
5513         struct rtx_def *.
5514         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
5515         struct rtx_def *.
5516         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
5517         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
5518         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
5519         rtx_def *.
5520         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
5521         definitions where used.
5522         * config/microblaze/microblaze.h (struct microblaze_args): Use
5523         rtx, not struct rtx_def *.
5524         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
5525         rtx_def *.
5526         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
5527         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
5528         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
5529         not struct rtx_def *.
5530         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
5531         struct rtx_def *.
5532         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
5533         rtx_def *.
5534         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
5536 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5538         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
5539         operand_equal_p to compare DR_BASE_ADDRESSes.
5540         (vect_check_interleaving): Likewise.
5542 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5544         PR target/46329
5545         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
5546         for all Neon struct constants.
5548 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5550         * target.def (legitimate_constant_p): New hook.
5551         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
5552         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
5553         * doc/tm.texi: Regenerate.
5554         * hooks.h (hook_bool_mode_rtx_true): Declare.
5555         * hooks.c (hook_bool_mode_rtx_true): Define.
5556         * system.h (LEGITIMATE_CONSTANT_P): Poison.
5557         * calls.c (precompute_register_parameters): Replace uses of
5558         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
5559         (emit_library_call_value_1): Likewise.
5560         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
5561         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
5562         * ira-costs.c (scan_one_insn): Likewise.
5563         * recog.c (general_operand, immediate_operand): Likewise.
5564         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
5565         * reload1.c (init_eliminable_invariants): Likewise.
5567         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
5568         mode argument.
5569         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
5570         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
5571         argument.
5572         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5573         * config/alpha/predicates.md (input_operand): Update call to
5574         alpha_legitimate_constant_p.
5576         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
5577         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
5578         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
5579         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5580         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
5581         (arm_legitimate_constant_p): New functions.
5582         (arm_cannot_force_const_mem): Make static.
5584         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
5586         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
5587         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
5588         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
5589         instead of bfin_legitimate_constant_p.
5590         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
5591         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5593         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
5595         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
5597         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
5598         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
5599         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5600         (frv_legitimate_constant_p): Make static.  Add a mode argument.
5602         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
5603         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
5604         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
5606         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
5607         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
5608         * config/i386/i386.c (legitimate_constant_p): Rename to...
5609         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
5610         argument.
5611         (ix86_cannot_force_const_mem): Update accordingly.
5612         (ix86_legitimate_address_p): Likewise.
5613         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5614         * config/i386/i386.md: Update commentary.
5616         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
5617         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
5618         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5619         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
5621         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
5623         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
5624         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
5625         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5626         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
5628         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
5629         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
5630         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
5632         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
5633         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5634         (m32r_legitimate_constant_p): New function.
5636         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
5637         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
5638         LEGITIMATE_CONSTANT_P.
5639         (LEGITIMATE_CONSTANT_P): Delete.
5640         * config/m68k/m68k.c (m68k_expand_prologue): Call
5641         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
5642         (m68k_legitimate_constant_p): New function.
5643         * config/m68k/m68k.md: Update comments.
5645         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
5646         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5647         (mcore_legitimate_constant_p): New function.
5649         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
5650         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
5651         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
5652         Add a mode argument.
5653         (mep_legitimate_address): Update accordingly.
5654         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5656         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
5657         Delete.
5658         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
5659         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
5660         static.  Check OP's mode for VOIDmode.
5661         (microblaze_legitimate_constant_p): New function.
5662         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5664         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
5665         * config/mips/mips.c (mips_legitimate_constant_p): New function.
5666         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
5667         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5668         * config/mips/predicates.md: Update comments.
5670         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
5671         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
5672         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5673         (mmix_legitimate_constant_p): Make static, return a bool, and take
5674         a mode argument.
5675         (mmix_print_operand_address): Update accordingly.
5677         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
5678         Delete.
5679         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
5680         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
5681         static.  Add a mode argument.
5682         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5684         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
5686         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
5687         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5688         (pa_legitimate_constant_p): New function.
5690         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
5692         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
5693         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5694         (pdp11_legitimate_constant_p): New function.
5696         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
5697         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5698         (rs6000_legitimate_constant_p): New function.
5700         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
5701         (rx_legitimate_constant_p): ...this.
5702         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
5703         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
5704         (rx_legitimate_constant_p): ...this.
5705         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5706         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
5708         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
5709         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
5710         * config/s390/s390.c (legitimate_constant_p): Rename to...
5711         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
5712         and add a mode argument.
5713         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5715         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
5717         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
5718         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5719         (sh_legitimate_constant_p): New function.
5721         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
5722         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
5723         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5724         (legitimate_constant_p): Rename to...
5725         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
5726         argument.
5727         (constant_address_p): Update accordingly.
5729         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
5730         argument and return a bool.
5731         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
5732         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5733         (spu_legitimate_constant_p): Add a mode argument and return a bool.
5734         (spu_rtx_costs): Update accordingly.
5735         * config/spu/predicates.md (vec_imm_operand): Likewise.
5737         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
5739         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
5740         * config/v850/v850.c (v850_legitimate_constant_p): New function.
5741         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5743         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
5744         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
5745         * config/vax/vax.c (legitimate_constant_p): Likewise.
5747         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
5748         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5749         (xtensa_legitimate_constant_p): New function.
5751 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5753         * target.def (cannot_force_const_mem): Add a mode argument.
5754         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
5755         * doc/tm.texi: Regenerate.
5756         * hooks.h (hook_bool_mode_rtx_false): Declare.
5757         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
5758         (hook_bool_mode_const_rtx_true): Likewise.
5759         (hook_bool_mode_rtx_false): New function.
5760         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
5761         to be non-VOID.  Update call to cannot_force_const_mem.
5762         (find_reloads): Update accordingly.
5763         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
5764         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
5765         argument.
5766         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
5767         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
5768         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
5769         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
5770         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
5771         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
5772         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
5773         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5774         (m68k_cannot_force_const_mem): ...this new function.
5775         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
5776         argument.
5777         (mips_const_insns, mips_legitimize_const_move): Update calls.
5778         (mips_secondary_reload_class): Likewise.
5779         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5780         (pa_cannot_force_const_mem): ...this new function.
5781         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
5782         (rs6000_cannot_force_const_mem): ...this new function.
5783         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
5784         argument.
5785         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
5786         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
5787         to...
5788         (xtensa_cannot_force_const_mem): ...this new function.
5790 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5792         * config/mips/mips.c (mips16_build_function_stub): Call
5793         build_function_type_list instead of build_function_type.
5794         (mips16_build_call_stub): Likewise.
5796 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5798         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
5799         instead of build_function_type.
5801 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5803         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
5804         instead of build_function_type.
5806 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
5808         PR target/48678
5809         * config/i386/i386.md (insv): Change operand 0 constraint to
5810         "register_operand".  Change operand 1 and 2 constraint to
5811         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
5812         * config/i386/sse.md (sse4_1_pinsrb): Export.
5813         (sse2_pinsrw): Ditto.
5814         (sse4_1_pinsrd): Ditto.
5815         (sse4_1_pinsrq): Ditto.
5816         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
5817         * config/i386/i386.c (ix86_expand_pinsr): New.
5819 2011-04-20  Easwaran Raman  <eraman@google.com>
5821         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
5822         containing union type only with -fstrict-aliasing.
5824 2011-04-20  Jim Meyering  <meyering@redhat.com>
5826         Remove useless if-before-free tests.
5827         * calls.c (expand_call, save_area): Likewise.
5828         * cfgcleanup.c (try_forward_edges): Likewise.
5829         * collect2.c (collect_execute): Likewise.
5830         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
5831         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
5832         * coverage.c (coverage_checksum_string): Likewise.
5833         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
5834         * cselib.c (cselib_init): Likewise.
5835         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
5836         (df_set_clean_cfg): Likewise.
5837         * function.c (free_after_compilation): Likewise.
5838         * gcc.c (do_spec_1, main): Likewise.
5839         * gcov.c (create_file_names): Likewise.
5840         * gensupport.c (identify_predicable_attribute): Likewise.
5841         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
5842         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
5843         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
5844         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
5845         * ipa-pure-const.c (local_pure_const): Likewise.
5846         * ipa-reference.c (propagate): Likewise.
5847         * ira-costs.c (free_ira_costs): Likewise.
5848         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
5849         * matrix-reorg.c (mat_free): Likewise.
5850         * prefix.c (get_key_value): Likewise.
5851         * profile.c (compute_value_histograms): Likewise.
5852         * reload1.c (free_reg_equiv): Likewise.
5853         * sched-deps.c (free_deps): Likewise.
5854         * sel-sched-ir.c (fence_clear): Likewise.
5855         * sese.c (set_rename, if_region_set_false_region): Likewise.
5856         * tree-data-ref.c (free_rdg): Likewise.
5857         * tree-eh.c (lower_try_finally): Likewise.
5858         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
5859         * tree-ssa-live.c (delete_var_map): Likewise.
5860         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
5861         * tree-ssa-pre.c (phi_trans_add): Likewise.
5863 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
5865         PR tree-optimization/48611
5866         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
5867         beyond ERT_MUST_NOT_THROW region.
5869 2011-04-20  Catherine Moore  <clm@codesourcery.com>
5871         * config/mips/mips.opt (mfix-24k): New.
5872         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
5873         * config/mips/mips.md (length): Increase by 4 for stores if
5874         fixing 24K errata.
5875         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
5876         all noreorder if fixing 24K errata.
5877         * doc/invoke.texi: Document mfix-24k.
5879 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
5881         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
5882         quad-word modes, reduce to 9-bit index range when above 1016 limit.
5884 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5886         * config/arm/arm.c (arm_gen_constant): Move movw support ....
5887         (const_ok_for_op): ... to here.
5889 2011-04-20  Kai Tietz  <ktietz@redhat.com>
5891         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5892         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5894 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5896         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5898 2011-04-20  Richard Guenther  <rguenther@suse.de>
5900         PR tree-optimization/47892
5901         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5902         are if-convertible.
5904 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5906         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5908 2011-04-20  Tristan Gingold  <gingold@adacore.com>
5910         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5912 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
5914         PR target/18145
5916         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5917         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5918         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5919         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5920         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5922         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5923         New prototype.
5925         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5926         (avr_asm_named_section, avr_asm_output_aligned_common,
5927         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5928         New functions to update...
5929         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5930         (avr_asm_init_sections): Overwrite section callbacks for
5931         data_section, bss_section.
5932         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5933         from here to...
5934         (avr_file_end): ...here.
5936 2011-04-20  Richard Guenther  <rguenther@suse.de>
5938         PR middle-end/48695
5939         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5940         objects and types here.  Adjust for their offset before comparing.
5942 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5944         * tree-vect-stmts.c (vectorizable_store): Only chain one related
5945         statement per copy.
5947 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5949         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5950         (GIMPLE_H): Include $(INTERNAL_FN_H).
5951         (OBJS-common): Add internal-fn.o.
5952         (internal-fn.o): New rule.
5953         * internal-fn.def: New file.
5954         * internal-fn.h: Likewise.
5955         * internal-fn.c: Likewise.
5956         * gimple.h: Include internal-fn.h.
5957         (GF_CALL_INTERNAL): New gf_mask.
5958         (gimple_statement_call): Put fntype into a union with a new
5959         internal_fn field.
5960         (gimple_build_call_internal): Declare.
5961         (gimple_build_call_internal_vec): Likewise.
5962         (gimple_call_same_target_p): Likewise.
5963         (gimple_call_internal_p): New function.
5964         (gimple_call_internal_fn): Likewise.
5965         (gimple_call_fntype): Return null for internal calls.
5966         (gimple_call_set_fntype): Assert that the function is not internal.
5967         (gimple_call_set_fn): Likewise.
5968         (gimple_call_set_fndecl): Likewise.
5969         (gimple_call_set_internal_fn): New function.
5970         (gimple_call_addr_fndecl): Handle null functions.
5971         (gimple_call_return_type): Likewise null types.
5972         * gimple.c (gimple_build_call_internal_1): New function.
5973         (gimple_build_call_internal): Likewise.
5974         (gimple_build_call_internal_vec): Likewise.
5975         (gimple_call_same_target_p): Likewise.
5976         (gimple_call_flags): Handle calls to internal functions.
5977         (gimple_call_fnspec): New function.
5978         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5979         (gimple_has_side_effects): Handle null functions.
5980         (gimple_rhs_has_side_effects): Likewise.
5981         (gimple_call_copy_skip_args): Handle calls to internal functions.
5982         * cfgexpand.c (expand_call_stmt): Likewise.
5983         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5984         * gimple-fold.c (gimple_fold_call): Handle null functions.
5985         (gimple_fold_stmt_to_constant_1): Don't fold
5986         calls to internal functions.
5987         * gimple-low.c (gimple_check_call_args): Handle calls to internal
5988         functions.
5989         * gimple-pretty-print.c (dump_gimple_call): Likewise.
5990         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5991         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5992         (do_warn_unused_result): Likewise.
5993         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5994         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5995         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5996         the target of a call.
5997         (initialize_hash_element): Update accordingly.
5998         (hashable_expr_equal_p): Use gimple_call_same_target_p.
5999         (iterative_hash_hashable_expr): Handle calls to internal functions.
6000         (print_expr_hash_elt): Likewise.
6001         * tree-ssa-pre.c (can_value_number_call): Likewise.
6002         (eliminate): Handle null functions.
6003         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
6004         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
6005         (find_func_aliases): Likewise.
6006         * value-prof.c (gimple_ic_transform): Likewise.
6007         (gimple_indirect_call_to_profile): Likewise.
6008         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6009         * lto-streamer-out.c (output_gimple_stmt): Likewise.
6011 2011-04-19  Jan Hubicka  <jh@suse.cz>
6013         * ipa-inline-transform.c (save_inline_function_body): Add comments.
6014         * ipa-inline.c (inline_small_functions): Compute summaries first,
6015         populate heap later.
6017 2011-04-19  Jan Hubicka  <jh@suse.cz>
6019         * cgraph.h (save_inline_function_body): Remove.
6020         * ipa-inline-transform.c: New file, broke out of...
6021         * ipa-inline.c: ... this one; Update toplevel comment.
6022         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
6023         make global.
6024         (update_noncloned_frequencies): Move to ipa-inline-transform.c
6025         (cgraph_mark_inline_edge): Rename to inline_call; move to
6026         ipa-inline-transform.c.
6027         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
6028         move to ipa-inline-transform.c
6029         (recursive_inlining, inline_small_functions, flatten_function,
6030         ipa_inline, inline_always_inline_functions,
6031         early_inline_small_functions): Update.
6032         (inline_transform): Move to ipa-inline-transform.c.
6033         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
6034         Declare.
6035         * Makefile.in (ipa-inline-transform.o): New file.
6036         * cgraphunit.c (save_inline_function_body): Move to
6037         ipa-inline-transform.c
6039 2011-04-19  DJ Delorie  <dj@redhat.com>
6041         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
6042         registers if we already know there aren't any.
6043         (m32c_emit_epilogue): Don't emit a barrier here.
6044         (m32c_emit_eh_epilogue): Likewise.
6045         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
6046         operands at expand time.
6047         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
6048         int" wchar type.
6049         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
6050         duplicates.  Provide aliases instead.
6051         * config/m32c/prologue.md (eh_return): Emit a barrier here.
6052         (eh_epilogue): Add a "(return)" here as a hint to other parts of
6053         the compiler.
6055 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
6057         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
6058         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
6059         (general_or_i64_p, sparc_register_move_cost): New function.
6061 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6063         * doc/install.texi (Configuration, --enable-threads): Remove mach.
6064         Add lynx, mipssde.  Sort table.
6066 2011-04-19  Xinliang David Li  <davidxl@google.com>
6068         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
6069         not negative.
6071 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
6073         PR target/48678
6074         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
6075         is a SUBREG with non-MODE_INT mode inside of it.
6077 2011-04-19  Martin Jambor  <mjambor@suse.cz>
6079         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
6080         also according to actual contants.
6081         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
6082         (gimple_fold_call): Use it.
6083         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
6085 2011-04-19  Martin Jambor  <mjambor@suse.cz>
6087         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
6088         non-pointer assignments.
6090 2011-04-19  Martin Jambor  <mjambor@suse.cz>
6092         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
6093         account anc_offset and otr_type from the indirect edge info.
6094         * ipa-prop.c (get_ancestor_addr_info): New function.
6095         (compute_complex_ancestor_jump_func): Assignment analysis moved to
6096         get_ancestor_addr_info, call it.
6097         (ipa_note_param_call): Do not initialize information about polymorphic
6098         calls, return the indirect call graph edge.  Remove the last
6099         parameter, adjust all callers.
6100         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
6101         parameters.  Initialize polymorphic information in the indirect edge.
6103 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
6105         PR lto/48148
6106         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
6107         the types if they have different enumeration identifiers.
6109 2011-04-19  Jan Hubicka  <jh@suse.cz>
6111         * cgraph.h (cgraph_optimize_for_size_p): Declare.
6112         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
6113         * predict.c (cgraph_optimize_for_size_p): Break out from ...
6114         (optimize_function_for_size_p) ... here.
6116 2011-04-19  Richard Guenther  <rguenther@suse.de>
6118         PR lto/48207
6119         * tree.c (free_lang_data): Do not reset the decl-assembler-name
6120         langhook.
6122 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
6124         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
6125         if DECL_NO_INLINE_WARNING_P is set on the function.
6127 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
6129         PR fortran/47976
6130         * reload1.c (inc_for_reload): Return void. All callers changed.
6131         (emit_input_reload_insns): Don't try to delete previous output
6132         reloads to a register, or record spill_reg_store for autoincs.
6134 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
6136         * gengtype.h: Updated copyright year.
6137         (struct input_file_st): Add inpisplugin field.
6138         (type_fileloc): New function.
6139         * gengtype.c
6140         (write_typed_struct_alloc_def): Add gcc_assert.
6141         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
6142         (write_typed_alloc_defns): Don't output for plugin files.
6143         (input_file_by_name): Clear inpisplugin field.
6144         (main): Set inpisplugin field for plugin files.
6146 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
6148         * gengtype-state.c (string_eq): New.
6149         (read_state): Use string_eq instead of strcmp when creating the
6150         state_ident_tab.
6152 2011-04-19  Wei Guozhi  <carrot@google.com>
6154         PR target/47855
6155         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
6156         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
6157         linkage.
6158         * config/arm/constraints.md (Uu): New constraint.
6159         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
6161 2011-04-19  Tristan Gingold  <gingold@adacore.com>
6163         * config.gcc (-*-*-*vms): Added.
6164         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
6165         definitions moved.
6166         * config/vms/vms-ld.c: New file.
6167         * config/vms/vms-ar.c: New file.
6168         * config/vms/t-vmsnative: New file.
6170 2011-04-18  Xinliang David Li  <davidxl@google.com>
6172         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
6174 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
6176         PR middle-end/48661
6177         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
6178         if TREE_TYPE (v) is non-NULL.
6180         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
6181         gimple_get_virt_mehtod_for_binfo.
6182         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
6183         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
6184         callers.
6185         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
6187 2011-04-18  Michael Matz  <matz@suse.de>
6188             Steve Ellcey  <sje@cup.hp.com>
6190         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
6191         use its mode as source mode if it isn't VOIDmode.
6193 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
6195         * doc/passes.texi: Fill crossref nodes.
6197 2011-04-18  Jim Meyering  <meyering@redhat.com>
6199         Fix doubled-word typos in comments and strings
6200         * config/alpha/vms-unwind.h: s/for for/for/
6201         * config/arm/unwind-arm.h: Likewise.
6202         * config/microblaze/microblaze.c: Likewise.
6203         * config/sh/constraints.md: s/in in/in/
6204         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
6206 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
6208         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
6209         (AVX_FLOAT_MODE_P): Ditto.
6210         (AVX128_VEC_FLOAT_MODE_P): Ditto.
6211         (AVX256_VEC_FLOAT_MODE_P): Ditto.
6212         (AVX_VEC_FLOAT_MODE_P): Ditto.
6213         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
6214         (UNSPEC_MASKSTORE): Ditto.
6215         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
6216         Merge from <sse>_movmsk<ssemodesuffix> and
6217         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
6218         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
6219         iterator.
6220         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
6221         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
6222         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
6224 2011-04-18  Jan Hubicka  <jh@suse.cz>
6226         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
6228         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
6229         (want_inline_function_called_once_p): Break out the logic from
6230         ipa_inline.
6231         (edge_badness): Ensure that profile is not misupdated.
6232         (lookup_recursive_calls): Prioritize by call frequencies.
6233         (inline_small_functions): Move program size estimates here;
6234         actually process whole queue even when unit growth has been
6235         met. (to properly compute inline_failed reasons and for the
6236         case unit size decrease.) Revisit comments on recursive inlining.
6237         (ipa_inline): Remove unit summary code; first inline hot calls
6238         of functions called once, cold calls next.
6239         (order, nnodes): Remove unused variables.
6240         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
6241         (GTFILES): Remove ipa-inline.c
6242         * sel-sched.c (fill_insns): Silence uninitialized var warning.
6244 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6246         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
6248 2011-04-18  Jie Zhang  <jie@codesourcery.com>
6249             Richard Earnshaw  <rearnsha@arm.com>
6251         * arm.c (neon_builtin_type_bits): Remove.
6252         (typedef enum neon_builtin_mode): New.
6253         (T_MAX): Don't define.
6254         (typedef enum neon_builtin_datum): Remove bits, codes[],
6255         num_vars and base_fcode.  Add mode, code and fcode.
6256         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
6257         VAR10): Change accordingly.
6258         (neon_builtin_data[]): Change accordingly
6259         (arm_init_neon_builtins): Change accordingly.
6260         (neon_builtin_compare): Remove.
6261         (locate_neon_builtin_icode): Remove.
6262         (arm_expand_neon_builtin): Change accordingly.
6264         * arm.h (enum arm_builtins): Move to ...
6265         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
6267         * arm.c (arm_builtin_decl): Declare.
6268         (TARGET_BUILTIN_DECL): Define.
6269         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
6270         (arm_builtin_decls[]): New.
6271         (arm_init_neon_builtins): Store builtin declarations in
6272         arm_builtin_decls[].
6273         (arm_init_tls_builtins): Likewise.
6274         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
6275         (arm_builtin_decl): New.
6277 2011-04-18  Richard Guenther  <rguenther@suse.de>
6279         * tree.c (upper_bound_in_type): Build properly canonicalized
6280         INTEGER_CSTs.
6281         (lower_bound_in_type): Likewise.
6283 2011-04-18  Richard Guenther  <rguenther@suse.de>
6285         * gimple.h (gimple_call_addr_fndecl): New function.
6286         (gimple_call_fndecl): Use it.
6287         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
6288         for direct calls.
6289         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
6290         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
6292 2011-04-18  Richard Guenther  <rguenther@suse.de>
6294         PR middle-end/48650
6295         * tree.c (build_string): STRING_CST is now derived from tree_typed.
6297 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6299         PR lto/48492
6300         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
6301         DECL_IN_CONSTANT_POOL without RTL.
6303 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
6304             Ira Rosen  <ira.rosen@linaro.org>
6306         PR target/48252
6307         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
6308         to match neon_vzip/vuzp/vtrn_internal.
6309         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
6310         outputs explicitly dependent on both inputs.
6311         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
6313 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
6315         PR tree-optimization/48616
6316         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
6317         whether the shift is by scalar or vector based on whether all SLP
6318         scalar stmts have the same rhs.
6320 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
6322         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
6323         memory operands.
6325 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
6327         PR target/43700
6328         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
6329         registers.
6331 2011-04-17  Jan Hubicka  <jh@suse.cz>
6333         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
6334         * cgrpahunit.c (cgraph_finalize_function): Do not set
6335         finalized_by_frontend.
6336         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
6337         finalized_by_frontend.
6339 2011-04-17  Jan Hubicka  <jh@suse.cz>
6341         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
6342         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
6343         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
6344         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
6345         method.
6346         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
6347         gimple-fold.c
6348         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
6350 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
6352         PR lto/48538
6353         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
6354         is non-null before accessing it.
6355         (input_cgraph): Remove trailing spaces.
6357 2011-04-17  Revital Eres  <revital.eres@linaro.org>
6359         * params.def (sms-min-sc): New param flag.
6360         * modulo-sched.c (sms_schedule): Use it.
6361         * doc/invoke.texi (sms-min-sc): Document it.
6363 2011-04-17  Jan Hubicka  <jh@suse.cz>
6365         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
6366         present, also set gimple_call_set_cannot_inline.
6367         * ipa-inline.c: Update toplevel comment.
6368         (MAX_TIME): Remove.
6369         (cgraph_clone_inlined_nodes): Fix linebreaks.
6370         (cgraph_check_inline_limits): Restructure to ...
6371         (caller_growth_limits): ... this one; be more tolerant
6372         on growth in nested inline chains; add explanatory comment;
6373         fix stack accounting thinko introduced by previous patch.
6374         (cgraph_default_inline_p): Remove.
6375         (report_inline_failed_reason): New function.
6376         (can_inline_edge_p): New function.
6377         (can_early_inline_edge_p): New function.
6378         (leaf_node_p): Move upwards in file.
6379         (want_early_inline_function_p): New function.
6380         (want_inline_small_function_p): New function.
6381         (want_inline_self_recursive_call_p): New function.
6382         (cgraph_edge_badness): Rename to ...
6383         (edge_badness) ... this one; fix linebreaks.
6384         (update_edge_key): Update call of edge_baddness; add
6385         detailed dump about queue updates.
6386         (update_caller_keys): Use can_inline_edge_p and
6387         want_inline_small_function_p.
6388         (cgraph_decide_recursive_inlining): Rename to...
6389         (recursive_inlining): Use can_inline_edge_p and
6390         want_inline_self_recursive_call_p; simplify and remove no longer
6391         valid FIXME.
6392         (cgraph_set_inline_failed): Remove.
6393         (add_new_edges_to_heap): Use can_inline_edge_p and
6394         want_inline_small_function_p.
6395         (cgraph_decide_inlining_of_small_functions): Rename to ...
6396         (inline_small_functions): ... this one; cleanup; use
6397         can/want predicates; cleanup debug ouput; work edges till fibheap
6398         is exhausted and do not stop once unit growth is reached; remove
6399         later loop processing remaining edges.
6400         (cgraph_flatten): Rename to ...
6401         (flatten_function): ... this one; use can_inline_edge_p
6402         and can_early_inline_edge_p predicates.
6403         (cgraph_decide_inlining): Rename to ...
6404         (ipa_inline): ... this one; remove unreachable nodes before
6405         inlining functions called once; simplify the pass.
6406         (cgraph_perform_always_inlining): Rename to ...
6407         (inline_always_inline_functions): ... this one; use
6408         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
6409         (cgraph_decide_inlining_incrementally): Rename to ...
6410         (early_inline_small_functions): ... this one; simplify
6411         using new predicates; cleanup; make dumps prettier.
6412         (cgraph_early_inlining): Rename to ...
6413         (early_inliner): newer inline regular functions into always-inlines;
6414         fix updating of call stmt summaries.
6415         (pass_early_inline): Update for new names.
6416         (inline_transform): Fix formating.
6417         (gate_cgraph_decide_inlining): Rename to ...
6418         (pass_ipa_inline): ... this one.
6419         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
6420         * ipa-inline-analysis.c (dump_inline_summary): Update.
6421         (compute_inline_parameters): Do not compute disregard_inline_limits;
6422         look for mismatching arguments.
6423         (estimate_growth): Fix handlig of non-trivial self recursion.
6424         (inline_read_summary): Do not read info->disregard_inline_limits.
6425         (inline_write_summary): Do not write info->disregard_inline_limits.
6426         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
6427         and move all checks into can_inline_edge_p predicate; re-enable code
6428         comparing optimization levels.
6429         (expand_call_inline): Do not test inline_forbidden_into_p.
6430         * Makefile.in (ipa-inline.o): Update arguments.
6432 2011-04-17  Revital Eres  <revital.eres@linaro.org>
6434         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
6436 2011-04-17  Revital Eres  <revital.eres@linaro.org>
6438         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
6440 2011-04-17  Michael Matz  <matz@suse.de>
6442         PR tree-optimization/48622
6443         PR lto/48645
6444         * ipa-inline-analysis.c (inline_read_summary): Read size/time
6445         in same order as they're written.
6447 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6449         * config/pa/predicates.md: Reorganize and simplify predicates.
6450         Eliminate duplicate code checks.
6451         (arith_operand): Rename to arith14_operand
6452         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
6453         * config/pa/pa.md: Use renamed operands.
6454         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
6455         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
6456         arith11_operand, adddi3_operand, indexed_memory_operand,
6457         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
6458         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
6459         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
6460         move_dest_operand, move_src_operand, prefetch_cc_operand,
6461         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
6462         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
6463         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
6464         div_operand, int5_operand, movb_comparison_operator,
6465         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
6466         arith_double_operand, ireg_operand, lhs_lshift_operand,
6467         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
6468         integer_store_memory_operand): Likewise.
6469         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
6470         (integer_store_memory_operand, read_only_operand,
6471         function_label_operand, borx_reg_operand,
6472         non_hard_reg_operand): Likewise.
6473         (eq_neq_comparison_operator): Delete unused operator.
6474         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
6475         function_label_operand.
6476         (emit_move_sequence): Likewise.
6478 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
6480         * config/i386/sse.md (sseunpackmode): New mode attribute.
6481         (ssepackmode): Ditto.
6482         (vec_pack_trunc_<mode>): Macroize expander from
6483         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
6484         (vec_unpacks_lo_<mode>): Macroize expander from
6485         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6486         (vec_unpacks_hi_<mode>): Macroize expander from
6487         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6488         (vec_unpacku_lo_<mode>): Macroize expander from
6489         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6490         (vec_unpacku_hi_<mode>): Macroize expander from
6491         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6492         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
6493         ix86_expand_sse4_unpack.
6494         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
6496 2011-04-16  Jan Hubicka  <jh@suse.cz>
6498         * cgraphbuild.c: Include ipa-inline.h.
6499         (reset_inline_failed): Use initialize_inline_failed.
6500         * cgraph.c: Include ipa-inline.h.
6501         (cgraph_create_node_1): Do not initialize estimated_growth.
6502         (initialize_inline_failed): More to ipa-inline-analysis.c
6503         (dump_cgraph_node): Do not dump inline flags.
6504         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
6505         and disregard_inline_limits flags.
6506         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
6507         time, size, estimated_growth.
6508         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
6509         Update.
6510         * cgraphunit.c (cgraph_decide_is_function_needed): Use
6511         DECL_DISREGARD_INLINE_LIMITS.
6512         (cgraph_analyze_function): Do not initialize
6513         node->local.disregard_inline_limits.
6514         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
6515         inlinable, versionable and disregard_inline_limits.
6516         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
6517         cgraph_check_inline_limits, cgraph_default_inline_p,
6518         cgraph_edge_badness, update_caller_keys, update_callee_keys,
6519         add_new_edges_to_heap): Update.
6520         (cgraph_decide_inlining_of_small_function): Update; set
6521         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
6522         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
6523         cgraph_decide_inlining_incrementally): Update.
6524         * ipa-inline.h (inline_summary): Add inlinable, versionable,
6525         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
6526         time, size and estimated_growth parameters.
6527         (estimate_edge_growth): Update.
6528         (initialize_inline_failed): Declare.
6529         * ipa-split.c: Include ipa-inline.h
6530         (execute_split_functions): Update.
6531         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
6532         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
6533         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
6534         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
6535         estimated_growth to INT_MIN.
6536         (inline_node_duplication_hook): Likewise.
6537         (dump_inline_summary): Dump new fields.
6538         (compute_inline_parameters): Update.
6539         (estimate_edge_time, estimate_time_after_inlining,
6540         estimate_size_after_inlining, estimate_growth, inline_read_summary,
6541         inline_write_summary):
6542         (initialize_inline_failed): Move here from cgraph.c.
6543         * tree-sra.c: Include ipa-inline.h.
6544         (ipa_sra_preliminary_function_checks): Update.
6545         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
6546         ipa-inline.h.
6548 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
6550         * config/i386/sse.md (V16): New mode iterator.
6551         (VI1, VI8): Ditto.
6552         (AVXMODEQI, AVXMODEDI): Remove.
6553         (sse2, sse3): New mode attribute.
6554         (mov<mode>): Use V16 mode iterator.
6555         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
6556         (push<mode>1): Use V16 mode iterator.
6557         (movmisalign<mode>): Ditto.
6558         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6559         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
6560         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6561         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
6562         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
6563         avx_movdqu<avxmodesuffix>.
6564         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
6565         *avx_movdqu<avxmodesuffix>.
6566         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
6567         avx_lddqu<avxmodesuffix>.
6568         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
6569         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
6570         avx_movnt<AVXMODEDI:mode>.
6571         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
6572         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
6574 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
6576         PR target/48629
6577         * haifa-sched.c (prune_ready_list, schedule_block): Use
6578         sched_pressure_p rather than flag_sched_pressure.
6580 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6582         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6583         cgraph_get_node instead of cgraph_get_create_node.
6585 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
6587         * cfgexpand.c (expand_debug_expr): Use
6588         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
6590 2011-04-15  Michael Matz  <matz@suse.de>
6592         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
6593         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
6594         * function.c (gimplify_parameters): Ditto.
6595         * gimplify.c (gimplify_vla_decl): Ditto.
6597         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
6598         (gimple_call_set_alloca_for_var): New inline function.
6599         (gimple_call_alloca_for_var_p): Ditto.
6600         * gimple.c (gimple_build_call_from_tree): Remember
6601         CALL_ALLOCA_FOR_VAR_P state.
6602         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
6604         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
6605         calls if they were for VLA objects.
6607 2011-04-15  Martin Jambor  <mjambor@suse.cz>
6609         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
6610         of ADR_EXPRs.
6612 2011-04-15  Martin Jambor  <mjambor@suse.cz>
6614         PR middle-end/48601
6615         * tree-emutls.c (lower_emutls_function_body): Call
6616         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
6617         result is non-NULL.
6619 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
6621         * c-decl.c (detect_field_duplicates): Call
6622         objc_detect_field_duplicates instead of objc_get_interface_ivars.
6624 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
6626         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
6627         * gimple.c (gimple_asm_clobbers_memory_p): Define.
6628         * ipa-pure-const.c (check_stmt): Call it.
6629         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
6631 2011-04-15  Richard Guenther  <rguenther@suse.de>
6633         PR tree-optimization/48290
6634         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
6635         Properly decide inhibiting propagation based on the valueized
6636         operand.  Do loop-closed SSA form preserving here ...
6637         (init_copy_prop): ... not here.
6639 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
6641         PR target/48612
6642         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
6643         (*ieee_smax<mode>3): Likewise.
6645 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6647         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
6648         Replace match_operand with match_dup for the third operand in
6649         these expanders.
6651 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6653         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
6654         to track processing of conditionals.  Update all callers.
6655         (try_combine, simplify_if_then_else): Update.
6657 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6659         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
6660         -fsched-pressure.
6662 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
6664         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
6665         instead of match_operand for operand 3.
6667 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
6669         * recog.h (insn_operand_data): Add an "allows_mem" field.
6670         * genoutput.c (output_operand_data): Initialize it.
6671         * optabs.c (maybe_legitimize_operand_same_code): New function.
6672         (maybe_legitimize_operand): Use it when matching the original
6673         op->value.
6675 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6677         * gimplify.c: Fix issues in comments throughout.
6678         (voidify_wrapper_expr): Fix long line.
6679         (build_stack_save_restore): Likewise.
6680         (gimplify_loop_expr): Likewise.
6681         (gimplify_compound_lval): Likewise.
6682         (gimplify_init_ctor_eval): Likewise.
6683         (gimplify_modify_expr_rhs): Likewise.
6684         (omp_notice_threadprivate_variable): Likewise.
6686 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6688         * cfgexpand.c (expand_call_stmt): Convert the function type to the
6689         original one if this is not a builtin function.
6691 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
6693         PR target/48605
6694         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
6695         offset it as needed based on top 2 bits in operands[3], change
6696         MEM mode to SFmode and mask those 2 bits away from operands[3].
6698 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
6700         * c-parser.c (c_parser_objc_protocol_definition): Updated for
6701         change from objc_declare_protocols() to objc_declare_protocol().
6703 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
6705         * config/i386/sse.md (sse4_1): New mode attribute.
6706         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
6707         avx_blend<ssemodesuffix><avxmodesuffix> and
6708         sse4_1_blend<ssemodesuffix> using VF mode iterator.
6709         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
6710         avx_blendv<ssemodesuffix><avxmodesuffix> and
6711         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
6712         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
6713         avx_dp<ssemodesuffix><avxmodesuffix> and
6714         sse4_1_dp<ssemodesuffix> using VF mode iterator.
6715         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
6716         (sse4_1_packusdw): Merge with *avx_packusdw.
6717         (sse4_1_pblendvb): Merge with *avx_pblendvb.
6718         (sse4_1_pblendw): Merge with *avx_pblendw.
6719         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
6720         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
6721         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
6722         VF mode iterator.
6723         (sse4_1_round<ssescalarmodesuffix>): Merge with
6724         *avx_round<ssescalarmodesuffix>.
6725         (aesenc): Merge with *avx_aesenc.
6726         (aesenclast): Merge with *avx_aesenclast.
6727         (aesdec): Merge with *avx_aesdec.
6728         (aesdeclast): Merge with *avx_aesdeclast.
6729         (pclmulqdq): Merge with *pclmulqdq.
6730         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
6731         New predicate.
6732         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
6734 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
6736         PR middle-end/48608
6737         * cfgexpand.c (get_decl_align_unit): Renamed to ...
6738         (align_local_variable): This.  Update DECL_ALIGN.
6739         (add_stack_var): Updated.
6740         (expand_one_stack_var): Likewise.
6742 2011-04-14  Richard Guenther  <rguenther@suse.de>
6744         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
6745         Remove.
6746         (dse_initialize_block_local_data, dse_leave_block,
6747         record_voperand_set, get_stmt_uid): Likewise.
6748         (dse_possible_dead_store_p): Allow any kind of killing stmt.
6749         (dse_optimize_stmt): Remove voperand set handling code.
6750         Simplify and improve to handle any kind of killing stmt.
6751         (dse_record_phi): Remove.
6752         (dse_enter_block): Simplify.
6753         (tree_ssa_dse): Likewise.
6754         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
6756 2011-04-14  Jan Hubicka  <jh@suse.cz>
6758         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
6759         * cgraph.h (struct inline_summary): Move to ipa-inline.h
6760         (cgraph_local_info): Remove inline_summary.
6761         * ipa-cp.c: Include ipa-inline.h.
6762         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
6763         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
6764         accesor.
6765         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
6766         (input_overwrite_node): Do not set inline summary.
6767         (input_node): Do not stream inline summary.
6768         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
6769         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
6770         growth; we do not have inline parameters computed for that anyway.
6771         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
6772         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
6773         (inline_summary_t): New type and VECtor.
6774         (debug_inline_summary, dump_inline_summaries): Declare.
6775         (inline_summary): Use VOCtor.
6776         (estimate_edge_growth): Kill hack computing call stmt size directly.
6777         * lto-section-in.c (lto_section_name): Add inline section.
6778         * ipa-inline-analysis.c: Include lto-streamer.h
6779         (node_removal_hook_holder, node_duplication_hook_holder): New holders
6780         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
6781         (inline_summary_vec): Define.
6782         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
6783         dump_inline_summaries): New functions.
6784         (estimate_function_body_sizes): Properly compute size/time of outgoing
6785         calls.
6786         (compute_inline_parameters): Alloc inline_summary; do not compute
6787         size/time of incomming calls.
6788         (estimate_edge_time): Avoid missing time summary hack.
6789         (inline_read_summary): Read inline summary info.
6790         (inline_write_summary): Write inline summary info.
6791         (inline_free_summary): Free all hooks and inline summary vector.
6792         * lto-streamer.h: Add LTO_section_inline_summary section.
6793         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
6794         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
6796 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6798         * tree-vectorizer.h (vect_strided_store_supported): Add a
6799         HOST_WIDE_INT argument.
6800         (vect_strided_load_supported): Likewise.
6801         (vect_permute_store_chain): Return void.
6802         (vect_transform_strided_load): Likewise.
6803         (vect_permute_load_chain): Delete.
6804         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
6805         count argument.  Check that the count is a power of two.
6806         (vect_strided_load_supported): Likewise.
6807         (vect_permute_store_chain): Return void.  Update after above changes.
6808         Assert that the access is supported.
6809         (vect_permute_load_chain): Likewise.
6810         (vect_transform_strided_load): Return void.
6811         * tree-vect-stmts.c (vectorizable_store): Update calls after
6812         above interface changes.
6813         (vectorizable_load): Likewise.
6814         (vect_analyze_stmt): Don't check for strided powers of two here.
6816 2011-04-14  Richard Guenther  <rguenther@suse.de>
6818         PR tree-optimization/48590
6819         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6820         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6821         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
6822         BUILT_IN_STACK_SAVE.
6823         * tree-ssa-dce.c (propagate_necessity): Handle
6824         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6826 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
6828         * c-parser.c (c_parser_objc_class_declaration): Updated call to
6829         objc_declare_class.
6831 2011-04-14  Richard Guenther  <rguenther@suse.de>
6833         * tree.h (get_object_alignment_1): Declare.
6834         * builtins.c (get_object_alignment_1): Split out worker from ...
6835         (get_object_alignment): ... here.
6836         * fold-const.c (get_pointer_modulus_and_residue): Use
6837         get_object_alignment_1.
6839 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6841         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
6842         type parameter.
6843         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
6844         parameter.  Generalise code to handle arrays as well as vectors.
6845         (vect_setup_realignment): Update accordingly.
6846         * tree-vect-stmts.c (vectorizable_store): Likewise.
6847         (vectorizable_load): Likewise.
6849 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6851         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
6852         within the per-copy loop.
6854 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6856         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
6857         in the dump file.
6859 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6861         * doc/options.texi (Negative): Explicitly mention that the
6862         Negative chain must be circular.
6864 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
6866         * function.h (block_chainon): Declare.
6867         * function.c (block_chainon): Define.
6869 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
6870             Eric Weddington  <eric.weddington@atmel.com>
6871             Georg-Johann Lay  <avr@gjlay.de>
6873         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
6874         New Includes
6875         (avr_init_builtins, avr_expand_builtin,
6876         avr_expand_delay_cycles, avr_expand_unop_builtin,
6877         avr_expand_binop_builtin ): New functions.
6878         (avr_builtin_id): New enum
6879         (struct avr_builtin_description): New struct
6880         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
6881         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
6883         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
6884         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
6885         UNSPECV_DELAY_CYCLES): new enumeration values
6886         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6887         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6888         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6889         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6890         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6891         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6892         "fmulsu"): New insns
6894         * config/avr/avr-c.c: fix line endings
6895         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6896         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6897         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6898         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6899         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6901         * doc/extend.texi (AVR Built-in Functions): New node
6902         (Target Builtins): Add documentation of AVR
6903         built-in functions.
6905 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
6907         PR target/44643
6908         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6909         alone. Error if non-const data has attribute progmem.
6911 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6913         * tree.h (struct tree_constructor): Include tree_typed instead of
6914         tree_common.
6915         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6916         TS_TYPED instead of TS_COMMON.
6918 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6920         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6921         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6922         (sse2_psadbw): Merge with *avx_psadbw.
6923         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6924         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6925         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6926         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6927         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6928         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6929         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6930         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6931         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6932         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6933         (ssse3_palignrti): Merge with *avx_palignrti.
6935 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6937         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6938         * tree-ssanames.c (fini_ssanames): VEC_free it.
6939         (make_ssa_name_fn): Update for VECness of free_ssanames.
6940         (release_ssa_name, release_dead_ssa_names): Likewise.
6941         * tree.h (struct tree_ssa_name): Include tree_typed instead of
6942         tree_common.
6943         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6944         TS_TYPED instead of TS_COMMON.
6946 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6948         * postreload-gcse.c (gcse_after_reload_main): Add calls to
6949         statistics_counter_event.
6950         * tree-ssa-copyrename.c (stats): Define.
6951         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
6952         statistics_counter_event.
6953         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6954         (bswap_stats, widen_mul_stats): Define.
6955         (insert_reciprocals): Increment rdivs_inserted.
6956         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
6957         rfuncs_inserted.  Add calls to statistics_counter_event.
6958         (execute_cse_sincos_1): Increment inserted.
6959         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
6960         statistics_counter_event.
6961         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
6962         of bswap_stats.  Add calls to statistics_counter_event.
6963         (convert_mult_to_widen): Increment widen_mults_inserted.
6964         (convert_plusminus_to_widen): Increment maccs_inserted.
6965         (convert_mult_to_fma): Increment fmas_inserted.
6966         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
6967         calls to statistics_counter_event.
6969 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
6971         PR rtl-optimization/48455
6972         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6973         `temp_costs->mem_cost'.
6975 2011-04-13  Jan Hubicka  <jh@suse.cz>
6977         * ipa-inline.h: New file.
6978         * ipa-inline-analysis.c: New file. Broken out of ...
6979         * ipa-inline.c: ... this file; update toplevel comment;
6980         include ipa-inline.h
6981         (inline_summary): Move to ipa-inline.h
6982         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6983         ipa-inline-analysis.c.
6984         (cgraph_estimate_time_after_inlining): Rename to
6985         estiamte_time_after_inlining; move to ipa-inline-analysis.c
6986         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6987         to estimate_edge_growth.
6988         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6989         rename to estimate_size_after_inlining.
6990         (cgraph_mark_inline_edge): Update for new naming convention.
6991         (cgraph_check_inline_limits): Likewise.
6992         (cgraph_edge_badness): Likewise.
6993         (cgraph_decide_recursive_inlining): Likewise.
6994         (cgraph_decide_inlining_of_small_functions): Likewise.
6995         (cgraph_decide_inlining_incrementally): Likewise.
6996         (cgraph_estimate_growth): Rename to estimate_growth; move to
6997         ipa-inline-analysis.c.
6998         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6999         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
7000         (compute_inline_parameters): Likewise.
7001         (compute_inline_parameters_for_current): Likewise.
7002         (pass_inline_parameters): Likewise.
7003         (inline_indirect_intraprocedural_analysis): Likewise.
7004         (analyze_function): Rename to inline_analyze_function; likewise.
7005         (add_new_function): Move to ipa-inline-analysis.c.
7006         (inline_generate_summary): Likewise.
7007         (inline_read_summary): Likewise.
7008         (inline_write_summary): Likewise.
7009         * Makefile.in (ipa-inline-analysis.c): New file.
7011 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7013         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
7014         * configure: Regenerate.
7016 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
7018         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
7019         instead of tree_common.
7020         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
7021         Likewise.
7022         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
7023         TS_TYPED rather than TS_COMMON.
7024         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
7026 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
7028         PR target/45263
7029         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
7030         r20 around calls of __tablejump_elpm__
7032 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
7034         PR middle-end/48591
7035         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
7036         NULL.
7037         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
7039 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
7041         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
7042         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
7043         (cfi_vec): New typedef.
7044         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
7045         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
7046         (cie_cfi_vec): New static variable.
7047         (cie_cfi_head): Delete.
7048         (add_cfi): Accept a cfi_vec * as first argument. All callers and
7049         declaration changed. Use vector rather than list operations.
7050         (new_cfi): Don't initialize the dw_cfi_next field.
7051         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
7052         rather than list operations.
7053         (lookup_cfa): Use vector rather than list operations.
7054         (output_cfis): New argument upto. Accept a cfi_vec rather than
7055         a dw_cfi_ref list head as argument. All callers changed.
7056         Iterate over the vector using upto as a maximum index.
7057         (output_all_cfis): New static function.
7058         (output_fde): Use vector rather than list operations. Use the
7059         new upto argument for output_cfis rather than manipulating a
7060         list.
7061         (dwarf2out_begin_prologue): Change initializations to match
7062         new struct members.
7063         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
7064         from the vector length rather than searching for the end of a list.
7065         Use output_all_cfis.
7066         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
7068 2011-04-13  Nick Clifton  <nickc@redhat.com>
7070         * config/rx/rx.md (movmemsi): Do not use this pattern when
7071         volatile pointers are involved.
7073 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
7075         * config/i386/sse.md (pinsrbits): Remove.
7076         (sse2_packsswb): Merge with *avx_packsswb.
7077         (sse2_packssdw): Merge with *avx_packssdw.
7078         (sse2_packuswb): Merge with *avx_packuswb.
7079         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
7080         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
7081         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
7082         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
7083         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
7084         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
7085         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
7086         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
7087         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
7088         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
7089         (sse2_loadld): Merge with *avx_loadld.
7090         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
7091         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
7092         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
7093         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
7094         (vec_concatv2di): Merge with *vec_concatv2di_avx.
7096 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
7098         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
7099         calling TREE_CHAIN.
7100         * print-tree.c (print_node): Likewise.
7101         * tree-inline.c (copy_tree_r): Likewise.
7102         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
7103         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
7104         instead of TS_COMMON.
7105         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
7106         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
7107         (copy_node_stat): Zero TREE_CHAIN only if necessary.
7108         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
7109         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
7110         ...and these...
7111         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
7112         * tree.h: ...here.
7113         (TREE_CHAIN): Check for a TS_COMMON structure.
7114         (TREE_TYPE): Check for a TS_TYPED structure.
7116 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
7118         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
7119         cgraph_get_create_node instead of cgraph_node.
7121 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7123         * c-parser.c (c_parser_initelt): Updated call to
7124         objc_build_message_expr.
7125         (c_parser_postfix_expression): Likewise.
7127 2011-04-12  Kai Tietz  <ktietz@redhat.com>
7129         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
7130         MASK_MS_BITFIELD_LAYOUT bit.
7132 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
7134         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
7135         assert it is always true.
7136         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
7137         moves.
7139 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7141         * c-parser.c (c_lex_one_token): Rewritten conditional used when
7142         compiling Objective-C to be more efficient.
7144 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
7146         * opts-common.c (decode_cmdline_options_to_array): Remove variable
7147         argv_copied.
7149 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
7151         * recog.h, genoutput.c, optabs.c: Revert last patch.
7153 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7155         PR target/48090
7156         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
7158 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
7160         * recog.h (insn_operand_data): Add an "allows_mem" field.
7161         * genoutput.c (output_operand_data): Initialize it.
7162         * optabs.c (maybe_legitimize_operand_same_code): New function.
7163         (maybe_legitimize_operand): Use it when matching the original
7164         op->value.
7166 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
7168         * genpreds.c (process_define_predicate): Move most processing
7169         to gensupport.c.  Continue to validate the expression.
7170         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
7171         (process_define_predicate): Move processing to gensupport.c.
7172         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
7173         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
7174         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
7175         argument.
7176         (valid_predicate_name_p): New function, split out from old
7177         genpreds.c:process_define_predicate.
7178         (process_define_predicate): New function, combining code from
7179         old genpreds.c and genrecog.c functions.
7180         (process_rtx): Call it for DEFINE_PREDICATE and
7181         DEFINE_SPECIAL_PREDICATE.
7183 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
7185         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
7186         size of a '%A' memory reference.
7187         (T_DREG, T_QREG): New neon_builtin_type_bits.
7188         (arm_init_neon_builtins): Assert that the load and store operands
7189         are neon_struct_operands.
7190         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
7191         (NEON_ARG_MEMORY): New builtin_arg.
7192         (neon_dereference_pointer): New function.
7193         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
7194         Handle NEON_ARG_MEMORY.
7195         (arm_expand_neon_builtin): Update after above interface changes.
7196         Use NEON_ARG_MEMORY for loads and stores.
7197         * config/arm/predicates.md (neon_struct_operand): New predicate.
7198         * config/arm/iterators.md (V_two_elem): Tweak formatting.
7199         (V_three_elem): Use BLKmode for accesses that have no associated mode.
7200         (V_four_elem): Tweak formatting.
7201         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
7202         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
7203         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
7204         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
7205         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
7206         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
7207         (neon_vst4<mode>): Replace pointer operand with a memory operand.
7208         Use %A in the output template.
7209         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
7210         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
7211         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
7212         the width of the memory access.  Remove post-increment.
7213         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
7215 2011-04-12  Nick Clifton  <nickc@redhat.com>
7217         * config/v850/v850.c (expand_prologue): Do not use the CALLT
7218         instruction for interrupt handlers if the target is the basic V850
7219         architecture.
7220         (expand_epilogue): Likewise.
7222 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
7224         PR rtl-optimization/48549
7225         * combine.c (propagate_for_debug): Also stop after BB_END of
7226         this_basic_block.  Process LAST and just stop processing after it.
7227         (combine_instructions): If last_combined_insn has been deleted,
7228         set last_combined_insn to its PREV_INSN.
7230 2011-04-12  Richard Guenther  <rguenther@suse.de>
7232         PR tree-optimization/46076
7233         * gimple.h (struct gimple_statement_call): Add fntype field.
7234         (gimple_call_fntype): Adjust.
7235         (gimple_call_set_fntype): New function.
7236         * gimple.c (gimple_build_call_1): Set the call function type.
7237         * gimplify.c (gimplify_call_expr): Preserve the function
7238         type the frontend used for the call.
7239         (gimplify_modify_expr): Likewise.
7240         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
7241         function type.
7242         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
7243         function type.
7244         * tree-ssa.c (useless_type_conversion_p): Function pointer
7245         conversions are useless.
7247 2011-04-12  Martin Jambor  <mjambor@suse.cz>
7249         * cgraph.h (cgraph_node): Remove function declaration.
7250         (cgraph_create_node): Declare.
7251         (cgraph_get_create_node): Likewise.
7252         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
7253         Updated all callers.
7254         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
7255         the decl does not already exist.  Call cgraph_get_create_node instead
7256         of cgraph_node.
7257         (cgraph_get_create_node): New function.
7258         (cgraph_same_body_alias): Update comment.
7259         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
7260         assert it does not return NULL.
7261         (cgraph_update_edges_for_call_stmt): Likewise.
7262         (cgraph_clone_edge): Likewise.
7263         (cgraph_create_virtual_clone): Likewise.
7264         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
7265         instead of cgraph_node.
7266         (cgraph_add_new_function): Call cgraph_create_node or
7267         cgraph_get_create_node instead of cgraph_node.
7268         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
7269         instead of cgraph_node.
7270         (record_eh_tables): Likewise.
7271         (mark_address): Likewise.
7272         (mark_load): Likewise.
7273         (build_cgraph_edges): Call cgraph_get_create_node instead
7274         of cgraph_node.
7275         (rebuild_cgraph_edges): Likewise.
7276         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
7277         instead of cgraph_node.
7278         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
7279         cgraph_node.
7280         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
7281         cgraph_create_node instead of cgraph_node.
7282         * c-decl.c (finish_function): Call cgraph_get_create_node instead
7283         of cgraph_node.
7284         * lto-cgraph.c (input_node): Likewise.
7285         * lto-streamer-in.c (input_function): Likewise.
7286         * varasm.c (mark_decl_referenced): Likewise.
7287         (assemble_alias): Likewise.
7289 2011-04-12  Martin Jambor  <mjambor@suse.cz>
7291         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
7292         instead of cgraph_node and assert it does not return NULL.
7293         * lto-streamer-in.c (lto_read_body): Likewise.
7294         * omp-low.c (new_omp_context): Likewise.
7295         (create_task_copyfn): Likewise.
7296         * tree-emutls.c (lower_emutls_function_body): Likewise.
7297         * matrix-reorg.c (transform_allocation_sites): Likewise.
7299 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
7301         PR c/48552
7302         * c-typeck.c (build_asm_expr): Error out on attempts to use
7303         void type outputs or inputs for constraints that allow reg or
7304         don't allow memory.
7306 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
7307             Richard Earnshaw  <rearnsha@arm.com>
7309         PR target/48250
7310         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
7311         to use sign-magnitude offsets. Reject unsupported unaligned
7312         cases. Add detailed description in comments.
7313         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
7314         condition from TARGET_32BIT to TARGET_ARM.
7316 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
7318         * tree.h (struct typed_tree): New.
7319         (struct tree_common): Include it instead of tree_base.
7320         (TREE_TYPE): Update for new location of type field.
7321         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
7322         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
7323         (union tree_node): Add typed field.
7324         * treestruct.def (TS_TYPED): New.
7325         * lto-streamer.c (check_handled_ts_structures): Handle it.
7326         * tree.c (MARK_TS_TYPED): New macro.
7327         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
7329 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
7331         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
7332         (force_nonfallthru): Do not alter the loop nest if no basic block
7333         was created.
7335 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
7337         * config/i386/sse.md (VI): New mode iterator.
7338         (SSEMODEI): Remove.
7339         (AVX256MODEI): Ditto.
7340         (AVXMODEF4P): Ditto.
7341         (avxvecpsmode): Ditto.
7342         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
7343         (sse2_andnot<mode>3): New expander.
7344         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
7345         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
7346         (<any_logic:code><mode>3): Use VI mode iterator.
7347         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
7348         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
7349         (*andnottf3): Handle AVX three-operand constraints.
7350         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
7352 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7353             Robert Millan  <rmh@gnu.org>
7355         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
7356         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
7357         GNU_USER_DYNAMIC_LINKER64): Define.
7358         (REG_NAME): Don't undefine.
7359         (MD_UNWIND_SUPPORT): Undefine.
7360         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
7361         (REG_NAME): Don't undefine.
7362         (MD_UNWIND_SUPPORT): Undefine.
7363         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
7365 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7367         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
7368         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
7370 2011-04-11  Xinliang David Li  <davidxl@google.com>
7372         * value-profile.c (check_ic_target): New function.
7373         (gimple_ic_transform): Sanity check indirect call target.
7374         * gimple-low.c (gimple_check_call_args): Interface change.
7375         (gimple_check_call_matching_types): New function.
7376         * tree-inline.c (tree_can_inline_p): Call new function.
7378 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
7380         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
7381         tree-pretty-print.h & realmpfr.h.
7383 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
7385         PR middle-end/48464
7386         * ira.c (setup_pressure_classes): Fix typo in loop condition.
7387         (setup_allocno_and_important_classes): Ditto.
7389 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7391         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
7392         GNU_USER_DYNAMIC_LINKER.
7393         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
7394         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7395         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
7396         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7397         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7398         GNU_USER_TARGET_OS_CPP_BUILTINS.
7399         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
7400         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7401         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7402         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7403         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
7404         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7405         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7406         GNU_USER_TARGET_OS_CPP_BUILTINS.
7407         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7408         GNU_USER_DYNAMIC_LINKER.
7409         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7410         GNU_USER_TARGET_OS_CPP_BUILTINS.
7411         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
7412         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7413         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
7414         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7415         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
7416         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
7417         GNU_USER_DYNAMIC_LINKER64): Remove.
7418         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
7419         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7420         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7421         GNU_USER_DYNAMIC_LINKER.
7422         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7423         GNU_USER_TARGET_OS_CPP_BUILTINS.
7424         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7425         GNU_USER_TARGET_OS_CPP_BUILTINS.
7426         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
7427         to GNU_USER_TARGET_OS_CPP_BUILTINS.
7428         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7429         GNU_USER_TARGET_OS_CPP_BUILTINS.
7430         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
7431         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
7432         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
7433         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
7434         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7435         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7436         GNU_USER_DYNAMIC_LINKER.
7437         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7438         GNU_USER_TARGET_OS_CPP_BUILTINS.
7439         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
7440         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7441         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7442         GNU_USER_DYNAMIC_LINKER.
7443         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7444         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7445         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
7446         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7447         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7448         GNU_USER_DYNAMIC_LINKER.
7449         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
7450         GNU_USER_DYNAMIC_LINKERN32.
7451         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
7452         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
7453         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
7454         GNU_USER_DYNAMIC_LINKER32.
7455         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
7456         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7457         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7458         GNU_USER_DYNAMIC_LINKER.
7459         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7460         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7461         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
7462         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7463         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7464         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
7465         GNU_USER_DYNAMIC_LINKER32.
7466         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
7467         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
7468         GNU_USER_DYNAMIC_LINKER.
7469         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
7470         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7471         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
7472         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
7473         GNU_USER_DYNAMIC_LINKER64.
7474         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
7475         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7476         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7477         GNU_USER_DYNAMIC_LINKER.
7478         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
7479         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7480         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7481         GNU_USER_DYNAMIC_LINKER.
7482         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
7483         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7484         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
7485         GNU_USER_DYNAMIC_LINKER32.
7486         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
7487         GNU_USER_DYNAMIC_LINKER64.
7488         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
7489         GNU_USER_DYNAMIC_LINKER64.
7490         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
7491         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7492         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
7493         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7494         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7496 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7498         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
7499         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
7500         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
7501         GNU_USER_DYNAMIC_LINKER.
7502         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
7503         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
7504         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
7505         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
7506         GNU_USER_DYNAMIC_LINKER64.
7507         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
7508         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
7509         GNU_USER_LINK_EMULATION.
7510         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
7511         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
7512         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
7513         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
7514         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
7515         CPP_SPEC, CC1_SPEC): Remove.
7516         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
7517         (GNU_USER_DYNAMIC_LINKER): Define.
7518         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
7519         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
7520         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
7521         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
7522         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
7523         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
7524         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
7525         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
7526         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
7527         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
7528         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
7529         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
7530         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
7531         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
7532         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
7533         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
7534         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7535         GNU_USER_DYNAMIC_LINKER.
7536         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7537         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
7538         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7539         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
7540         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7541         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
7542         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
7543         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
7544         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
7545         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
7547 2011-04-11  Kai Tietz  <ktietz@redhat.com>
7549         PR target/9601
7550         PR target/11772
7551         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
7552         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
7553         comment.
7554         (ix86_is_msabi_thiscall): Removed.
7555         (ix86_is_type_thiscall): Likewise.
7556         (ix86_get_callcvt): New function.
7557         (ix86_comp_type_attributes): Simplify check.
7558         (ix86_function_regparm): Use ix86_get_callcvt for calling
7559         convention attribute checks.
7560         (ix86_return_pops_args): Likewise.
7561         (ix86_static_chain): Likewise.
7562         (x86_this_parameter): Likewise.
7563         (x86_output_mi_thunk): Likewise.
7564         (ix86_function_type_abi): Optimize check for types without attributes.
7565         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
7566         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
7567         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
7568         by flag-values.
7569         (IX86_BASE_CALLCVT): Helper macro.
7570         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
7571         Use ix86_get_callcvt for calling convention attribute checks and avoid
7572         symbol-decoration for stdcall in TARGET_RTD case.
7573         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
7574         Likewise.
7575         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
7576         for declaration.
7578 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
7580         * config/i386/sse.md (VI_128): New mode iterator.
7581         (VI12_128): Rename from SSEMODE12.
7582         (VI14_128): Rename from SSEMODE14.
7583         (VI124_128): New mode iterator.
7584         (VI24_128): Rename from SSEMODE248.
7585         (VI248_128): Rename from SSEMODE248.
7586         (SSEMODE124C8): Remove.
7587         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7588         (*sse2_<plusminus_insn><mode>3): Merge with
7589         *avx_<plusminus_insn><mode>3.
7590         (*mulv8hi3): Merge with *avx_mulv8hi3.
7591         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
7592         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
7593         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
7594         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
7595         (ashr<mode>3): Merge with *avx_ashr<mode>3.
7596         (lshr<mode>3): Merge with *avx_lshr<mode>3.
7597         (ashl<mode>3): Merge with *avx_ashl<mode>3.
7598         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
7599         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
7600         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7601         (*<smaxmin:code>v8hi3): Ditto.
7602         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
7603         (*<smaxmin:code>v16qi3): Ditto.
7604         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
7605         (*sse2_eq<mode>3): Ditto.
7606         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
7607         (*sse2_gt<mode>3): Ditto.
7608         (vcondv2di): Split out of vcond<mode>.
7609         (vconduv2di): Split out of vcondu<mode>.
7611 2011-04-11  Richard Guenther  <rguenther@suse.de>
7613         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
7614         before calling tree_low_cst.
7616 2011-04-11  Richard Guenther  <rguenther@suse.de>
7618         * stor-layout.c (layout_type): Compute all array index size operations
7619         in the original type.
7620         (initialize_sizetypes): Add comment.
7621         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
7623 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7625         * common.opt (Tbss=, Tdata=, Ttext=): New options.
7627 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7629         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
7630         of cgraph_node, handle NULL return value.
7631         (cgraph_global_info): Likewise.
7632         (cgraph_rtl_info): Likewise.
7633         * tree-inline.c (estimate_num_insns): Likewise.
7634         * gimplify.c (unshare_body): Likewise.
7635         (unvisit_body): Likewise.
7636         (gimplify_body): Likewise.
7637         * predict.c (optimize_function_for_size_p): Likewise.
7638         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7639         (call_may_clobber_ref_p_1): Likewise.
7640         * varasm.c (function_section_1): Likewise.
7641         (assemble_start_function): Likewise.
7643 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7645         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
7646         of cgraph_node.
7647         * final.c (rest_of_clean_state): Likewise.
7648         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
7649         * passes.c (pass_init_dump_file): Likewise.
7650         (execute_all_ipa_transforms): Likewise.
7651         (function_called_by_processed_nodes_p): Likewise.
7652         * predict.c (maybe_hot_frequency_p): Likewise.
7653         (probably_never_executed_bb_p): Likewise.
7654         (compute_function_frequency): Likewise.
7655         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
7656         (unnest_nesting_tree_1): Likewise.
7657         (lower_nested_functions): Likewise.
7658         * tree-optimize.c (execute_fixup_cfg): Likewise.
7659         (tree_rest_of_compilation): Likewise.
7660         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
7661         * tree-sra.c (ipa_early_sra): Likewise.
7662         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
7663         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
7664         * ipa.c (record_cdtor_fn): Likewise.
7665         * ipa-inline.c (cgraph_early_inlining): Likewise.
7666         (compute_inline_parameters_for_current): Likewise.
7667         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
7668         * ipa-pure-const.c (local_pure_const): Likewise.
7669         * ipa-split.c (split_function): Likewise.
7670         (execute_split_functions): Likewise.
7671         * cgraphbuild.c (build_cgraph_edges): Likewise.
7672         (rebuild_cgraph_edges): Likewise.
7673         (cgraph_rebuild_references): Likewise.
7674         (remove_cgraph_callee_edges): Likewise.
7675         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
7676         (verify_cgraph_node): Likewise.
7677         (cgraph_analyze_functions): Likewise.
7678         (cgraph_preserve_function_body_p): Likewise.
7679         (save_inline_function_body): Likewise.
7680         (save_inline_function_body): Likewise.
7681         * tree-inline.c (copy_bb): Likewise.
7682         (optimize_inline_calls): Likewise.
7684 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7686         PR tree-optimization/48195
7687         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
7688         ipa_check_create_edge_args.
7689         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
7690         ipa_check_create_edge_args.
7691         * ipa-inline.c (inline_generate_summary): Do not call
7692         ipa_check_create_node_params and ipa_check_create_edge_args.
7693         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
7694         ipa_check_create_edge_args.
7696 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
7698         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
7699         instead of loop.
7700         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
7701         * function.c (record_hard_reg_sets): Likewise.
7702         * ira.c (compute_regs_asm_clobbered): Likewise.
7703         * sched-deps.c (sched_analyze_1): Likewise.
7704         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
7706 2011-04-09  Xinliang David Li  <davidxl@google.com>
7708         PR tree-optimization/PR48484
7709         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
7710         has_valid_pred lazily
7712 2011-04-09  Duncan Sands  <baldrick@free.fr>
7714         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
7716 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
7718         * combine.c (combine_validate_cost): Adjust comments.  Set registered
7719         cost of I0 to zero at the end, if any.
7721 2011-04-08  Xinliang David Li  <davidxl@google.com>
7723         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
7724         to insane profile data.
7726 2011-04-08  Xinliang David Li  <davidxl@google.com>
7728         * ipa-cp.c (ipcp_update_profiling): Correct
7729          negative scale factor due to insane profile data.
7731 2011-04-08  Xinliang David Li  <davidxl@google.com>
7733         * final.c (dump_basic_block_info): New function.
7734         (final): Dump basic block.
7735         (final_scan_insn): Remove old dump.
7737 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
7739         PR target/47829
7740         * config.gcc (i386-*-freebsd): Disable unwind table generation for
7741         crtbegin/crtend.
7743 2011-04-08  Michael Matz  <matz@suse.de>
7745         PR middle-end/48389
7746         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
7747         functions.
7748         (rebuild_jump_labels): Call rebuild_jump_labels_1.
7749         * rtl.h (rebuild_jump_labels_chain): Declare.
7750         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
7751         insns inserted on edges.
7753 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
7755         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
7756         * config/arm/arm-arches.def: New.
7757         * config/arm/arm-opts.h: New.
7758         * config/arm/genopt.sh: New.
7759         * config/arm/arm-tables.opt: New (generated).
7760         * config/arm/arm.c (arm_handle_option, arm_target_help,
7761         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
7762         (all_architectures): Get most table contents from arm-arches.def.
7763         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
7764         arm_selected_tune here.
7765         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
7766         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
7767         (march=, mcpu=, mtune=): Use Enum and Var.
7768         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
7769         (arm.o): Update dependencies.
7771 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
7773         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
7774         of header_file.
7775         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
7776         (write_typed_alloc_defns): Likewise.
7777         (main): Calls write_typed_alloc_defns with output_header.
7779 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
7781         PR inline-asm/48435
7782         * ira-color.c (setup_profitable_hard_regs): Add comments.
7783         Don't take prohibited hard regs into account.
7784         (setup_conflict_profitable_regs): Rename to
7785         get_conflict_profitable_regs.
7786         (check_hard_reg_p): Check prohibited hard regs.
7788 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
7790         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
7791         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
7792         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
7794 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7796         PR target/48366
7797         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
7798         move from floating point to shift amount register.
7799         (emit_move_sequence): Remove secondary reload support for floating
7800         point to shift amount amount register copies.
7801         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
7802         amount register copies.
7803         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
7804         register, return false if mode isn't a scalar integer mode.
7805         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
7807 2011-04-08  Richard Guenther  <rguenther@suse.de>
7809         * gimple.c (gimple_call_flags): Remove kludge.
7811 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7813         * sel-sched.c (sel_region_init): Move call to
7814         sel_setup_region_sched_flags after setup_current_loop_nest.
7816 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
7818         PR rtl-optimization/48272
7819         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
7820         init_insn_reg_pressure_info.  Adjust a caller.
7821         * sched-int.h (init_insn_reg_pressure_info): Declare.
7822         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
7823         when sched-pressure is enabled.
7825 2011-04-08  Richard Guenther  <rguenther@suse.de>
7827         * gimple.c (gimple_set_modified): Do not queue calls to
7828         MODIFIED_NORETURN_CALLS here ...
7829         * tree-ssa-operands.c (update_stmt_operands): ... but here.
7831 2011-04-08  Richard Guenther  <rguenther@suse.de>
7833         PR lto/48467
7834         * toplev.c (lang_dependent_init): Do not open asm_out_file
7835         in WPA mode, nor perform debug machinery initialization.
7836         (finalize): Do not unlink asm_out_file in WPA mode.
7838 2011-04-08  Richard Guenther  <rguenther@suse.de>
7840         * gimple.h (gimple_call_fntype): New function.
7841         (gimple_call_return_type): Use it.
7842         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
7843         * gimple-low.c (gimple_check_call_args): Likewise.
7844         * gimple.c (gimple_call_flags): Likewise.
7845         (gimple_call_arg_flags): Likewise.
7846         (gimple_call_return_flags): Likewise.
7847         * tree-cfg.c (verify_gimple_call): Likewise.
7848         (do_warn_unused_result): Likewise.
7849         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7850         * value-prof.c (gimple_ic_transform): Fix fndecl check.
7852 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
7854         PR rtl-optimization/48235
7855         * sel-sched.c (code_motion_process_successors): Recompute the last
7856         insn in basic block if control flow changed.
7857         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
7858         Update condition for ilist_remove.
7860 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7862         PR rtl-optimization/48302
7863         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
7864         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
7865         it to record added preheader blocks.
7866         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
7867         on to sel_add_loop_preheaders.
7868         (sel_region_init): Move call to setup_current_loop_nest after
7869         sel_init_bbs.
7871 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7873         PR target/48273
7874         * cfgloop.h (loop_has_exit_edges): New helper.
7875         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
7876         non-clonable.
7877         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
7878         that have no exit edges.
7880 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7882         PR rtl-optimization/48442
7883         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
7884         all callers.  Adjust assert.
7886 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
7888         PR tree-optimization/48377
7889         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7890         is_packed to true even for types with smaller TYPE_ALIGN than
7891         TYPE_SIZE.
7893 2011-04-08  Richard Guenther  <rguenther@suse.de>
7895         PR bootstrap/48513
7896         * doc/tm.texi: Re-generate.
7898 2011-04-08  Wei Guozhi  <carrot@google.com>
7900         PR target/47855
7901         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7902         * config/arm/arm.c (arm_attr_length_push_multi): New function.
7903         * config/arm/arm.md (*push_multi): Change the length computation to
7904         call a C function.
7906 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
7908         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7909         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7910         * doc/tm.texi: Regenerate.
7911         * system.h (ASM_OUTPUT_BSS): Poison.
7912         * varasm.c (asm_output_bss): Remove function.
7913         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7915         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7916         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7917         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7918         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7919         Likewise.
7920         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7921         Likewise.
7922         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7923         Likewise.
7924         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7926 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7928         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7929         EnumValue lines.
7931 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7933         * config/m68k/m68k.c (m68k_handle_option): Don't handle
7934         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7935         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7936         OPT_mcpu32.
7937         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7938         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7939         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7940         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7941         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7942         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7943         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7944         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7945         options.  Don't map other m68k options manually.  Don't handle
7946         old-style options as canonical.
7947         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7948         * doc/install.texi (m68k-*-*): Document binutils version requirement.
7950 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7952         * basic-block.h (force_nonfallthru): Move to...
7953         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7954         (force_nonfallthru): ...here.
7955         * cfghooks.c (force_nonfallthru): New function.
7956         * cfgrtl.c (force_nonfallthru): Rename into...
7957         (rtl_force_nonfallthru): ...this.
7958         (commit_one_edge_insertion): Do not set AUX field.
7959         (commit_edge_insertions): Do not discover new basic blocks.
7960         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7961         (cfg_layout_rtl_cfg_hooks): Likewise.
7962         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7963         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
7964         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7966 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
7968         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7969         Remove macros.
7971 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
7973         * config/i386/sse.md: Update copyright year.
7974         (avxcvtvecmode): Remove.
7975         (sse_movhlps): Merge with *avx_movhlps.
7976         (sse_movlhps): Merge with *avx_movlhps.
7977         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7978         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7979         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7980         (sse_loadhps): Merge with *avx_loadhps.
7981         (sse_storelps): Merge with *avx_storelps.
7982         (sse_loadlps): Merge with *avx_loadlps.
7983         (sse_movss): Merge with *avx_movss.
7984         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7985         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7986         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7987         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7988         (vec_set<mode>_0): Ditto.
7989         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7990         (sse4_1_insertps): Merge with *avx_insertps.
7991         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7992         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7993         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7994         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7995         (sse2_storehpd): Merge with *avx_storehpd.
7996         (sse2_loadhpd): Merge with *avx_loadhpd.
7997         (sse2_loadlpd): Merge with *avx_loadlpd.
7998         (sse2_movsd): Merge with *avx_movsd.
7999         (*vec_concatv2df): Merge with *vec_concatv2df.
8001 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
8003         PR debug/48343
8004         * combine.c (combine_instructions): Add last_combined_insn,
8005         update it if insn is after it, pass it to all try_combine calls.
8006         (try_combine): Add last_combined_insn parameter, pass it instead of
8007         i3 to propagate_for_debug.
8009 2011-04-07  Nick Clifton  <nickc@redhat.com>
8011         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
8012         to handle MDR <-> data register transfers.
8013         (movhi_internal): Likewise.
8015 2011-04-07  Alan Modra  <amodra@gmail.com>
8017         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
8018         previous stack info.
8020 2011-04-07  Tom de Vries  <tom@codesourcery.com>
8022         PR target/43920
8023         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
8024         flow_find_cross_jump.  Swap variables to implement backward replacement.
8025         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
8027 2011-04-07  Tom de Vries  <tom@codesourcery.com>
8029         PR target/43920
8030         * cfgcleanup.c (walk_to_nondebug_insn): New function.
8031         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
8032         and bb2.
8033         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
8034         src1 or src2.  Redirect edges to the last basic block.  Update
8035         frequency and count on multiple basic blocks in case of fallthru.
8037 2011-04-07  Tom de Vries  <tom@codesourcery.com>
8039         PR target/43920
8040         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
8041         function.
8042         (old_insns_match_p): Change return type.  Replace return false/true
8043         with return dir_none/dir_both.  Use can_replace_by.
8044         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
8045         direction from dir_p.  Register replacement direction in dir, last_dir
8046         and afterlast_dir.  Handle new return type of old_insns_match_p using
8047         merge_dir.  Return replacement direction in dir_p.
8048         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
8049         return type of old_insns_match_p.
8050         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
8051         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
8052         flow_find_cross_jump.
8053         * basic-block.h (enum replace_direction): New type.
8054         (flow_find_cross_jump): Add parameter to declaration.
8056 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
8058         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
8059         (AVXMODEDCVTPS2DQ): Ditto.
8060         (VEC_FLOAT_MODE): Ditto.
8061         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
8062         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
8063         (<any_logic:code><mode>3): Use VF mode iterator.
8064         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
8065         Use VF mode iterator.
8066         (copysign<mode>3): Use VF mode iterator.
8067         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
8068         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
8069         (*<any_logic:code><MODEF:mode>3): Merge with
8070         *avx_<any_logic:code><MODEF:mode>3.
8071         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
8072         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
8073         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
8074         (avx_cvtdq2ps<avxmodesuffix>): Remove.
8075         (sse2_cvtdq2ps): Use %v modifier.
8076         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
8077         (avx_cvtps2dq<avxmodesuffix>): Remove.
8078         (sse2_cvtps2dq): Use %v modifier.
8079         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
8080         (avx_cvttps2dq<avxmodesuffix>): Remove.
8081         (sse2_cvttps2dq): Use %v modifier.
8082         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
8083         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
8084         (sse2_cvtsd2siq): Fix insn template.
8085         (sse2_cvtsd2siq_2): Ditto.
8086         (sse2_cvttsd2siq): Ditto.
8087         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
8088         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
8090 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
8092         * gcov-io.c: Use GCC Runtime Library Exception.
8094 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
8096         PR debug/48466
8097         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
8098         as base_reg whatever register reg has been eliminated to, instead
8099         of hardcoding STACK_POINTER_REGNUM.
8101 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
8103         * doc/tm.texi.in: Document C target hooks as separate from general
8104         target hooks.
8105         * doc/tm.texi: Regenerate.
8106         * genhooks.c (struct hook_desc): Add docname field.
8107         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
8108         docname field.
8109         (hook_array): Include c-target.def.
8110         (emit_documentation): Use docname field in output.
8111         (emit_init_macros): Take docname argument.  Only emit definitions
8112         for hooks matching docname.
8113         (main): Expect additional arguments in all cases.  Pass argument
8114         to emit_init_macros.
8115         * target.def: Move initial macro definitions and comments to
8116         target-hooks-macros.h.
8117         (gcc_targetcm): Move to c-family/c-target.def.
8118         * target.h (targetcm): Move declaration to c-family/c-target.h.
8119         * targhooks.c (default_handle_c_option): Move to
8120         c-family/c-opts.c.
8121         * targhooks.h (default_handle_c_option): Move declaration to
8122         c-family/c-common.h.
8123         * target-hooks-macros.h: New file.
8124         * config.gcc (target_has_targetcm): Define and use to add to
8125         c_target_objs and cxx_target_objs.
8126         * config/default-c.c: New file.
8127         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
8128         of target.h and target-def.h.
8129         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
8130         (darwin_objc_construct_string, darwin_cfstring_ref_p,
8131         darwin_check_cfstring_format_arg): Make static.
8132         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
8133         TARGET_STRING_OBJECT_REF_TYPE_P,
8134         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
8135         * config/darwin-protos.h (darwin_objc_construct_string,
8136         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
8137         declare.
8138         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
8139         TARGET_STRING_OBJECT_REF_TYPE_P,
8140         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
8141         * config/t-darwin (darwin-c.o): Update dependencies.
8142         * system.h (TARGET_HAS_TARGETCM): Poison.
8143         * Makefile.in (TARGET_H): Update.
8144         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
8145         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
8146         (default-c.o): New target.
8147         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
8148         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
8149         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
8150         c-target.def.
8151         (build/genhooks.o): Update dependencies.
8153 2011-04-06  Richard Guenther  <rguenther@suse.de>
8155         * ipa-inline.c (enum inlining_mode): Remove.
8156         (cgraph_flatten): Use some other token.
8157         (cgraph_edge_early_inlinable_p): New function, split out from ...
8158         (cgraph_perform_always_inlining): New function, split out from ...
8159         (cgraph_decide_inlining_incrementally): ... here.
8160         (cgraph_mark_inline_edge): Adjust.
8161         (cgraph_early_inlining): Re-structure.
8162         (pass_early_inline): Require SSA form.
8164 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
8165             Julian Brown  <julian@codesourcery.com>
8166             Mark Shinwell  <shinwell@codesourcery.com>
8168         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
8169         LO_REGS only for Thumb-1.
8170         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
8171         be used in short instructions when optimising for size on Thumb-2.
8173 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
8175         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
8176         associated with user returns to be preserved.
8178 2011-04-06  Tristan Gingold  <gingold@adacore.com>
8180         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
8181         symbol_queue_size, DBXOUT_DECR_NESTING,
8182         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
8183         if XCOFF_DEBUGGING_INFO.
8185 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
8187         * config/i386/i386.md (attribute isa): New.
8188         (attribute enabled): New.
8189         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
8190         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
8191         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
8192         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
8193         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
8194         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8195         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
8196         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
8198         * config/i386/sse.md (VF): New mode iterator.
8199         (VF1): Ditto.
8200         (VF2): Ditto.
8201         (VF_128): Ditto.
8202         (SSEMODEF4): Remove.
8203         (attribute sse): Handle V8SF and V4DF modes.
8204         (<absneg:code><mode>2): Use VF mode iterator.
8205         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
8206         mode iterator.
8207         (<plusminus_insn><mode>3): Use VF mode iterator.
8208         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
8209         Use VF mode iterator.
8210         (<sse>_vm<plusminus_insn><mode>3): Merge with
8211         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
8212         (mul<mode>3): Use VF mode iterator.
8213         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
8214         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
8215         mode iterator.
8216         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
8217         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
8218         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
8219         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
8220         mode iterator.
8221         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
8222         Use VF1 mode iterator.
8223         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
8224         (sqrt<VF2:mode>2): New expander.
8225         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
8226         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
8227         and sqrtv2df2.  Use VF mode iterator.
8228         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
8229         mode iterator.
8230         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
8231         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
8232         Use VF1 mode iterator.
8233         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
8234         (<smaxmin:code><mode>3): Use VF mode iterator.
8235         (*<smaxmin:code><mode>3_finite): Merge with
8236         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
8237         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8238         (<sse>_vm<smaxmin:code><mode>2): Merge with
8239         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
8240         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
8241         mode iterator.
8242         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
8243         mode iterator.
8244         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
8245         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
8246         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
8247         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
8248         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
8249         VF mode iterator.
8250         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
8251         Use VF_128 mode iterator.
8252         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
8253         mode iterator.
8254         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
8255         VF_128 mode iterator.
8256         (vcond<mode>): Use VF mode iterator.
8257         * config/i386/predicates.md (sse_comparison_operator): Merge with
8258         avx_comparison_float_operator.  Do not declare as special_predicate.
8259         * config/i386/i386.c (struct builtin_description): Update for renamed
8260         compare patterns.
8261         (ix86_expand_args_builtin): Ditto.
8262         (ix86_expand_sse_compare_mask): Ditto.
8264 2011-04-06  Richard Guenther  <rguenther@suse.de>
8266         * tree-inline.c (estimate_num_insns): For calls simply account
8267         for all passed arguments and a used return value.
8269 2011-04-06  Richard Guenther  <rguenther@suse.de>
8271         PR tree-optimization/47663
8272         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
8273         call_stmt_time fields.
8274         (cgraph_edge_inlinable_p): Declare.
8275         (cgraph_edge_recursive_p): New inline function.
8276         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
8277         (cgraph_clone_edge): Copy it.
8278         * ipa-inline.c (cgraph_estimate_edge_time): New function.
8279         Account for call stmt time.
8280         (cgraph_estimate_time_after_inlining): Take edge argument.
8281         (cgraph_estimate_edge_growth): Account call stmt size.
8282         (cgraph_estimate_size_after_inlining): Take edge argument.
8283         (cgraph_mark_inline_edge): Adjust.
8284         (cgraph_check_inline_limits): Likewise.
8285         (cgraph_recursive_inlining_p): Remove.
8286         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
8287         (cgraph_decide_recursive_inlining): Take edge argument and
8288         adjust.
8289         (cgraph_decide_inlining_of_small_functions): Do not avoid
8290         diags for recursive inlining here.
8291         (cgraph_flatten): Adjust.
8292         (cgraph_decide_inlining_incrementally): Likewise.
8293         (estimate_function_body_sizes): Remove call cost handling.
8294         (compute_inline_parameters): Initialize caller edge call costs.
8295         (cgraph_estimate_edge_growth): New function.
8296         (cgraph_estimate_growth): Use it.
8297         (cgraph_edge_badness): Likewise.
8298         (cgraph_check_inline_limits): Take an edge argument.
8299         (cgraph_decide_inlining_of_small_functions): Adjust.
8300         (cgraph_decide_inlining): Likewise.
8301         * tree-inline.c (estimate_num_insns): Only account for call
8302         return value if it is used.
8303         (expand_call_inline): Avoid diagnostics on recursive inline
8304         functions here.
8305         * lto-cgraph.c (lto_output_edge): Output edge call costs.
8306         (input_edge): Input edge call costs.
8308 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8310         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
8312 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
8314         * doc/invoke.texi (Spec Files): Fix typo.
8316 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
8318         * profile.c (branch_prob): Move declaration of local variable.  Remove
8319         obsolete ??? comment.  Expand the location explicitly instead of using
8320         the LOCATION_FILE and LOCATION_LINE macros.
8322 2011-04-06  Wei Guozhi  <carrot@google.com>
8324         PR target/47855
8325         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
8326         (arm_cond_branch): Likewise.
8327         (arm_cond_branch_reversed): Likewise.
8328         (arm_jump): Likewise.
8329         (push_multi): Likewise.
8330         * config/arm/constraints.md (Py): New constraint.
8332 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8334         PR bootstrap/48471
8335         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
8336         Move these...
8337         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
8338         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
8339         #ifdef DBX_DEBUGGING_INFO.
8341 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
8343         PR bootstrap/48403
8344         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
8345         if old and new states differ.
8347 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
8349         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
8350         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
8351         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
8352         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
8353         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
8354         mcfv4e): Use Alias.
8355         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
8356         ColdFire options to -mcpu= options.
8358 2011-04-05  Jeff Law  <law@redhat.com>
8360         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
8361         check if BB is a successor of LOOP->header and return
8362         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
8364 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8366         * cprop.c (struct reg_use): Remove.
8367         (reg_use_table): Make an array of RTX.
8368         (find_used_regs, constprop_register, local_cprop_pass,
8369         bypass_block): Simplify users of reg_use_table.
8370         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
8371         on one of the uses found by find_used_regs.
8373 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8375         PR bootstrap/48469
8376         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
8377         declaration.
8379 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8381         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
8382         as an rtx.
8383         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
8385 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8387         PR middle-end/48441
8388         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
8390 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8392         * combine.c: Include obstack.h.
8393         (struct insn_link): Define.
8394         (uid_log_links): Adjust type.
8395         (FOR_EACH_LOG_LINK): New macro.
8396         (insn_link_obstack): Declare.
8397         (alloc_insn_link): Define.
8398         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
8399         type of link variables.
8400         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
8401         (try_combine, record_promoted_values, distribute_notes): Likewise.
8402         (distribute_links): Likewise.  Tweak prototype.
8403         (clear_log_links): Delete.
8404         (adjust_for_new_dest): Call alloc_insn_link.
8405         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
8407 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8409         * gcse.c (modify_mem_list): Convert to an array of VECs.
8410         (canon_modify_mem_list, compute_transp): Tweak formatting.
8411         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
8412         (load_killed_in_block_p): Likewise.
8413         (record_last_mem_set_info): Likewise.
8414         (clear_modify_mem_tables): Likewise.
8416 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8418         PR middle-end/48461
8419         * function.c (emit_use_return_register_into_block): Only define if
8420         HAVE_return.
8422 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
8424         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
8426 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
8428         * config/rx/rx-opts.h: New.
8429         * config/rx/rx.c (rx_cpu_type): Remove.
8430         (rx_handle_option): Don't assert that global structures are in
8431         use.  Access variables via opts pointer.  Defer most handling of
8432         OPT_mint_register_.  Use error_at.
8433         (rx_option_override): Handle deferred OPT_mint_register_ here.
8434         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
8435         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
8436         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
8437         (rx_cpu_types): New Enum and EnumValue entries.
8438         (mint-register=): Use Defer and use Var accordingly.
8440 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8442         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
8443         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
8444         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
8445         Move these...
8446         (debug_free_queue, debug_nesting, symbol_queue_index):
8447         ...and these...
8448         * dbxout.c: ...to here.  Make static.
8450 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8452         * gcse.c (modify_pair): Define.  Define a VEC of it.
8453         (canon_modify_mem_list): Convert to an array of VECs.
8454         (free_insn_expr_list_list): Delete.
8455         (clear_modify_mem_tables): Call VEC_free instead.
8456         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
8457         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
8458         (canon_list_insert, compute_transp): Likewise.
8460 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8462         PR target/43920
8463         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
8464         for size.
8466 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8468         PR target/43920
8469         * function.c (emit_use_return_register_into_block): New function.
8470         (thread_prologue_and_epilogue_insns): Use
8471         emit_use_return_register_into_block.
8473 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8475         PR target/43920
8476         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
8477         insn.
8479 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8481         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
8483 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
8485         * config/arm/arm.md (define_constants for unspec): Replace with
8486         define_c_enum.
8487         (define_constants for unspecv): Replace with define_c_enum.
8488         * config/arm/neon.md (define_constants for unspec): Replace with
8489         define_c_enum.
8491 2011-04-04  Richard Henderson  <rth@redhat.com>
8493         PR bootstrap/48400
8494         * dwarf2out.c (output_line_info): Always emit line info from
8495         at least one section.
8496         (dwarf2out_init): Create text_section_line_info here ...
8497         (set_cur_line_info_table): ... not here.
8499 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
8501         PR target/48380
8502         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
8503         not called.
8505         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
8507 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
8509         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
8510         (expr_equiv_p): Remove.
8511         (insert_set_in_table): Look at <dest, src> pair instead of expr.
8512         (hash_scan_set): Update call to insert_set_in_table.
8513         (dump_hash_table): Dump <dest, src> pair.
8514         (lookup_set): Simplify.  Lookup <dest, src> pair.
8515         (compute_transp): Remove, fold heavily simplified code into...
8516         (compute_local_properties): ...here.  Expect COMP and TRANSP
8517         unconditionally.
8518         (find_avail_set): Take set directly from struct expr.
8519         (find_bypass-set): Likewise.
8520         (bypass_block): Likewise.
8521         (cprop_insn): Likewise.  Remove redundant INSN_P test.
8523         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
8524         checks on form of COND from find_implicit_sets to here.
8525         (find_implicit_sets): Cleanup control flow. Split critical edges
8526         if it exposes implicit sets.  Allocate/resize implicit_sets as
8527         necessary.
8528         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
8529         changed something.  Run df_analyze after find_implicit_sets if any
8530         edges were split.  Do not allocate implicit_sets here.
8532         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
8533         (gcse_obstack): Renamed to cprop_obstack.
8534         (GNEW, GNEWVEC, GNEWVAR): Remove.
8535         (gmalloc): Remove.
8536         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
8537         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
8538         (gcse_alloc): Likewise, and rename to cprop_alloc.
8539         (alloc_gcse_men, free_gcse_mem): Remove.
8540         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
8541         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
8542         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
8544         * cprop.c (oprs_not_set_p): Remove.
8545         (mark_set, mark_clobber): Remove.
8546         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
8547         (reg_not_set_p): New function.
8548         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
8549         (cprop_insn): Likewise.
8550         (cprop_jump): Use FOR_EACH_EDGE.
8552 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
8554         PR bootstrap/48403
8555         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
8556         (rank_for_schedule): Use scheduled_insns vector instead of
8557         last_scheduled_insn.
8558         (ok_for_early_queue_removal): Likewise.
8559         (queue_to_ready): Search forward in nonscheduled_insns_begin if
8560         we have a dbg_cnt.
8561         (choose_ready): Likewise.
8562         (commit_schedule): Use VEC_iterate.
8563         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
8564         a dbg_cnt, use it and ensure the first insn is in the ready list.
8565         (haifa_sched_init): Allocate scheduled_insns.
8566         (sched_extend_ready_list): Don't allocate it; reserve space.
8567         (haifa_sched_finish): Free it.
8569 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
8571         * optc-gen.awk: Always remove type from Variable entry before
8572         recording in var_seen.
8574 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
8576         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
8577         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
8578         call to tidy_fallthru_edges.
8580 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
8582         * doc/options.texi (ToLower): Document.
8583         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
8584         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
8585         * opts.h (cl_option): Add cl_tolower field.
8586         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
8587         arguments with lowercase strings.
8588         * config/rx/rx.opt (mcpu=): Add ToLower.
8589         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
8590         argument.
8592 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
8594         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
8596 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
8598         * config/vax/vax.c: Include reload.h.
8600 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
8602         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
8603         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8604         (sparc_preferred_reload_class): New function.
8606 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
8608         PR debug/48401
8609         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8610         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
8612 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
8614         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
8615         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
8617 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
8619         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
8620         (ASM_OUTPUT_ALIGNED_BSS): Define.
8622 2011-04-03  Michael Matz  <matz@suse.de>
8624         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
8625         and next_slot members.
8626         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
8627         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
8628         (lto_streamer_cache_append): Declare.
8629         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
8630         unsigned index, remove offset parameter, ensure that we append
8631         or update existing entries.
8632         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
8633         parameter, update next_slot for append.
8634         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
8635         parameter.
8636         (lto_streamer_cache_insert_at): Likewise.
8637         (lto_streamer_cache_append): New function.
8638         (lto_streamer_cache_lookup): Use unsigned index.
8639         (lto_streamer_cache_get): Likewise.
8640         (lto_record_common_node): Don't test tree_node_can_be_shared.
8641         (preload_common_node): Adjust call to lto_streamer_cache_insert.
8642         (lto_streamer_cache_delete): Don't free offsets member.
8643         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
8644         (lto_output_string_with_length): Use lto_output_data_stream.
8645         (lto_output_tree_header): Remove ix parameter, don't write it.
8646         (lto_output_builtin_tree): Likewise.
8647         (lto_write_tree): Adjust callers to above, don't track and write
8648         offset, write unsigned index.
8649         (output_unreferenced_globals): Don't emit all global vars.
8650         (write_global_references): Use unsigned indices.
8651         (lto_output_decl_state_refs): Likewise.
8652         (write_symbol): Likewise.
8653         * lto-streamer-in.c (lto_input_chain): Move earlier.
8654         (input_function): Use unsigned index.
8655         (input_alias_pairs): Don't read and then ignore all global vars.
8656         (lto_materialize_tree): Remove ix_p parameter, don't read index,
8657         don't pass it back, use lto_streamer_cache_append.
8658         (lto_register_var_decl_in_symtab): Use unsigned index.
8659         (lto_register_function_decl_in_symtab): Likewise.
8660         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
8661         index.
8662         (lto_get_builtin_tree): Don't read index, use
8663         lto_streamer_cache_append.
8664         (lto_read_tree): Adjust call to lto_materialize_tree.
8666         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
8667         don't use function calls in arguments to MIN.
8669         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
8670         twice.
8672         * gimple.c (gimple_type_leader_entry): Mark deletable.
8674 2011-04-03  Alan Modra  <amodra@gmail.com>
8676         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
8678 2011-04-03  Michael Matz  <matz@suse.de>
8680         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
8681         an integer.
8682         * tree.h (tree_decl_non_common.vindex): Adjust comment.
8684 2011-04-03  Michael Matz  <matz@suse.de>
8686         * cgraphbuild.c (record_reference): Canonicalize constructor values.
8687         * gimple-fold.c (canonicalize_constructor_val): Accept being called
8688         without function context.
8689         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
8690         current_function_decl and cfun.
8692 2011-04-03  Michael Matz  <matz@suse.de>
8694         * tree.c (decl_init_priority_insert): Don't create entry for
8695         default priority.
8696         (decl_fini_priority_insert): Ditto.
8697         (fields_compatible_p, find_compatible_field): Remove.
8698         * tree.h (fields_compatible_p, find_compatible_field): Remove.
8699         * gimple.c (gimple_compare_field_offset): Adjust block comment.
8701 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
8703         * combine.c (try_combine): Remove useless local variable.
8705 2011-04-03  Richard Guenther  <rguenther@suse.de>
8706             Ira Rosen  <ira.rosen@linaro.org>
8708         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
8709         non-variable offsets and compare the remaining bases of the two
8710         accesses instead of looking for exact same data-ref.
8712 2011-04-02  Kai Tietz  <ktietz@redhat.com>
8714         PR target/48416
8715         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
8717         * i386.c (ix86_is_msabi_thiscall): New helper function.
8718         (ix86_is_type_thiscall): New helper function.
8719         (ix86_comp_type_attributes): Handle thiscall for method-functions
8720         special.
8721         (init_cumulative_args): Likewise.
8722         (find_drap_reg): Likewise.
8723         (ix86_static_chain): Likewise.
8724         (x86_this_parameter): Likewise.
8725         (x86_output_mi_thunk): Likewise.
8727 2011-04-01  Olivier Hainque  <hainque@adacore.com>
8728             Nicolas Setton  <setton@adacore.com>
8729             Eric Botcazou  <ebotcazou@adacore.com>
8731         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
8732         (add_gnat_descriptive_type_attribute): New function.
8733         (gen_array_type_die): Call it.
8734         (gen_enumeration_type_die): Likewise.
8735         (gen_struct_or_union_type_die): Likewise.
8736         (modified_type_die): Likewise.
8737         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
8738         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
8739         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
8741 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
8743         PR bootstrap/48148
8744         * dwarf2out.c (resolve_addr): Don't call force_decl_die
8745         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
8747         Revert:
8748         2011-03-17  Richard Guenther  <rguenther@suse.de>
8750         PR bootstrap/48148
8751         * lto-cgraph.c (input_overwrite_node): Clear the abstract
8752         origin for decls in other ltrans units.
8753         (input_varpool_node): Likewise.
8755 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
8757         PR middle-end/48335
8758         * expr.c (expand_assignment): Handle all possibilities
8759         if TO_RTX is CONCAT.
8760         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
8761         (store_split_bit_field): If SUBREG_REG (op0) or
8762         op0 itself has smaller mode than word, return it
8763         for offset 0 and const0_rtx for out-of-bounds stores.
8764         If word is const0_rtx, skip it.
8766 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
8768         * config/h8300/h8300.c (print_operand_address): Rename to...
8769         (h8300_print_operand_address): ...this. Make static. Adjust comments.
8770         Call h8300_print_operand and h8300_print_operand_address instead of
8771         print_operand and print_operand_address. Declare.
8772         (print_operand): Renake to...
8773         (h8300_print_operand): ...this. Make static. Adjust comments.
8774         Call h8300_print_operand instead of print_operand. Declare.
8775         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
8776         (h8300_register_move_cost): Likewise.
8777         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
8778         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
8779         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
8780         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
8781         * config/h8300/h8300-protos.h (print_operand): Delete.
8782         (print_operand_address): Delete.
8784 2011-04-01  Richard Henderson  <rth@redhat.com>
8786         PR 48400
8787         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
8788         in strict mode before dwarf4.  Re-order tests to early out
8789         before switching sections.
8791 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
8793         * config/h8300/constraints.md: New file.
8794         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
8795         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
8796         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
8797         * config/h8300/predicates.md (bit_operand): Likewise.
8798         (incdec_operand): Use satisfies_constraint_M and
8799         satisfies_constraint_O.  Don't use C code block.
8800         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
8801         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
8802         (compute_mov_length): Use satisfies_constraint_G.
8803         (fix_bit_operand): Use satisfies_constraint_U.
8804         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
8805         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
8806         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
8807         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
8808         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
8809         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
8810         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8811         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
8812         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
8813         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
8814         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
8815         (EXTRA_MEMORY_CONSTRAINT): Delete.
8817 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
8818             Michael Meissner  <meissner@linux.vnet.ibm.com>
8820         PR target/48262
8821         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
8822         operands, as per the specifications.
8824         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
8825         (vec_extract_evenv4sf): Ditto.
8826         (vec_extract_evenv8hi): Ditto.
8827         (vec_extract_evenv16qi): Ditto.
8828         (vec_extract_oddv4si): Ditto.
8830 2011-03-31  Mark Wielaard  <mjw@redhat.com>
8832         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
8833         high_pc attribute if the CU has no associated code. Only output
8834         DW_AT_entry_pc for CU if not generating strict dwarf and
8835         dwarf_version < 4.
8837 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
8839         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
8840         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
8841         out of ...
8842         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
8843         * final.c (final_start_function): Call the new function rather
8844         than using a NULL argument for dwarf2out_frame_debug.
8846         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
8847         that contains the prologue.
8849         * haifa-sched.c (queue_insn): New arg REASON.  All callers
8850         changed.  Print it in debugging output.
8852         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
8854         * sched-ebb.c (begin_schedule_ready): Remove second argument.
8855         Split most of the code into...
8856         (begin_move_insn): ... here.  New function.
8857         (ebb_sched_info): Add a pointer to it.
8858         * haifa-sched.c (scheduled_insns): New static variable.
8859         (sched_extend_ready_list): Allocate it.
8860         (schedule_block): Use it to record the order of scheduled insns.
8861         Perform RTL changes to move insns only after all scheduling
8862         decisions have been made.
8863         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
8864         begin_move_insn field.
8865         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
8866         * sched-int.h (struct haifa_sched_info): Remove second argument
8867         from begin_schedule_ready hook.  Add new member begin_move_insn.
8868         * sched-rgn.c (begin_schedule_ready): Remove second argument.
8869         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
8871         * haifa-sched.c (prune_ready_list): New function, broken out of
8872         schedule_block.
8873         (schedule_block): Use it.
8875 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8877         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
8879 2011-04-01  Kai Tietz  <ktietz@redhat.com>
8881         * config.gcc (*-*-mingw*): Allow as option the
8882         posix threading model.
8883         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
8884         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
8885         definition.
8886         (CPP_SPEC): Add pthread/no-pthread handling.
8887         (LIB_SPEC): Likewise.
8888         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8889         (LIB_SPEC): Likewise.
8890         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8891         flag to pass -pthread option for shared libgcc build.
8892         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8893         for shared libgcc build.
8894         * config/i386/t-mingw-pthread: New file.
8895         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8896         New define to enable use of library pthread by default.
8897         * config/i386/mingw.opt (pthread): New driver option.
8898         (no-pthread): New driver option.
8899         * config/i386/cygming.opt: Make sure trailing empty line is retained.
8900         * config/i386/mingw-w64.opt: Likewise.
8902 2011-04-01  Gary Funck  <gary@intrepid.com>
8904         * c-decl.c (grokdeclarator): Fix formatting.
8906 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8908         * expr.c (emit_block_move_via_movmem): Use n_generator_args
8909         instead of n_operands.
8910         (set_storage_via_setmem): Likewise.
8911         * optabs.c (maybe_gen_insn): Likewise.
8912         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8913         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8914         (mips_expand_builtin_direct): Likewise.
8915         * config/spu/spu.c (expand_builtin_args): Likewise.
8917 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8919         * recog.h (insn_data_d): Add n_generator_args.
8920         * genoutput.c (data): Likewise.
8921         (output_insn_data): Print it.
8922         (max_opno, num_dups): Delete.
8923         (scan_operands): Just fill in "d->operand[...]".
8924         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8926 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8928         * gensupport.h (pattern_stats): New structure.
8929         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8930         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8931         (max_operand_1, max_operand_vec): Delete.
8932         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8934 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
8936         * emit-rtl.c (emit_pattern_after_setloc): New function.
8937         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8938         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8939         (emit_pattern_after): New function.
8940         (emit_insn_after, emit_jump_insn_after): Call it.
8941         (emit_call_insn_after, emit_debug_insn_after): Likewise.
8942         (emit_pattern_before_setloc): New function.
8943         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8944         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8945         Likewise.
8946         (emit_pattern_before): New function.
8947         (emit_insn_before, emit_jump_insn_before): Call it.
8948         (emit_call_insn_before, emit_debug_insn_before): Likewise.
8950 2011-03-31  Richard Henderson  <rth@redhat.com>
8952         * dwarf2out.c (dw_separate_line_info_ref): Remove.
8953         (dw_separate_line_info_entry): Remove.
8954         (enum dw_line_info_opcode): New.
8955         (dw_line_info_entry): Use it.
8956         (dw_line_info_table, dw_line_info_table_p): New.
8957         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8958         (line_info_table, line_info_label_num): Remove.
8959         (line_info_table_in_use): Remove.
8960         (separate_line_info_table): Remove.
8961         (separate_line_info_table_allocated): Remove.
8962         (separate_line_info_table_in_use): Remove.
8963         (LINE_INFO_TABLE_INCREMENT): Remove.
8964         (line_info_label_num): New.
8965         (cur_line_info_table): New.
8966         (text_section_line_info, cold_text_section_line_info): New.
8967         (separate_line_info): New.
8968         (SEPARATE_LINE_CODE_LABEL): Remove.
8969         (print_dwarf_line_table): Remove.
8970         (debug_dwarf): Don't dump it.
8971         (output_one_line_info_table): New.
8972         (output_line_info): Use it.
8973         (new_line_info_table): New.
8974         (set_cur_line_info_table): New.
8975         (dwarf2out_switch_text_section): Use it.
8976         (dwarf2out_begin_function): Likewise.
8977         (push_dw_line_info_entry): New.
8978         (dwarf2out_source_line): Rewrite for new line info tables.
8979         (dwarf2out_init): Remove dead initailizations.
8981 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8983         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
8984         various flags.
8985         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8986         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8987         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8988         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8989         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8990         * opt-functions.awk (flag_init, switch_bit_fields): New.
8991         (switch_flags): Don't handle flags moved to bit-fields.  Don't
8992         generate CL_MISSING_OK or CL_SAVE.
8993         * optc-gen.awk: Update to generate bit-field output as well as
8994         flags field.
8995         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8996         bit-field instead of CL_REJECT_DRIVER flag.
8997         * opts-common.c (generate_canonical_option,
8998         decode_cmdline_option): Use bit-fields instead of CL_* flags.
8999         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
9000         instead of CL_REJECT_NEGATIVE flag.
9001         * toplev.c (print_switch_values): Use cl_report bit-field instead
9002         of CL_REPORT flag.
9004 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
9006         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
9007         a zero minimum index only if it is redundant.
9009 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
9011         PR rtl-optimization/48381
9012         * ira-color.c (assign_hard_reg): Use hard reg set intersection
9013         instead of ira_class_hard_reg_index for calculating conflicting
9014         hard registers.
9016 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
9018         * cprop.c: Clean up hash table building.
9019         (reg_avail_info): Remove.
9020         (oprs_available_p): Remove.
9021         (record_last_reg_set_info): Remove.
9022         (record_last_set_info): Remove.
9023         (reg_available_p): New function.
9024         (gcse_constant_p): Do not treat unfolded conditions as constants.
9025         (make_set_regs_unavailable): New function.
9026         (hash_scan_set): Simplify with new reg_available_p.
9027         (compute_hash_table_work): Traverse insns stream only once.
9028         Do not compute reg_avail_info. Traverse insns in reverse order.
9029         Record implicit sets after recording explicit sets from the block.
9031 2011-03-31  Michael Matz  <matz@suse.de>
9033         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
9035 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
9037         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
9038         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
9039         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9040         (h8300_mode_dependent_address_p): New function.
9041         (h8300_get_index): Make static.
9043 2011-03-31  Jeff Law  <law@redhat.com>
9045         * reload1.c (elimination_effects): Fix typo in recent change.
9047         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
9048         typo potentially leading to null pointer dereference.
9050         * caller-save.c (new_saved_hard_reg): Eliminate return value.
9051         (setup_save_areas): Corresponding changes to avoid useless
9052         assignments.
9054         * jump.c (reversed_comparison_code_parts): Avoid successive return
9055         statements when REVERSE_CONDITION is defined.
9057         * expr.c (expand_assignment): Avoid useless assignments.
9058         (expand_expr_real_1): Likewise.
9059         (expand_expr_real_2): Avoid useless statements.
9061         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
9063         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
9065         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
9066         statements.
9068         * stmt.c (expand_expr_stmt): Avoid useless assignment.
9070 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
9072         PR target/47109
9073         * doc/tm.texi.in (TARGET_VERSION): Remove.
9074         * doc/tm.texi: Regenerate.
9075         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
9076         * collect2.c (main): Don't use TARGET_VERSION.
9077         * mips-tdump.c (main): Don't use TARGET_VERSION.
9078         * mips-tfile.c (main): Don't use TARGET_VERSION.
9079         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
9080         * config/rs6000/vxworksae.h: Remove.
9081         * config/alpha/alpha.h (TARGET_VERSION): Remove.
9082         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
9083         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
9084         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
9085         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
9086         * config/arm/arm.h (TARGET_VERSION): Remove.
9087         * config/arm/coff.h (TARGET_VERSION): Remove.
9088         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
9089         * config/arm/elf.h (TARGET_VERSION): Remove.
9090         * config/arm/freebsd.h (TARGET_VERSION): Remove.
9091         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
9092         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
9093         * config/arm/pe.h (TARGET_VERSION): Remove.
9094         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
9095         * config/arm/semi.h (TARGET_VERSION): Remove.
9096         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
9097         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
9098         * config/arm/vxworks.h (TARGET_VERSION): Remove.
9099         * config/avr/avr.h (TARGET_VERSION): Remove.
9100         * config/bfin/bfin.h (TARGET_VERSION): Remove.
9101         * config/fr30/fr30.h (TARGET_VERSION): Remove.
9102         * config/frv/frv.h (TARGET_VERSION): Remove.
9103         * config/h8300/h8300.h (TARGET_VERSION): Remove.
9104         * config/i386/cygwin.h (TARGET_VERSION): Remove.
9105         * config/i386/darwin.h (TARGET_VERSION): Remove.
9106         * config/i386/darwin64.h (TARGET_VERSION): Remove.
9107         * config/i386/djgpp.h (TARGET_VERSION): Remove.
9108         * config/i386/freebsd.h (TARGET_VERSION): Remove.
9109         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
9110         * config/i386/gnu.h (TARGET_VERSION): Remove.
9111         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
9112         * config/i386/i386elf.h (TARGET_VERSION): Remove.
9113         * config/i386/linux.h (TARGET_VERSION): Remove.
9114         * config/i386/linux64.h (TARGET_VERSION): Remove.
9115         * config/i386/lynx.h (TARGET_VERSION): Remove.
9116         * config/i386/mingw32.h (TARGET_VERSION): Remove.
9117         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
9118         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
9119         * config/i386/netware.h (TARGET_VERSION): Remove.
9120         * config/i386/nto.h (TARGET_VERSION): Remove.
9121         * config/i386/openbsd.h (TARGET_VERSION): Remove.
9122         * config/i386/vxworks.h (TARGET_VERSION): Remove.
9123         * config/ia64/elf.h (TARGET_VERSION): Remove.
9124         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
9125         * config/ia64/hpux.h (TARGET_VERSION): Remove.
9126         * config/ia64/linux.h (TARGET_VERSION): Remove.
9127         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
9128         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
9129         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
9130         * config/lm32/lm32.h (TARGET_VERSION): Remove.
9131         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
9132         * config/m32c/m32c.h (TARGET_VERSION): Remove.
9133         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
9134         * config/m32r/m32r.h (TARGET_VERSION): Remove.
9135         * config/m68k/linux.h (TARGET_VERSION): Remove.
9136         * config/m68k/m68k.h (TARGET_VERSION): Remove.
9137         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
9138         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
9139         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
9140         * config/mep/mep.h (TARGET_VERSION): Remove.
9141         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
9142         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
9143         * config/mips/iris6.h (MACHINE_TYPE): Remove.
9144         * config/mips/linux.h (TARGET_VERSION): Remove.
9145         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
9146         * config/mips/vxworks.h (TARGET_VERSION): Remove.
9147         * config/mmix/mmix.h (TARGET_VERSION): Remove.
9148         * config/mn10300/linux.h (TARGET_VERSION): Remove.
9149         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
9150         * config/pa/pa.h (TARGET_VERSION): Remove.
9151         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
9152         * config/picochip/picochip.h (TARGET_VERSION): Remove.
9153         * config/rs6000/aix.h (TARGET_VERSION): Remove.
9154         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
9155         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
9156         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
9157         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
9158         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
9159         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
9160         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
9161         * config/rs6000/linux.h (TARGET_VERSION): Remove.
9162         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
9163         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
9164         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
9165         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
9166         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
9167         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
9168         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
9169         * config/s390/linux.h (TARGET_VERSION): Remove.
9170         * config/s390/s390.h (TARGET_VERSION): Remove.
9171         * config/s390/tpf.h (TARGET_VERSION): Remove.
9172         * config/score/score.h (TARGET_VERSION): Remove.
9173         * config/sh/linux.h (TARGET_VERSION): Remove.
9174         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
9175         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
9176         * config/sh/sh.h (TARGET_VERSION): Remove.
9177         * config/sh/sh64.h (TARGET_VERSION): Remove.
9178         * config/sh/superh.h (TARGET_VERSION): Remove.
9179         * config/sh/vxworks.h (TARGET_VERSION): Remove.
9180         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
9181         * config/sparc/linux.h (TARGET_VERSION): Remove.
9182         * config/sparc/linux64.h (TARGET_VERSION): Remove.
9183         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
9184         TARGET_NAME32, TARGET_NAME): Remove.
9185         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
9186         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
9187         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
9188         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
9189         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
9190         * config/spu/spu.h (TARGET_VERSION): Remove.
9191         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
9192         * config/v850/v850.h (TARGET_VERSION): Remove.
9193         * config/vax/linux.h (TARGET_VERSION): Remove.
9194         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
9195         * config/xtensa/elf.h (TARGET_VERSION): Remove.
9196         * config/xtensa/linux.h (TARGET_VERSION): Remove.
9198 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
9200         PR target/48142
9201         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
9202         frame-related from frame-unrelated adjustments to the stack pointer.
9204 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
9206         * common.opt (fdebug-types-section): Move earlier.
9207         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
9209 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
9211         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
9212         var.
9214 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
9216         * tree.h (CASE_CHAIN): Define.
9217         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
9218         (gimple_redirect_edge_and_branch): Likewise.
9220 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9222         PR middle-end/48367
9223         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
9224         calculation.
9226 2011-03-30  Jeff Law  <law@redhat.com>
9228         * PR bootstrap/48371
9229         * reload1.c (reload): Fix botch in last change.
9231         * reload.h (struct reload): Fix typo introduced in last change.
9233 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
9235         * config/arm/arm.opt (mhard-float, msoft-float): Mark
9236         Undocumented.  Remove help text.
9237         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
9238         -mhard-float.
9240 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
9242         * doc/options.texi (NegativeAlias): Document.
9243         (Alias): Mention NegativeAlias.
9244         * opt-functions.awk: Handle NegativeAlias.
9245         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
9246         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
9247         * opts.h (CL_NEGATIVE_ALIAS): Define.
9248         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
9249         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
9250         OPT_mspe_.
9251         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
9252         Alias entries.
9253         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9254         mno-spe and mno-isel instead of mspe=no and -misel=no.
9256 2011-03-29  Mark Wielaard  <mjw@redhat.com>
9258         * common.opt (fdebug-types-section): New flag.
9259         * doc/invoke.texi: Document new -fno-debug-types-section flag.
9260         * dwarf2out.c (use_debug_types): New define.
9261         (struct die_struct): Mark die_id with GTY desc use_debug_types.
9262         (print_die): Guard output of type unit signatures using
9263         use_debug_types.
9264         (build_abbrev_table): Replace assert of dwarf_version >= 4
9265         with assert on use_debug_types.
9266         (size_of_die): Likewise.
9267         (unmark_dies): Likewise.
9268         (value_format): Decide AT_ref_external form on use_debug_types.
9269         (output_die): Replace dwarf_version version check guard with
9270         use_debug_types where appropriate.
9271         (modified_type_die): Likewise.
9272         (gen_reference_type_die): Likewise.
9273         (dwarf2out_start_source_file): Likewise.
9274         (dwarf2out_end_source_file): Likewise.
9275         (prune_unused_types_walk_attribs): Likewise.
9276         (dwarf2out_finish): Likewise.
9278 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9280         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
9282 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
9284         PR rtl-optimization/48332
9285         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
9286         mode of input operand N and modeN to its actual mode.
9288 2011-03-30  Jeff Law  <law@redhat.com>
9290         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
9291         define accessor macro.
9292         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
9293         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
9294         (reg_equiv_init): Likewise.
9295         (reg_equivs_size): New variable.
9296         (reg_equiv_init_size): Remove.
9297         (allocate_initial_values): Move prototype to here from....
9298         * integrate.h (allocate_initial_values): Remove prototype.
9299         * integrate.c: Include reload.h.
9300         (allocate_initial_values): Corresponding changes.
9301         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
9302         (fix_reg_equiv_init, no_equiv): Corresponding changes.
9303         (update_equiv_regs): Corresponding changes.
9304         (ira): Corresponding changes.
9305         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
9306         (push_secondary_reload): Corresponding changes.
9307         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
9308         (make_memloc, find_reloads_address): Corresponding changes.
9309         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
9310         (find_reloads_address_1): Corresponding changes.
9311         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
9312         (refers_to_regno_for_reload_p): Corresponding changes.
9313         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
9314         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
9315         * reload1.c: Include ggc.h.
9316         (grow_reg_equivs): New function.
9317         (replace_pseudos_in, reload): Corresponding changes.
9318         (calculate_needs_all_insns, alter_regs): Corresponding changes.
9319         (eliminate_regs_1, elimination_effects): Corresponding changes.
9320         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
9321         (delete_output_reload): Likewise.
9322         * caller-save.c (mark_referenced_regs): Corresponding changes.
9323         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
9324         * frv/predicates.md (frv_load_operand): Corresponding changes.
9325         * microblaze/microblaze.c (double_memory_operand): Corresponding
9326         changes.
9327         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
9328         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
9329         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
9330         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
9331         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
9332         changes.
9333         * pa/pa.c (emit_move_sequence): Corresponding changes.
9334         * vax/vax.c (nonindexed_address_p): Corresponding changes.
9336 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
9338         PR target/47551
9339         * config/arm/arm.c (coproc_secondary_reload_class): Handle
9340         structure modes.  Don't check neon_vector_mem_operand for
9341         vector or structure modes.
9343 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
9344             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9346         PR target/43590
9347         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
9348         operand 1 and reshuffle the operands to match.
9349         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
9351 2011-03-30  Christian Schüler  <cschueler@gmx.de>
9353         PR driver/48208
9354         * config/c.opt (F): Added 'Driver' to -F option.
9356         PR driver/48260
9357         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
9358           handler function.
9359         * config/darwin.opt: Added '-arch' option.
9361 2011-03-30  Nick Clifton  <nickc@redhat.com>
9363         * config/rx/rx.md: Add peepholes and patterns to combine
9364         extending loads and simple arithmetic instructions.
9365         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
9366         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
9367         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
9368         modes to use pre-decrement and post-increment addressing.
9369         (rx_is_restricted_memory_address): Add range checking of REG+INT
9370         addresses.
9371         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
9372         (rx_memory_move_cost): Adjust cost of stores.
9373         (rx_adjust_insn_length): New function.
9375 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
9377         PR c/48305
9378         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9379         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
9380         matching arg00/arg01 types.
9382 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
9384         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
9385         last_location to UNKNOWN_LOCATION.
9387 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9389         PR target/48349
9390         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
9391         FLOAT_SSE_REGS.
9393 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
9394             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9396         PR bootstrap/48337
9397         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
9398         Init(PROCESSOR_V7).
9399         (sparc_cpu): Likewise.
9400         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
9401         PROCESSOR_V7.
9403 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9405         PR target/48336
9406         PR middle-end/48342
9407         PR rtl-optimization/48345
9408         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
9409         hard regs for given mode from profitable regs when doing secondary
9410         allocation.
9412 2011-03-29  Jeff Law  <law@redhat.com>
9414         PR bootstrap/48327
9415         * tree-ssa-threadupdate.c (struct redirection_data): Remove
9416         do_not_duplicate field.
9417         (lookup_redirection_data): Corresponding changes.
9418         (create_duplicates): Always create a template block.
9419         (redirect_edges): Remove code which reused the original block
9420         when it was going to become unreachable code.
9421         (thread_block): Don't set do_not_duplicate field.
9423 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
9425         * lto-opts.c (register_user_option_p, lto_register_user_option):
9426         Make type argument unsigned.
9427         * lto-streamer.h (lto_register_user_option): Make type argument
9428         unsigned.
9429         * opth-gen.awk: Make CL_* macros unsigned.
9430         * opts-common.c (find_opt): Make lang_mask argument unsigned.
9431         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
9432         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
9433         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
9434         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
9435         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
9436         (find_opt): Make lang_mask argument unsigned.
9438 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9440         PR rtl-optimization/48331
9441         PR rtl-optimization/48334
9442         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
9443         for any used algorithm.
9445 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9447         * ira-conflicts.c (build_object_conflicts): Add unused attribute
9448         to parent_max.
9450 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
9452         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
9453         (alpha_option_override): Don't set alpha_sr_alias_set.
9454         (emit_frame_store_1): Use gen_frame_mem rather than calling
9455         set_mem_alias_set.
9456         (alpha_expand_epilogue): Ditto.
9458 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
9460         PR tree-optimization/48290
9461         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
9462         vectorization, check that relevant phis in the basic block after
9463         the inner loop are really inner loop's exit phis.
9465 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
9467         PR debug/48190
9468         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
9469         (cached_dw_loc_list_def): New structure.
9470         (cached_dw_loc_list): New typedef.
9471         (cached_dw_loc_list_table): New variable.
9472         (cached_dw_loc_list_table_hash): New function.
9473         (cached_dw_loc_list_table_eq): Likewise.
9474         (add_location_or_const_value_attribute): Take a bool cache_p.
9475         Cache the list when the parameter is true.
9476         (gen_formal_parameter_die): Update caller.
9477         (gen_variable_die): Likewise.
9478         (dwarf2out_finish): Likewise.
9479         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
9480         while generating debug info for the decl.
9481         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
9482         (dwarf2out_init): Initialize cached_dw_loc_list_table.
9483         (resolve_addr): Cache the result of resolving a chain of
9484         location lists.
9486 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
9488         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
9489         conflict object hard regset nodes have intersecting hard reg sets.
9491         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
9492         after regstat_init_n_sets_and_refs.
9494         * ira.c: Add more comments at the top.
9495         (setup_stack_reg_pressure_class, setup_pressure_classes):
9496         Add comments how we compute the register pressure classes.
9497         (setup_allocno_and_important_classes): Add more comments.
9498         (setup_class_translate_array, reorder_important_classes)
9499         (setup_reg_class_relations): Add comments.
9501         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
9502         start of the file.
9504         * ira-color.c: Add 2011 to the Copyright line.
9505         (assign_hard_reg):  Add more comments.
9506         (improve_allocation): Ditto.
9508         * ira-costs.c: Add 2011 to the Copyright line.
9509         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
9510         comments.
9511         (setup_regno_cost_classes_by_mode): Ditto.
9513         Initial patches from ira-improv branch:
9515         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
9517         * ira-build.c (ira_create_object): Remove initialization of
9518         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
9519         (ira_create_allocno): Remove initialization of
9520         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
9521         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
9522         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
9523         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
9524         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
9525         Initialize ALLOCNO_ADD_DATA.
9526         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
9527         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
9528         ALLOCNO_REG.
9529         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
9530         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
9532         * ira.c (ira_reallocate): Remove.
9533         (setup_pressure_classes): Call
9534         ira_init_register_move_cost_if_necessary.  Use
9535         ira_register_move_cost instead of ira_get_register_move_cost.
9536         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
9537         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
9539         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
9540         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
9541         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
9542         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
9543         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
9544         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
9545         Fix formatting.
9546         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
9547         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9548         (struct allocno_color_data): New.
9549         (allocno_color_data_t): New typedef.
9550         (allocno_color_data): New definition.
9551         (ALLOCNO_COLOR_DATA): New macro.
9552         (struct object_color_data): New.
9553         (object_color_data_t): New typedef.
9554         (object_color_data): New definition.
9555         (OBJECT_COLOR_DATA): New macro.
9556         (update_copy_costs, calculate_allocno_spill_cost): Call
9557         ira_init_register_move_cost_if_necessary.  Use
9558         ira_register_move_cost instead of ira_get_register_move_cost.
9559         (move_spill_restore, update_curr_costs): Ditto.
9560         (allocno_spill_priority): Make it inline.
9561         (color_pass): Allocate and free allocno_color_dat and object_color_data.
9562         (struct coalesce_data, coalesce_data_t): New.
9563         (allocno_coalesce_data): New definition.
9564         (ALLOCNO_COALESCE_DATA): New macro.
9565         (merge_allocnos, coalesced_allocno_conflict_p): Use
9566         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
9567         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
9568         (coalesce_allocnos): Ditto.
9569         (setup_coalesced_allocno_costs_and_nums): Ditto.
9570         (collect_spilled_coalesced_allocnos): Ditto.
9571         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
9572         (setup_slot_coalesced_allocno_live_ranges): Ditto.
9573         (coalesce_spill_slots): Ditto.
9574         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
9575         free allocno_coalesce_data.
9577         * ira-conflicts.c: Fix formatting.
9578         (process_regs_for_copy): Call
9579         ira_init_register_move_cost_if_necessary.  Use
9580         ira_register_move_cost instead of ira_get_register_move_cost.
9581         (build_object_conflicts): Optimize.
9583         * ira-costs.c (record_reg_classes): Optimize.  Call
9584         ira_init_register_move_cost_if_necessary.  Use
9585         ira_register_move_cost, ira_may_move_in_cost, and
9586         ira_may_move_out_cost instead of ira_get_register_move_cost and
9587         ira_get_may_move_cost.
9588         (record_address_regs): Ditto.
9589         (scan_one_insn): Optimize.
9590         (find_costs_and_classes): Optimize.
9591         (process_bb_node_for_hard_reg_moves): Call
9592         ira_init_register_move_cost_if_necessary.  Use
9593         ira_register_move_cost instead of ira_get_register_move_cost.
9595         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
9596         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
9597         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
9598         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
9599         definitions.
9600         (ira_initiate_emit_data, ira_finish_emit_data)
9601         (create_new_allocno): New functions.
9602         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
9603         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
9604         Use ira_register_move_cost instead of ira_get_register_move_cost.
9606         * ira-int.h: Fix some comments.
9607         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
9608         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9609         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
9610         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
9611         add_data.
9612         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
9613         bitfield after mode.  Make hard_regno a short int.  Make
9614         hard_regno short.  Remove first_coalesced_allocno and
9615         next_coalesced_allocno.  Move mem_optimized_dest_p,
9616         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
9617         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
9618         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
9619         temp, colorable_p.  Add new member add_data.
9620         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
9621         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
9622         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
9623         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
9624         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
9625         (ALLOCNO_ADD_DATA): New macro.
9626         (ira_emit_data_t): New typedef.
9627         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
9628         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
9629         from struct ira_allocno.
9630         (ALLOCNO_EMIT_DATA): New macro.
9631         (ira_allocno_emit_data, allocno_emit_reg): New.
9632         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
9633         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
9634         (OBJECT_ADD_DATA): New macro.
9635         (ira_reallocate): Remove.
9636         (ira_initiate_emit_data, ira_finish_emit_data): New.
9637         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
9638         (ira_init_register_move_cost_if_necessary): New.
9639         (ira_object_conflict_iter_next): Merge into
9640         ira_object_conflict_iter_cond.
9641         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
9643         * ira-live.c (process_single_reg_class_operands): Call
9644         ira_init_register_move_cost_if_necessary.  Use
9645         ira_register_move_cost instead of ira_get_register_move_cost.
9647         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
9649         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
9651         * ira-costs.c: Fix formatting.
9652         (cost_classes, cost_classes_num): Remove.
9653         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
9654         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
9655         (cost_classes_del, cost_classes_htab): New.
9656         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
9657         (initiate_regno_cost_classes, setup_cost_classes): New.
9658         (setup_regno_cost_classes_by_aclass): New.
9659         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
9660         (record_reg_classes): Use regno_cost_classes instead of
9661         cost_classes.  Move checking opposite operand up.
9662         (record_address_regs): Use regno_cost_classes
9663         instead of cost_classes.
9664         (scan_one_insn): Ditto.  Use always general register.
9665         (print_allocno_costs): Use regno_cost_classes instead of
9666         cost_classes.
9667         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
9668         (find_costs_and_classes): Set up cost classes for each registers.
9669         Use also their mode for this.  Use regno_cost_classes instead of
9670         cost_classes.
9671         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
9672         cost_classes.
9673         (free_ira_costs, ira_init_costs): Don't use cost_classes.
9674         (ira_costs, ira_set_pseudo_classes): Call
9675         initiate_regno_cost_classes and finish_regno_cost_classes.
9677         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9679         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
9681         * target.def (ira_cover_classes): Remove.
9683         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
9685         * doc/tm.texi.in: Ditto.
9687         * ira-conflicts.c: Remove mentioning cover classes from the file.
9688         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
9689         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
9691         * targhooks.c (default_ira_cover_classes): Remove.
9693         * targhooks.h (default_ira_cover_classes): Ditto.
9695         * haifa-sched.c: Remove mentioning cover classes from the file.
9696         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9697         ira_pressure_classes and ira_pressure_classes_num instead of
9698         ira_reg_class_cover_size and ira_reg_class_cover.  Use
9699         sched_regno_pressure_class instead of sched_regno_cover_class.
9700         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
9701         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9703         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
9704         classes from the file.
9705         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
9706         (struct object_hard_regs, struct object_hard_regs_node): New.
9707         (struct ira_object): New members profitable_hard_regs,
9708         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
9709         (struct ira_allocno): Rename cover_class to aclass.  Rename
9710         cover_class_cost and updated_cover_class_cost to class_cost and
9711         updated_class_cost.  Remove splay_removed_p and
9712         left_conflict_size.  Add new members colorable_p.
9713         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
9714         (ALLOCNO_COLORABLE_P): New macro.
9715         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
9716         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
9717         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
9718         (OBJECT_...): Rename parameter C to O.
9719         (OBJECT_PROFITABLE_HARD_REGS): New macro.
9720         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
9721         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
9722         (struct target_ira_int): New members x_ira_max_memory_move_cost,
9723         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
9724         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
9725         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
9726         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
9727         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
9728         x_ira_reg_class_subunion.
9729         (ira_max_memory_move_cost, ira_max_register_move_cost)
9730         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
9731         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
9732         (ira_important_class_nums, ira_reg_class_superunion): New macros.
9733         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
9734         (ira_reg_class_union): Rename to ira_reg_class_subunion.
9735         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9736         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9737         (ira_tune_allocno_costs_and_cover_classes): Rename to
9738         ira_tune_allocno_costs.
9739         (ira_debug_hard_regs_forest): New.
9740         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
9741         (ira_object_conflict_iter_next): Fix comments.
9742         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
9743         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
9744         cover_class to aclass.
9745         (ira_allocate_and_accumulate_costs): Ditto.
9746         (ira_allocate_and_set_or_copy_costs): Ditto.
9748         * opts.c (decode_options): Remove ira_cover_class check.
9750         * ira-color.c: Remove mentioning cover classes from the file.  Use
9751         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
9752         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
9753         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
9754         (splay-tree.h): Remove include.
9755         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
9756         before copy_freq_compare_func.
9757         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
9758         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
9759         New definitions.
9760         (hard_regs_roots, hard_regs_node_vec): Ditto.
9761         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
9762         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
9763         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
9764         (create_new_object_hard_regs_node): Ditto.
9765         (add_new_object_hard_regs_node_to_forest): Ditto.
9766         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
9767         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
9768         Ditto.
9769         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
9770         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
9771         (remove_unused_object_hard_regs_nodes): Ditto.
9772         (enumerate_object_hard_regs_nodes): Ditto.
9773         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
9774         (object_hard_regs_subnode_t): Ditto.
9775         (struct object_hard_regs_subnode): Ditto.
9776         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
9777         (setup_object_hard_regs_subnode_index): Ditto.
9778         (get_object_hard_regs_subnodes_num): Ditto.
9779         (form_object_hard_regs_nodes_forest): Ditto.
9780         (finish_object_hard_regs_nodes_tree): Ditto.
9781         (finish_object_hard_regs_nodes_forest): Ditto.
9782         (allocnos_have_intersected_live_ranges_p): Rename to
9783         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
9784         (pseudos_have_intersected_live_ranges_p): Rename to
9785         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
9786         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
9787         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
9788         (update_copy_costs): Remove assert.  Skip cost update if the hard
9789         reg does not belong the class.
9790         (assign_hard_reg): Process only profitable hard regs.
9791         (uncolorable_allocnos_num): Make it scalar.
9792         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
9793         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
9794         and ira_reg_class_max_nregs.
9795         (bucket_allocno_compare_func): Check frequency first.
9796         (sort_bucket): Add compare function as a parameter.
9797         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
9798         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
9799         (push_allocno_to_stack): Rewrite for checking new allocno
9800         colorability.
9801         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
9802         (push_only_colorable): Pass new parameter to sort_bucket.
9803         (push_allocno_to_spill): Remove.
9804         (allocno_spill_priority_compare): Make it inline and rewrite.
9805         (splay_tree_allocate, splay_tree_free): Remove.
9806         (allocno_spill_sort_compare): New function.
9807         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
9808         build and use splay tree.  Choose first allocno in uncolorable
9809         allocno bucket to spill.  Remove setting spill cost.
9810         (all_conflicting_hard_regs): Remove.
9811         (setup_allocno_available_regs_num): Check only profitable hard
9812         regs.  Print info about hard regs nodes.
9813         (setup_allocno_left_conflicts_size): Remove.
9814         (put_allocno_into_bucket): Don't call
9815         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
9816         (improve_allocation): New.
9817         (color_allocnos): Call setup_profitable_hard_regs,
9818         form_object_hard_regs_nodes_forest, improve_allocation,
9819         finish_object_hard_regs_nodes_forest.  Setup spill cost.
9820         (print_loop_title): Use pressure classes.
9821         (color_allocnso): Ditto.
9822         (do_coloring): Remove allocation and freeing splay_tree_node_pool
9823         and allocnos_for_spilling.
9824         (ira_sort_regnos_for_alter_reg): Don't setup members
9825         {first,next}_coalesced_allocno.
9826         (color): Remove allocating and freeing removed_splay_allocno_vec.
9827         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
9828         prohibited_class_mode_regs.
9830         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
9831         formatting.
9832         (update_allocno_pressure_excess_length): Use pressure classes.
9833         (inc_register_pressure, dec_register_pressure): Check for pressure
9834         class.
9835         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
9836         pressure class.  Use ira_reg_class_nregs instead of
9837         ira_reg_class_max_nregs.
9838         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
9839         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
9840         (single_reg_class): Use ira_reg_class_nregs instead of
9841         ira_reg_class_max_nregs.
9842         (process_bb_node_lives): Use pressure classes.
9844         * ira-emit.c: Remove mentioning cover classes from the file.  Use
9845         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
9846         (change_loop): Use pressure classes.
9847         (modify_move_list): Call ira_set_allocno_class instead of
9848         ira_set_allocno_cover_class.
9850         * ira-build.c: Remove mentioning cover classes from the file.  Use
9851         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
9852         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
9853         ALLOCNO_UPDATED_CLASS_COST instead of
9854         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
9855         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
9856         (ira_create_allocno): Remove initialization of
9857         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
9858         ALLOCNO_COLORABLE_P.
9859         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9860         Update conflict regs for the objects.
9861         (create_cap_allocno): Remove assert.  Don't propagate
9862         ALLOCNO_AVAILABLE_REGS_NUM.
9863         (ira_free_allocno_costs): New function.
9864         (finish_allocno): Change a part of code into call of
9865         ira_free_allocno_costs.
9866         (low_pressure_loop_node_p): Use pressure classes.
9867         (object_range_compare_func): Don't compare classes.
9868         (setup_min_max_conflict_allocno_ids): Ditto.
9870         * loop-invariant.c: Remove mentioning cover classes from the file.
9871         Use ira_pressure_classes and ira_pressure_classes_num instead of
9872         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
9873         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
9874         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9875         Use reg_allocno_class instead of reg_cover_class.
9876         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
9877         STACK_REG_COVER_CLASS.
9878         (get_regno_cover_class): Rename to get_regno_pressure_class.
9879         (move_loop_invariants): Initialize and finalize regstat.
9881         * ira.c: Remove mentioning cover classes from the file.  Add
9882         comments about coloring without cover classes.  Use ALLOCNO_CLASS
9883         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
9884         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
9885         setup_class_subset_and_memory_move_costs.
9886         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9887         (setup_cover_and_important_classes): Rename to
9888         setup_allocno_and_important_classes.
9889         (setup_class_translate_array): New.
9890         (setup_class_translate): Call it for allocno and pressure classes.
9891         (cover_class_order): Rename to allocno_class_order.
9892         (comp_reg_classes_func): Use ira_allocno_class_translate instead
9893         of ira_class_translate.
9894         (reorder_important_classes): Set up ira_important_class_nums.
9895         (setup_reg_class_relations): Set up ira_reg_class_superunion.
9896         (print_class_cover): Rename to print_classes.  Add parameter.
9897         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9898         Print pressure classes too.
9899         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
9900         setup_reg_subclasses.
9901         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9902         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9903         (setup_prohibited_class_mode_regs): Use
9904         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9905         (clarify_prohibited_class_mode_regs): New function.
9906         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9907         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9908         (ira_init_once): Initialize them.
9909         (free_register_move_costs): Process them.
9910         (ira_init): Move calls of find_reg_classes and
9911         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9912         Call clarify_prohibited_class_mode_regs.
9913         (ira_no_alloc_reg): Remove.
9914         (too_high_register_pressure_p): Use pressure classes.
9916         * sched-deps.c: Remove mentioning cover classes from the file.
9917         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9918         ira_pressure_classes and ira_pressure_classes_num instead of
9919         ira_reg_class_cover_size and ira_reg_class_cover.
9920         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9921         sched_regno_pressure_class instead of sched_regno_cover_class.
9922         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
9923         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9925         * ira.h: Add 2010 to Copyright.
9926         (ira_no_alloc_reg): Remove external.
9927         (struct target_ira): Rename x_ira_hard_regno_cover_class,
9928         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9929         x_ira_class_translate to x_ira_hard_regno_allocno_class,
9930         x_ira_allocno_classes_num, x_ira_allocno_classes, and
9931         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
9932         x_ira_pressure_classes, x_ira_pressure_class_translate, and
9933         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
9934         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
9935         x_ira_no_alloc_regs.
9936         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9937         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9938         ira_allocno_classes_num and ira_allocno_classes.
9939         (ira_class_translate): Rename to ira_allocno_class_translate.
9940         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9941         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9942         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9943         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9944         (ira_no_alloc_regs): New.
9946         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
9947         classes from the file.  Use ALLOCNO_CLASS instead of
9948         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
9949         ALLOCNO_COVER_CLASS_COST.
9950         (regno_cover_class): Rename to regno_aclass.
9951         (record_reg_classes): Use ira_reg_class_subunion instead of
9952         ira_reg_class_union.
9953         (record_address_regs): Check overflow.
9954         (scan_one_insn): Ditto.
9955         (print_allocno_costs): Print total mem cost fore regional allocation.
9956         (print_pseudo_costs): Use REG_N_REFS.
9957         (find_costs_and_classes): Use classes intersected with them on the
9958         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
9959         ira_reg_class_union.  Use ira_allocno_class_translate and
9960         regno_aclass instead of ira_class_translate and regno_cover_class.
9961         Modify code for finding regno_aclass.  Setup preferred classes for
9962         the next pass.
9963         (setup_allocno_cover_class_and_costs): Rename to
9964         setup_allocno_class_and_costs.  Use regno_aclass instead of
9965         regno_cover_class.  Use ira_set_allocno_class instead of
9966         ira_set_allocno_cover_class.
9967         (init_costs, finish_costs): Use regno_aclass instead of
9968         regno_cover_class.
9969         (ira_costs): Use setup_allocno_class_and_costs instead of
9970         setup_allocno_cover_class_and_costs.
9971         (ira_tune_allocno_costs_and_cover_classes): Rename to
9972         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
9973         by processing objects.  Use ira_reg_class_max_nregs instead of
9974         ira_reg_class_nregs.
9976         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9978         * sched-int.h: Remove mentioning cover classes from the file.
9979         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9981         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
9982         classes from the file.
9983         (struct reg_pref): Rename coverclass into allocnoclass.
9984         (reg_cover_class): Rename to reg_allocno_class.
9986         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9988         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9990         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9992         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9994         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9996         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9998         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
10000         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
10002         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
10004         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
10006         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
10007         (i386_ira_cover_classes): Ditto.
10009         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
10011         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
10013         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
10015         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
10017         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
10019         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
10021         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
10022         (mips_ira_cover_classes): Ditto.
10024         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
10026         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
10028         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
10030         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
10032         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
10034         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
10035         (IRA_COVER_CLASSES_VSX): Ditto.
10037         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
10038         (rs6000_ira_cover_classes): Ditto.
10040         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
10042         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
10044         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
10046         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
10048         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
10050         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
10052         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
10054         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
10056         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
10058         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
10060 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
10062         PR debug/48253
10063         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
10064         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
10065         dw_fde_unlikely_section_end_label, cold_in_std_section,
10066         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
10067         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
10068         fields.
10069         (output_fde): Use dw_fde_second_{begin,end} if second is
10070         true, otherwise dw_fde_{begin,end}.
10071         (output_call_frame_info): Test dw_fde_second_begin != NULL
10072         instead of dw_fde_switched_sections.
10073         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
10074         fields, initialize new fields.  Initialize in_std_section
10075         unconditionally from the first partition.
10076         (dwarf2out_end_epilogue): Don't override dw_fde_end when
10077         dw_fde_second_begin is non-NULL.
10078         (dwarf2out_switch_text_section): Stop initializing removed
10079         dw_fde_struct fields, initialize new fields, initialize
10080         also dw_fde_end here.  Set dw_fde_switch_cfi even when
10081         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
10082         (struct var_loc_list_def): Add last_before_switch field.
10083         (arange_table, arange_table_allocated, arange_table_in_use,
10084         ARANGE_TABLE_INCREMENT, add_arange): Removed.
10085         (size_of_aranges): Count !in_std_section and !second_in_std_section
10086         hunks in fdes, instead of looking at arange_table_in_use.
10087         (output_aranges): Add aranges_length argument, don't call
10088         size_of_aranges here.  Instead of using aranges_table*
10089         emit ranges for fdes when !in_std_section resp.
10090         !second_in_std_section.
10091         (dw_loc_list): Break ranges crossing section switch.
10092         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
10093         use dw_fde_second_end instead of dw_fde_end as end of last range.
10094         (gen_subprogram_die): Don't call add_arange.  Use
10095         dw_fde_{begin,end} for first partition and if switched
10096         section dw_fde_second_{begin,end} for the second.
10097         (var_location_switch_text_section_1,
10098         var_location_switch_text_section): New functions.
10099         (dwarf2out_begin_function): Initialize cold_text_section even
10100         when function_section () isn't text_section.
10101         (prune_unused_types): Don't walk arange_table.
10102         (dwarf2out_finish): Don't needlessly test
10103         flag_reorder_blocks_and_partition when testing cold_text_section_used.
10104         If info_section_emitted, call size_of_aranges and if it indicates
10105         non-empty .debug_aranges, call output_aranges with the computed
10106         size.  Stop using removed dw_fde_struct fields, use
10107         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
10108         for second.
10110         PR debug/48203
10111         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
10112         create ENTRY_VALUE if incoming or address of incoming's MEM
10113         is a hard REG.
10114         * dwarf2out.c (mem_loc_descriptor): Don't emit
10115         DW_OP_GNU_entry_value of DW_OP_fbreg.
10116         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
10117         on ENTRY_VALUE is able to find the canonical parameter VALUE.
10118         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
10119         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
10120         ENTRY_VALUE_EXPs.
10121         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
10122         is a REG_P or MEM_P with REG_P address, compute hash directly
10123         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
10124         (preserve_only_constants): Don't clear VALUES forwaring
10125         ENTRY_VALUE to some other VALUE.
10127 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
10129         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
10130         instead of GEN_INT.
10132 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
10134         * cfgexpand.c (expand_gimple_cond): Always set the source location and
10135         block before expanding the statement.
10136         (expand_gimple_stmt_1): Likewise.  Set them here...
10137         (expand_gimple_stmt): ...and not here.  Tidy.
10138         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
10139         unknown.
10141 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
10143         * Makefile.in: New rule for cprop.o.
10144         * gcse.c: Move constant/copy propagation to cprop.c.
10145         (compute_local_properties): Only handle expression tables.
10146         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
10147         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
10148         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
10149         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
10150         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
10151         compute_cprop_data, find_used_regs, try_replace_reg,
10152         find_avail_set, cprop_jump, constprop_register, cprop_insn,
10153         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
10154         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
10155         find_bypass_set, reg_killed_on_edge, bypass_block,
10156         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
10157         execute_rtl_cprop, pass_rtl_cprop): Move to...
10158         * cprop.c: ...here.  New file, constant/copy propagation for RTL
10159         moved from gcse.c to here with minor cleanups in duplicated code.
10161 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
10163         * config/i386/i386.c (flag_opts): Fix a typo in
10164         -mavx256-split-unaligned-store.
10166 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
10168         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
10169         LIBCALL_VALUE): Remove macros.
10170         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10171         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10172         (h8300_function_value, h8300_libcall_value,
10173         h8300_function_value_regno_p): New functions.
10175 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
10177         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
10179 2011-03-28  Jeff Law  <law@redhat.com>
10181         * tree-ssa-threadupdate.c (redirect_edges): Call
10182         create_edge_and_update_destination_phis as needed.
10183         (create_edge_and_update_destination_phis): Accept new BB argument.
10184         All callers updated.
10185         (thread_block): Do not update the profile when threading around
10186         intermediate blocks.
10187         (thread_single_edge): Likewise.
10188         (determine_bb_domination_status): If BB is not a successor of the
10189         loop header, return NONDOMINATING.
10190         (register_jump_thread): Note when we register a jump thread around
10191         an intermediate block.
10192         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
10193         (thread_across_edge): Use it.
10195 2011-03-28  Tristan Gingold  <gingold@adacore.com>
10197         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
10198         when for_return is 2.
10200 2011-03-28  Jeff Law  <law@redhat.com>
10202         * var-tracking.c (canonicalize_values_mark): Delete unused
10203         lhs assignment.
10204         (canonicalize_values_star, set_variable_part): Likewise.
10205         (clobber_variable_part, delete_variable_part): Likewise.
10207 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
10209         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
10211 2011-03-28  Martin Jambor  <mjambor@suse.cz>
10213         * tree-inline.c (expand_call_inline): Do not check that destination
10214         node is analyzed.
10215         (optimize_inline_calls): Assert that destination node is analyzed.
10216         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
10217         not call tree_lowering_passes.
10218         * cgraph.h (cgraph_analyze_function): Declare.
10219         * cgraphunit.c (cgraph_analyze_function): Make public.
10221 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
10223         * config/sparc/sparc-opts.h: New.
10224         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
10225         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
10226         (sparc_option_override): Store processor_type enumeration rather
10227         than string in cpu_default.  Remove name and enumeration from
10228         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
10229         without using sparc_select.  Use target_flags_explicit instead of
10230         fpu_option_set.
10231         * config/sparc/sparc.h (enum processor_type): Move to
10232         sparc-opts.h.
10233         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
10234         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
10235         HeaderInclude entry.
10236         (mcpu=, mtune=): Use Var and Enum.
10237         (sparc_processor_type): New Enum and EnumValue entries.
10239 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10240             Iain Sandoe  <iains@gcc.gnu.org>
10242         PR target/48245
10243         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
10245 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
10247         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
10248         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
10249         Insert new statements at it in lieu of STMT.
10250         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
10251         * tree-vect-stmts.c (vectorizable_store): Likewise.
10252         (vectorizable_load): Likewise.
10254 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
10256         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
10257         (divtf3): Ditto.
10258         (multf3): Ditto.
10259         (subtf3): Ditto.
10261 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10263         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
10264         unaligned 256bit load/store.
10265         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
10266         (*avx_movdqu<avxmodesuffix>): Likewise.
10268 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10270         PR target/48288
10271         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
10272         * config/pa/pa.md (iordi3): Use new predicate in expander.
10273         (iorsi3): Likewise.
10275 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
10277         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
10278         FUNCTION_VALUE_REGNO_P): Remove macros.
10279         * config/mips/mips-protos.h (mips_function_value): Remove.
10280         * config/mips/mips.c (mips_function_value): Rename to...
10281         (mips_function_value_1): ... this. Make static.  Handle receiving
10282         the function type in 'fn_decl_or_type' argument.
10283         (mips_function_value, mips_libcall_value,
10284         mips_function_value_regno_p): New function.
10285         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10286         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10288 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10290         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
10291         and -mavx256-split-unaligned-store.
10292         (ix86_option_override_internal): Split 32-byte AVX unaligned
10293         load/store by default.
10294         (ix86_avx256_split_vector_move_misalign): New.
10295         (ix86_expand_vector_move_misalign): Use it.
10297         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
10298         -mavx256-split-unaligned-store.
10300         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
10301         256bit load/store.  Generate unaligned store on misaligned memory
10302         operand.
10303         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
10304         256bit load/store.
10305         (*avx_movdqu<avxmodesuffix>): Likewise.
10307         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
10308         -mavx256-split-unaligned-store.
10310 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
10312         PR target/38598
10313         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
10314         Update commentary.
10316 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
10318         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
10319         opno arguments with an expand_operand.  Use create_input_operand.
10320         (mips_prepare_builtin_target): Delete.
10321         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
10322         functions.
10323         (mips_expand_builtin_direct): Use create_output_operand and
10324         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
10325         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
10326         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
10328 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
10330         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
10331         function.
10332         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10334 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
10336         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
10337         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
10338         basic blocks and call commit_edge_insertions directly.
10339         (fixup_abnormal_edges): Move from here to...
10340         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
10341         on the edges and return whether some have actually been inserted.
10342         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
10343         compensation code.
10345 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
10347         PR rtl-optimization/48144
10348         * sel-sched-ir.c (merge_history_vect): Factor out from ...
10349         (merge_expr_data): ... here.
10350         (av_set_intersect): Rename to av_set_code_motion_filter.
10351         Update all callers.  Call merge_history_vect when an expression
10352         is found in both sets.
10353         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
10355 2011-03-26  Alan Modra  <amodra@gmail.com>
10357         * config/rs6000/predicates.md (word_offset_memref_op): Handle
10358         cmodel medium addresses.
10359         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
10360         64-bit gpr loads and stores.
10361         (rs6000_secondary_reload_ppc64): New function.
10362         * config/rs6000/rs6000-protos.h: Declare it.
10363         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
10365 2011-03-26  Alan Modra  <amodra@gmail.com>
10367         PR target/47487
10368         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
10369         GNU Go in traceback table.
10371 2011-03-25  Richard Henderson  <rth@redhat.com>
10373         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
10374         if there are exactly 6 operands.
10375         (set_storage_via_setmem): Similarly.
10377 2011-03-25  Kai Tietz  <ktietz@redhat.com>
10379         * collect2.c (write_c_file_stat): Handle backslash
10380         as right-hand directory separator.
10381         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
10382         checking just for slash.
10383         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
10384         instead of checking for trailing slash.
10385         * gcc.c (record_temp_file): Use filename_cmp instead
10386         of strcmp.
10387         (do_spec_1): Likewise.
10388         (replace_outfile_spec_function): Likewise.
10389         (is_directory): Use filename_ncmp instead of strncmp.
10390         (print_multilib_info): Likewise.
10391         * gcov.c (find_source): Use filename_cmp instead
10392         instead of strcmp.
10393         (make_gcov_file_name): Fix order of slash/backslash
10394         checks.
10395         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
10396         (add_standard_paths): Likewise.
10397         * mips-tfile.c (saber_stop): Handle backslash.
10398         * prefix.c (update_path): Use filename_ncmp instead of
10399         strncmp.
10400         * profile.c (output_location): Use filename_cmp instead
10401         of strcmp.
10402         * read-md.c (handle_toplevel_file): Handle backslash.
10403         * tlink.c (frob_extension):  Likewise.
10404         * tree-cfg.c (same_line_p): Use filename_cmp instead of
10405         strcmp.
10406         * tree-dump.c (dequeue_and_dump): Handle backslash.
10407         * tree.c (get_file_function_name): Likewise.
10408         * gengtype.c (read_input_list): Likewise.
10409         (get_file_realbasename): Likewise.
10410         (get_output_file_with_visibility): Use filename_cmp
10411         instead of strcmp.
10413 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
10415         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
10416         case to VFPv1.
10418 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
10420         * fold-const.c (expr_location_or): New function.
10421         (fold_truth_not_expr): Call it.
10423 2011-03-25  Jeff Law  <law@redhat.com>
10425         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
10426         va_end.
10427         * c-family/c-common.c (def_fn_type): Likewise.
10428         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
10429         * emit-rtl.c (gen_rtvec): Likewise.
10430         * lto/lto-lang.c (def_fn_type): Likewise.
10432 2011-03-25  Richard Guenther  <rguenther@suse.de>
10434         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
10435         also generate copies.
10436         (fini_copy_prop): Handle constant values properly.
10438 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
10440         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
10441         mode size instead of bitsize with DWARF2_ADDR_SIZE.
10442         (hash_loc_operands, compare_loc_operands): Handle
10443         DW_OP_GNU_entry_value.
10445 2011-03-25  Kai Tietz  <ktietz@redhat.com>
10447         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
10448         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
10449         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
10450         comment and use macro TARGET_64BIT_MS_ABI instead.
10451         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
10452         and change default behavior for 32-bit MS_ABI.
10453         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
10454         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
10455         32-bit, too.
10456         (ix86_cfun_abi): Likewise.
10457         (ix86_maybe_switch_abi): Adjust comment.
10458         (init_cumulative_args): Check for bit-ness in MS_ABI case.
10459         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
10460         instead of checking for SYSV_ABI.
10461         (ix86_nsaved_sseregs): Likewise.
10462         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
10463         to 16 bytes.
10464         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
10465         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
10466         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
10467         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
10468         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
10470 2011-03-25  Richard Guenther  <rguenther@suse.de>
10472         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
10473         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
10474         (verify_gimple): Remove.
10475         * tree-cfg.c (verify_gimple_call): Merge verification
10476         from verify_stmts.
10477         (verify_gimple_phi): Merge verification from verify_stmts.
10478         (verify_gimple_label): New function.
10479         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
10480         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
10481         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
10482         (verify_stmts): Rename to verify_gimple_in_cfg.
10483         (verify_gimple_in_cfg): New function.
10484         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
10485         * tree-ssa.c (verify_ssa): Likewise.
10486         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
10488 2011-03-25  Richard Guenther  <rguenther@suse.de>
10490         * passes.c (init_optimization_passes): Add FRE pass after
10491         early SRA.
10493 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
10494             Andrew Stubbs  <ams@codesourcery.com>
10496         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
10497         for Cortex-A8.
10498         (arm_movdi_vfp_cortexa8): New pattern.
10499         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
10500         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
10501         instructions when tuning for Cortex-A8.  Set attribute "arch".
10502         * config/arm/arm.md: Move include arm-tune.md up a bit.
10503         (define_attr "arch"): Add "onlya8" and "nota8" values.
10504         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
10506 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
10508         PR bootstrap/48282
10509         Revert:
10510         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10512         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10513         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
10514         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10515         * passes.c (init_optimization_passes): Move
10516         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10518 2011-03-25  Kai Tietz  <ktietz@redhat.com>
10520         * c-typeck.c (comptypes_internal): Replace target
10521         hook call of comp_type_attributes by version in tree.c file.
10522         * gimple.c (gimple_types_compatible_p_1): Likewise.
10523         * tree-ssa.c (useless_type_conversion_p): Likewise.
10524         * tree.c (build_type_attribute_qual_variant): Likewise.
10525         (attribute_value_equal): New static helper function.
10526         (comp_type_attributes): New function.
10527         (merge_attributes): Use attribute_value_equal for comparison.
10528         (attribute_list_contained): Likewise.
10529         * tree.h (comp_type_attributes): New prototype.
10531 2011-03-25  Richard Guenther  <rguenther@suse.de>
10533         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
10534         of complex types at -O0.
10535         (verify_gimple_assign_binary): Likewise.
10536         (verify_gimple_assign_ternary): Likewise.
10538 2011-03-24  Mark Wielaard  <mjw@redhat.com>
10540         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
10541         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
10543 2011-03-24  Mark Wielaard  <mjw@redhat.com>
10545         PR debug/48041
10546         * dwarf2out.c (output_abbrev_section): Only write table when
10547         abbrev_die_table_in_use > 1.
10549 2011-02-24  Richard Henderson  <rth@redhat.com>
10551         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
10552         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
10553         (alpha_expand_unaligned_load_words): Use extql.
10554         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
10555         (emit_insxl): Handle all modes for consistency.
10557 2011-02-24  Richard Henderson  <rth@redhat.com>
10559         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
10560         (alpha_expand_unaligned_load): Likewise.
10561         (alpha_expand_unaligned_store): Likewise.
10562         (alpha_expand_unaligned_load_words): Likewise.
10563         (alpha_expand_unaligned_store_words): Likewise.
10564         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
10565         (alpha_split_lock_test_and_set_12): Likewise.
10566         (print_operand, alpha_fold_builtin_extxx): Likewise.
10567         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
10568         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
10569         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
10570         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
10571         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
10572         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
10573         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
10574         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
10575         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
10576         (extwl, extll, extql): Similarly.
10577         (inswh, inslh, insqh): Similarly.
10578         (mskbl, mskwl, mskll, mskql): Similarly.
10579         (mskwh, msklh, mskqh): Similarly.
10581 2011-02-24  Richard Henderson  <rth@redhat.com>
10583         * config/alpha/alpha.md (attribute isa): Add er, ner.
10584         (attribute enabled): Handle them.
10585         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
10587 2011-02-24  Richard Henderson  <rth@redhat.com>
10589         * config/alpha/alpha.md (attribute isa): Add vms.
10590         (attribute enabled): Handle it.
10591         (*movsf): Merge *movsf_{nofix,fix,nofp}.
10592         (*movdf): Merge *movdf_{nofix,fix,nofp}.
10593         (*movtf): Rename from *movtf_internal for consistency.
10594         (*movsi): Merge with *movsi_nt_vms.
10595         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
10596         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
10597         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
10598         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
10600 2011-02-24  Richard Henderson  <rth@redhat.com>
10602         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
10603         (extendqisi2, extendhisi2): Likewise.
10604         (extendqidi2): Simplify BWX/non-BWX expansions.
10605         (extendhidi2): Similarly.
10607 2011-02-24  Richard Henderson  <rth@redhat.com>
10609         * config/alpha/alpha.md (attribute isa): New.
10610         (attribute enabled): New.
10611         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
10612         (zero_extendqisi2, zero_extendqidi2): Similarly.
10613         (zero_extendhisi2, zero_extendhidi2): Similarly.
10614         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
10616 2011-02-24  Richard Henderson  <rth@redhat.com>
10618         * config/alpha/predicates.md (input_operand): Revert last change;
10619         update comment to mention 32-bit VMS rather than Windows.
10621 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10623         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10624         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
10625         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10626         * passes.c (init_optimization_passes): Move
10627         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10629 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10631         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
10633 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
10635         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
10636         correctly.
10638 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
10640         PR debug/48204
10641         * simplify-rtx.c (simplify_const_unary_operation): Call
10642         real_convert when changing mode class with FLOAT_EXTEND.
10644 2011-03-24  Nick Clifton  <nickc@redhat.com>
10646         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
10647         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10648         * config/rx/rx.c (rx_option_override): Set align_jumps,
10649         align_loops and align_labels if not set by the user.
10650         (rx_align_for_label): New function.
10651         (rx_max_skip_for_label): New function.
10652         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
10653         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
10654         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
10655         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
10656         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
10658 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10660         PR rtl-optimization/48263
10661         * optabs.c (expand_binop_directly): Reinstate convert_modes code
10662         and original commutative_p handling.  Use maybe_gen_insn.
10664 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10666         * reload.c (find_reloads_subreg_address): Add address_reloaded
10667         parameter and return true there if the full address has been
10668         reloaded.
10669         (find_reloads_toplev): Pass address_reloaded flag.
10670         (find_reloads_address_1): Don't use address_reloaded parameter.
10672 2011-03-24  Jeff Law  <law@redhat.com>
10674         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
10675         unused variable "ann".
10676         (remove_unused_locals): Likewise.
10678         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
10679         statement.
10681         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
10682         after it is freed.
10684 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10686         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
10687         for invalid symbolic addresses.
10688         (s390_secondary_reload): Don't use s390_check_symref_alignment for
10689         larl operands.
10691 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10693         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
10694         the argument in calls to fold_truth_not_expr.
10696 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10698         * tree.c (record_node_allocation_statistics): New function.
10699         (make_node_stat, copy_node_stat, build_string): Call it.
10700         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
10701         (build1_stat, build_omp_clause): Likewise.
10703 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10705         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
10706         last commit.
10708 2011-03-24  Richard Guenther  <rguenther@suse.de>
10710         PR tree-optimization/48271
10711         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
10712         blocks that still exist.
10714 2011-03-24  Richard Guenther  <rguenther@suse.de>
10716         PR tree-optimization/48270
10717         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
10718         not free datarefs before ddrs.
10720 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10722         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
10723         from the address built for a reference with variable offset.
10725 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
10727         PR target/48237
10728         * config/i386/i386.md (*movdf_internal_rex64): Do not split
10729         alternatives that can be handled with movq or movabsq insn.
10730         (*movdf_internal): Disable for !TARGET_64BIT.
10731         (*movdf_internal_nointeger): Ditto.
10732         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
10734 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10736         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10737         (FUNCTION_ARG_ADVANCE): Likewise.
10738         * tm.texi.in: Change references to them to hook references.
10739         * tm.texi: Regenerate.
10740         * targhooks.c (default_function_arg): Eliminate check for target macro.
10741         (default_function_incoming_arg): Likewise.
10742         (default_function_arg_advance): Likewise.
10743         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10744         (function_arg_advance): Likewise.
10745         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10747 2011-03-24  Richard Guenther  <rguenther@suse.de>
10749         PR middle-end/48269
10750         * tree-object-size.c (addr_object_size): Do not double-account
10751         for MEM_REF offsets.
10753 2011-03-24  Diego Novillo  <dnovillo@google.com>
10755         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
10756         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
10757         (lto_input_data_block): Move from lto-opts.c.  Make extern.
10758         Update all users.
10759         (lto_input_string): Rename from input_string.  Make extern.
10760         Update all users.
10761         * lto-streamer-out.c (lto_output_string_with_length): Rename from
10762         output_string_with_length.
10763         Output 0 to indicate a non-NULL string.  Update all callers to
10764         not emit 0.
10765         (lto_output_string): Rename from output_string.  Make extern.
10766         Update all users.
10767         (lto_output_decl_state_streams): Make extern.
10768         (lto_output_decl_state_refs): Make extern.
10769         * lto-streamer.h (lto_input_string): Declare.
10770         (lto_input_data_block): Declare.
10771         (lto_output_string): Declare.
10772         (lto_output_string_with_length): Declare.
10773         (lto_output_decl_state_streams): Declare.
10774         (lto_output_decl_state_refs): Declare.
10776 2011-03-24  Richard Guenther  <rguenther@suse.de>
10778         PR tree-optimization/46562
10779         * tree.c (build_invariant_address): New function.
10780         * tree.h (build_invariant_address): Declare.
10781         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
10782         a renamed function moved ...
10783         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
10784         Take valueization callback parameter.
10785         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
10786         * gimple-fold.h: New file.
10787         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
10788         (ccp_fold, fold_const_aggregate_ref,
10789         fold_ctor_reference, fold_nonarray_ctor_reference,
10790         fold_array_ctor_reference, fold_string_cst_ctor_reference,
10791         get_base_constructor): Move ...
10792         * gimple-fold.c: ... here.
10793         (gimple_fold_stmt_to_constant_1): New function
10794         split out from ccp_fold.  Take a valueization callback parameter.
10795         Valueize all operands.
10796         (gimple_fold_stmt_to_constant): New wrapper function.
10797         (fold_const_aggregate_ref_1): New function split out from
10798         fold_const_aggregate_ref.  Take a valueization callback parameter.
10799         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
10800         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
10801         invariant POINTER_PLUS_EXPRs to invariant form.
10802         (vn_valueize): New function.
10803         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
10804         * tree-vrp.c (vrp_valueize): New function.
10805         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
10806         to fold statements to constants.
10807         * tree-ssa-pre.c (eliminate): Properly guard propagation of
10808         function declarations.
10809         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
10810         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
10812 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10814         * config/h8300/predicates.md (jump_address_operand): Fix register
10815         mode check.
10817 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
10819         * doc/invoke.texi (max-stores-to-sink): Document.
10820         * params.h (MAX_STORES_TO_SINK): Define.
10821         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
10822         if either vectorization or if-conversion is disabled.
10823         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
10824         tree-vect-data-refs.c vect_equal_offsets.
10825         (dr_equal_offsets_p): New function.
10826         (find_data_references_in_bb): Remove static.
10827         * tree-data-ref.h (find_data_references_in_bb): Declare.
10828         (dr_equal_offsets_p): Likewise.
10829         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
10830         (vect_drs_dependent_in_basic_block): Update calls to
10831         vect_equal_offsets.
10832         (vect_check_interleaving): Likewise.
10833         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
10834         (cond_if_else_store_replacement): Rename to...
10835         (cond_if_else_store_replacement_1): ... this.  Change arguments and
10836         documentation.
10837         (cond_if_else_store_replacement): New function.
10838         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
10839         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
10841 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
10843         PR target/46934
10844         * config/arm/arm.md (casesi): Use the gen_int_mode() function
10845         to subtract lower bound instead of GEN_INT().
10847 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
10849         PR other/48179
10850         PR other/48221
10851         PR other/48234
10852         * doc/extend.texi (Alignment): Move section to match order in TOC.
10853         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
10854         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
10856 2011-03-23  Jeff Law  <law@redhat.com>
10858         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
10859         before removing the edge.
10861         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
10862         it may have been freed by redirect_branch_edge or
10863         redirect_edge_succ_nodup.
10865 2011-03-23  Richard Guenther  <rguenther@suse.de>
10867         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
10868         (check_va_list_escapes): Likewise.
10869         (check_all_va_list_escapes): Likewise.
10871 2011-03-23  Richard Guenther  <rguenther@suse.de>
10873         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
10874         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
10875         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
10876         (alias.o): Likewise.
10877         (ipa-type-escape.o): Remove.
10878         (ipa-struct-reorg.o): Likewise.
10879         (GTFILES): Remove ipa-struct-reorg.c.
10880         * alias.c: Do not include ipa-type-escape.h.
10881         * tree-ssa-alias.c: Likewise.
10882         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
10883         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
10884         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
10885         and ipa-type-escape passes.
10886         * tree-pass.h (pass_ipa_type_escape): Remove.
10887         (pass_ipa_struct_reorg): Likewise.
10888         * ipa-struct-reorg.h: Remove.
10889         * ipa-struct-reorg.c: Likewise.
10890         * ipa-type-escape.h: Likewise.
10891         * ipa-type-escape.c: Likewise.
10892         * doc/invoke.texi (-fipa-struct-reorg): Remove.
10893         (--param struct-reorg-cold-struct-ratio): Likewise.
10894         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10895         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10896         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10898 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10900         * config/s390/2084.md: Enable all insn reservations also for z9_ec
10901         cpu attribute value.
10902         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10903         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10904         * config/s390/s390.c (processor_flags_table): New constant array.
10905         (s390_handle_arch_option): Remove.
10906         (s390_handle_option): Remove s390_handle_arch_option invocations
10907         and OPT_mwarn_framesize_ handling.
10908         (s390_option_override): Remove s390_handle_arch_option invocation.
10909         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10910         warnings.
10911         * config/s390/s390.md (cpu attribute): Add z9_ec value.
10912         * config/s390/s390.opt (s390_tune, s390_arch)
10913         (march=): Replace s390_arch_option enum and values with
10914         processor_type.  Set variable name to s390_arch.  Set
10915         initialization value.
10916         (mtune=): Replace s390_arch_option with processor_type.  Set
10917         variable name to s390_tune.  Set initialization value.
10919 2011-03-23  Julian Brown  <julian@codesourcery.com>
10921         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10922         accesses which are not naturally aligned.
10924 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10926         PR target/47553
10927         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10929 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10931         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10932         parameter from "int" to "enum insn_code".
10933         (expand_operand_type): New enum.
10934         (expand_operand): New structure.
10935         (create_expand_operand): New function.
10936         (create_fixed_operand, create_output_operand): Likewise
10937         (create_input_operand, create_convert_operand_to): Likewise.
10938         (create_convert_operand_from, create_address_operand): Likewise.
10939         (create_integer_operand): Likewise.
10940         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10941         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10942         (expand_insn, expand_jump_insn): Likewise.
10943         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10944         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10945         (expand_movstr, expand_builtin___clear_cache): Likewise.
10946         (expand_builtin_lock_release): Likewise.
10947         * explow.c (allocate_dynamic_stack_space): Likewise.
10948         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
10949         and use the default handling in that case.
10950         * expmed.c (check_predicate_volatile_ok): Delete.
10951         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10952         (emit_cstore): Likewise.
10953         * expr.c (emit_block_move_via_movmem): Likewise.
10954         (set_storage_via_setmem, expand_assignment): Likewise.
10955         (emit_storent_insn, try_casesi): Likewise.
10956         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
10957         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10958         (expand_vec_shift_expr, expand_binop_directly): Likewise.
10959         (expand_twoval_unop, expand_twoval_binop): Likewise.
10960         (expand_unop_direct, emit_indirect_jump): Likewise.
10961         (emit_conditional_move, vector_compare_rtx): Likewise.
10962         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10963         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10964         (expand_sync_lock_test_and_set): Likewise.
10965         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
10966         (emit_unop_insn): Likewise.
10967         (expand_copysign_absneg): Change icode to an insn_code.
10968         (create_convert_operand_from_type): New function.
10969         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10970         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10971         (expand_insn, expand_jump_insn): Likewise.
10972         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10973         than const_int_operand for operand 2.
10975 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10977         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10978         if possible.
10980 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10982         * emit-rtl.c (emit_pattern_before_noloc): New function.
10983         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10984         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10985         (emit_pattern_after_noloc): New function.
10986         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10987         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10989 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10991         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10992         (__ffsDI2): Likewise.
10994 2011-03-22  Richard Henderson  <rth@redhat.com>
10996         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10997         of !TARGET_ABI_OPEN_VMS.
10998         (alpha_trampoline_init, alpha_start_function): Likewise.
10999         (alpha_expand_epilogue, alpha_file_start): Likewise.
11000         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
11001         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
11002         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
11003         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
11004         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
11006 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11008         * config/s390/s390-opts.h: New.
11009         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
11010         s390_arch_flags, s390_warn_framesize, s390_stack_size,
11011         s390_stack_guard): Remove.
11012         (s390_handle_arch_option): Return void.  Take enum
11013         s390_arch_option value instead of string and searching array.
11014         (s390_handle_option): Don't assert that global structures are in
11015         use.  Access variables via opts pointer.  Use error_at.  Don't use
11016         sscanf for -mstack-guard= or -mstack-size=.  Update call to
11017         s390_handle_arch_option.
11018         (s390_option_override): Update call to s390_handle_arch_option.
11019         (s390_emit_prologue): Use %d format for s390_stack_size in
11020         diagnostic.  Use %wd for HOST_WIDE_INT.
11021         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
11022         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
11023         * config/s390/s390.opt (config/s390/s390-opts.h): New
11024         HeaderInclude entry.
11025         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
11026         s390_arch_flags, s390_warn_framesize): New Variable entries.
11027         (s390_arch_option): New Enum and EnumValue entries.
11028         (march=): Use Enum instead of Var.
11029         (mstack-guard=, mstack-size=): Use UInteger and Var.
11030         (mtune=): Use Enum.
11032 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11034         * config/score/score.c (score_handle_option): Don't assert that
11035         global structures are in use.  Access target_flags via opts
11036         pointer.  Use value of -march= option to determine target_flags
11037         settings.
11038         * config/score/score.opt (march=): Use Enum.
11039         (score_arch): New Enum and EnumValue entries.
11041 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11043         * config/mep/mep.c (option_mtiny_specified): Remove.
11044         (mep_option_override): Move register handling for -mivc2 from
11045         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
11046         instead of option_mtiny_specified.
11047         (mep_handle_option): Access target_flags via opts pointer.  Don't
11048         assert that global structures are in use.  Defer part of -mivc2
11049         handling and move it to mep_option_override.
11050         * config/mep/mep.opt (IVC2): New Mask entry.
11051         (mivc2): Use Var and Defer instead of Mask.
11053 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11055         * config/v850/v850-opts.h: New.
11056         * config/v850/v850.c (small_memory): Replace with
11057         small_memory_physical_max array.  Make that array static const.
11058         (v850_handle_memory_option): Take integer value of argument.  Take
11059         gcc_options pointer, option text and location.  Return void.
11060         Update for changes to small memory structures.
11061         (v850_handle_option): Access target_flags via opts pointer.  Don't
11062         assert that global structures are in use.  Update calls to
11063         v850_handle_memory_option.
11064         (v850_encode_data_area): Update references to small memory settings.
11065         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
11066         (enum small_memory_type): Move to v850-opts.h.
11067         * config/v850/v850.opt (config/v850/v850-opts.h): New
11068         HeaderInclude entry.
11069         (small_memory_max): New Variable entry.
11070         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
11071         (mtda, mzda): Likewise.
11073 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11075         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
11076         pointer.  Don't assert that global structures are in use.
11078 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11080         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
11081         via opts pointer.  Don't assert that global structures are in use.
11083 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11085         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
11086         (munix=93): Use Var.
11087         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
11088         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
11089         * config/pa/pa-opts.h: New.
11090         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
11091         (pa_handle_option): Don't assert that global structures are in
11092         use.  Access target_flags via opts pointer.  Don't handle
11093         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
11094         OPT_munix_98 here.
11095         (pa_option_override): Handle deferred OPT_mfixed_range_.
11097 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11099         * config/mn10300/mn10300-opts.h: New.
11100         * config/mn10300/mn10300.c (mn10300_processor,
11101         mn10300_tune_string): Remove.
11102         (mn10300_handle_option): Don't assert that global structures are
11103         in use.  Access mn10300_processor via opts pointer.  Don't handle
11104         OPT_mtune_ here.
11105         * config/mn10300/mn10300.h (enum processor_type): Move to
11106         mn10300-opts.h.
11107         (mn10300_processor): Remove.
11108         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
11109         HeaderInclude entry.
11110         (mn10300_processor): New Variable entry.
11111         (mtune=): Use Var.
11113 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11115         * config/microblaze/microblaze.c: Don't include opts.h.
11116         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
11117         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
11118         (mno-clearbss): Use Var and Warn.
11120 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11122         * config/m32r/m32r-opts.h: New.
11123         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
11124         (m32r_handle_option): Don't assert that global structures are in
11125         use.  Access target_flags and m32r_cache_flush_func via opts
11126         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
11127         OPT_mno_flush_trap here.
11128         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
11129         include of m32r-opts.h.
11130         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
11131         HeaderInclude entry.
11132         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
11133         (mmodel=): Use Enum and Var.
11134         (m32r_model): New Enum and EnumValue entries.
11135         (mno-flush-trap): Use Var.
11136         (msdata=): Use Enum and Var.
11137         (m32r_sdata): New Enum and EnumValue entries.
11139 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11141         * config/m32c/m32c.c: Don't include opts.h.
11142         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
11143         m32c_handle_option): Remove.
11144         (m32c_option_override): Check global_options_set.x_target_memregs
11145         instead of target_memregs_set.
11146         * config/m32c/m32c.h (target_memregs): Remove.
11147         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
11148         variable.
11150 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11152         * config/iq2000/iq2000-opts.h: New.
11153         * config/iq2000/iq2000.c: Don't include opts.h.
11154         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
11155         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
11156         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
11157         HeaderInclude entry.
11158         (iq2000_tune): New Variable entry.
11159         (march=): Add comment.  Use Enum.
11160         (iq2000_arch): New Enum and EnumValue entries.
11161         (mcpu=): Use Enum and Var.
11162         (iq2000_tune): New Enum and EnumValue entries.
11164 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11166         * config/ia64/ia64-opts.h: New.
11167         * config/ia64/ia64.c (ia64_tune): Remove.
11168         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
11169         here.  Use error_at.
11170         (ia64_option_override): Handle deferred OPT_mfixed_range_.
11171         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
11172         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
11173         HeaderInclude entry.
11174         (ia64_tune): New Variable entry.
11175         (mfixed-range=): Use Defer and Var.
11176         (mtune=): Use Enum and Var.
11177         (ia64_tune): New Enum and EnumValue entries.
11179 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11181         * config/frv/frv-opts.h: New.
11182         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
11183         frv-opts.h.
11184         (frv_cpu_type): Remove.
11185         * config/frv/frv.c: Don't include opts.h.
11186         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
11187         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
11188         (frv_cpu_type): New Variable entry.
11189         (frv_cpu): New Enum and EnumValue entries.
11191 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11193         * config/cris/cris.c (cris_handle_option): Access target_flags via
11194         opts pointer.  Don't assert that global structures are in use.
11195         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
11196         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
11198 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11200         * config/bfin/bfin-opts.h: New.
11201         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
11202         bfin_si_revision, bfin_workarounds): Remove.
11203         (bfin_cpus): Make static const.
11204         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
11205         not bfin_lib_id_given.
11206         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
11207         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
11208         pointer. Use error_at.  Don't assert that global structures are in use.
11209         * config/bfin/bfin.h: Include bfin-opts.h.
11210         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
11211         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
11212         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
11213         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
11214         entries.
11216 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11218         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
11219         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
11220         or -msoft-float here.
11221         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
11222         -msoft-float and -mhard-float.
11223         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
11224         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
11225         msoft-float.
11226         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
11227         -msoft-float.
11228         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
11229         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
11230         not mhard-float.
11231         (LIBGCC_SPEC): Don't handle -msoft-float.
11232         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
11233         -mhard-float.
11234         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
11235         msoft-float.
11236         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
11237         -mfloat-abi=*, not -msoft-float and -mhard-float.
11238         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
11239         -msoft-float.
11240         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
11241         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
11242         mhard-float and msoft-float.
11243         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
11244         mfloat-abi=soft in comments, not mhard-float and msoft-float.
11245         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
11246         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
11247         mhard-float.
11248         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
11249         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
11250         msoft-float.
11251         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
11252         not mhard-float.
11253         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
11254         not msoft-float.
11256 2011-03-22  Richard Henderson  <rth@redhat.com>
11258         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
11259         TARGET_ABI_WINDOWS_NT.
11260         (alpha_output_function_end_prologue): Likewise.
11261         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
11262         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11263         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
11264         (trap, *movsi_nt_vms): Likewise.
11265         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
11266         (*tablejump_osf_nt_internal): Remove.
11267         * config/alpha/predicates.md (input_operand): Only test Pmode.
11269 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11271         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
11272         via opts pointer.  Use error_at.  Don't assert that global
11273         structures are in use.
11275 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11277         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
11278         (ix86_handle_option): Access ix86_isa_flags and
11279         ix86_isa_flags_explicit via opts pointer.  Don't assert that
11280         global structures are in use.
11281         (ix86_function_specific_save, ix86_function_specific_restore):
11282         Update ix86_isa_flags_explicit field name.
11283         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
11284         (ix86_isa_flags_explicit): Rename TargetSave entry to
11285         x_ix86_isa_flags_explicit.
11287 2011-03-22  Richard Henderson  <rth@redhat.com>
11289         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
11290         (alpha_option_override, direct_return): Likewise.
11291         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
11292         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
11293         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
11294         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
11295         (alpha_expand_epilogue, alpha_end_function): Likewise.
11296         (alpha_init_libfuncs): Likewise.
11297         (struct machine_function): Remove unicosmk members.
11298         (print_operand) ['t']: Remove.
11299         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
11300         unicosmk_output_module_name, unicosmk_output_common,
11301         current_section_align, unicosmk_output_text_section_asm_op,
11302         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
11303         unicosmk_section_type_flags, unicosmk_unique_section,
11304         unicosmk_asm_named_section, unicosmk_insert_attributes,
11305         unicosmk_output_align, unicosmk_defer_case_vector,
11306         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
11307         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
11308         unicosmk_output_ssib, unicosmk_add_call_info_word,
11309         unicosmk_extern_head, unicosmk_output_default_externs,
11310         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
11311         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
11312         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
11313         * config/alpha/alpha-protos.h: Update.
11314         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
11315         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
11316         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
11317         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
11318         (*mulsi_se, mulvsi3): Likewise.
11319         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
11320         (*divmodsi_internal, call, call_value, realign): Likewise.
11321         (moddi3, umoddi3): Likewise; remove duplicate expander.
11322         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
11323         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
11324         (*movdi_nofix): Remove r/U alternative.
11325         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
11326         * config/alpha/constraints.md ("U"): Remove.
11327         * config/alpha/predicates.md (call_operand"): Don't test
11328         TARGET_ABI_UNICOSMK.
11330 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11332         * target.def (handle_option): Take gcc_options and
11333         cl_decoded_option pointers and location_t.
11334         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
11335         * doc/tm.texi: Regenerate.
11336         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
11337         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
11338         * lto-opts.c (lto_reissue_options): Generate option structure for
11339         targetm.handle_option call.
11340         * opts.c (target_handle_option): Update call to
11341         targetm.handle_option.  Remove assertions about values now passed
11342         down to hook.
11343         * targhooks.c (default_target_handle_option): New.
11344         * targhooks.h (default_target_handle_option): Declare.
11345         * config/alpha/alpha.c: Include opts.h.
11346         (alpha_handle_option): Update to new hook interface.
11347         * config/arm/arm.c: Include opts.h.
11348         (arm_handle_option): Update to new hook interface.
11349         * config/arm/t-arm (arm.o): Update dependencies.
11350         * config/bfin/bfin.c: Include opts.h.
11351         (bfin_handle_option): Update to new hook interface.
11352         * config/cris/cris.c: Include opts.h.
11353         (cris_handle_option): Update to new hook interface.
11354         * config/frv/frv.c: Include opts.h.
11355         (frv_handle_option): Update to new hook interface.
11356         * config/i386/i386.c: Include opts.h.
11357         (ix86_handle_option): Update to new hook interface.
11358         (ix86_valid_target_attribute_inner_p): Generate option structure
11359         for call to ix86_handle_option.
11360         * config/i386/t-i386 (i386.o): Update dependencies.
11361         * config/ia64/ia64.c: Include opts.h.
11362         (ia64_handle_option): Update to new hook interface.
11363         * config/ia64/t-ia64 (ia64.o): Update dependencies.
11364         * config/iq2000/iq2000.c: Include opts.h.
11365         (iq2000_handle_option): Update to new hook interface.
11366         * config/m32c/m32c.c: Include opts.h.
11367         (m32c_handle_option): Update to new hook interface.
11368         * config/m32r/m32r.c: Include opts.h.
11369         (m32r_handle_option): Update to new hook interface.
11370         * config/m68k/m68k.c: Include opts.h.
11371         (m68k_handle_option): Update to new hook interface.
11372         * config/mep/mep.c: Include opts.h.
11373         (mep_handle_option): Update to new hook interface.
11374         * config/microblaze/microblaze.c: Include opts.h.
11375         (microblaze_handle_option): Update to new hook interface.
11376         * config/mips/mips.c: Include opts.h.
11377         (mips_handle_option): Update to new hook interface.
11378         * config/mn10300/mn10300.c: Include opts.h.
11379         (mn10300_handle_option): Update to new hook interface.
11380         * config/pa/pa.c: Include opts.h.
11381         (pa_handle_option): Update to new hook interface.
11382         * config/pdp11/pdp11.c: Include opts.h.
11383         (pdp11_handle_option): Update to new hook interface.
11384         * config/rs6000/rs6000.c: Include opts.h.
11385         (rs6000_handle_option): Update to new hook interface.
11386         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
11387         * config/rx/rx.c: Include opts.h.
11388         (rx_handle_option): Update to new hook interface.
11389         * config/s390/s390.c: Include opts.h.
11390         (s390_handle_option): Update to new hook interface.
11391         * config/score/score.c: Include opts.h.
11392         (score_handle_option): Update to new hook interface.
11393         * config/sh/sh.c: Include opts.h.
11394         (sh_handle_option): Update to new hook interface.
11395         * config/sparc/sparc.c: Include opts.h.
11396         (sparc_handle_option): Update to new hook interface.
11397         * config/v850/v850.c: Include opts.h.
11398         (v850_handle_option): Update to new hook interface.
11400 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11402         * gcc.c (driver_unknown_option_callback): Only permit and save
11403         unknown -Wno- options.
11404         (driver_wrong_lang_callback): Save options directly instead of via
11405         driver_unknown_option_callback.
11407 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
11409         * combine.c (simplify_set): Try harder to find the best CC mode when
11410         simplifying a nested COMPARE on the RHS.
11412 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11414         * config/alpha/gnu.h: Remove.
11415         * config/arc: Remove directory.
11416         * config/arm/netbsd.h: Remove.
11417         * config/arm/t-pe: Remove.
11418         * config/crx: Remove directory.
11419         * config/i386/netbsd.h: Remove.
11420         * config/m68hc11: Remove directory.
11421         * config/m68k/uclinux-oldabi.h: Remove.
11422         * config/mcore/mcore-pe.h: Remove.
11423         * config/mcore/t-mcore-pe: Remove.
11424         * config/netbsd-aout.h: Remove.
11425         * config/rs6000/gnu.h: Remove.
11426         * config/sh/sh-symbian.h: Remove.
11427         * config/sh/symbian-base.c: Remove.
11428         * config/sh/symbian-c.c: Remove.
11429         * config/sh/symbian-cxx.c: Remove.
11430         * config/sh/symbian-post.h: Remove.
11431         * config/sh/symbian-pre.h: Remove.
11432         * config/sh/t-symbian: Remove.
11433         * config/svr3.h: Remove.
11434         * config/vax/netbsd.h: Remove.
11435         * config.build: Don't handle i[34567]86-*-pe.
11436         * config.gcc: Remove handling of deprecations for most deprecated
11437         targets.
11438         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
11439         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
11440         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
11441         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
11442         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
11443         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
11444         Remove cases.
11445         * config.host: Don't handle i[34567]86-*-pe.
11446         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
11447         (ASM_SPEC32): Don't handle -mcall-gnu.
11448         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
11449         -mcall-gnu.
11450         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
11451         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
11452         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
11453         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
11454         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
11455         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
11456         conditional on SYMBIAN.
11457         * configure.ac: Don't handle powerpc*-*-gnu*.
11458         * configure: Regenerate.
11459         * doc/extend.texi (interrupt attribute): Don't mention CRX.
11460         * doc/install-old.texi (m6811, m6812): Don't mention.
11461         * doc/install.texi (arc-*-elf*): Don't document multilib option.
11462         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
11463         (m68k-uclinuxoldabi): Don't mention.
11464         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
11465         Remove.
11466         (-mcall-gnu): Remove.
11467         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
11468         families): Remove constraint documentation.
11470 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
11472         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
11473         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
11474         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
11476 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
11478         PR target/48226
11479         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
11480         vector when peeking at the next token for vector, don't expand the
11481         keywords.
11483 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
11485         * config/avr/avr-protos.h (expand_epilogue): Change prototype
11486         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
11487         * config/avr/avr.c (init_cumulative_args)
11488         (avr_function_arg_advance): Use it.
11489         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
11490         sibcall epilogues.
11491         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
11492         (avr_function_ok_for_sibcall): ...this new function.
11493         (avr_lookup_function_attribute1): New static Function.
11494         (avr_naked_function_p, interrupt_function_p)
11495         (signal_function_p, avr_OS_task_function_p)
11496         (avr_OS_main_function_p): Use it.
11497         * config/avr/avr.md ("sibcall", "sibcall_value")
11498         ("sibcall_epilogue"): New expander.
11499         ("*call_insn", "*call_value_insn"): New insn.
11500         ("call_insn", "call_value_insn"): Remove
11501         ("call", "call_value", "epilogue"): Change expander to handle
11502         sibling calls.
11504 2011-03-21  Nick Clifton  <nickc@redhat.com>
11506         * doc/invoke.texi (Overall Options): Move closing brace to end of
11507         options list.
11508         (Optimization Options): Add missing @gol.
11509         (Directory Options): Likewise.
11510         (i386 and x86-64 Options): Likewise.
11511         (RS6000 and PowerPC Options): Likewise.
11512         (i386 and x86-64 Windows Options): Likewise.
11513         (V850 Options): Add text missing from descriptions.
11515 2011-03-22  Richard Henderson  <rth@redhat.com>
11517         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
11518         (avr_incoming_return_addr_rtx): New.
11519         (emit_push_byte): New.
11520         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
11521         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
11522         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
11523         (emit_pop_byte): New.
11524         (expand_epilogue): Use it.  Pop frame pointer by bytes.
11525         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
11526         (INCOMING_RETURN_ADDR_RTX): New.
11527         (INCOMING_FRAME_SP_OFFSET): New.
11528         (ARG_POINTER_CFA_OFFSET): New.
11529         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
11530         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
11531         (pophi): Remove.
11533         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
11535 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
11537         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
11538         (FUNCTION_ARG_ADVANCE): Likewise.
11539         * tm.texi.in: Change references to them to hook references.
11540         * tm.texi: Regenerate.
11541         * targhooks.c (default_function_arg): Eliminate check for target
11542         macro.
11543         (default_function_incoming_arg): Likewise.
11544         (default_function_arg_advance): Likewise.
11545         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
11546         (function_arg_advance): Likewise.
11547         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
11549 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
11551         * tree.c (build_call_1): New function.
11552         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
11554 2011-03-22  Richard Guenther  <rguenther@suse.de>
11556         PR tree-optimization/48228
11557         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
11558         for single-arg PHIs.
11560 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
11562         PR rtl-optimization/48143
11563         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
11564         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
11565         sse2_cvtps2pd): Likewise.
11567 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11569         * recog.c (canonicalize_change_group): Use validate_unshare_change.
11571 2011-03-22  Richard Guenther  <rguenther@suse.de>
11573         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
11574         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
11575         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
11576         and REALIGN_LOAD_EXPR.
11577         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
11578         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
11579         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
11580         DOT_PROD_EXPR case ...
11581         (expand_expr_real_2): ... here.
11582         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
11583         and REALIGN_LOAD_EXPR.
11584         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
11585         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
11586         (vect_create_epilog_for_reduction): Likewise.
11587         (vectorizable_reduction): Likewise.
11588         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
11589         * tree-vect-stmts.c (vectorizable_load): Likewise.
11591 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
11593         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
11595 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11597         * config/s390/s390.c (s390_delegitimize_address): Fix offset
11598         handling for PLTOFF/GOTOFF.
11600 2011-03-22  Nick Clifton  <nickc@redhat.com>
11602         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
11603         trailing backslash from the end of the macro definition.
11605 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11607         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
11608         and PLT unspecs.
11610 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
11612         * expr.h (prepare_operand): Move to...
11613         * optabs.h (prepare_operand): ...here and change the insn code
11614         parameter from "int" to "enum insn_code".
11615         (insn_operand_matches): Declare.
11616         * expr.c (init_expr_target): Use insn_operand_matches.
11617         (compress_float_constant): Likewise.
11618         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
11619         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
11620         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
11621         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
11622         Likewise.
11623         (gen_cond_trap): Likewise.
11624         (prepare_operand): Likewise.  Change icode to an insn_code.
11625         (insn_operand_matches): New function.
11626         * reload.c (find_reloads_address_1): Use insn_operand_matches.
11627         * reload1.c (gen_reload): Likewise.
11628         * targhooks.c (default_secondary_reload): Likewise.
11630 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
11632         * config/alpha/alpha.md (unspec): New define_c_enum.
11633         (unspecv): Ditto.
11635 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
11637         PR debug/48214
11638         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
11639         between a call and its CALL_ARG_LOCATION note.
11641 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
11643         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
11645 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
11647         PR c/42544
11648         PR c/48197
11649         * c-common.c (shorten_compare): If primopN is first sign-extended
11650         to opN and then zero-extended to result type, set primopN to opN.
11652 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
11654         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
11655         for barrier handlers.
11657 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
11659         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
11660         UNSPEC constants to be in the unspec enumeration, and redefine
11661         all UNSPECV constants to be in the unspecv enumeration, so that
11662         dumps print which unspec/unspec_volatile this is.
11663         * config/rs6000/vector.md (UNSPEC_*): Ditto.
11664         * config/rs6000/paired.md (UNSPEC_*): Ditto.
11665         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
11666         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
11667         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
11669         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
11670         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
11671         UNSPECV_LWSYNC, since these are used as unspec_volatile.
11672         * config/rs6000/sync.md (isync, lwsync): Ditto.
11674 2011-03-21  Richard Guenther  <rguenther@suse.de>
11676         * params.def (lto-min-partition): Fix typo.
11678 2011-03-21  Richard Guenther  <rguenther@suse.de>
11680         PR c/47939
11681         * c-decl.c (grokdeclarator): Drop to the main variant only
11682         for array types.  Drop flag_gen_aux_info check.
11684 2011-03-21  Richard Guenther  <rguenther@suse.de>
11686         PR translation/47911
11687         * params.def (lto-partitions): Fix typo.
11688         (lto-min-partition): Fix wording.
11690 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
11692         * config/rs6000/t-freebsd: Remove duplication from file.
11694 2011-03-21  Richard Guenther  <rguenther@suse.de>
11696         PR middle-end/47661
11697         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
11699 2011-03-21  Richard Guenther  <rguenther@suse.de>
11701         PR lto/48210
11702         * params.def (lto-partitions): Require at least 1 partition.
11704 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11706         * gthr-solaris.h: Remove.
11707         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
11708         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
11709         (LIB_SPEC): Likewise.
11710         * config/sol2.opt (threads): Remove.
11711         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
11712         (sparc*-*-solaris2*): Likewise.
11713         * configure.ac (enable_threads): Enable solaris support.
11714         * configure: Regenerate.
11715         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
11716         * doc/install.texi (Configuration, --enable-threads=lib): Remove
11717         solaris.
11719 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11721         * config.gcc: Obsolete *-*-solaris2.8*.
11722         * doc/install.texi (Specific, *-*-solaris2*): Document it.
11724 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11726         PR bootstrap/48135
11727         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
11728         reference.  Solaris 8 perl works.
11730 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11732         PR bootstrap/48135
11733         * doc/install.texi (Prerequisites): Move jar etc. up.
11734         Explain support library version requirements.
11736 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11738         PR bootstrap/48135
11739         * doc/install.texi (Prerequisites): Move Perl to build
11740         requirements.  Always necessary on Solaris 2 with Sun ld.
11742 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11744         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
11745         binutils 2.21.
11746         (Specific, i?86-*-solaris2.[89]): Likewise.
11747         (Specific, i?86-*-solaris2.10): Likewise.
11748         (Specific, mips-sgi-irix6): Likewise.
11749         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
11750         Update for binutils 2.21.
11752 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11754         * configure.ac (gcc_cv_lto_plugin): Fix typo.
11755         Allow -fuse-linker-plugin for non-default plugin linker.
11756         * configure: Regenerate.
11758 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11760         PR bootstrap/48167
11761         * gengtype.c (files_rules): Added rule for cp/parser.h.
11763 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
11765         PR target/48213
11766         * config/s390/s390.c (s390_delegitimize_address): Don't call
11767         lowpart_subreg if orig_x has BLKmode.
11769 2011-03-21  Kai Tietz  <ktietz@redhat.com>
11771         PR target/12171
11772         * doc/plugins.texi: Adjust documentation for plugin register_callback.
11773         * tree.h (attribute_spec): Add new member affects_type_identity.
11774         * attribs.c (empty_attribute_table): Adjust attribute_spec
11775         initializers.
11776         * config/alpha/alpha.c: Likewise.
11777         * config/arc/arc.c: Likewise.
11778         * config/arm/arm.c: Likewise.
11779         * config/avr/avr.c: Likewise.
11780         * config/bfin/bfin.c: Likewise.
11781         * config/crx/crx.c: Likewise.
11782         * config/darwin.h: Likewise.
11783         * config/h8300/h8300.c: Likewise.
11784         * config/i386/cygming.h: Likewise.
11785         * config/i386/i386.c: Likewise.
11786         * config/ia64/ia64.c: Likewise.
11787         * config/m32c/m32c.c: Likewise.
11788         * config/m32r/m32r.c: Likewise.
11789         * config/m68hc11/m68hc11.c: Likewise.
11790         * config/m68k/m68k.c: Likewise.
11791         * config/mcore/mcore.c: Likewise.
11792         * config/mep/mep.c: Likewise.
11793         * config/microblaze/microblaze.c: Likewise.
11794         * config/mips/mips.c: Likewise.
11795         * config/rs6000/rs6000.c: Likewise.
11796         * config/rx/rx.c: Likewise.
11797         * config/sh/sh.c: Likewise.
11798         * config/sol2.h: Likewise.
11799         * config/sparc/sparc.c: Likewise.
11800         * config/spu/spu.c: Likewise.
11801         * config/stormy16/stormy16.c: Likewise.
11802         * config/v850/v850.c: Likewise.
11804 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
11806         * simplify-rtx.c (simplify_binary_operation_1): Handle
11807         (xor (and A B) C) case when B and C are both constants.
11809 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
11811         * tree-dfa.c (add_referenced_var): Fix typo in comment.
11813 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
11815         PR bootstrap/48168
11816         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
11818 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
11820         PR rtl-optimization/48156
11821         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
11822         assume df and df_lr are not NULL.
11824 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11826         PR debug/48023
11827         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
11828         between a call and its CALL_ARG_LOCATION note.
11830 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
11832         PR debug/48178
11833         * config/sh/sh.c (find_barrier): Don't emit a constant pool
11834         between a call and its corresponding CALL_ARG_LOCATION note.
11836 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
11838         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
11839         instead of loop. Use HARD_REGISTER_NUM_P predicate.
11840         * haifa-sched.c (setup_ref_regs): Ditto.
11841         * caller-save.c (add_used_regs_1): Ditto.
11842         * dse.c (look_for_hardregs): Ditto.
11843         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
11844         * sched-rgn.c (check_live_1): Ditto.
11846 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
11848         * c-decl.c (diagnose_mismatched_decls): Give an error for
11849         redefining a typedef with variably modified type.
11851 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
11853         * c-decl.c (grokfield): Don't allow typedefs for structures or
11854         unions with no tag by default.
11855         * doc/extend.texi (Unnamed Fields): Update.
11857 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
11859         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11860         Rewrite using indirect functions.
11861         (lwp_slwpcb): Ditto.
11862         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
11863         (avx_vinsertf128<mode>): Ditto.
11865 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11867         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
11868         unspecs.
11870 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11872         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
11873         splitting between a call and its corresponding CALL_ARG_LOCATION note.
11875 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
11877         PR rtl-optimization/48170
11878         * gcse.c (hoist_code): Remove bogus asserts.
11880 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
11882         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
11883         computation for prologue/epilogue.
11885 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11887         * Makefile.in (check-consistency): Remove.
11889 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
11891         PR debug/48176
11892         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11893         arange_table_in_use is 0, but either text_section_used or
11894         cold_text_section_used is true.  Don't call it if
11895         !info_section_emitted.
11897 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
11899         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11900         FUNCTION_VALUE_REGNO_P): Remove.
11901         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11902         Remove.
11903         * config/avr/avr.c (avr_ret_register): Make static inline.
11904         (avr_function_value_regno_p): New function.
11905         (avr_libcall_value): Make static. Add 'func' argument.
11906         (avr_function_value): Make static. Rename 'func' argument to
11907         'fn_decl_or_type', forward it to avr_libcall_value. Call
11908         avr_ret_register function instead of RET_REGISTER macro.
11909         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11911 2011-03-18  Jason Merrill  <jason@redhat.com>
11913         PR c++/23372
11914         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11916 2011-03-18  Richard Guenther  <rguenther@suse.de>
11918         * doc/install.texi (--enable-gold): Remove.
11919         (--with-plugin-ld): Document.
11920         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11922 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
11924         PR middle-end/47790
11925         * expr.c (optimize_bitfield_assignment_op): Revamp to work
11926         again after expansion changes.
11928 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
11930         * combine.c (try_combine): Do simplification only call of
11931         subst() on i2 even when i1 is present. Update comments.
11933 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11935         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11936         and UNSPEC_PCREL_SYMOFF.
11938 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11940         * config/s390/s390.md: Use define_c_enum for the unspec constant
11941         definitions.
11943 2011-03-18  Richard Henderson  <rth@redhat.com>
11944             Jakub Jelinek  <jakub@redhat.com>
11946         PR bootstrap/48161
11947         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11948         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11950 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11952         PR middle-end/47725
11953         * combine.c (cant_combine_insn_p): Don't check zero/sign
11954         extended hard registers.
11956 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11958         PR middle-end/47725
11959         * combine.c (cant_combine_insn_p): Check zero/sign extended
11960         hard registers.
11962 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
11964         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11965         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11966         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11967         Change return type to bool.
11968         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11970 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11972         PR debug/48163
11973         * var-tracking.c (prepare_call_arguments): If CALL target
11974         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11975         pc instead of looking it up using cselib_lookup and use
11976         Pmode for it if x has VOIDmode.
11977         * dwarf2out.c (gen_subprogram_die): If also both first and
11978         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11980         PR debug/48163
11981         * function.c (assign_parms): For data.passed_pointer parms
11982         use MEM of data.entry_parm instead of data.entry_parm itself
11983         as DECL_INCOMING_RTL.
11984         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11985         also when passed and declared mode is the same, DECL_RTL
11986         is a MEM with pseudo as address and DECL_INCOMING_RTL is
11987         a MEM too.
11989 2011-03-16  Jeff Law  <law@redhat.com>
11991         PR rtl-optimization/37273
11992         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11993         handle them like argument loads from stack slots.  Do not double
11994         count memory for memory constants and argument loads from stack slots.
11996 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11998         PR debug/48160
11999         * var-tracking.c (prepare_call_arguments): Check SUBREG.
12001 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
12003         PR target/48171
12004         * config/i386/i386.opt: Add Save to -mavx and -mfma.
12006 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
12008         PR bootstrap/48153
12009         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
12010         if dwarf_strict.
12011         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
12012         Clear call_arg_locations and call_arg_loc_last always.
12014         PR middle-end/48152
12015         * var-tracking.c (prepare_call_arguments): If argument needs to be
12016         passed by reference, adjust argtype and mode.
12018 2011-03-17  Richard Guenther  <rguenther@suse.de>
12020         PR middle-end/48134
12021         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
12022         a value make sure to fold the statement.
12024 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
12026         PR target/43872
12027         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
12028         return condition with !cfun->calls_alloca.
12030 2011-03-17  Richard Guenther  <rguenther@suse.de>
12032         PR bootstrap/48148
12033         * lto-cgraph.c (input_overwrite_node): Clear the abstract
12034         origin for decls in other ltrans units.
12035         (input_varpool_node): Likewise.
12037 2011-03-17  Richard Guenther  <rguenther@suse.de>
12039         PR middle-end/48165
12040         * tree-object-size.c (compute_object_offset): Properly return
12041         the offset operand of MEM_REFs as sizetype.
12043 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
12045         PR rtl-optimization/48141
12046         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
12047         * dse.c: Include params.h.
12048         (active_local_stores_len): New variable.
12049         (add_wild_read, dse_step1): Clear it when setting active_local_stores
12050         to NULL.
12051         (record_store, check_mem_read_rtx): Decrease it when removing
12052         from the chain.
12053         (scan_insn): Likewise.  Increase it when adding to chain, if it
12054         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
12055         set active_local_stores to NULL before the addition.
12056         * Makefile.in (dse.o): Depend on $(PARAMS_H).
12058         PR rtl-optimization/48141
12059         * dse.c (record_store): If no positions are needed in an insn
12060         that cannot be deleted, at least unchain it from active_local_stores.
12062 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
12064         PR debug/47510
12065         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
12066         (lookup_type_die_strip_naming_typedef): ... here.
12067         (get_context_die): Use it.
12068         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
12069         the anonymous struct named by the naming typedef.
12071 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
12073         PR target/48154
12074         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
12075         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
12077 2011-03-16  Jeff Law  <law@redhat.com>
12079         * tree-vrp.c (identify_jump_threads): Slightly simplify type
12080         check for operands of conditional.  Allow type to be a pointer.
12082 2011-03-16  Richard Guenther  <rguenther@suse.de>
12084         PR tree-optimization/48149
12085         * fold-const.c (fold_binary_loc): Fold
12086         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
12088 2011-03-16  Richard Guenther  <rguenther@suse.de>
12090         PR tree-optimization/26134
12091         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
12092         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
12093         (non_rewritable_mem_ref_base): Handle complex type component
12094         accesses, constrain offsets for vector and complex extracts
12095         more properly.
12097 2011-03-16  Richard Guenther  <rguenther@suse.de>
12099         PR tree-optimization/48146
12100         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
12101         operands avoiding the need for renaming.
12103 2011-03-16  Richard Guenther  <rguenther@suse.de>
12105         * gimple-fold.c (maybe_fold_reference): Open-code relevant
12106         constant folding.  Move MEM_REF canonicalization first.
12107         Rely on fold_const_aggregate_ref for initializer folding.
12108         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
12110 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
12112         PR middle-end/48136
12113         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
12114         arg0/arg1 or their arguments are always fold converted to matching
12115         types.
12117         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
12118         to nargs.
12120 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12122         PR lto/46944
12123         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
12124         Handle in-tree gold.
12125         (ld_vers): Extract binutils version for gold.
12126         (gcc_cv_ld_hidden): Handle gold here.
12127         (gcc_cv_lto_plugin): Determine level of linker plugin support.
12128         * configure: Regenerate.
12129         * config.in: Regenerate.
12130         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
12131         -fuse-linker-plugin otherwise.
12132         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
12133         (LINK_COMMAND_SPEC): Use it.
12134         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
12136 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
12138         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
12139         * calls.c: Remove debug.h include.
12140         (emit_call_1): Don't call virtual_call_token debug hook.
12141         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
12142         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
12143         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
12144         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
12145         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
12146         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
12147         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
12148         dwarf2out_virtual_call): Remove.
12149         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
12150         copy_call_info and virtual_call hooks.
12151         (dwarf2out_init): Don't initialize vcall_insn_table,
12152         debug_dcall_section and debug_vcall_section.
12153         (prune_unused_types): Don't mark nodes from dcall_table.
12154         (dwarf2out_finish): Don't output dcall or vcall tables.
12155         * final.c (final_scan_insn): Don't call direct_call or
12156         virtual_call debug hooks.
12157         * debug.h (struct gcc_debug_hooks): Remove direct_call,
12158         virtual_call_token, copy_call_info and virtual_call hooks.
12159         (debug_nothing_uid): Remove prototype.
12160         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
12161         copy_call_info and virtual_call hooks.
12162         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12163         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
12164         * debug.c (do_nothing_debug_hooks): Likewise.
12165         (debug_nothing_uid): Remove.
12166         * doc/invoke.texi (-fenable-icf-debug): Remove.
12167         * common.opt (-fenable-icf-debug): Likewise.
12169         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
12170         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
12171         call's MEM.  Handle functions returning aggregate through a hidden
12172         first pointer.  For virtual calls add clobbered pc to call arguments
12173         chain.
12174         * dwarf2out.c (gen_subprogram_die): Emit
12175         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
12176         can't be emitted.
12178         PR debug/45882
12179         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
12180         * rtl.h (ENTRY_VALUE_EXP): Define.
12181         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
12182         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12183         * print-rtl.c (print_rtx): Likewise.
12184         * gengtype.c (adjust_field_rtx_def): Likewise.
12185         * var-tracking.c (vt_add_function_parameter): Adjust
12186         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
12187         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
12188         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
12189         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
12190         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
12192         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
12193         Call var_location debug hook even on CALL_INSNs.
12194         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
12195         * rtl.def (ENTRY_VALUE): New.
12196         * dwarf2out.c: Include cfglayout.h.
12197         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
12198         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
12199         (struct call_arg_loc_node): New type.
12200         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
12201         tail_call_site_count): New variables.
12202         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
12203         DW_TAG_GNU_call_site_parameter.
12204         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
12205         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
12206         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
12207         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
12208         and DW_AT_GNU_all_source_call_sites.
12209         (mem_loc_descriptor): Handle ENTRY_VALUE.
12210         (add_src_coords_attributes): Don't add enything if
12211         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
12212         (dwarf2out_abstract_function): Save and clear call_arg_location,
12213         call_site_count and tail_call_site_count around dwarf2out_decl call.
12214         (gen_call_site_die): New function.
12215         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
12216         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
12217         (dwarf2out_function_decl): Clear call_arg_locations,
12218         call_arg_loc_last, set call_site_count and tail_call_site_count
12219         to -1 and free block_map.
12220         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
12221         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
12222         followed by any real instructions.
12223         (dwarf2out_begin_function): Set call_site_count and
12224         tail_call_site_count to 0.
12225         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
12226         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
12227         attempt to force a DIE for it and worst case remove the attribute.
12228         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
12229         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
12230         the decl itself.
12231         * var-tracking.c: Include tm_p.h.
12232         (vt_stack_adjustments): For calls call note_register_arguments.
12233         (argument_reg_set): New variable.
12234         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
12235         ensure the VALUE is resolved.
12236         (call_arguments): New variable.
12237         (prepare_call_arguments): New function.
12238         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
12239         (struct expand_loc_callback_data): Add ignore_cur_loc field.
12240         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
12241         always use the best expression.
12242         (vt_expand_loc): Add ignore_cur_loc argument.
12243         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
12244         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
12245         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
12246         note for all calls.
12247         (vt_add_function_parameter): Use cselib_lookup_from_insn.
12248         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
12249         argument.  Don't call cselib_preserve_only_values and
12250         cselib_reset_table.
12251         (note_register_arguments): New function.
12252         (vt_initialize): Compute argument_reg_set.  Call
12253         vt_add_function_parameters before processing basic blocks instead of
12254         afterwards.  For calls call prepare_call_arguments before calling
12255         cselib_process_insn.
12256         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
12257         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
12258         (var-tracking.o): Depend on $(TM_P_H).
12259         * cfglayout.h (insn_scope): New prototype.
12260         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
12261         * cfglayout.c (insn_scope): No longer static.
12262         * insn-notes.def (CALL_ARG_LOCATION): New.
12263         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
12264         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
12265         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
12266         nothing for DECL_EXTERNAL BLOCK_VARS.
12268 2011-03-16  Alan Modra  <amodra@gmail.com>
12270         PR target/45844
12271         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
12272         create invalid offset address for vsx splat insn.
12273         * config/rs6000/predicates.md (splat_input_operand): New.
12274         * config/rs6000/vsx.md (vsx_splat_*): Use it.
12276 2011-03-15  Xinliang David Li  <davidxl@google.com>
12278         PR c/47837
12279         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
12280         (normalize_preds): New function.
12281         (is_use_properly_guarded): Normalize def predicates.
12283 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12285         PR target/46788
12286         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
12287         in the output template.
12289 2011-03-15  Richard Guenther  <rguenther@suse.de>
12291         PR middle-end/47650
12292         * tree-pretty-print.c (dump_function_declaration): Properly
12293         dump unprototyped and varargs function types.
12295 2011-03-15  Richard Guenther  <rguenther@suse.de>
12297         PR tree-optimization/13954
12298         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
12299         and friends.
12301 2011-03-15  Richard Guenther  <rguenther@suse.de>
12303         PR tree-optimization/48037
12304         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
12305         selects into BIT_FIELD_REFs.
12306         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
12307         vector select.
12309 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
12311         PR tree-optimization/48129
12312         * builtins.c (fold_builtin_snprintf): Convert to type of
12313         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
12314         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
12316 2011-03-15  Richard Guenther  <rguenther@suse.de>
12318         PR tree-optimization/41490
12319         * tree-ssa-dce.c (propagate_necessity): Handle returns without
12320         value but with VUSE.
12321         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
12322         return statements.
12323         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
12324         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
12325         * tree-tailcall.c (find_tail_calls): Ignore returns.
12327 2011-03-15  Richard Guenther  <rguenther@suse.de>
12329         PR middle-end/48031
12330         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
12331         or variable-indexed array accesses when in gimple form.
12333 2011-03-15  Richard Guenther  <rguenther@suse.de>
12335         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
12337 2011-03-15  Alan Modra  <amodra@gmail.com>
12339         PR target/48032
12340         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
12341         presume symbol_refs without a symbol_ref_decl are suitably
12342         aligned, nor other trees we may see here.  Handle anchor symbols.
12343         (legitimate_constant_pool_address_p): Comment.  Add mode param.
12344         Check cmodel=medium addresses.  Adjust all calls.
12345         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
12346         creating cmodel=medium optimized access to locals.
12347         * config/rs6000/constraints.md (R): Pass QImode to
12348         legitimate_constant_pool_address_p.
12349         * config/rs6000/predicates.md (input_operand): Pass mode to
12350         legitimate_constant_pool_address_p.
12351         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
12352         Update prototype.
12354 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12356         PR target/48053
12357         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
12358         64-bit constants being loaded into registers other than GPRs such
12359         as loading 0 into a VSX register.
12361 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12363         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
12365 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
12367         PR middle-end/47917
12368         * builtins.c (fold_builtin_snprintf): New function.
12369         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
12370         (fold_builtin_4): Likewise.
12372         PR middle-end/38878
12373         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
12374         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
12375         and C - X == X also strip nops from +/-/p+ operand.
12376         When optimizing -X == C, fold C to arg0's type.
12378         PR debug/47946
12379         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
12380         emit it as add_AT_int instead of add_AT_unsigned.
12382 2011-03-14  Tom Tromey  <tromey@redhat.com>
12384         * unwind-dw2.c: Include sys/sdt.h if it exists.
12385         (_Unwind_DebugHook): Use STAP_PROBE2.
12386         * config.in, configure: Rebuild.
12387         * configure.ac: Check for sys/sdt.h.
12389 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
12391         * config/i386/i386.md (ROUND_FLOOR): New constant.
12392         (ROUND_CEIL): Ditto.
12393         (ROUND_TRUNC): Ditto.
12394         (ROUND_MXCSR): Ditto.
12395         (ROUND_NO_EXC): Ditto.
12396         (rint<mode>2): Use new defines instead of numerical constants.
12397         (floor<mode>2): Ditto.
12398         (ceil<mode>2): Ditto.
12399         (btrunc<mode>2): Ditto.
12400         * config/i386/i386-builtin-types.def: Define ROUND function type
12401         aliases.
12402         * config/i386/i386.c (enum ix86_builtins): Add
12403         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
12404         (struct builtin_description): Add
12405         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
12406         (ix86_expand_sse_round): New static function.
12407         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
12408         function types.
12409         (ix86_builtin_vectorized_function): Handle
12410         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
12412 2011-03-14  Tom Tromey  <tromey@redhat.com>
12414         * c-parser.c (c_parser_asm_string_literal): Clear
12415         warn_overlength_strings.
12417 2011-03-14  Tom Tromey  <tromey@redhat.com>
12419         * c-parser.c (disable_extension_diagnostics): Save
12420         warn_overlength_strings.
12421         (restore_extension_diagnostics): Restore warn_overlength_strings.
12423 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
12425         * BASE-VER: Change to 4.7.0.
12427 2011-03-14  Richard Guenther  <rguenther@suse.de>
12429         PR middle-end/48098
12430         * tree.c (build_vector_from_val): Adjust assert to requirements
12431         and reality.
12433 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
12435         PR bootstrap/48102
12436         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
12438 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
12440         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
12441         terms of target_flags_explicit. Adjust copyright year.
12443         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
12444         * config/rs6000/t-freebsd: New file. Add override for
12445         LIB2FUNCS_EXTRA.
12447 2011-03-13  Chris Demetriou  <cgd@google.com>
12449         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
12450         (-fno-diagnostics-show-option): this, to reflect current default.
12451         (-Werror=): Update text about -fno-diagnostics-show-option.
12453 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
12455         PR target/48053
12456         * config/rs6000/predicates.md (easy_vector_constant_add_self,
12457         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
12458         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
12459         mode is not V2DImode or V2DFmode.
12460         (vspltis_constant): Do not handle V2DImode and V2DFmode.
12461         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
12462         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
12463         registers to 0.
12464         (movdi_internal64): Likewise.
12466 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
12468         PR tree-optimization/47127
12469         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
12470         parameter.
12471         (set_cloog_options): Same.
12472         (scop_to_clast): Same.
12473         (print_clast_stmt): Do not call cloog_state_malloc and
12474         cloog_state_free.
12475         (print_generated_program): Same.
12476         (gloog): Same.
12477         * graphite-clast-to-gimple.h (cloog_state): Declared.
12478         (scop_to_clast): Adjust declaration.
12479         * graphite.c (cloog_state): Defined here.
12480         (graphite_initialize): Call cloog_state_malloc.
12481         (graphite_finalize): Call cloog_state_free.
12483 2011-03-11  Jason Merrill  <jason@redhat.com>
12485         * attribs.c (lookup_attribute_spec): Take const_tree.
12486         * tree.h: Adjust.
12488 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
12490         * config/sparc/sparc.c (sparc_option_override): Use
12491         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
12493 2011-03-11  Richard Guenther  <rguenther@suse.de>
12495         PR tree-optimization/48067
12496         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
12497         multiplication result will be only used once on the target
12498         stmt.
12500 2011-03-11  Richard Guenther  <rguenther@suse.de>
12502         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
12504 2011-03-11  Richard Guenther  <rguenther@suse.de>
12506         PR lto/48073
12507         * tree.c (find_decls_types_r): Do not walk types only reachable
12508         from IDENTIFIER_NODEs.
12510 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
12512         PR middle-end/48044
12513         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
12514         all vnode->force_output nodes as needed.
12516 2011-03-11  Jason Merrill  <jason@redhat.com>
12518         PR c++/48069
12519         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
12520         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
12522 2011-03-11  Martin Jambor  <mjambor@suse.cz>
12524         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
12525         cgraph_node.
12527 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
12529         PR tree-optimization/48063
12530         * ipa-inline.c (cgraph_decide_inlining): Don't try to
12531         inline functions called once if !tree_can_inline_p (node->callers).
12533 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
12535         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
12536         extra_objs.
12537         * config/score/score3.c: Delete.
12538         * config/score/score3.h: Delete.
12539         * config/score/mul-div.S: Delete.
12540         * config/score/sfp-machine.h: Add new file.
12541         * config/score/constraints.md: Add new file.
12542         * config/score/t-score-softfp: Add new file.
12543         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
12544         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
12545         (score7_extra_constraint): Delete.
12546         (score7_option_override): Remove unused code.
12547         * config/score/score.c: Remove score3 and score5 define and code.
12548         * config/score/score.h: Remove score3 and score5 define and code.
12549         * config/score/score.md: Remove score3 template and unusual insn.
12550         * config/score/score.opt: Remove score3 and score5 options.
12552 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12554         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
12555         when _HPUX_SOURCE is defined.
12556         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
12558 2011-03-10  Jason Merrill  <jason@redhat.com>
12560         PR c++/48029
12561         * stor-layout.c (layout_type): Don't set structural equality
12562         on arrays of incomplete type.
12563         * tree.c (type_hash_eq): Handle comparing them properly.
12565 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
12567         PR debug/48043
12568         * config/s390/s390.c (s390_delegitimize_address): Make sure the
12569         result mode matches original rtl mode.
12571 2011-03-10  Nick Clifton  <nickc@redhat.com>
12573         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
12574         (andsi3, andsi3_flags): Fix timings for three operand alternative.
12576 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
12578         PR rtl-optimization/47866
12579         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
12580         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
12581         if target wasn't scalar.
12582         * function.c (assign_stack_temp_for_type): Assert that neither
12583         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
12584         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
12585         macro.
12586         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
12588 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12590         * config/s390/s390-protos.h (s390_label_align): New prototype.
12591         * config/s390/s390.c (s390_label_align): New function.
12592         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
12594 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
12596         PR target/47755
12597         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
12598         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
12599         (output_vec_const_move): Ditto.
12601 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
12603         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
12604         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
12605         * config/mips/mips.c (mips_preferred_reload_class): Make static.
12606         Change 'rclass' argument and result type to reg_class_t.
12607         (TARGET_PREFERRED_RELOAD_CLASS): Define.
12609 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
12611         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12612         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
12613         (TARGET_MEMORY_MOVE_COST): Define.
12614         (avr_register_move_cost, avr_memory_move_cost): New Functions.
12616 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
12618         PR debug/47881
12619         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
12620         removed anything.
12622         PR tree-optimization/48022
12623         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
12624         for EQ/NE_EXPR.
12626 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
12628         PR debug/47991
12629         * var-tracking.c (find_use_val): Return NULL for
12630         cui->sets && cui->store_p BLKmode MEMs.
12632 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
12634         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
12635         Remove.
12636         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
12637         xstormy16_print_operand_address): Remove.
12638         * config/stormy16/stormy16.c (xstormy16_print_operand,
12639         xstormy16_print_operand_address): Make static.
12640         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12642 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
12644         PR target/47862
12645         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12646         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
12647         before definition.
12649 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
12651         PR bootstrap/48000
12652         * cfgloopmanip.c (fix_bb_placements): Return immediately
12653         if FROM is BASE_LOOP's header.
12655 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
12657         * gimplify.c (gimplify_function_tree): Fix building calls
12658         to __builtin_return_address.
12660 2011-03-07  Alan Modra  <amodra@gmail.com>
12662         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
12663         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
12664         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
12665         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
12666         return_mode args.
12667         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
12668         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
12669         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
12670         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
12671         * config/rs6000/rs6000.c
12672         (rs6000_elf_end_indicate_exec_stack): Rename to..
12673         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
12674         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
12675         (rs6000_file_start): ..here.
12676         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
12677         file scope variables.
12678         (call_ABI_of_interest): New function.
12679         (init_cumulative_args): Set above vars when function return value
12680         is a float, vector, or small struct.
12681         (rs6000_function_arg_advance_1): Likewise for function args.
12682         (rs6000_va_start): Set rs6000_passes_float if variable arg function
12683         references float args.
12685 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
12687         * doc/cfg.texi: Remove "See" before @ref.
12688         * doc/invoke.texi: Likewise.
12690 2011-03-05  Jason Merrill  <jason@redhat.com>
12692         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
12694 2011-03-05  Anthony Green  <green@moxielogic.com>
12696         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
12698 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
12700         PR rtl-optimization/47899
12701         * cfgloopmanip.c (fix_bb_placements): Fix first argument
12702         to flow_loop_nested_p when moving the loop upward.
12704 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
12706         PR target/47719
12707         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
12709 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
12711         PR tree-optimization/47967
12712         * ipa-cp.c (build_const_val): Return NULL instead of creating
12713         VIEW_CONVERT_EXPR for mismatching sizes.
12714         (ipcp_create_replace_map): Return NULL if build_const_val failed.
12715         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
12716         give up on versioning.
12718 2011-03-05  Alan Modra  <amodra@gmail.com>
12720         PR target/47986
12721         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12722         full cmodel medium/large lo_sum + high addresses.
12724 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12726         * config/s390/s390.c (s390_decompose_address): Reject non-literal
12727         pool references in UNSPEC_LTREL_OFFSET.
12729 2011-03-04  Jan Hubicka  <jh@suse.cz>
12731         PR lto/47497
12732         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
12733         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
12734         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
12735         Add node pointers.
12736         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
12737         cgraph_add_thunk): Add node pointers.
12738         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
12739         associated to right node.
12740         (input_node): Update use of cgraph_same_body_alias
12741         and cgraph_add_thunk.
12743 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
12745         * config/i386/i386.opt (mprefer-avx128): New flag.
12746         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
12747         modes when the flag -mprefer-avx128 is on.
12749 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
12751         * dwarf2out.c (compare_loc_operands): Fix address handling.
12753 2011-03-04  Alan Modra  <amodra@gmail.com>
12755         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
12757 2011-03-04  Richard Guenther  <rguenther@suse.de>
12759         PR middle-end/47968
12760         * expmed.c (extract_bit_field_1): Prefer vector modes that
12761         vec_extract patterns can handle.
12763 2011-03-04  Richard Guenther  <rguenther@suse.de>
12765         PR middle-end/47975
12766         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
12768 2011-03-04  Richard Henderson  <rth@redhat.com>
12770         * explow.c (emit_stack_save): Remove 'after' parameter.
12771         (emit_stack_restore): Likewise.
12772         * expr.h: Update to match.
12773         * builtins.c, calls.c, stmt.c: Likewise.
12774         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
12775         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
12776         * function.c (expand_function_end): Insert the emit_stack_save
12777         sequence before parm_birth_insn instead of after.
12779 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
12781         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
12782         (ssse3_pmaddubsw128): Ditto.
12783         (ssse3_pmaddubsw): Ditto.
12785 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
12787         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
12789 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
12791         PR c/47963
12792         * gimplify.c (omp_add_variable): Only call omp_notice_variable
12793         on TYPE_SIZE_UNIT if it is a DECL.
12795         PR debug/47283
12796         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
12797         first operand is not is_gimple_mem_ref_addr, try to fold it.
12798         If the operand still isn't is_gimple_mem_ref_addr, clear
12799         MEM_EXPR on op0.
12801 2011-03-03  Richard Guenther  <rguenther@suse.de>
12803         PR middle-end/47283
12804         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
12805         match comment.
12806         (refs_may_alias_p_1): For release branches return true if
12807         we are confused by our input.
12809 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12811         * config/s390/s390.c (s390_function_value): Rename to ...
12812         (s390_function_and_libcall_value): ... this.
12813         (s390_function_value): New function.
12814         (s390_libcall_value): New function.
12815         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
12816         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
12817         target macro definitions.
12818         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
12820 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
12822         * config/i386/freebsd64.h (CC1_SPEC): Define.
12823         * config/i386/linux64.h (CC1_SPEC): Define.
12824         * config/i386/x86-64.h (CC1_SPEC): Don't define.
12826 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
12828         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12829         Remove.
12830         * config/stormy16/stormy16.c: Include reload.h.
12831         (xstormy16_memory_move_cost): New function.
12832         (TARGET_MEMORY_MOVE_COST): Define.
12834 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
12836         PR rtl-optimization/47925
12837         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
12838         with side effects.  Remove the more-specific check for volatile asms.
12840 2011-03-02  Alan Modra  <amodra@gmail.com>
12842         PR target/47935
12843         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
12844         toc relative addresses for valid offsets.
12846 2011-03-01  Richard Guenther  <rguenther@suse.de>
12848         PR tree-optimization/47890
12849         * tree-vect-loop.c (get_initial_def_for_induction): Set
12850         related stmt properly.
12852 2011-03-01  Richard Guenther  <rguenther@suse.de>
12854         PR lto/47924
12855         * lto-streamer.c (lto_record_common_node): Also register
12856         the canonical type.
12858 2011-03-01  Richard Guenther  <rguenther@suse.de>
12860         PR lto/46911
12861         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12862         Do not stream DECL_ABSTRACT_ORIGIN.
12863         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12864         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12865         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12866         Do not stream DECL_ABSTRACT_ORIGIN.
12867         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12868         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12870 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
12872         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
12873         FUNCTION_VALUE_REGNO_P): Remove.
12874         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
12875         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
12876         Add 'outgoing' argument.
12877         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
12878         function.
12879         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12880         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12882 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
12884         PR debug/28047
12885         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12886         (lookup_filename): Likewise.
12887         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
12889 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
12890             Jakub Jelinek  <jakub@redhat.com>
12892         PR middle-end/47893
12893         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12894         (assign_stack_local_1): Change last argument type to int.
12895         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12896         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
12897         don't record padding space into frame_space_list nor use those areas.
12898         (assign_stack_local): Adjust caller.
12899         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12900         of assign_stack_local, pass 0 as last argument.
12901         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12902         callers.
12904 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
12906         PR debug/47283
12907         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12908         Use target address_mode and pointer_mode hooks instead of hardcoded
12909         Pmode and ptr_mode.  Handle some simple cases of extending if
12910         POINTERS_EXTEND_UNSIGNED < 0.
12911         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12912         Call convert_debug_memory_address.
12913         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12914         convert_debug_memory_address.
12916         PR middle-end/46790
12917         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12918         * configure: Regenerated.
12919         * config.in: Regenerated.
12920         * varasm.c (default_function_section): Return NULL
12921         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12923 2011-02-28  Martin Jambor  <mjambor@suse.cz>
12925         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12926         the description to match the printed values.
12928 2011-02-28  Richard Guenther  <rguenther@suse.de>
12930         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12931         of the copied scope tree.
12933 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12935         * doc/extend.texi (Function Attributes): Avoid deeply (and
12936         wrongly) nested tables.
12938 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
12940         PR middle-end/47903
12941         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12942         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12943         r isn't op0 nor op1.
12945 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12947         * config/avr/avr.md: Remove magic comment for emacs.
12949 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12951         PR target/45261
12952         * config/avr/avr.c (avr_option_override): Use error on bad options.
12953         (avr_help): New function.
12954         (TARGET_HELP): Define.
12956 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
12958         PR target/42240
12959         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12960         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12962 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
12964         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12965         (ARM Options): Ditto.
12966         (i386 and x86-64 Options): Ditto.
12967         (RX Options): Ditto.
12968         (SPARC Options): Ditto.
12970 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
12972         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12973         FreeBSD 6 and later.  Generally use cpu generic.
12975 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
12977         * doc/cpp.texi: Update copyright years.
12979 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12981         PR target/46898
12982         * config/lm32/lm32.md (ashrsi3): Added needed variable.
12984 2011-02-25  Jon Beniston  <jon@beniston.com>
12986         PR target/46898
12987         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12988         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12989         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12990         (lm32_block_move_inline): Add type cast to remove warning.
12991         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12992         (gen_int_relational): Move declarations to start of function.
12994 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
12996         PR tree-optimization/45470
12997         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12998         can throw internally only.
12999         * tree-vect-stmts.c (vectorizable_call): Likewise.
13001 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
13003         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
13004         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13005         * config/stormy16/stormy16-protos.h
13006         (xstormy16_preferred_reload_class): Remove.
13007         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
13008         static. Change 'rclass' argument and return type to reg_class_t.
13009         (TARGET_PREFERRED_RELOAD_CLASS,
13010         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13012 2011-02-24  Richard Guenther  <rguenther@suse.de>
13014         * lto-streamer-in.c (input_bb): Do not find referenced vars
13015         in debug statements.
13017 2011-02-23  Jason Merrill  <jason@redhat.com>
13019         * common.opt (fabi-version): Document v5 and v6.
13021 2011-02-23  Richard Guenther  <rguenther@suse.de>
13023         PR tree-optimization/47849
13024         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
13026 2011-02-23  Jie Zhang  <jie@codesourcery.com>
13028         * opts-common.c (decode_cmdline_option): Print empty string
13029         argument as "" in decoded->orig_option_with_args_text.
13030         * gcc.c (execute): Print empty string argument as ""
13031         in the verbose output.
13032         (do_spec_1): Keep empty string argument.
13034 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
13036         * config.gcc: Declare score-* and crx-* obsolete.
13038 2011-02-23  Jie Zhang  <jie@codesourcery.com>
13040         PR rtl-optimization/47763
13041         * web.c (web_main): Ignore naked clobber when replacing register.
13043 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
13045         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
13046         Remove.
13048 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
13050         PR doc/47848
13051         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
13053 2011-02-22  Mike Stump  <mikestump@comcast.net>
13055         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
13056         assembler.
13057         * configure: Regenerate.
13059 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
13061         PR rtl-optimization/46002
13062         * ira-color.c (update_copy_costs): Change class intersection
13063         test to reg_class_contents[] test of 'hard_regno'.
13065 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
13067         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
13068         than Driver option.
13069         * config/hpux11.opt (mt): Likewise.
13070         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
13071         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
13072         * config/vax/elf.opt (mno-asm-pic): Likewise.
13073         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
13075 2011-02-21  Mike Stump  <mikestump@comcast.net>
13077         PR target/47822
13078         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
13079         tree so we can get save the type.
13080         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
13081         for CFString instead of trying to use past the end of the builtins.
13082         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
13083         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
13084         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
13085         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
13086         Rename to darwin_builtin_cfstring.
13087         (darwin_init_cfstring_builtins): Return the built type.
13089 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
13091         PR target/47840
13092         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
13093         (_mm256_insert_epi64): Use _mm_insert_epi64.
13095 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
13097         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13098         * config/stormy16/stormy16-protos.h
13099         (xstormy16_mode_dependent_address_p): Remove.
13100         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
13101         Make static. Change return type to bool. Change argument type to
13102         const_rtx. Remove dead code.
13103         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13105 2011-02-21  Richard Guenther  <rguenther@suse.de>
13107         PR lto/47820
13108         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
13109         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
13110         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
13111         TUs context.
13112         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
13113         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
13115 2011-02-20  Richard Guenther  <rguenther@suse.de>
13117         PR lto/47822
13118         * tree.c (free_lang_data_in_decl): Clean builtins from
13119         the TU decl BLOCK_VARS.
13121 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
13123         PR debug/47620
13124         PR debug/47630
13125         * haifa-sched.c (fix_tick_ready): Skip tick computation
13126         for debug insns.
13128 2011-02-19  Richard Guenther  <rguenther@suse.de>
13130         PR lto/47647
13131         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
13132         Remove lazy BLOCK_VARS streaming.
13133         (lto_input_ts_block_tree_pointers): Likewise.
13134         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
13136 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
13138         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
13140 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
13142         * config/i386/biarch32.h, config/i386/mach.h,
13143         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
13145 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
13147         PR target/47800
13148         * config/i386/i386.md (peephole2 for shift and plus): Use
13149         operands[1] original mode in the first insn.
13151 2011-02-18  Mike Stump  <mikestump@comcast.net>
13153         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
13155 2011-02-18  Jan Hubicka  <jh@suse.cz>
13157         PR middle-end/47788
13158         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
13159         to zero when the function is not inlinable at all.
13161 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13163         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
13164         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13165         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
13166         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
13167         * config/pa/t-pa64: Likewise.
13168         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
13170 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
13172         PR driver/47787
13173         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
13175 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13177         PR target/47792
13178         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
13180 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
13182         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
13183         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
13184         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
13185         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
13186         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
13187         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
13188         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
13189         m32r_load_postinc_p, m32r_store_preinc_predec_p,
13190         m32r_legitimate_address_p): New functions.
13191         * config/m32r/constraints.md (constraint "S"): Don't use
13192         STORE_PREINC_PREDEC_P.
13193         (constraint "U"): Don't use LOAD_POSTINC_P.
13195 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
13197         PR rtl-optimization/46178
13198         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
13199         compute ira_hard_regno_cover_class[].
13201 2011-02-18  Richard Guenther  <rguenther@suse.de>
13203         PR lto/47798
13204         * lto-streamer.h (lto_global_var_decls): Declare.
13205         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
13206         statics for global var processing.
13208 2011-02-18  Richard Guenther  <rguenther@suse.de>
13210         PR tree-optimization/47737
13211         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
13212         edge dominance check.
13214 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
13216         PR debug/47780
13217         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
13218         avoid invalid rtx sharing.
13220 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
13222         * doc/cpp.texi (Obsolete Features): Add background on the
13223         origin of assertions.
13225 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
13227         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
13228         objc_abi == 2.
13229         * config/darwin.c (output_objc_section_asm_op): Added support for
13230         ABI v1 and v2.
13231         (is_objc_metadata): New.
13232         (darwin_objc2_section): New.
13233         (darwin_objc1_section): New.
13234         (machopic_select_section): Added support for ABI v1 and v2.
13235         (darwin_emit_objc_zeroed): New.
13236         (darwin_output_aligned_bss): Detect objc metadata and treat it
13237         appropriately.
13238         (darwin_asm_output_aligned_decl_common): Same.
13239         (darwin_asm_output_aligned_decl_local): Same.
13240         * config/darwin-sections.def: Updated for ABI v1 and v2.
13241         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
13242         compiling Objective-C code for the NeXT runtime, default to using
13243         ABI version 0 for 32-bit, and version 2 for 64-bit.
13245 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13247         * common.opt (optimize_fast): New Variable.
13248         * opts.c (default_options_optimization): Use opts->x_optimize_fast
13249         instead of local variable ofast.
13251 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
13253         * doc/invoke.texi (fobjc-abi-version): Documented.
13254         (fobjc-nilcheck): Documented.
13255         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
13256         version.
13258 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13260         PR driver/47390
13261         * common.opt (export-dynamic): New Driver option.
13262         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
13264 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13266         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
13268 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
13269             Jan Hubicka  <jh@suse.cz>
13271         PR debug/47106
13272         PR debug/47402
13273         * cfgexpand.c (account_used_vars_for_block): Remove.
13274         (estimated_stack_frame_size): Use referenced vars.
13275         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
13276         that were referenced in the original function.  Test src_fn
13277         rather than cfun.  Drop redundant get_var_ann.
13278         (setup_one_parameter): Drop redundant get_var_ann.
13279         (declare_return_variable): Likewise.
13280         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
13281         (copy_arguments_for_versioning): Drop redundant get_var_ann.
13282         * ipa-inline.c (compute_inline_parameters): Do not compute
13283         disregard_inline_limits here.
13284         (compute_inlinable_for_current, pass_inlinable): New.
13285         (pass_inline_parameters): Require PROP_referenced_vars.
13286         * cgraphunit.c (cgraph_process_new_functions): Don't run
13287         compute_inline_parameters explicitly unless function is in SSA form.
13288         (cgraph_analyze_function): Set .disregard_inline_limits.
13289         * tree-sra.c (convert_callers): Compute inliner parameters
13290         only for functions already in SSA form.
13292 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13294         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
13295         -mlittle-endian-data.
13297 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13299         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
13300         -mno-fpu, not -fpu and -no-fpu.
13301         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
13302         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
13304 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
13306         PR target/43653
13307         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
13308         input reload with PLUS RTX.
13310 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13312         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
13313         of InverseVar(MDMX).
13315 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13317         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
13318         --m4-340.
13320 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13322         * config/mn10300/mn10300.opt (mno-crt0): New.
13324 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13326         * config/m68k/uclinux.opt (static-libc): New Driver option.
13328 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13330         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
13332 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13334         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
13335         %{muser-extend-enabled}.
13337 2011-02-16  Richard Guenther  <rguenther@suse.de>
13339         PR tree-optimization/47738
13340         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
13341         the TODO from tree_predictive_commoning.
13343 2011-02-15  Jeff Law  <law@redhat.com>
13345         Revert
13346         2011-01-25  Jeff Law  <law@redhat.com>
13348         PR rtl-optimization/37273
13349         * ira-costs.c (scan_one_insn): Detect constants living in memory and
13350         handle them like argument loads from stack slots.  Do not double
13351         count memory for memory constants and argument loads from stack slots.
13353 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
13355         PR middle-end/47725
13356         * combine.c (cant_combine_insn_p): Revert the last change.
13358 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
13360         PR target/47755
13361         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
13362         mode for vector constants.  Remove code that checks for TImode.
13364 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
13366         PR debug/47106
13367         PR debug/47402
13368         * cgraph.h (compute_inline_parameters): Return void.
13369         * ipa-inline.c (compute_inline_parameters): Adjust.
13371 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
13373         PR debug/47106
13374         PR debug/47402
13375         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
13376         rather than decl.
13377         * cfgexpand.c (estimated_stack_frame_size): Likewise.
13378         * ipa-inline.c (compute_inline_parameters): Adjust.
13380 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
13382         PR debug/47106
13383         PR debug/47402
13384         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
13385         Adjust all users.  Pass FN to...
13386         * tree-flow-inline.h (first_referenced_var): ... this.  Add
13387         fn argument.
13388         * ipa-struct-reorg.c: Adjust.
13389         * tree-dfa.c: Adjust.
13390         * tree-into-ssa.c: Adjust.
13391         * tree-sra.c: Adjust.
13392         * tree-ssa-alias.c: Adjust.
13393         * tree-ssa-live.c: Adjust.
13394         * tree-ssa.c: Adjust.
13395         * tree-ssanames.c: Adjust.
13396         * tree-tailcall.c: Adjust.
13398 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
13400         PR debug/47106
13401         PR debug/47402
13402         * tree-flow.h (referenced_var_lookup): Add fn parameter.
13403         Adjust all callers.
13404         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
13405         * tree-flow-inline.h: Adjust.
13406         * gimple-pretty-print.c: Adjust.
13407         * tree-into-ssa.c: Adjust.
13408         * tree-ssa.c: Adjust.
13409         * cfgexpand.c: Adjust.
13411 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
13413         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
13414         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13415         (EXTRA_CONSTRAINT): Delete.
13416         * config/iq2000/constraints.md: New file.
13417         * config/iq2000/iq2000.md: Include it.
13418         (define_insn ""): Delete.
13419         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
13420         unsupported constraint letters from patterns.
13421         (call_value, call_value_internal1): Likewise.
13422         (call_value_multiple_internal1): Likewise.
13424 2011-02-15  Nick Clifton  <nickc@redhat.com>
13426         * config/mn10300/mn10300.c: Include tm-constrs.h.
13427         (struct liw_data): New data structure describing an LIW candidate
13428         instruction.
13429         (extract_bundle): Use struct liw_data.  Allow small integer
13430         operands for some instructions.
13431         (check_liw_constraints): Use struct liw_data.  Remove swapped
13432         parameter.  Add comments describing the checks.  Fix bug when
13433         assigning the source of liw1 to the source of liw2.
13434         (liw_candidate): Delete.  Code moved into extract_bundle.
13435         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
13436         before swapping.
13437         * config/mn10300/predicates.md (liw_operand): New predicate.
13438         Allows registers and small integer constants.
13439         * config/mn10300/constraints.md (O): New constraint.  Accetps
13440         integers in the range -8 to +7 inclusive.
13441         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
13442         for moving a small integer into a register.  Give this alternative
13443         LIW attributes.
13444         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
13445         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
13446         using the J,K,L and M constraints,
13447         (liw): Remove SI mode on second operands to allow for HI and QI
13448         mode values.
13449         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
13450         instruction.
13452 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
13454         PR middle-end/47725
13455         * combine.c (cant_combine_insn_p): Check zero/sign extended
13456         hard registers.
13458 2011-02-15  Richard Guenther  <rguenther@suse.de>
13460         PR tree-optimization/47743
13461         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
13462         for a non-type-compatible VN lookup bail out.
13464 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
13466         * config/fr30/constraints.md: New file.
13467         * config/fr30/fr30.md: Include it.
13468         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
13469         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13470         (EXTRA_CONSTRAINT): Delete.
13472 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
13474         * config/frv/constraints.md: New file.
13475         * config/frv/predicates.md: Include it.
13476         * config/frv/frv.c (reg_class_from_letter): Delete.
13477         (frv_option_override): Don't initialize it.
13478         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
13479         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
13480         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
13481         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
13482         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
13483         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13484         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
13485         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
13486         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
13487         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
13488         (REG_CLASS_FROM_CONSTRAINT): Delete.
13490 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
13492         PR middle-end/47581
13493         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
13494         if frame size is 0 in a leaf function.
13496 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13498         PR pch/14940
13499         * config/alpha/host-osf.c: New file.
13500         * config/alpha/x-osf: New file.
13501         * config.host (alpha*-dec-osf*): Use it.
13503 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
13505         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13506         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
13507         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
13508         (rx_mode_dependent_address_p): ...this. Make static. Change argument
13509         type to const_rtx.
13510         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13512 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
13514         * config/stormy16/constraints.md: New file.
13515         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
13516         Use satisfies_constraint_Q and satisfies_constraint_R.
13517         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
13518         Delete.
13519         (xstormy16_legitiamte_address_p): Declare.
13520         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
13521         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13522         (EXTRA_CONSTRAINT): Delete.
13523         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
13524         Un-staticize.
13525         (xstormy16_extra_constraint_p): Delete.
13527 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
13529         PR tree-optimization/46494
13530         * loop-unroll.c (split_edge_and_insert): Adjust comment.
13531         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
13532         (pass_rtl_loop_done): Add TODO_verify_flow.
13533         * fwprop.c (pass_rtl_fwprop): Likewise.
13534         * modulo-sched.c (pass_sms): Likewise.
13535         * tree-ssa-dom.c (pass_dominator): Likewise.
13536         * tree-ssa-loop-ch.c (pass_ch): Likewise.
13537         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
13538         (pass_tree_loop_done): Likewise.
13539         * tree-ssa-pre.c (execute_pre): Likewise.
13540         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
13541         * tree-ssa-sink.c (pass_sink_code): Likewise.
13542         * tree-vrp.c (pass_vrp): Likewise.
13544 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
13546         * config/v850/constraints.md: New file.
13547         * config/v850/v850.md: Include it.
13548         * config/v850/predicates.md (reg_or_0_operand): Use
13549         satisfies_constraint_G.
13550         (special_symbolref_operand): Use satisfies_constraint_K.
13551         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
13552         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13553         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
13554         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
13555         (EXTRA_CONSTRAINT): Delete.
13556         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
13557         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
13558         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
13560 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
13562         PR target/47696
13563         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
13564         description.
13566 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
13568         * config/mcore/constraints.md: New file.
13569         * config/mcore/mcore.md: Include it.
13570         * config/mcore/mcore.c (reg_class_from_letter): Delete.
13571         * config/mcore/mcore.h (reg_class_from_letter): Delete.
13572         (REG_CLASS_FROM_LETTER): Delete.
13573         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
13574         insn_const_int_ok_for_constraint.
13575         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
13576         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
13577         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13578         (EXTRA_CONSTRAINT): Delete.
13580 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13582         PR ada/41929
13583         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
13584         (IS_SIGHANDLER): Define.
13585         (sparc64_is_sighandler): New function, split off from
13586         sparc64_fallback_frame_state.
13587         (sparc_is_sighandler): New function, split off from
13588         sparc_fallback_frame_state.
13589         (sparc64_fallback_frame_state): Merge with ...
13590         (sparc_fallback_frame_state): ... this into ...
13591         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
13592         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
13593         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
13594         stack instead of hardcoded offsets.
13596 2011-02-14  Andriy Gapon  <avg@freebsd.org>
13598         PR target/45808
13599         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
13601 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13603         * configure: Regenerate.
13605 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
13607         PR driver/45731
13608         * gcc.c (asm_options): Correct spec matching --target-help.
13610 2011-02-12  Martin Jambor  <mjambor@suse.cz>
13612         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
13613         to gimple call error.
13615 2011-02-12  Mike Stump  <mikestump@comcast.net>
13617         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
13618         comments in backslash regions.
13620 2011-02-12  Mike Stump  <mikestump@comcast.net>
13621             Jakub Jelinek  <jakub@redhat.com>
13622             Iain Sandoe  <iains@gcc.gnu.org>
13624         PR target/47324
13625         * dwarf2out.c (output_cfa_loc): When required, apply the
13626         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
13627         (output_loc_sequence): Likewise.
13628         (output_loc_operands_raw): Likewise.
13629         (output_loc_sequence_raw): Likewise.
13630         (output_cfa_loc): Likewise.
13631         (output_loc_list): Suppress register number adjustment when
13632         calling output_loc_sequence()
13633         (output_die): Likewise.
13635 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
13637         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13638         Remove macros.
13639         * config/xtensa/xtensa.c (xtensa_register_move_cost,
13640         xtensa_memory_move_cost): New functions.
13641         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
13643 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
13645         PR lto/47225
13646         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
13647         in the current directory.
13648         * configure: Rebuilt.
13650 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
13652         * config/darwin.c (darwin_override_options): Add a hunk missed
13653         from the commit of r168571.  Trim comment line lengths and
13654         correct indents of the preceding block.
13656 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
13658         * gcc.c (driver_handle_option): Concatenate the argument to -F with
13659         the switch.
13661 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
13663         * common.opt (nostartfiles): New Driver option.
13665 2011-02-11  Xinliang David Li  <davidxl@google.com>
13667         PR tree-optimization/47707
13668         * tree-chrec.c (convert_affine_scev): Keep type precision.
13670 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
13672         PR tree-optimization/47420
13673         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
13675 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
13677         PR rtl-optimization/47614
13678         * rtl.h (check_for_inc_dec): Declare.
13679         * dse.c (check_for_inc_dec): Externalize...
13680         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
13681         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
13683 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
13685         PR driver/47678
13686         * gcc.c (main): Do not compile inputs if there were errors in
13687         option handling.
13688         * opts-common.c (read_cmdline_option): Check for wrong language
13689         after other error checks.
13691 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
13693         * cgraph.c: Fix comment typos.
13694         * cgraph.h: Likewise.
13695         * cgraphunit.c: Likewise.
13696         * ipa-cp.c: Likewise.
13697         * ipa-inline.c: Likewise.
13698         * ipa-prop.c: Likewise.
13699         * ipa-pure-const.c: Likewise.
13700         * ipa-ref.c: Likewise.
13701         * ipa-reference.c: Likewise.
13703 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
13705         PR debug/47684
13706         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
13708 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13710         PR testsuite/47400
13711         * doc/sourcebuild.texi (Require Support): Document
13712         dg-require-ascii-locale.
13714 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
13716         * doc/lto.texi (Write summary): Fix missing parentheses.
13718 2011-02-10  DJ Delorie  <dj@redhat.com>
13720         * config/m32c/m32c.c (m32c_option_override): Disable
13721         -fcombine-stack-adjustments until flag value tracking and compare
13722         optimization can be rewritten.
13724 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
13726         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
13727         PROCESSOR_POWER7.
13728         (PROCESSOR_DEFAULT64): Likewise.
13730 2011-02-10  Richard Henderson  <rth@redhat.com>
13732         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
13733         change from 2011-02-03.
13734         * config/rx/rx.c (flags_from_code): Likewise.
13735         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
13736         is valid, n/pz otherwise.
13737         (rx_select_cc_mode): Return CCmode if Y is not zero.
13739 2011-02-10  Richard Guenther  <rguenther@suse.de>
13741         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
13743 2011-02-10  Richard Guenther  <rguenther@suse.de>
13745         PR tree-optimization/47677
13746         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
13748 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
13750         PR target/47665
13751         * combine.c (make_compound_operation): Only change shifts into
13752         multiplication for SCALAR_INT_MODE_P.
13754 2011-02-10  Jie Zhang  <jie@codesourcery.com>
13756         PR testsuite/47622
13757         Revert
13758         2011-02-05  Jie Zhang  <jie@codesourcery.com>
13759         PR debug/42631
13760         * web.c (entry_register): Don't clobber the number of the
13761         first uninitialized reference in used[].
13763 2011-02-09  Richard Guenther  <rguenther@suse.de>
13765         PR tree-optimization/47664
13766         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
13767         all edges again.
13769 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
13771         PR target/46481
13772         PR target/47032
13773         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
13774         PROCESSOR_POWER7.
13775         (PROCESSOR_DEFAULT64): Same.
13776         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
13778 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13780         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
13782 2011-02-09  Martin Jambor  <mjambor@suse.cz>
13784         PR middle-end/45505
13785         * tree-sra.c (struct access): New flags grp_scalar_read and
13786         grp_scalar_write.  Changed description of assignment read and write
13787         flags.
13788         (dump_access): Dump new flags, reorder all of them.
13789         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
13790         to detect multiple scalar reads.
13791         (analyze_access_subtree): Use the new scalar read write flags instead
13792         of the old flags.  Adjusted comments.
13794 2011-02-08  DJ Delorie  <dj@redhat.com>
13796         PR target/47548
13797         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
13798         patterns.
13800 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13802         * config/m68k/uclinux.opt: New.
13803         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
13805 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13807         * config/cris/elf.opt (sim): New Driver option.
13809 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13811         * config/xtensa/elf.opt: New.
13812         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
13814 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13816         * config/vax/elf.opt: New.
13817         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
13819 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13821         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
13823 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13825         * config/gnu-user.opt: New.
13826         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
13827         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
13828         *-*-uclinux*): Use gnu-user.opt.
13830 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
13832         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
13833         * config/i386/gnu.h (CPP_SPEC): Likewise.
13835 2011-02-08  Ian Lance Taylor  <iant@google.com>
13837         * common.opt (fcx-limited-range): Add SetByCombined flag.
13838         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
13839         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
13840         (fassociative-math, freciprocal-math): Likewise.
13841         (funsafe-math-optimizations): Likewise.
13842         * opth-gen.awk: Handle SetByCombined.
13843         * optc-gen.awk: Likewise.
13844         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
13845         (set_unsafe_math_optimizations_flags): Likewise.
13846         * doc/options.texi (Option properties): Document SetByCombined.
13848 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13850         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
13851         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
13852         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
13853         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
13854         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
13856 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
13858         PR tree-optimization/46834
13859         PR tree-optimization/46994
13860         PR tree-optimization/46995
13861         * graphite-sese-to-poly.c (used_outside_reduction): New.
13862         (detect_commutative_reduction): Call used_outside_reduction.
13863         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
13864         translate_scalar_reduction_to_array only when at least one
13865         loop-phi/close-phi tuple has been detected.
13867 2011-02-08  Richard Guenther  <rguenther@suse.de>
13869         PR middle-end/47639
13870         * tree-vect-generic.c (expand_vector_operations_1): Update
13871         stmts here ...
13872         (expand_vector_operations): ... not here.  Cleanup EH info
13873         and the CFG if required.
13875 2011-02-08  Richard Guenther  <rguenther@suse.de>
13877         PR tree-optimization/47641
13878         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
13879         require type compatibility.
13881 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13883         * gimple-low.c (lower_function_body): Don't remove the location of
13884         the return statement here.
13885         (lower_gimple_return): Do it here instead but only if the return
13886         statement is actually used twice.
13888 2011-02-08  Richard Guenther  <rguenther@suse.de>
13890         PR tree-optimization/47632
13891         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13892         unused up_to_stmt parameter, return whether cfg-cleanup is
13893         necessary, remove EH info properly.
13894         (forward_propagate_into_gimple_cond): Adjust caller.
13895         (forward_propagate_into_cond): Likewise.
13896         (forward_propagate_comparison): Likewise.
13897         (tree_ssa_forward_propagate_single_use_vars): Make
13898         forward_propagate_comparison case similar to the two others.
13900 2011-02-08  Nick Clifton  <nickc@redhat.com>
13902         * config/mn10300/mn10300.opt (mliw): New command line option.
13903         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13904         (liw_bundling): New automaton.
13905         (liw): New attribute.
13906         (liw_op): New attribute.
13907         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13908         (movsi_internal): Add LIW attributes.
13909         (andsi3): Likewise.
13910         (iorsi3): Likewise.
13911         (xorsi3): Likewise.
13912         (addsi3): Separate register and immediate alternatives.
13913         Add LIW attributes.
13914         (subsi3): Likewise.
13915         (cmpsi): Likewise.
13916         (aslsi3): Likewise.
13917         (lshrsi3): Likewise.
13918         (ashrsi3): Likewise.
13919         (liw): New pattern.
13920         * config/mn10300/mn10300.c (liw_op_names): New
13921         (mn10300_print_operand): Handle 'W' operand descriptor.
13922         (extract_bundle): New function.
13923         (check_liw_constraints): New function.
13924         (liw_candidate): New function.
13925         (mn10300_bundle_liw): New function.
13926         (mn10300_reorg): New function.
13927         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13928         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13929         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13930         __LIW__ or __NO_LIW__.
13931         * doc/invoke.texi: Describe the -mliw command line option.
13933 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13935         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13936         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13937         pthread_mutex_unlock): Remove.
13938         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13939         * config/pa/t-pa64: Likewise.
13940         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13941         shared libc if not linking against libpthread.
13942         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13944 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
13946         PR target/47558
13947         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13948         on 10.6 and later to ensure that we always use the unwinder from
13949         the system.  Only add -no_compact_unwind when tarteting darwin
13950         10.6 or later.
13952 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
13954         PR target/46997
13955         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13956         (vec_interleave_lowv2sf): Ditto.
13957         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13958         (vec_extract_oddv2sf): Ditto.
13960 2011-02-07  Mike Stump  <mikestump@comcast.net>
13962         PR target/42333
13963         Add __ieee_divdc3 entry point.
13964         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13965         entry point.
13966         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13967         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13968         * config/darwin.c (darwin_rename_builtins): Add.
13969         * config/darwin-protos.h (darwin_rename_builtins): Add.
13971 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
13973         PR target/47636
13974         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13975         for the condition.
13977 2011-02-07  Mike Stump  <mikestump@comcast.net>
13979         * config/darwin.opt (mmacosx-version-min): Update default OS version.
13981 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
13983         PR target/47534
13984         * config/avr/libgcc.S (exit): Move .endfunc
13986 2011-02-07  Richard Guenther  <rguenther@suse.de>
13988         PR tree-optimization/47615
13989         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13990         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13991         (run_scc_vn): Initialize it.
13992         (visit_reference_op_load): Use it.
13993         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13995 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13997         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13998         DImode trapping arithmetic libfuncs.
14000 2011-02-07  Richard Guenther  <rguenther@suse.de>
14002         PR tree-optimization/47621
14003         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
14004         two duplicates ...
14005         (execute_update_addresses_taken): ... here.  Make it more
14006         conservative in what we accept.
14008 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
14010         * config/sparc/freebsd.h (ASM_SPEC): Define.
14011         * config/sparc/vxworks.h (ASM_SPEC): Define.
14013 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
14015         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14017 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
14019         * doc/invoke.texi: Remove reference to compiler internals from
14020         user documentation.
14022         * reg-notes.def: Remove REG_VALUE_PROFILE.
14023         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
14025 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
14027         PR middle-end/47610
14028         * varasm.c (default_section_type_flags): If decl is NULL,
14029         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
14031 2011-02-05  Jie Zhang  <jie@codesourcery.com>
14033         PR debug/42631
14034         * web.c (entry_register): Don't clobber the number of the
14035         first uninitialized reference in used[].
14037 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
14039         PR tree-optimization/46194
14040         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
14041         (build_classic_dist_vector_1): Do not represent classic distance
14042         vectors when the access functions are variating in different loops.
14044 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
14046         * config/mips/iris6.opt: New.
14047         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
14049 2011-02-04  Richard Henderson  <rth@redhat.com>
14050             Steve Ellcey  <sje@cup.hp.com>
14052         PR target/46997
14053         * config/ia64/predicates.md (mux1_brcst_element): New.
14054         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
14055         * config/ia64/ia64.c (ia64_unpack_assemble): New.
14056         (ia64_unpack_sign): New.
14057         (ia64_expand_unpack): Rewrite using new routines.
14058         (ia64_expand_widen_sum): Ditto.
14059         (ia64_expand_dot_prod_v8qi): Ditto.
14060         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
14061         routines, add endian check.
14062         (pmpy2_even): Rename from pmpy2_r, add endian check.
14063         (pmpy2_odd): Rename from pmpy2_l, add endian check.
14064         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
14065         (vec_widen_smult_hi_v4hi): Ditto.
14066         (vec_widen_umult_lo_v4hi): Ditto.
14067         (vec_widen_umult_hi_v4hi): Ditto.
14068         (mulv2si3): Change endian checks.
14069         (sdot_prodv4hi): Rewrite with new calls.
14070         (udot_prodv4hi): New.
14071         (vec_pack_ssat_v4hi): Add endian check.
14072         (vec_pack_usat_v4hi): Ditto.
14073         (vec_pack_ssat_v2si): Ditto.
14074         (max1_even): Rename from max1_r, add endian check.
14075         (max1_odd): Rename from max1_l, add endian check.
14076         (*mux1_rev): Format change.
14077         (*mux1_mix): Ditto.
14078         (*mux1_shuf): Ditto.
14079         (*mux1_alt): Ditto.
14080         (*mux1_brcst_v8qi): Use new predicate.
14081         (vec_extract_evenv8qi): Remove endian check.
14082         (vec_extract_oddv8qi): Ditto.
14083         (vec_interleave_lowv4hi): Format change.
14084         (vec_interleave_highv4hi): Ditto.
14085         (mix2_even): Rename from mix2_r, add endian check.
14086         (mix2_odd): Rename from mux2_l, add endian check.
14087         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
14088         (vec_extract_evenodd_helper): Format change.
14089         (vec_extract_evenv4hi): Remove endian check.
14090         (vec_extract_oddv4hi): Remove endian check.
14091         (vec_interleave_lowv2si): Format change.
14092         (vec_interleave_highv2si): Format change.
14093         (vec_initv2si): Remove endian check.
14094         (vecinit_v2si): Add endian check.
14095         (reduc_splus_v2sf): Add endian check.
14096         (reduc_smax_v2sf): Ditto.
14097         (reduc_smin_v2sf): Ditto.
14098         (vec_initv2sf): Remove endian check.
14099         (fpack): Add endian check.
14100         (fswap): Add endian check.
14101         (vec_interleave_highv2sf): Add endian check.
14102         (vec_interleave_lowv2sf): Add endian check.
14103         (fmix_lr): Add endian check.
14104         (vec_setv2sf): Format change.
14105         (*vec_extractv2sf_0_be): Use shift to extract operand.
14106         (*vec_extractv2sf_1_be): New.
14107         (vec_pack_trunc_v4hi): Add endian check.
14108         (vec_pack_trunc_v2si): Format change.
14110 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
14112         PR inline-asm/23200
14113         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
14114         do bb, locus and block comparison and disallow loads if it is not set.
14115         (stmt_is_replaceable_p): New function.
14116         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
14117         callers.
14118         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
14119         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
14120         SSA_NAME_DEF_STMT.
14121         * tree-flow.h (stmt_is_replaceable_p): New prototype.
14123 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
14125         * config/rs6000/xilinx.opt: New.
14126         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
14128 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
14130         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
14132 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
14134         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
14135         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
14136         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
14137         secondary_reload_info, xtensa_secondary_reload): Remove.
14138         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
14139         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14140         (xtensa_preferred_reload_class): Make static. Change return and
14141         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
14142         Use CONST_DOUBLE_P predicate.
14143         (xtensa_preferred_output_reload_class): New function.
14144         (xtensa_secondary_reload): Make static.
14146 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
14148         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
14149         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
14150         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
14152 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
14154         PR middle-end/31490
14155         * output.h (SECTION_RELRO): Define.
14156         (SECTION_MACH_DEP): Adjust.
14157         (get_variable_section): New prototype.
14158         * varpool.c (varpool_finalize_named_section_flags): New function.
14159         (varpool_assemble_pending_decls): Call it.
14160         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
14161         * cgraphunit.c (cgraph_output_in_order): Call
14162         varpool_finalize_named_section_flags.
14163         * varasm.c (get_section): Allow section flags conflicts between
14164         relro and read-only sections if the section hasn't been declared yet.
14165         Set SECTION_OVERRIDE after diagnosing section type conflict.
14166         (get_variable_section): No longer static.
14167         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
14168         readonly sections that need relocations.
14169         (decl_readonly_section_1): New function.
14170         (decl_readonly_section): Use it.
14172         Revert:
14173         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
14174                     Steve Ellcey  <sje@cup.hp.com>
14176         PR middle-end/31490
14177         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
14178         if section attribute used.
14180 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
14182         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
14183         * config/darwin.c (SECTION_NO_ANCHOR): Define.
14184         (darwin_init_sections): Remove assertion.
14186 2011-02-03  Nick Clifton  <nickc@redhat.com>
14188         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
14189         lt and ge.
14190         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
14191         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
14192         instead of "n" and "pz".
14193         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
14194         CC_FLAG_S.
14196 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
14198         PR target/47312
14199         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
14200         fma, expand FMA_EXPR as fma{,f,l} call.
14202         PR lto/47274
14203         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
14204         copy them into a unsigned char variable and pass address of it to
14205         lto_output_data_stream.
14207         PR target/47564
14208         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
14209         around backend_init_target and lang_dependent_init_target calls.
14210         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
14211         (verify_cgraph_node): Don't call set_cfun here.  Use
14212         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
14213         Set error_found for incorrectly represented calls to thunks.
14215 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
14217         PR debug/43092
14218         PR rtl-optimization/43494
14219         * rtl.h (for_each_inc_dec_fn): New type.
14220         (for_each_inc_dec): Declare.
14221         * rtlanal.c (struct for_each_inc_dec_ops): New type.
14222         (for_each_inc_dec_find_inc_dec): New fn.
14223         (for_each_inc_dec_find_mem): New fn.
14224         (for_each_inc_dec): New fn.
14225         * dse.c (struct insn_size): Remove.
14226         (replace_inc_dec, replace_inc_dec_mem): Remove.
14227         (emit_inc_dec_insn_before): New fn.
14228         (check_for_inc_dec): Use it, along with for_each_inc_dec.
14229         (canon_address): Pass mem modes to cselib_lookup.
14230         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
14231         (cselib_lookup_from_insn): Likewise.
14232         (cselib_subst_to_values): Likewise.
14233         * cselib.c (find_slot_memmode): New var.
14234         (cselib_find_slot): New fn.  Use it instead of
14235         htab_find_slot_with_hash everywhere.
14236         (entry_and_rtx_equal_p): Use find_slot_memmode.
14237         (autoinc_split): New fn.
14238         (rtx_equal_for_cselib_p): Rename and implement in terms of...
14239         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
14240         Deal with autoinc.  Special-case recursion into MEMs.
14241         (cselib_hash_rtx): Likewise.
14242         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
14243         address and MEM modes.
14244         (cselib_subst_to_values): Add memmode, pass it on.
14245         Deal with autoinc.
14246         (cselib_lookup): Add memmode argument, pass it on.
14247         (cselib_lookup_from_insn): Add memmode.
14248         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
14249         (struct cselib_record_autoinc_data): New.
14250         (cselib_record_autoinc_cb): New fn.
14251         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
14252         mode to cselib_lookup.  Reset autoinced REGs here instead of...
14253         (cselib_process_insn): ... here.
14254         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
14255         to cselib_lookup.
14256         (add_uses): Likewise, also to cselib_subst_to_values.
14257         (add_stores): Likewise.
14258         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
14259         cselib_subst_to_values.
14260         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
14261         * gcse.c (do_local_cprop): Adjusted.
14262         * postreload.c (reload_cse_simplify_set): Adjusted.
14263         (reload_cse_simplify_operands): Adjusted.
14264         * sel-sched-dump (debug_mem_addr_value): Pass mode.
14266 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
14268         PR tree-optimization/45122
14269         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
14270         unsafe assumptions when there's more than one loop exit.
14272 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14274         PR target/47272
14275         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14276         Document using vector double with the load/store builtins, and
14277         that the load/store builtins always use Altivec instructions.
14279         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
14280         to use altivec memory instructions, even on VSX.
14281         (vector_altivec_store_<mode>): Ditto.
14283         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
14284         function.
14286         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14287         V2DF, V2DI support to load/store overloaded builtins.
14289         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
14290         altivec load/store builtins for V2DF/V2DI types.
14292         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14293         set avoid indexed addresses on power6 if -maltivec.
14294         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
14295         vector_altivec_load/vector_altivec_store builtins.
14296         (altivec_expand_st_builtin): Ditto.
14297         (altivec_expand_builtin): Add VSX memory builtins.
14298         (rs6000_init_builtins): Add V2DI types to internal types.
14299         (altivec_init_builtins): Add support for V2DF/V2DI altivec
14300         load/store builtins.
14301         (rs6000_address_for_altivec): Insure memory address is appropriate
14302         for Altivec.
14304         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
14305         vec_vsx_ld and vec_vsx_st.
14306         (vsx_store_<mode>): Ditto.
14308         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
14309         variables to hold long long types for VSX vector memory builtins.
14310         (RS6000_BTI_unsigned_long_long): Ditto.
14311         (long_long_integer_type_internal_node): Ditti.
14312         (long_long_unsigned_type_internal_node): Ditti.
14314         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
14315         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
14316         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
14318         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
14319         short cuts.
14320         (vec_vsx_st): Ditto.
14322 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
14324         * config/pa/pa-hpux10.opt: New.
14325         * config/hpux11.opt (pthread): New Driver option.
14326         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
14327         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
14329 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
14331         * config/ia64/vms.opt: New.
14332         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
14334 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
14336         PR target/47580
14337         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
14338         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
14339         generator functions.
14340         (vsx_floatuns<VSi><mode>2): Ditto.
14341         (vsx_fix_trunc<mode><VSi>2): Ditto.
14342         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
14344 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
14346         * config/i386/djgpp.opt (posix): New Driver option.
14348 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
14350         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
14351         Move to the unsupported targets list.
14353 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
14355         PR rtl-optimization/47525
14356         * df-scan.c: Update copyright years.
14357         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
14358         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
14360 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14362         * config/i386/sysv4.h (TARGET_VERSION): Remove.
14363         (SUBTARGET_RETURN_IN_MEMORY): Remove.
14364         (ASM_OUTPUT_ASCII): Remove.
14365         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
14367 2011-02-02  Jeff Law  <law@redhat.com>
14369         PR middle-end/47543
14370         * reload.c (find_reloads_address): Handle reg+d address where both
14371         components are invalid by reloading the entire address.
14373 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
14374             Richard Guenther  <rguenther@suse.de>
14376         PR tree-optimization/40979
14377         PR bootstrap/47044
14378         * passes.c (init_optimization_passes): After LIM call copy_prop
14379         and DCE to clean up.
14380         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
14382 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
14384         PR tree-optimization/47576
14385         PR tree-optimization/47555
14386         * doc/invoke.texi (scev-max-expr-complexity): Documented.
14387         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14388         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
14389         * tree-scalar-evolution.c (follow_ssa_edge): Use
14390         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
14392 2011-02-02  Richard Guenther  <rguenther@suse.de>
14394         PR tree-optimization/47566
14395         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
14397 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
14399         PR debug/47106
14400         PR debug/47402
14401         * tree-inline.c (declare_return_variable): Remove unused caller
14402         variable.
14404         PR debug/47106
14405         PR debug/47402
14406         * tree-flow-inline.h (clear_is_used, is_used_p): New.
14407         * cfgexpand.c (account_used_vars_for_block): Use them.
14408         * tree-nrv.c (tree_nrv): Likewise.
14409         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
14410         (dump_scope_block): Likewise.
14411         (remove_unused_locals): Likewise.
14413         PR debug/47106
14414         PR debug/47402
14415         * tree-inline.c (declare_return_variable): Add result decl to
14416         local decls only once.
14417         * gimple-low.c (record_vars_into): Mark newly-created variables
14418         as referenced.
14420 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
14422         PR debug/47498
14423         PR debug/47501
14424         PR debug/45136
14425         PR debug/45130
14426         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14427         debug insns.
14428         (no_real_insns_p, schedule_block, set_priorities): Drop special
14429         treatment of boundary debug insns.
14430         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14431         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
14432         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14433         (BOUNDARY_DEBUG_INSN_P): Likewise.
14434         (SCHEDULE_DEBUG_INSN_P): Likewise.
14435         * sched-rgn.c (init_ready_list): Drop special treatment of
14436         boundary debug insns.
14437         * final.c (rest_of_clean_state): Clear notes' BB.
14439 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14441         * config/openbsd.opt (assert=): New Driver option.
14443 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14445         * config/i386/nto.opt: New.
14446         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
14448 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14450         * config/i386/netware.opt: New.
14451         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
14453 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14455         * config/interix.opt (posix): New Driver option.
14457 2011-02-01  DJ Delorie  <dj@redhat.com>
14459         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
14461         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
14462         class for A0/A1.
14464 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
14466         PR tree-optimization/47561
14467         * toplev.c (process_options): Print the Graphite flags.  Add
14468         flag_loop_flatten to the list of options requiring Graphite.
14470 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14472         * config/i386/cygming.opt (posix): New Driver option.
14474 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14476         * config/arm/vxworks.opt: New.
14477         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
14479 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14481         * config/alpha/elf.opt: New.
14482         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
14483         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
14485 2011-02-01  Richard Guenther  <rguenther@suse.de>
14487         PR tree-optimization/47559
14488         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
14489         store-motion on references that can throw.
14491 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
14493         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
14494         * tree-pass.h (TDF_CSELIB): New macro.
14495         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
14496         cselib_lookup): Check for it rather than for TDF_DETAILS.
14498 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
14500         PR driver/47547
14501         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
14502         is HOST_BIT_BUCKET.
14504         * opts.c (finish_options): Don't add x_aux_base_name if it is
14505         HOST_BIT_BUCKET.
14507 2011-02-01  Richard Guenther  <rguenther@suse.de>
14509         PR tree-optimization/47555
14510         Revert
14511         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
14513         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14515 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
14517         PR gcc/46692
14518         * config/lm32/t-lm32: Add multilib for all CPU options.
14520 2011-02-01  Richard Guenther  <rguenther@suse.de>
14522         PR tree-optimization/47541
14523         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
14524         sure to have a field at offset zero.
14526 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
14528         * config/arc/arc.opt (EB, EL): New Driver options.
14530 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
14532         * config/alpha/osf5.opt: New.
14533         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
14535 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
14537         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
14539 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
14541         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
14542         -floop-interchange.
14543         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
14544         is an alias of -floop-interchange and that it requires the
14545         Graphite infrastructure.
14546         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
14547         flag_loop_interchange based on the value of flag_tree_loop_linear.
14549 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
14550             Richard Guenther  <rguenther@suse.de>
14552         PR tree-optimization/47538
14553         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
14554         type instead of r1type, except for comparisons.  For right
14555         shifts and comparisons punt if there are mismatches in
14556         sizetype vs. non-sizetype types.
14558 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14560         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14561         avx_runtime.
14563 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14565         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
14566         version number.
14567         * configure: Regenerate.
14569 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14571         * configure.ac (gcc_cv_ld_static_option): Define.
14572         (gcc_cv_ld_dynamic_option): Define.
14573         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
14574         instead.
14575         (HAVE_LD_STATIC_DYNAMIC): Update message.
14576         (LD_STATIC_OPTION): Define.
14577         (LD_DYNAMIC_OPTION): Define.
14578         * configure: Regenerate.
14579         * config.in: Regenerate.
14580         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
14581         HAVE_LD_STATIC_DYNAMIC]: Use them.
14583 2011-01-31  Nick Clifton  <nickc@redhat.com>
14585         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
14586         registers inside interrupt handlers if the handler is not a leaf
14587         function.
14589 2011-01-31  Nick Clifton  <nickc@redhat.com>
14591         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
14592         reg_renumber returning an INVALID_REGNUM.
14594 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
14596         PR libgcj/44341
14597         * doc/install.texi: Document host options discarded when cross
14598         configuring target libraries.
14600 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
14602         Reverted:
14603         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14604         PR debug/45136
14605         PR debug/45130
14606         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14607         debug insns.
14608         (no_real_insns_p, schedule_block, set_priorities): Drop special
14609         treatment of boundary debug insns.
14610         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14611         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14612         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14613         (BOUNDARY_DEBUG_INSN_P): Likewise.
14614         (SCHEDULE_DEBUG_INSN_P): Likewise.
14615         * sched-rgn.c (init_ready_list): Drop special treatment of
14616         boundary debug insns.
14617         * final.c (rest_of_clean-state): Clear notes' BB.
14619 2011-01-31  Alan Modra  <amodra@gmail.com>
14621         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
14622         toc relative expressions as we do in print_operand_address.
14624 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
14626         * doc/extend.texi: Follow spelling conventions.
14627         * doc/invoke.texi: Fix a typo.
14629 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
14631         * config/hpux11.opt: New.
14632         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
14633         ia64*-*-hpux*): Use hpux11.opt.
14635 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
14637         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
14638         to tmake_file.
14640 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14642         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
14643         support sites.
14645 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14647         * doc/install.texi (Binaries): Remove outdated reference for
14648         Motorola 68HC11/68HC12 downloads.
14650 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14652         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
14653         Drepper's paper.
14655 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
14657         PR bootstrap/47147
14658         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
14659         used by NetBSD.
14661 2011-01-28  Ahmad Sharif  <asharif@google.com>
14663         * value-prof.c (check_counter): Corrected error message.
14665 2011-01-29  Jie Zhang  <jie@codesourcery.com>
14667         * config/arm/arm.c (arm_legitimize_reload_address): New.
14668         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14669         arm_legitimize_reload_address.
14670         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
14672 2011-01-28  Ian Lance Taylor  <iant@google.com>
14674         * godump.c (go_define): Ignore macros whose definitions include
14675         two adjacent operands.
14677 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
14679         PR target/42894
14680         * varasm.c (force_const_mem): Store copy of x in desc->constant
14681         instead of x itself.
14682         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
14683         itself into REG_EQUAL note.
14685 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
14687         * config/freebsd.opt (posix, rdynamic): New Driver options.
14689 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14691         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
14692         -Bstatic/-Bdynamic.
14693         * configure: Regenerate.
14695 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
14697         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
14698         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
14700 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
14702         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
14703         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
14704         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14705         (s390_preferred_reload_class): Make static. Change return and
14706         'rclass' argument type to reg_class_t.
14708 2011-01-27  Jan Hubicka  <jh@suse.cz>
14710         PR middle-end/46949
14711         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
14712         (process_function_and_variable_attributes): Check defined weakrefs.
14714 2011-01-27  Martin Jambor  <mjambor@suse.cz>
14716         PR tree-optimization/47228
14717         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
14718         build_ref_for_offset.
14720 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14722         * config/spu/spu-elf.h (ASM_SPEC): Remove.
14724 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
14726         PR rtl-optimization/46856
14727         * postreload.c (reload_combine_recognize_const_pattern): Do not
14728         separate cc0 setter and user on cc0 targets.
14730 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
14732         PR c/43082
14733         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
14734         passed a VOID_TYPE expression, immediately emit an error and
14735         return error_mark_node.
14737 2011-01-26  Jeff Law  <law@redhat.com>
14739         PR rtl-optimization/47464
14740         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
14741         rather than may_trap_p as needed.
14743 2011-01-26  DJ Delorie  <dj@redhat.com>
14745         PR rtl-optimization/46878
14746         * combine.c (insn_a_feeds_b): Check for the implicit cc0
14747         setter/user dependency as well.
14749 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
14751         PR rtl-optimization/44469
14752         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
14753         after removing trivially dead basic blocks.
14755 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14757         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
14758         * config/frv/frv.h (LINK_SPEC): Likewise.
14759         * config/i386/netware.h (LINK_SPEC): Likewise.
14760         * config/m68k/linux.h (ASM_SPEC): Likewise.
14761         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
14762         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14763         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14764         * config/sparc/linux.h (ASM_SPEC): Likewise.
14765         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14766         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14768 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14770         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
14771         * config/frv/frv.h (ASM_SPEC): Likewise.
14772         * config/m68k/linux.h (ASM_SPEC): Likewise.
14773         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14774         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
14775         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14776         * config/sparc/linux.h (ASM_SPEC): Likewise.
14777         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14778         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14780 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14782         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
14783         * config/frv/frv.h (LINK_SPEC): Likewise.
14784         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14786 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14788         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
14789         * config/frv/frv.h (ASM_SPEC): Likewise.
14790         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
14791         * config/m68k/linux.h (ASM_SPEC): Likewise.
14792         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14793         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
14794         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14795         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
14796         * config/sparc/linux.h (ASM_SPEC): Likewise.
14797         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14798         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14799         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
14801 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
14803         PR target/46997
14804         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
14805         (*mux2): Ditto.
14806         (vec_extract_evenodd_help): Ditto.
14807         (vec_extract_evenv4hi): Ditto.
14808         (vec_extract_oddv4hi): Ditto.
14809         (vec_interleave_lowv2si): Ditto.
14810         (vec_interleave_highv2si): Ditto.
14811         (vec_extract_evenv2si): Ditto.
14812         (vec_extract_oddv2si: Ditto.
14813         (vec_pack_trunc_v2si): Ditto.
14815 2011-01-22  Jan Hubicka  <jh@suse.cz>
14817         PR target/47237
14818         * cgraph.h (cgraph_local_info): New field can_change_signature.
14819         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
14820         signature can change.
14821         (ipcp_estimate_growth): Call sequence simplify only if calle signature
14822         can change.
14823         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
14824         (cgraph_function_versioning): We can not change signature of functions
14825         that don't allow that.
14826         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
14827         (lto_input_node): Likewise.
14828         * ipa-inline.c (compute_inline_parameters): Compute
14829         local.can_change_signature.
14830         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
14831         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
14832         functions that can not change signature.
14833         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
14834         init_cumulative_args): Do not use local calling conventions
14835         for functions that can not change signature.
14837 2011-01-22  Jan Hubicka  <jh@suse.cz>
14839         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
14841 2011-01-26  Richard Guenther  <rguenther@suse.de>
14843         PR tree-optimization/47190
14844         * cgraphunit.c (process_common_attributes): New function.
14845         (process_function_and_variable_attributes): Use it.
14847 2011-01-26  Richard Guenther  <rguenther@suse.de>
14849         PR lto/47423
14850         * cgraphbuild.c (record_eh_tables): Record reference to personality
14851         function.
14853 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
14855         PR debug/45454
14856         * sel-sched.c (moveup_expr): Don't let debug insns prevent
14857         non-debug insns from moving up.
14859 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14861         PR target/40125
14862         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
14863         t-dlldir{,-x} fragment for build and add it to tmake_file.
14864         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14865         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
14866         * config/i386/t-dlldir: New file.
14867         (SHLIB_DLLDIR): Define.
14868         * config/i386/t-dlldir-x: New file.
14869         (SHLIB_DLLDIR): Define.
14870         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
14871         (SHLIB_INSTALL): Use it.
14873 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
14875         PR target/47246
14876         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
14877         lower bound of the allowed Thumb-2 coprocessor load/store
14878         index range to -256. Add explaining comment.
14880 2011-01-25  Ian Lance Taylor  <iant@google.com>
14882         * godump.c (go_define): Improve lexing of macro expansion to only
14883         accept expressions which match Go spec.
14885 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14887         PR c++/43601
14888         * tree.c (handle_dll_attribute): Handle it.
14889         * doc/extend.texi (@item dllexport): Mention it.
14890         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14892 2011-01-25  Ian Lance Taylor  <iant@google.com>
14894         PR tree-optimization/26854
14895         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14896         (decl_jump_unsafe): Move higher in file, with no other change.
14897         (bind): Set has_jump_unsafe_decl if appropriate.
14898         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14899         (check_earlier_gotos): Likewise.
14900         (c_check_switch_jump_warnings): Likewise.
14902 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
14904         * doc/invoke.texi (Warning Options): Add missing hyphen.
14905         (-fprofile-dir): Minor grammatical fixes.
14906         (-fbranch-probabilities): Likewise.
14908 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14910         PR debug/45136
14911         PR debug/45130
14912         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14913         debug insns.
14914         (no_real_insns_p, schedule_block, set_priorities): Drop special
14915         treatment of boundary debug insns.
14916         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14917         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14918         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14919         (BOUNDARY_DEBUG_INSN_P): Likewise.
14920         (SCHEDULE_DEBUG_INSN_P): Likewise.
14921         * sched-rgn.c (init_ready_list): Drop special treatment of
14922         boundary debug insns.
14923         * final.c (rest_of_clean-state): Clear notes' BB.
14925 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14927         * Makefile.in (LAMBDA_H): Removed.
14928         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14929         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14930         lambda-trans.o, and tree-loop-linear.o.
14931         (lto-symtab.o): Remove dependence on LAMBDA_H.
14932         (tree-loop-linear.o): Remove rule.
14933         (lambda-mat.o): Same.
14934         (lambda-trans.o): Same.
14935         (lambda-code.o): Same.
14936         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14937         (tree-vect-slp.o): Same.
14938         * hwint.h (gcd): Moved here.
14939         (least_common_multiple): Same.
14940         * lambda-code.c: Removed.
14941         * lambda-mat.c: Removed.
14942         * lambda-trans.c: Removed.
14943         * lambda.h: Removed.
14944         * tree-loop-linear.c: Removed.
14945         * lto-symtab.c: Do not include lambda.h.
14946         * omega.c (gcd): Removed.
14947         * passes.c (init_optimization_passes): Remove pass_linear_transform.
14948         * tree-data-ref.c (print_lambda_vector): Moved here.
14949         (lambda_vector_copy): Same.
14950         (lambda_matrix_copy): Same.
14951         (lambda_matrix_id): Same.
14952         (lambda_vector_first_nz): Same.
14953         (lambda_matrix_row_add): Same.
14954         (lambda_matrix_row_exchange): Same.
14955         (lambda_vector_mult_const): Same.
14956         (lambda_vector_negate): Same.
14957         (lambda_matrix_row_negate): Same.
14958         (lambda_vector_equal): Same.
14959         (lambda_matrix_right_hermite): Same.
14960         * tree-data-ref.h: Do not include lambda.h.
14961         (lambda_vector): Moved here.
14962         (lambda_matrix): Same.
14963         (dependence_level): Same.
14964         (lambda_transform_legal_p): Removed declaration.
14965         (lambda_collect_parameters): Same.
14966         (lambda_compute_access_matrices): Same.
14967         (lambda_vector_gcd): Same.
14968         (lambda_vector_new): Same.
14969         (lambda_vector_clear): Same.
14970         (lambda_vector_lexico_pos): Same.
14971         (lambda_vector_zerop): Same.
14972         (lambda_matrix_new): Same.
14973         * tree-flow.h (least_common_multiple): Removed declaration.
14974         * tree-parloops.c (lambda_trans_matrix): Moved here.
14975         (LTM_MATRIX): Same.
14976         (LTM_ROWSIZE): Same.
14977         (LTM_COLSIZE): Same.
14978         (LTM_DENOMINATOR): Same.
14979         (lambda_trans_matrix_new): Same.
14980         (lambda_matrix_vector_mult): Same.
14981         (lambda_transform_legal_p): Same.
14982         * tree-pass.h (pass_linear_transform): Removed declaration.
14983         * tree-ssa-loop.c (tree_linear_transform): Removed.
14984         (gate_tree_linear_transform): Removed.
14985         (pass_linear_transform): Removed.
14986         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14987         flag_loop_interchange.
14989 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14991         PR tree-optimization/47265
14992         PR tree-optimization/47443
14993         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14994         if name still has some uses.
14996 2011-01-25  Martin Jambor  <mjambor@suse.cz>
14998         PR tree-optimization/47382
14999         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
15000         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
15002 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
15004         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
15005         sjlj_except_unwind_info.
15007 2011-01-25  Richard Guenther  <rguenther@suse.de>
15009         PR tree-optimization/47426
15010         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
15011         visible functions results escape.
15013 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
15015         PR target/45701
15016         * config/arm/arm.c (any_sibcall_uses_r3): New function.
15017         (arm_get_frame_offsets): Use it.
15019 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15020             Jakub Jelinek  <jakub@redhat.com>
15022         PR tree-optimization/47271
15023         * tree-if-conv.c (bb_postdominates_preds): New.
15024         (if_convertible_bb_p): Call bb_postdominates_preds.
15025         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
15026         (predicate_scalar_phi): Call bb_postdominates_preds.
15028 2011-01-25  Nick Clifton  <nickc@redhat.com>
15030         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
15031         * config/rx/rx.c (rx_function_value): Likewise.
15032         (rx_promote_function_mode): Likewise.
15033         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
15034         in order to make it legitimate.
15035         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
15036         make sure that the first operand is the same as the result register.
15037         (addsi3_unspec): Delete.
15038         (subdi3): Do not accept immediate operands.
15039         (subdi3_internal): Likewise.
15041 2011-01-25  Jeff Law  <law@redhat.com>
15043         PR rtl-optimization/37273
15044         * ira-costs.c (scan_one_insn): Detect constants living in memory and
15045         handle them like argument loads from stack slots.  Do not double
15046         count memory for memory constants and argument loads from stack slots.
15048 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
15050         PR tree-optimization/47427
15051         PR tree-optimization/47428
15052         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
15053         coalesce if the new root var would be TREE_READONLY.
15055 2011-01-25  Richard Guenther  <rguenther@suse.de>
15057         PR middle-end/47414
15058         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
15059         correct type for TBAA.
15061 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15063         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
15064         (close_phi_written_to_memory): Call for_each_index with
15065         dr_indices_valid_in_loop.
15067 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15069         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
15070         when it is initialized.
15072 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15074         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
15075         call to graphite_find_data_references_in_stmt.
15076         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
15077         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
15078         call to graphite_find_data_references_in_stmt.
15079         (analyze_drs_in_stmts): Same.
15080         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
15081         in which the scalar analysis of indices is performed.
15082         (create_data_ref): Same.  Update call to dr_analyze_indices.
15083         (find_data_references_in_stmt): Update call to create_data_ref.
15084         (graphite_find_data_references_in_stmt): Same.
15085         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
15086         declaration.
15087         (create_data_ref): Same.
15088         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
15089         call to create_data_ref.
15091 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15093         * graphite-sese-to-poly.c (build_poly_scop): Move
15094         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
15096 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15098         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
15099         VAR_DECL, PARM_DECL, and RESULT_DECL.
15101 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15103         * graphite-dependences.c (reduction_dr_1): Allow several reductions
15104         in a reduction PBB.
15105         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
15106         that have already been marked as PBB_IS_REDUCTION.
15108 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15110         * graphite-scop-detection.c (same_close_phi_node): New.
15111         (remove_duplicate_close_phi): New.
15112         (make_close_phi_nodes_unique): New.
15113         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
15115 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15117         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
15118         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
15119         of both data references to be the same.
15121 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15123         * graphite-dependences.c (build_lexicographical_constraint): Remove
15124         the gdim parameter.
15125         (build_lexicographical_constraint): Adjust call to
15126         ppl_powerset_is_empty.
15127         (dependence_polyhedron): Same.
15128         (graphite_legal_transform_dr): Same.
15129         (graphite_carried_dependence_level_k): Same.
15130         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
15131         parameter.
15132         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
15134 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15136         * graphite-sese-to-poly.c
15137         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
15138         (close_phi_written_to_memory): New.
15139         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
15140         and unshare_expr.
15142 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15144         * doc/install.texi: Update the expected version number of PPL to 0.11.
15145         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
15146         #if PPL_VERSION_MINOR < 11.
15148 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15150         * graphite-dependences.c: Include graphite-cloog-util.h.
15151         (new_poly_ddr): Inlined into dependence_polyhedron.
15152         (free_poly_ddr): Moved close by new_poly_ddr.
15153         (dependence_polyhedron_1): Renamed dependence_polyhedron.
15154         Early return NULL when ppl_powerset_is_empty returns true.
15155         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
15156         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
15157         (graphite_legal_transform_dr): Call new_poly_ddr.
15158         (graphite_carried_dependence_level_k): Same.
15159         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
15160         (dot_transformed_deps_stmt_1): Removed.
15161         (dot_deps_stmt_1): Call dot_deps_stmt_2.
15162         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
15163         (dot_deps_1): Call dot_deps_2.
15164         * Makefile.in (graphite-dependences.o): Add missing dependence on
15165         graphite-cloog-util.h.
15167 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15169         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
15170         (build_lexicographical_constraint): Same.
15171         (dependence_polyhedron_1): Same.
15172         (graphite_legal_transform_dr): Same.
15173         (graphite_carried_dependence_level_k): Same.
15174         * graphite-ppl.c (ppl_powerset_is_empty): New.
15175         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
15176         * tree-data-ref.c (dump_data_reference): Print the basic block index.
15178 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15180         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
15181         the "a followed by b" relation and document it.
15183 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15185         * graphite-dependences.c (build_lexicographical_constraint): Stop the
15186         iteration when the bag of constraints is empty.
15188 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15190         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
15192 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15194         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
15195         nest and two loop depths as parameters.
15196         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
15197         lst_perfect_nestify.
15199 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15201         * graphite-dependences.c (print_pddr): Call
15202         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
15204 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15206         * graphite-ppl.c (debug_gmp_value): New.
15207         * graphite-ppl.h (debug_gmp_value): Declared.
15209 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
15211         * doc/install.texi: Document availability of cloog-0.16.
15213 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
15215         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
15216         invalid postdominance info.
15218 2011-01-24  Jan Hubicka  <jh@suse.cz>
15220         PR c/21659
15221         * doc/extend.texi (weak pragma): Drop claim that it must
15222         appear before definition.
15223         * varasm.c (merge_weak, declare_weak): Only sanity check
15224         that DECL is not output at a time it is declared weak.
15226 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
15228         * machmode.def: Fixed comments.
15230 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
15232         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
15234 2011-01-24  Paul Koning  <ni1d@arrl.net>
15236         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
15237         WORDS_BIG_ENDIAN.
15239 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15241         PR target/46519
15242         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
15243         (block_info): Add scanned and prev.
15244         (move_or_delete_vzeroupper_2): Return if the basic block
15245         has been scanned and the upper 128bit state is unchanged
15246         from the last scan.
15247         (move_or_delete_vzeroupper_1): Return true if the exit
15248         state is changed.
15249         (move_or_delete_vzeroupper): Visit basic blocks using the
15250         work-list based algorithm based on vt_find_locations in
15251         var-tracking.c.
15253         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
15255 2011-01-24  Nick Clifton  <nickc@redhat.com>
15257         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
15258         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
15259         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
15260         then define __v850e1__.
15261         * doc/invoke.texi: Document -mv850es.
15263 2011-01-24  Richard Henderson  <rth@redhat.com>
15265         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
15266         compound unordered comparisons.
15267         * config/rx/rx.c (rx_split_fp_compare): Remove.
15268         * config/rx/rx-protos.h: Update.
15269         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
15270         (cbranchsf4): Don't call rx_split_fp_compare.
15271         (*cbranchsf4): Use rx_split_cbranch.
15272         (*cmpsf): Don't accept "i" constraint.
15273         (*conditional_branch): Only valid after reload.
15274         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
15276 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
15278         PR target/47385
15279         * config/rs6000/altivec.md (vector constant splitters): Add
15280         support for creating vector single precision constants if -mvsx is
15281         used and we would create the constant using Altivec primitives.
15283 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
15284             Richard Sandiford  <rdsandiford@googlemail.com>
15286         PR rtl-optimization/47166
15287         * reload1.c (emit_reload_insns): Disable the spill_reg_store
15288         mechanism for PRE_MODIFY and POST_MODIFY.
15289         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
15290         reloadreg.
15292 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
15294         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
15296 2011-01-22  Jan Hubicka  <jh@suse.cz>
15298         PR lto/47333
15299         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
15301 2011-01-22  Jan Hubicka  <jh@suse.cz>
15303         PR tree-optimization/43884
15304         PR lto/44334
15305         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
15306         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
15308 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
15310         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15311         * config/s390/s390.c (s390_register_move_cost,
15312         s390_memory_move_cost): New.
15313         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15315 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15317         PR middle-end/47401
15318         * except.c (sjlj_assign_call_site_values): Move setting the
15319         crtl->uses_eh_lsda flag to ...
15320         (sjlj_mark_call_sites): ... here.
15321         (sjlj_emit_function_enter): Support NULL dispatch label.
15322         (sjlj_build_landing_pads): In a function with no landing pads
15323         that still has must-not-throw regions, generate code to register
15324         a personality function with empty LSDA.
15326 2011-01-21  Richard Henderson  <rth@redhat.com>
15328         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
15330         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
15332         * compare-elim.c: New file.
15333         * Makefile.in (OBJS-common): Add it.
15334         (compare-elim.o): New.
15335         * common.opt (fcompare-elim): New.
15336         * opts.c (default_options_table): Add OPT_fcompare_elim.
15337         * tree-pass.h (pass_compare_elim_after_reload): New.
15338         * passes.c (init_optimization_passes): Add it.
15339         * recog.h: Protect against re-inclusion.
15340         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
15341         * doc/invoke.texi (-fcompare-elim): Document it.
15342         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
15343         * doc/tm.texi: Rebuild.
15345 2011-01-22  Nick Clifton  <nickc@redhat.com>
15347         * config/rx/rx.md (cstoresf4): Pass comparison operator to
15348         rx_split_fp_compare.
15350 2011-01-22  Nick Clifton  <nickc@redhat.com>
15352         * config/rx/rx.md (UNSPEC_CONST): New.
15353         (deallocate_and_return): Wrap the amount popped off the stack in
15354         an UNSPEC_CONST in order to stop it being rejected by
15355         -mmax-constant-size.
15356         (pop_and_return): Add a "(return)" rtx.
15357         (call): Drop the immediate operand.
15358         (call_internal): Likewise.
15359         (call_value): Likewise.
15360         (call_value_internal): Likewise.
15361         (sibcall_internal): Likewise.
15362         (sibcall_value_internal): Likewise.
15363         (sibcall): Likewise.  Generate an explicit call using
15364         sibcall_internal.
15365         (sibcall_value): Likewise.
15366         (mov<>): FAIL if a constant operand is not legitimate.
15367         (addsi3_unpsec): New pattern.
15369         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15370         (ok_for_max_constant): New function.
15371         (gen_safe_add): New function.
15372         (rx_expand_prologue): Use gen_safe_add.
15373         (rx_expand_epilogue): Likewise.
15374         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
15375         UNSPEC CONSTs.
15377 2011-01-21  Jeff Law  <law@redhat.com>
15379         PR tree-optimization/47053
15380         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
15381         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
15382         statements are deleted.
15383         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
15384         is nonempty, then purge dead edges and cleanup the CFG.
15386 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
15388         PR debug/47402
15389         Temporarily revert:
15390         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
15391         PR debug/47106
15392         * tree-dfa.c (create_var_ann): Mark variable as used.
15394 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
15396         PR middle-end/45566
15397         * except.c (convert_to_eh_region_ranges): Emit queued no-region
15398         notes from other section in hot/cold partitioning even if
15399         last_action is -3.  Increment call_site_base.
15401         PR rtl-optimization/47366
15402         * fwprop.c (forward_propagate_into): Return bool.  If
15403         any changes are made, -fnon-call-exceptions is used and
15404         REG_EH_REGION note is present, call purge_dead_edges
15405         and return true if it purged anything.
15406         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
15407         any EH edges were purged.
15409 2011-01-21  Jeff Law  <law@redhat.com>
15411         PR rtl-optimization/41619
15412         * caller-save.c (setup_save_areas): Break out code to determine
15413         which hard regs are live across calls by examining the reload chains
15414         so that it is always used.
15415         Eliminate code which checked REG_N_CALLS_CROSSED.
15417 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
15419         PR tree-optimization/47355
15420         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
15421         NOP has non-debug uses beyond PHIs in new_bb.
15423 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
15425         PR debug/47106
15426         * cfgexpand.c (account_used_vars_for_block): Only account vars
15427         that are annotated as used.
15428         (estimated_stack_frame_size): Don't set TREE_USED.
15429         * tree-dfa.c (create_var_ann): Mark variable as used.
15431 2011-01-21  Richard Guenther  <rguenther@suse.de>
15433         PR middle-end/47395
15434         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
15436 2011-01-21  Richard Guenther  <rguenther@suse.de>
15438         PR tree-optimization/47365
15439         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
15440         (vn_reference_lookup_pieces): Adjust.
15441         (vn_reference_lookup): Likewise.
15442         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
15443         (vn_reference_lookup_3): Only look through kills if in
15444         VN_WALKREWRITE mode.
15445         (vn_reference_lookup_pieces): Adjust.
15446         (vn_reference_lookup): Likewise.
15447         (visit_reference_op_load): Likewise.
15448         (visit_reference_op_store): Likewise.
15449         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
15450         (compute_avail): Likewise.
15451         (eliminate): Likewise.
15453 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
15455         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
15456         DECL_IGNORED_P non-reg vars if they are used.
15458         PR tree-optimization/47391
15459         * varpool.c (const_value_known_p): Return false if
15460         decl is volatile.
15462 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
15464         PR bootstrap/47215
15465         * config/i386/i386.c (ix86_local_alignment): Handle
15466         case for va_list_type_node is nil.
15467         (ix86_canonical_va_list_type): Likewise.
15469 2011-01-21  Alan Modra  <amodra@gmail.com>
15471         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
15472         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
15474 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15476         * config/arm/arm.md (define_attr type): Rename f_load
15477         and f_store to f_fpa_load and f_fpa_store. Update.
15478         (write_conflict): Deal with rename fallout.
15479         (*push_fp_multi): Likewise.
15480         * config/arm/fpa.md (f_load): Use f_fpa_load.
15481         (f_store): Use f_fpa_store.
15482         (*movsf_fpa): Likewise.
15483         (*movdf_fpa): Likewise.
15484         (*movxf_fpa): Likewise.
15485         (*thumb2_movsf_fpa): Likewise.
15486         (*thumb2_movdf_fpa): Likewise.
15487         (*thumb2_movxf_fpa): Likewise.
15488         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
15489         f_loadd and f_stored.
15490         (*thumb2_movdi_vfp): Likewise.
15491         (*thumb2_movsf_vfp): Fix attribute to f_loads.
15492         (*thumb2_movsi_vfp): Likewise.
15493         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
15494         Use f_loads instead of f_load.
15495         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
15497 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
15499         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15500         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
15501         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15502         (xtensa_mode_dependent_address_p): New function.
15503         (constantpool_address_p): Make static. Change return type to bool.
15504         Change argument type to const_rtx. Use CONST_INT_P predicate.
15506 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
15508         PR debug/46583
15509         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
15511 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
15513         PR debug/47283
15514         * cfgexpand.c (expand_debug_expr): Instead of generating
15515         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
15516         etc. handling.
15518 2011-01-20  Richard Guenther  <rguenther@suse.de>
15520         PR middle-end/47370
15521         * tree-inline.c (remap_gimple_op_r): Recurse manually for
15522         the pointer operand of MEM_REFs.
15524 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
15526         PR tree-optimization/46130
15527         * ipa-split.c (consider_split): If return_bb contains non-virtual
15528         PHIs other than for retval or if split_function would not adjust it,
15529         refuse to split.
15531 2011-01-20  Richard Guenther  <rguenther@suse.de>
15533         PR tree-optimization/47167
15534         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
15535         Revert previous change, only avoid enumeral type changes.
15537 2011-01-19  Mike Stump  <mikestump@comcast.net>
15539         * doc/tm.texi.in (BRANCH_COST): Englishify.
15540         * doc/tm.texi (BRANCH_COST): Likewise.
15542 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
15544         PR c++/47291
15545         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
15546         (gen_scheduled_generic_parms_dies): New functions.
15547         (gen_struct_or_union_type_die): Schedule template parameters DIEs
15548         generation for the end of CU compilation.
15549         (dwarf2out_finish): Generate template parameters DIEs here.
15551 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
15553         PR debug/46240
15554         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
15555         debug bind stmt on merge edges.
15557 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
15559         PR debug/47079
15560         PR debug/46724
15561         * function.c (instantiate_expr): Instantiate incoming rtl of
15562         implicit arguments, and recurse on VALUE_EXPRs.
15563         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
15564         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
15566 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
15568         * c-parser.c (c_parser_for_statement): Initialize
15569         collection_expression.
15571 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15573         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
15575 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15577         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
15578         (LINK_SHLIB_SPEC): Don't use %(link_path).
15579         (SUBTARGET_EXTRA_SPECS): Remove link_path.
15581 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15583         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
15584         (NO_SHARED_LIB_SUPPORT): Remove.
15585         (LINK_SHLIB_SPEC): Remove one conditional definition.
15587 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15589         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
15590         %{call_shared}.
15591         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
15592         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
15593         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
15594         %{call_shared} and conditionals on these options not being passed.
15595         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
15596         %{call_shared}.
15598 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
15600         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
15601         simplify.
15603         * ipa-split.c: Spelling fixes.
15605 2011-01-19  Richard Henderson  <rth@redhat.com>
15607         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
15608         (*mulsi3): Likewise.
15610         * longlong.h [__mn10300__] (count_leading_zeros): New.
15611         [__mn10300__] (umul_ppmm, smul_ppmm): New.
15612         [__mn10300__] (add_ssaaaa, subddmmss): New.
15613         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
15614         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
15616 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15618         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
15620 2011-01-19  Richard Henderson  <rth@redhat.com>
15622         * config/mn10300/mn10300.md (addsi3_flags): New.
15623         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
15624         (subsi3_flags, subc_internal, subdi3): New.
15625         (subdi3_internal, *subdi3_degenerate): New.
15626         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
15628         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
15629         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
15630         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
15631         * config/mn10300/mn10300-protos.h: Update.
15632         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
15633         (return_ret): Likewise.  Rename from return_internal_regs.
15634         (return_internal): Remove.
15636         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
15637         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
15638         (mn10300_legitimate_constant_p): Likewise.
15639         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
15640         (mn10300_frame_size): New.
15641         (mn10300_expand_prologue): Use it.
15642         (mn10300_expand_epilogue): Likewise.
15643         (mn10300_initial_offset): Likewise.
15644         * config/mn10300/mn10300-protos.h: Update.
15645         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
15646         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
15647         (prologue, epilogue, return_internal): Tidy output code.
15648         (mn10300_store_multiple_operation, return): Likewise.
15649         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
15650         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
15651         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
15652         (load_pic, am33_load_pic): New.
15653         (mn10300_load_pic0, mn10300_load_pic1): New.
15655         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
15656         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
15657         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
15658         (cc_flags_for_mode, cc_flags_for_code): New.
15659         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
15660         overflow flag is not valid.  Validate that the flags we need
15661         for the comparison are valid.
15662         (mn10300_output_cmp): Remove.
15663         (mn10300_output_add): New.
15664         (mn10300_select_cc_mode): Use cc_flags_for_code.
15665         (mn10300_split_cbranch): New.
15666         (mn10300_match_ccmode): New.
15667         (mn10300_split_and_operand_count): New.
15668         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
15669         to the function.
15670         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
15671         (addsi3): ... here.  Use mn10300_output_add.
15672         (*addsi3_flags): New.
15673         (*am33_subsi3, *mn10300_subsi3): Merge...
15674         (subsi3): ... here.  Use attribute isa.
15675         (*subsi3_flags): New.
15676         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
15677         when possible.
15678         (*am33_andsi3, *mn10300_andsi3): Merge...
15679         (andsi3): ... here.
15680         (*andsi3_flags): New.
15681         (andsi3 splitters): New.
15682         (*am33_iorsi3, *mn10300_iorsi3): Merge...
15683         (iorsi3): ... here.
15684         (*iorsi3_flags): New.
15685         (*am33_xorsi3, *mn10300_xorsi3): Merge...
15686         (xorsi3): ... here.
15687         (*xorsi3_flags): New.
15688         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
15689         (one_cmplsi2): ... here.
15690         (*one_cmplsi2_flags): New.
15691         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
15692         instead of "dax" in constraints.  Use mn10300_split_cbranch.
15693         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
15694         use matching constraints to eliminate a self-comparison.
15695         (*integer_conditional_branch): Rename from integer_conditional_branch.
15696         Use int_mode_flags to match CC_REG.
15697         (*cbranchsi4_btst, *btstsi): New.
15698         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
15699         mn10300_split_cbranch.
15700         (*am33_cmpsf): Rename from am33_cmpsf.
15701         (*float_conditional_branch): Rename from float_conditional_branch.
15702         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
15703         (zero_extendqisi2): ... here.
15704         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
15705         (zero_extendhisi2): ... here.
15706         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
15707         (extendqisi2): ... here.
15708         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
15709         (extendhisi2): ... here.
15710         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
15711         (ashlsi3): ... here.
15712         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
15713         (lshrsi3): ... here.
15714         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
15715         (ashrsi3): ... here.
15716         (consecutive add peephole): Remove.
15717         * config/mn10300/predicates.md (label_ref_operand): New.
15718         (int_mode_flags): New.
15719         (CCZN_comparison_operator): New.
15721         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
15722         (throughput_42_latency_43): New reservation.
15723         (mulsidi3, umulsidi3): New expanders.
15724         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
15725         the MDR register to allocation; separately allocate the low and
15726         high parts of the DImode result.
15727         (umulsidi3_internal): Similarly.
15728         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
15729         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
15730         (udivsi3, umodsi3): Remove.
15731         (udivmodsi4, divmodsi4): New expanders.
15732         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
15733         (*divmodsi4): Simiarly.
15734         (ext_internal): New.
15736         * config/mn10300/constraints.md ("z"): New constraint.
15737         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
15738         (FIXED_REGISTERS): Don't fix MDR.
15739         (CALL_USED_REGSITERS): Reformat nicely.
15740         (REG_ALLOC_ORDER): Add MDR.
15741         (enum regclass): Add MDR_REGS.
15742         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
15743         (IRA_COVER_CLASSES): Add MDR_REGS.
15744         (REGNO_REG_CLASS): Handle MDR_REG.
15745         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
15746         (mn10300_register_move_cost): Likewise.
15747         * config/mn10300/mn10300.md (MDR_REG): New.
15748         (*movsi_internal): Handle moves to/from MDR_REGS.
15750         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
15751         POST_MODIFY.
15752         (mn10300_secondary_reload): Tidy combination reload classes.
15753         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
15754         addresses for AM33.  Allow symbolic offsets for reg+imm.
15755         (mn10300_regno_in_class_p): New.
15756         (mn10300_legitimize_reload_address): New.
15757         * config/mn10300/mn10300.h (enum reg_class): Remove
15758         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
15759         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
15760         SP_OR_GENERAL_REGS.
15761         (REG_CLASS_NAMES): Update to match.
15762         (REG_CLASS_CONTENTS): Likewise.
15763         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
15764         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
15765         (REGNO_IN_RANGE_P): Remove.
15766         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
15767         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
15768         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
15769         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
15770         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
15771         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
15772         (REGNO_GENERAL_P): New.
15773         (HAVE_POST_MODIFY_DISP): New.
15774         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
15775         (LEGITIMIZE_RELOAD_ADDRESS): New.
15776         * config/mn10300/mn10300-protos.h: Update.
15778         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
15779         DATA_REGS for AM33 stack-pointer destination.
15780         (mn10300_preferred_output_reload_class): Likewise.
15781         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
15782         into a form appropriate for ...
15783         (TARGET_SECONDARY_RELOAD): New.
15784         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
15785         * config/mn10300/mn10300-protos.h: Update.
15786         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
15787         reload_insi; use the "A" constraint for the scratch; handle AM33
15788         moves of sp to non-address registers.
15790         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
15791         (*movqi_internal): ... here.
15792         (*am33_movhi, *mn10300_movhi): Merge into...
15793         (*movhi_internal): ... here.
15794         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
15795         as the source/destination of moves from/to SP.
15796         (movsf): Only allow for AM33-2.
15797         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
15798         any integer constant constraint.  Only allow for AM33-2.  Tidy
15799         all of the alternative outputs.
15800         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
15801         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
15802         for MN103.
15803         (udivsi3, umodsi3): New patterns for MN103 only.
15805 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
15807         * doc/tm.texi.in: Spell out that a lack of register class unions
15808         can lead to ICEs.
15809         * doc/tm.texi: Regenerate.
15811 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
15813         PR rtl-optimization/47337
15814         * dce.c (check_argument_store): New function.
15815         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
15817         PR tree-optimization/47290
15818         * tree-eh.c (infinite_empty_loop_p): New function.
15819         (cleanup_empty_eh): Use it.
15821 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
15823         PR target/46997
15824         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
15825         (a64_expand_widen_sum): Ditto.
15826         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
15827         (vec_extract_evenodd_help): Ditto.
15828         (vec_extract_evenv4hi): Ditto.
15829         (vec_extract_oddv4hi): Ditto.
15830         (vec_extract_evenv2si): Ditto.
15831         (vec_extract_oddv2si): Ditto.
15832         (vec_extract_evenv2sf): Ditto.
15833         (vec_extract_oddv2sf): Ditto.
15834         (vec_pack_trunc_v4hi: Ditto.
15835         (vec_pack_trunc_v2si): Ditto.
15836         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
15837         (vec_interleave_highv8qi): Ditto.
15838         (mix1_r): Ditto.
15839         (vec_extract_oddv8qi): Ditto.
15840         (vec_interleave_lowv4hi): Ditto.
15841         (vec_interleave_highv4hi): Ditto.
15842         (vec_interleave_lowv2si): Ditto.
15843         (vec_interleave_highv2si): Ditto.
15845 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15847         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
15848         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
15849         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
15850         (pa_c_mode_for_suffix): New.
15851         (TARGET_EXPAND_BUILTIN): Define.
15852         (TARGET_C_MODE_FOR_SUFFIX): Define.
15853         (pa_builtins): Define.
15854         (pa_init_builtins): Register __float128 type and init new support
15855         builtins.
15856         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
15857         * config/pa/quadlib.c (_U_Qfcopysign): New.
15859 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
15861         PR middle-end/46894
15862         * explow.c (allocate_dynamic_stack_space): Do not assume more than
15863         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
15864         are defined.
15866 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15868         PR tree-optimization/47179
15869         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
15870         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
15872 2011-01-18  Richard Guenther  <rguenther@suse.de>
15874         PR rtl-optimization/47216
15875         * emit-rtl.c: Include tree-flow.h.
15876         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
15877         of replicating it with different semantics.
15878         * Makefile.in (emit-rtl.o): Adjust.
15880 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15882         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
15883         (cortex_a9_dp): Handle neon types correctly.
15885 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
15887         PR rtl-optimization/47299
15888         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
15889         subtarget.  Use normal multiplication if both operands are constants.
15890         * expmed.c (expand_widening_mult): Don't try to optimize constant
15891         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
15892         before using it.
15894 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15896         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
15897         spacing after 'e.g.', typos, comma, hyphenation.
15899 2011-01-17  Richard Henderson  <rth@redhat.com>
15901         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15902         (rx_restricted_mem_operand): New.
15903         (rx_shift_operand): Use register_operand.
15904         (rx_source_operand, rx_compare_operand): Likewise.
15905         * config/rx/rx.md (addsi3_flags): New expander.
15906         (adddi3): Rewrite as expander.
15907         (adc_internal, *adc_flags, adddi3_internal): New patterns.
15908         (subsi3_flags): New expander.
15909         (subdi3): Rewrite as expander.
15910         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15912         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15913         (rx_init_builtins): Remove sat builtin.
15914         (rx_expand_builtin): Likewise.
15915         * config/rx/rx.md (ssaddsi3): New.
15916         (*sat): Rename from sat.  Represent the CC_REG input.
15918         * config/rx/predicates.md (rshift_operator): New.
15919         * config/rx/rx.c (rx_expand_insv): Remove.
15920         * config/rx/rx-protos.h: Update.
15921         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
15922         operand to the canonical position.
15923         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15924         (*bitclr, *bitclr_in_memory): Similarly.
15925         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15926         (insv): Retain the zero_extract in the expansion.
15928         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15929         (bswaphi2, bitinvert, revw): Likewise.
15931         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15932         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15933         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15934         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15935         (bitset, bitset_in_memory): Likewise.
15936         (bitinvert, bitinvert_in_memory): Likewise.
15937         (bitclr, bitclr_in_memory): Likewise.
15938         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15939         (rx_strend, rx_cmpstrn): Likewise.
15940         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
15941         (bitop peep2 patterns): Remove.
15943         * config/rx/rx.c (rx_match_ccmode): New.
15944         * config/rx/rx-protos.h: Update.
15945         * config/rx/rx.md (abssi2): Clobber, don't set flags.
15946         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15947         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15948         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15949         (fix_truncsfsi2, floatsisf2): Likewise.
15950         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15951         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15952         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15953         (*subsi3_flags, *xorsi3_flags): New.
15955         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15957         * config/rx/rx.c (rx_print_operand): Remove workaround for
15958         unsplit comparison operations.
15960         * config/rx/rx.md (movsicc): Split after reload.
15961         (*movsicc): Merge *movsieq and *movsine via match_operator.
15962         (*stcc): New pattern.
15964         * config/rx/rx.c (rx_float_compare_mode): Remove.
15965         * config/rx/rx.h (rx_float_compare_mode): Remove.
15966         * config/rx/rx.md (cstoresi4): Split after reload.
15967         (*sccc): New pattern.
15969         * config/rx/predicates.md (label_ref_operand): New.
15970         (rx_z_comparison_operator): New.
15971         (rx_zs_comparison_operator): New.
15972         (rx_fp_comparison_operator): New.
15973         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15974         Validate that the flags are set properly for the comparison.
15975         (rx_gen_cond_branch_template): Remove.
15976         (rx_cc_modes_compatible): Remove.
15977         (mode_from_flags): New.
15978         (flags_from_code): Rename from flags_needed_for_conditional.
15979         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15980         (rx_select_cc_mode): Likewise.
15981         (rx_split_fp_compare): New.
15982         (rx_split_cbranch): New.
15983         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15984         (*cbranchsi4): Use match_operator and rx_split_cbranch.
15985         (*cbranchsf4): Similarly.
15986         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
15987         match_operator and rx_split_cbranch.
15988         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15989         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
15990         (*cmpsi): Rename from cmpsi.
15991         (*tstsi): Rename from tstsi.
15992         (*cmpsf): Rename from cmpsf; use CC_Fmode.
15993         (*conditional_branch): Rename from conditional_branch.
15994         (*reveresed_conditional_branch): Remove.
15995         (b<code>): Remove expander.
15996         * config/rx/rx-protos.h: Update.
15998         * config/rx/rx.c (rx_compare_redundant): Remove.
15999         * config/rx/rx.md (cmpsi): Don't use it.
16000         * config/rx/rx-protos.h: Update.
16002         * config/rx/rx-modes.def (CC_F): New mode.
16003         * config/rx/rx.c (rx_select_cc_mode): New.
16004         * config/rx/rx.h (SELECT_CC_MODE): Use it.
16005         * config/rx/rx-protos.h: Update.
16007 2011-01-17  Richard Henderson  <rth@redhat.com>
16009         * except.c (dump_eh_tree): Fix stray ; after for statement.
16011 2011-01-17  Richard Guenther  <rguenther@suse.de>
16013         PR tree-optimization/47313
16014         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
16015         handling before copying the body.  Properly deal with
16016         by-reference result in SSA form.
16018 2011-01-17  Ian Lance Taylor  <iant@google.com>
16020         PR target/47219
16021         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
16022         (struct_value_alias_set): Don't define.
16023         (sparc_option_override): Don't set sparc_sr_alias_set and
16024         struct_value_alias_set.
16025         (save_or_restore_regs): Use gen_frame_mem rather than calling
16026         set_mem_alias_set.
16027         (sparc_struct_value_rtx): Likewise.
16029 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
16031         PR target/47318
16032         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
16033         (_mm_maskstore_pd): Likewise.
16034         (_mm_maskload_ps): Likewise.
16035         (_mm_maskstore_ps): Likewise.
16036         (_mm256_maskload_pd): Change mask to __m256i.
16037         (_mm256_maskstore_pd): Likewise.
16038         (_mm256_maskload_ps): Likewise.
16039         (_mm256_maskstore_ps): Likewise.
16041         * config/i386/i386-builtin-types.def: Updated.
16042         (ix86_expand_special_args_builtin): Likewise.
16044         * config/i386/i386.c (bdesc_special_args): Update
16045         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
16046         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
16047         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
16048         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
16050         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
16051         Use <avxpermvecmode> on mask register.
16052         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
16054 2011-01-17  Olivier Hainque  <hainque@adacore.com>
16055             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
16056             Eric Botcazou  <ebotcazou@adacore.com>
16058         PR target/46655
16059         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
16060         if <= USHRT_MAX in 32-bit mode.
16062 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16064         * doc/install.texi (Configuration, Specific): Wrap long
16065         lines in examples.  Allow line wrapping in long options
16066         and URLs where beneficial for PDF output.
16068 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
16070         * config/mips/mips.c (mips_classify_symbol): Don't return
16071         SYMBOL_PC_RELATIVE for nonlocal labels.
16073 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
16075         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
16077 2011-01-15  Jan Hubicka  <jh@suse.cz>
16079         PR tree-optimization/47276
16080         * ipa.c (function_and_variable_visibility): Do not try to mark alias
16081         declarations as needed.
16083 2011-01-15  Martin Jambor  <mjambor@suse.cz>
16085         * common.opt (fdevirtualize): New flag.
16086         * doc/invoke.texi (Option Summary): Document it.
16087         * opts.c (default_options_table): Add devirtualize flag.
16088         * ipa-prop.c (detect_type_change): Return immediately if
16089         devirtualize flag is not set.
16090         (detect_type_change_ssa): Likewise.
16091         (compute_known_type_jump_func): Likewise.
16092         (ipa_analyze_virtual_call_uses): Likewise.
16094 2011-01-14  Martin Jambor  <mjambor@suse.cz>
16096         PR tree-optimization/45934
16097         PR tree-optimization/46302
16098         * ipa-prop.c (type_change_info): New type.
16099         (stmt_may_be_vtbl_ptr_store): New function.
16100         (check_stmt_for_type_change): Likewise.
16101         (detect_type_change): Likewise.
16102         (detect_type_change_ssa): Likewise.
16103         (compute_complex_assign_jump_func): Check for dynamic type change.
16104         (compute_complex_ancestor_jump_func): Likewise.
16105         (compute_known_type_jump_func): Likewise.
16106         (compute_scalar_jump_functions): Likewise.
16107         (ipa_analyze_virtual_call_uses): Likewise.
16108         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
16110 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16112         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
16113         * config/i386/i386.opt (msse5): New Alias.
16115 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16117         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
16118         * config/sparc/linux64.h (CC1_SPEC): Likewise.
16119         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
16120         * config/sparc/sparc.h (CC1_SPEC): Likewise.
16122 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16124         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
16125         -mcpu options.
16126         * config/sparc/linux64.h (CC1_SPEC): Likewise.
16127         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
16128         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
16129         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
16130         Likewise.
16131         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
16133 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16135         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
16137 2011-01-14  Mike Stump  <mikestump@comcast.net>
16139         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
16140         * config/fr30/fr30.md: Likweise
16141         (movsi_push): Likewise.
16142         (movsi_pop): Likewise.
16143         (enter_func): Likewise.
16144         * config/moxie/moxie.md (movsi_push): Likewise.
16145         (movsi_pop): Likewise.
16147 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16149         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
16150         %{no_archive} %{exact_version}.
16151         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
16152         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
16153         %{no_archive} %{exact_version}.
16154         * config/mips/openbsd.h (LINK_SPEC): Likewise.
16155         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
16156         * config/mips/vxworks.h: Likewise.
16158 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16160         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
16162 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16164         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
16165         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
16167 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16169         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
16170         -nodefaultlib.
16172 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16174         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
16175         for mcpu not cpu.
16176         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
16177         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
16178         not cpu.
16179         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
16180         Don't handle -shlib.
16182 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16184         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
16185         (CC1_SPEC): Don't handle -profile.
16187 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16189         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
16190         * config/mips/mips.h (CC1_SPEC): Likewise.
16192 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16194         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
16195         * config/mips/mips.h (CC1_SPEC): Likewise.
16197 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16199         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
16200         * config/m32r/linux.h (LINK_SPEC): Likewise.
16201         * config/mips/linux.h (LINK_SPEC): Likewise.
16202         * config/mips/linux64.h (LINK_SPEC): Likewise.
16203         * config/sparc/linux.h (LINK_SPEC): Likewise.
16204         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
16205         LINK_SPEC): Likewise.
16206         * config/xtensa/linux.h (LINK_SPEC): Likewise.
16208 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16210         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
16211         %{version:-v}.
16212         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
16214 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16216         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
16217         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
16219 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16221         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
16223 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16225         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
16226         supports -Bstatic/-Bdynamic.
16227         * configure: Regenerate.
16229 2011-01-14  Jan Hubicka  <jh@suse.cz>
16230             Jack Howarth  <howarth@bromo.med.uc.edu>
16232         PR target/46037
16233         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
16234         when checking debug_info_level. Test write_symbols instead of
16235         debug_hooks->var_location when setting flag_var_tracking_uninit.
16237 2011-01-14  Richard Guenther  <rguenther@suse.de>
16239         PR tree-optimization/47179
16240         * target.def (ref_may_alias_errno): New target hook.
16241         * targhooks.h (default_ref_may_alias_errno): Declare.
16242         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
16243         (default_ref_may_alias_errno): New function.
16244         * target.h (struct ao_ref_s): Declare.
16245         * tree-ssa-alias.c: Include target.h.
16246         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
16247         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
16248         (targhooks.o): Likewise.
16249         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
16250         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
16252 2011-01-14  Richard Guenther  <rguenther@suse.de>
16254         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
16256 2011-01-14  Richard Guenther  <rguenther@suse.de>
16258         PR tree-optimization/47280
16259         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
16260         return CFG changes.
16261         (tree_ssa_forward_propagate_single_use_vars): Deal with
16262         CFG changes from associate_plusminus.
16264 2011-01-14  Richard Guenther  <rguenther@suse.de>
16266         PR middle-end/47281
16267         Revert
16268         2011-01-11  Richard Guenther  <rguenther@suse.de>
16270         PR tree-optimization/46076
16271         * tree-ssa.c (useless_type_conversion_p): Conversions from
16272         unprototyped to empty argument list function types are useless.
16274 2011-01-14  Richard Guenther  <rguenther@suse.de>
16276         PR tree-optimization/47286
16277         * tree-ssa-structalias.c (new_var_info): Register variables are global.
16279 2011-01-14  Martin Jambor  <mjambor@suse.cz>
16281         PR middle-end/46823
16282         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
16284 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
16286         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
16287         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16288         * config/xtensa/xtensa.c (xtensa_libcall_value,
16289         xtensa_function_value_regno_p): New functions.
16290         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16292 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
16294         PR c++/47213
16295         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
16296         PE specific hook.
16297         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
16298         New function prototype.
16299         * config/i386/winnt.c (i386_pe_assemble_visibility):
16300         Warn only if attribute was specified by user.
16302 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
16304         PR target/47251
16305         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
16306         floating point.
16307         (floatunsdidf2_fcfidu): Ditto.
16309 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16311         * config/s390/s390.c (print_operand_address): Replace 'error' with
16312         'output_operand_lossage'.
16313         (print_operand): Likewise.
16315 2011-01-13  Jeff Law  <law@redhat.com>
16317         PR rtl-optimization/39077
16318         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
16319         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
16320         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
16321         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
16322         * gcse.c (prune_insertions_deletions): New function.
16323         (compute_pre_data): Use it.
16325 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
16327         PR debug/PR46973
16328         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
16329         static function.
16330         (prune_unused_types_mark): Use it.
16332 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
16334         PR rtl-optimization/45352
16335         * sel-sched.c: Update copyright years.
16336         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
16337         in the advancing loop when we have issued issue_rate insns.
16339 2011-01-12  Richard Henderson  <rth@redhat.com>
16341         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
16342         (TARGET_MD_ASM_CLOBBERS): New.
16344         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
16345         (TARGET_DELEGITIMIZE_ADDRESS): New.
16347         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
16348         (clzsi2, *bsch): New patterns.
16350         * config/mn10300/mn10300.md (INT): New mode iterator.
16351         (*mov<INT>_clr): New pattern, and peep2 to generate it.
16353         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
16354         flag_split_wide_types.
16356         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
16357         (mn10300_trampoline_init): Rewrite without a template, an immediate
16358         load and a direct branch.
16359         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
16361 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
16363         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16364         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
16365         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
16366         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16368 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
16370         PR debug/47209
16371         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
16372         of type.
16374 2011-01-12  Jan Hubicka  <jh@suse.cz>
16376         PR driver/47244
16377         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
16378         (PLUGIN_COND_CLOSE): New macro.
16379         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
16381 2011-01-12  Richard Guenther  <rguenther@suse.de>
16383         PR lto/47259
16384         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
16385         register variables in a MEM_REF.
16387 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
16389         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
16390         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
16391         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
16392         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
16393         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
16394         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
16395         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
16396         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
16397         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
16398         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
16399         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
16400         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
16401         * config/gnu-user.h: New.  Copied from linux.h.
16402         (LINUX_TARGET_STARTFILE_SPEC): Rename to
16403         GNU_USER_TARGET_STARTFILE_SPEC.
16404         (LINUX_TARGET_ENDFILE_SPEC): Rename to
16405         GNU_USER_TARGET_ENDFILE_SPEC.
16406         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
16407         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
16408         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
16409         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
16410         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
16411         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
16412         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
16413         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
16414         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
16415         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
16416         * config/arm/linux-eabi.h (CC1_SPEC): Use
16417         GNU_USER_TARGET_CC1_SPEC.
16418         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
16419         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
16420         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
16421         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
16422         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
16423         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
16424         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
16425         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
16427 2011-01-12  Richard Guenther  <rguenther@suse.de>
16429         PR other/46946
16430         * doc/invoke.texi (ffast-math): Document it is turned on
16431         with -Ofast.
16433 2011-01-12  Jan Hubicka  <jh@suse.cz>
16435         PR tree-optimization/47233
16436         * opts.c (common_handle_option): Disable ipa-reference with profile
16437         feedback.
16439 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
16441         * c-parser.c (c_parser_objc_at_property_declaration): Improved
16442         error message.
16444 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
16446         * c-parser.c (c_lex_one_token): Updated and reindented some
16447         comments.  No changes in code.
16449 2011-01-11  Ian Lance Taylor  <iant@google.com>
16451         * godump.c (go_output_var): Don't output the variable if there is
16452         already a type with the same name.
16454 2011-01-11  Ian Lance Taylor  <iant@google.com>
16456         * godump.c (go_format_type): Don't generate float80.
16458 2011-01-11  Richard Henderson  <rth@redhat.com>
16460         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
16461         declaration.  Rewrite for both speed and size.
16462         (mn10300_address_cost_1): Remove.
16463         (mn10300_register_move_cost): New.
16464         (mn10300_memory_move_cost): New.
16465         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
16466         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
16467         extensions, shifts, BSWAP, CLZ.
16468         (mn10300_wide_const_load_uses_clr): Remove.
16469         (TARGET_REGISTER_MOVE_COST): New.
16470         (TARGET_MEMORY_MOVE_COST): New.
16471         * config/mn10300/mn10300-protos.h: Update.
16472         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
16474         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
16475         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
16476         * config/mn10300/mn10300-protos.h: Update.
16477         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
16478         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
16479         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
16480         (*test_int_bitfield, *test_byte_bitfield): Remove.
16481         (*bit_test, *subreg_bit_test): Remove.
16482         * config/mn10300/predicates.md (const_8bit_operand): Remove.
16484         * config/mn10300/constraints.md ("c"): Rename from "A".
16485         ("A", "D"): New constraint letters.
16486         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
16487         (fmssf4, fnmasf4, fnmssf4): Likewise.
16489         * config/mn10300/mn10300.md (isa): New attribute.
16490         (enabled): New attribute.
16492         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
16493         (abssf2, negsf2): Define only for hardware fp.
16494         (sqrtsf2): Reformat.
16495         (addsf3, subsf3, mulsf3): Merge expander and insn.
16497         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
16498         (DEBUGGER_AUTO_OFFSET): Remove.
16499         (DEBUGGER_ARG_OFFSET): Remove.
16501         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
16502         Emit register stores with the same offsets as the hardware.
16503         (mn10300_store_multiple_operation): Don't check that the register
16504         save offsets are monotonic.
16505         * config/mn10300/mn10300-protos.h: Update.
16507         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
16509         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
16510         in terms of the value on the stack, not the MDR register.
16512 2011-01-11  Jan Hubicka  <jh@suse.cz>
16514         PR lto/45721
16515         PR lto/45375
16516         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
16517         (symbol_alias_set_destroy, symbol_alias_set_contains,
16518         propagate_aliases_backward): Declare.
16519         * lto-streamer-out.c (struct sets): New sturcture.
16520         (trivally_defined_alias): New function.
16521         (output_alias_pair_p): Rewrite.
16522         (output_unreferenced_globals): Fix output of alias pairs.
16523         (produce_symtab): Likewise.
16524         * ipa.c (function_and_variable_visibility): Set weak alias destination
16525         as needed in lto.
16526         * varasm.c (symbol_alias_set_t): Remove.
16527         (symbol_alias_set_destroy): Export.
16528         (propagate_aliases_forward, propagate_aliases_backward): New functions
16529         based on ...
16530         (compute_visible_aliases): ... this one; remove.
16531         (trivially_visible_alias): New
16532         (trivially_defined_alias): New.
16533         (remove_unreachable_alias_pairs): Rewrite.
16534         (finish_aliases_1): Reorganize code checking if alias is defined.
16535         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
16536         in LTO mode.
16538 2011-01-11  Richard Guenther  <rguenther@suse.de>
16540         PR tree-optimization/46076
16541         * tree-ssa.c (useless_type_conversion_p): Conversions from
16542         unprototyped to empty argument list function types are useless.
16544 2011-01-11  Richard Guenther  <rguenther@suse.de>
16546         PR middle-end/45235
16547         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
16548         volatile MEMs as MEM_READONLY_P.
16550 2011-01-11  Richard Guenther  <rguenther@suse.de>
16552         PR tree-optimization/47239
16553         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
16555 2011-01-11  Jeff Law  <law@redhat.com>
16557         PR tree-optimization/47086
16558         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
16559         IVs from statements that might throw.
16561 2011-01-10  Jan Hubicka  <jh@suse.cz>
16563         PR lto/45375
16564         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
16566 2011-01-10  Jan Hubicka  <jh@suse.cz>
16568         PR lto/45375
16569         * profile.c (read_profile_edge_counts): Ignore profile inconistency
16570         when correcting profile.
16572 2011-01-10  Jan Hubicka  <jh@suse.cz>
16574         PR lto/46083
16575         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
16576         DECL_FINI_PRIORITY.
16577         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
16578         Restore DECL_FINI_PRIORITY.
16580 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16582         * doc/gimple.texi: Fix quoting of multi-word return values in
16583         @deftypefn statements.  Ensure presence of return value.  Wrap
16584         overlong @deftypefn lines.
16585         (is_gimple_operand, is_gimple_min_invariant_address): Remove
16586         descriptions of removed functions.
16587         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
16588         of multi-word return value in @deftypefn statement.
16590 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16592         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
16593         (Conditional Expressions, Logical Operators)
16594         (Statement and operand traversals): Do not indent smallexample
16595         code.  Fix duplicate function argument in example.
16597 2011-01-10  Jeff Law  <law@redhat.com>
16599         PR tree-optimization/47141
16600         * ipa-split.c (split_function): Handle case where we are
16601         returning a value and the return block has a virtual operand phi.
16603 2011-01-10  Jan Hubicka  <jh@suse.cz>
16605         PR tree-optimization/47234
16606         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
16607         (pass_feedback_split_functions): Declare.
16608         * passes.c (init_optimization_passes): Add ipa-split as subpass of
16609         tree-profile.
16610         * ipa-split.c (gate_split_functions): Update comments; disable
16611         split-functions for profile_arc_flag and branch_probabilities.
16612         (gate_feedback_split_functions): New function.
16613         (execute_feedback_split_functions): New function.
16614         (pass_feedback_split_functions): New global var.
16616 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
16618         PR lto/46760
16619         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
16620         calling gimple_call_set_cannot_inline.
16622 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
16624         * config/darwin-sections.def: Remove unused section.
16626 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
16628         PR c++/47218
16629         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
16631 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
16633         PR objc/47232
16634         * c-parser.c (c_parser_declaration_or_fndef): Improved
16635         error message.
16637 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
16639         * config/i386/winnt.c (i386_pe_start_function): Make sure
16640         to switch back to function's section.
16642 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
16644         PR gcc/46902
16645         PR testsuite/46912
16646         * plugin.c: Move include of dlfcn.h from here...
16647         * system.h: ... to here.
16649 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16651         * doc/cpp.texi (C++ Named Operators): Fix markup for header
16652         file name.
16653         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
16654         two extra empty pages in PDF output.
16656 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
16658         PR objc/47078
16659         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
16660         for error recovery purposes behave as if it was not specified so
16661         that the default type is usd.
16663 2011-01-07  Jan Hubicka  <jh@suse.cz>
16665         PR tree-optmization/46469
16666         * ipa.c (function_and_variable_visibility): Clear needed flags on
16667         nodes with external decls; handle weakrefs merging correctly.
16669 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
16671         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
16672         not false.
16674 2011-01-07  Jan Hubicka  <jh@suse.cz>
16676         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
16677         and no longer claim that gold is required for linker plugin.
16678         * configure: Regenerate.
16679         * gcc.c (PLUGIN_COND): New macro.
16680         (LINK_COMMAND_SPEC): Use it.
16681         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
16682         * config.in (HAVE_LTO_PLUGIN): New.
16683         * configure.ac (--with-lto-plugin): New parameter; autodetect
16684         HAVE_LTO_PLUGIN.
16686 2011-01-07  Jan Hubicka  <jh@suse.cz>
16688         PR tree-optimization/46367
16689         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
16690         when we can update original.
16691         (cgraph_mark_inline_edge): Sanity check.
16692         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
16694 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16696         * config/spu/spu.h (ASM_COMMENT_START): Define.
16698 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16700         PR driver/42445
16701         * gcc.c (%>S): New.
16702         (SWITCH_KEEP_FOR_GCC): Likewise.
16703         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
16704         (do_spec_1): Handle "%>".
16706         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
16708 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
16710         PR target/47201
16711         * config/i386/i386.c (ix86_delegitimize_address): If
16712         simplify_gen_subreg fails, return orig_x.
16714         PR bootstrap/47187
16715         * value-prof.c (gimple_stringop_fixed_value): Handle
16716         lhs of the call properly.
16718 2011-01-07  Jan Hubicka  <jh@suse.cz>
16720         PR lto/45375
16721         * lto-opt.c (lto_reissue_options): Set flag_shlib.
16723 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
16725         * target.def (function_switched_text_sections): New hook.
16726         * doc/tm.texi: Regenerated.
16727         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16728         * final.c (default_function_switched_text_sections): New.
16729         (final_scan_insn): Call function_switched_text_sections when a
16730         mid-function section change occurs.
16731         * output.h (default_function_switched_text_sections): Declare.
16732         * config/darwin-protos.h (darwin_function_switched_text_sections):
16733         Likewise.
16734         * config/darwin.c (darwin_function_switched_text_sections): New.
16735         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16737 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
16739         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
16740         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
16741         the secondary code fragment when outputting for DWARF == 2.
16743 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
16745         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16746         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
16747         Remove.
16748         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
16749         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16751 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
16753         PR debug/46704
16754         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
16755         when it is not empty.
16757 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
16759         Bobcat Enablement
16760         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
16761         (case ${target}): Add btver1.
16762         * config/i386/driver-i386.c (host_detect_local_cpu): Let
16763         -march=native recognize btver1 processors.
16764         * config/i386/i386-c.c (ix86_target_macros_internal): Add
16765         btver1 def_and_undef
16766         * config/i386/i386.c (struct processor_costs btver1_cost): New
16767         btver1 cost table.
16768         (m_BTVER1): New definition.
16769         (m_AMD_MULTIPLE): Includes m_BTVER1.
16770         (initial_ix86_tune_features): Add btver1 tune.
16771         (processor_target_table): Add btver1 entry.
16772         (static const char *const cpu_names): Add btver1 entry.
16773         (software_prefetching_beneficial_p): Add btver1.
16774         (ix86_option_override_internal): Add btver1 instruction sets.
16775         (ix86_issue_rate): Add btver1.
16776         (ix86_adjust_cost): Add btver1.
16777         * config/i386/i386.h (TARGET_BTVER1): New definition.
16778         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
16779         (enum processor_type): Add PROCESSOR_BTVER1.
16780         * config/i386/i386.md (define_attr "cpu"): Add btver1.
16782 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16784         PR target/43309
16785         * config/i386/i386.c (legitimize_tls_address)
16786         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
16787         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
16788         (tls_initial_exec_64_sun): New pattern.
16790 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
16792         * doc/invoke.texi (Overall Options): Improve wording and markup
16793         of the description of -wrapper.
16795 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
16797         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
16798         rdynamic, threads): New Driver options.
16800 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16802         PR target/38118
16803         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
16804         if coming from .tdata.
16805         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16807 2011-01-06  Jan Hubicka  <jh@suse.cz>
16809         PR lto/47188
16810         * collect2.c (main): Do not enable LTOmode when plugin is active.
16812 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16814         PR other/45915
16815         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
16816         --version output if supported.
16817         * configure: Regenerate.
16819 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
16821         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
16822         Driver options.
16824 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
16826         PR c/47150
16827         * c-convert.c (convert): When converting a complex expression
16828         other than COMPLEX_EXPR to a different complex type, ensure
16829         c_save_expr is called instead of save_expr, unless in_late_binary_op.
16830         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
16831         when converting COMPLEX_TYPE.
16833 2011-01-06  Ira Rosen  <irar@il.ibm.com>
16835         PR tree-optimization/47139
16836         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
16837         only the last reduction value is used outside the loop.  Update
16838         documentation.
16840 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
16842         * config/rtems.opt: New.
16843         * config.gcc (*-*-rtems*): Use rtems.opt.
16845 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
16847         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
16848         processors do not support 3DNow instructions.
16850 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16852         * config/spu/spu.c (spu_option_override): Set parameter
16853         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
16855 2011-01-05  Jan Hubicka  <jh@suse.cz>
16857         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
16858         at the command line.
16860 2011-01-05  Martin Jambor  <mjambor@suse.cz>
16862         PR lto/47162
16863         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
16864         deltas on streamed outgoing edges.
16865         (output_node_opt_summary): Output info for outgoing edges only when
16866         the node is in new parameter set.
16867         (output_cgraph_opt_summary): New parameter set, passed to the two
16868         aforementioned functions.  Update its forward declaration and its
16869         callee too.
16871 2011-01-05  Tom Tromey  <tromey@redhat.com>
16873         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
16874         operator to c_finish_omp_atomic.
16875         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
16876         (build_unary_op): Update.
16877         (build_modify_expr): Update.
16878         (build_asm_expr): Update.
16880 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16882         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
16883         newly inserted insns.
16884         (pad_bb): Likewise.
16885         (spu_emit_branch_hint): Likewise.
16886         (insert_hbrp_for_ilb_runout): Likewise.
16887         (spu_machine_dependent_reorg): Call df_finish_pass after
16888         schedule_insns returns.
16890 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16892         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16894 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
16896         PR tree-optimization/47005
16897         * tree-sra.c (struct access): Add 'non_addressable' bit.
16898         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16899         (decide_one_param_reduction): Return 0 if the parameter is passed by
16900         reference and one of the accesses in the group is non_addressable.
16902 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16904         PR tree-optimization/47056
16905         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16906         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
16907         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
16909 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16911         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16912         initializer.  Skip view conversions from aggregate types.
16914 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
16916         PR bootstrap/47055
16917         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16919 2011-01-04  Philipp Thomas  <pth@suse.de>
16921         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16922         obvious typo.
16924 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16926         * function.c (thread_prologue_and_epilogue_insns): Do not crash
16927         on empty epilogue sequences.
16929 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
16931         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16932         non-static): New Driver options.
16934 2011-01-04  Jie Zhang  <jie@codesourcery.com>
16936         PR driver/47137
16937         * gcc.c (default_compilers[]): Set combinable field to 0
16938         for all assembly languages.
16940 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
16942         * config/mips/loongson3a.md: New file.
16943         * config/mips/mips.md: Include loongson3a.md.
16944         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16945         TUNE_LOONGSON_3A.
16947 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16949         PR middle-end/47017
16950         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16951         instead of convert_memory_address_addr_space on the base expression.
16953 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16955         * config/spu/spu.c (spu_option_override): Update error text
16956         for bad -march= / -mtune= values.
16958 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16960         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16961         if branch-hint optimization will be performed.
16963 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16965         PR tree-optimization/47148
16966         * ipa-split.c (split_function): Convert arguments to
16967         DECL_ARG_TYPE if possible.
16969         PR tree-optimization/47155
16970         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16971         when computing uns.
16973         PR rtl-optimization/47157
16974         * combine.c (try_combine): If undobuf.other_insn becomes
16975         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16976         and set *new_direct_jump_p too.
16978 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16980         PR tree-optimization/47021
16981         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16983 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16985         * gcc.c (process_command): Update copyright notice dates.
16986         * gcov.c (print_version): Likewise.
16987         * gcov-dump.c (print_version): Likewise.
16988         * mips-tfile.c (main): Likewise.
16989         * mips-tdump.c (main): Likewise.
16991 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16993         PR tree-optimization/46801
16994         * tree-sra.c (type_internals_preclude_sra_p): Check whether
16995         aggregate fields start at byte boundary instead of the bit-field flag.
16997 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16999         PR driver/47137
17000         * gcc.c (main): Revert revision 168407.
17002 2011-01-03  Martin Jambor  <mjambor@suse.cz>
17004         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
17006 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17008         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
17009         vector optab to expand vector/scalar shift, update gimple to vector.
17011 2011-01-03  Martin Jambor  <mjambor@suse.cz>
17013         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
17014         a thunk.
17016 2011-01-03  Martin Jambor  <mjambor@suse.cz>
17018         PR tree-optimization/46984
17019         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
17020         HOST_WIDE_INT.
17021         (cgraph_create_indirect_edge): Fixed line length.
17022         (cgraph_indirect_call_info): Declare.
17023         (cgraph_make_edge_direct) Update declaration.
17024         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
17025         (cgraph_create_indirect_edge): Use it.
17026         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
17027         callees.
17028         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
17029         the new thunk_delta representation.
17030         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
17031         HOST_WIDE_INT.
17032         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
17033         (ipa_read_indirect_edge_info): Likewise.
17034         * lto-cgraph.c (output_edge_opt_summary): New function.
17035         (output_node_opt_summary): Call it on all outgoing edges.
17036         (input_edge_opt_summary): New function.
17037         (input_node_opt_summary): Call it on all outgoing edges.
17039 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
17041         PR driver/47137
17042         * gcc.c (main): Don't check have_o when settting combine_inputs.
17044 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
17046         * regrename.c: Add general comment describing the pass.
17047         (struct du_head): Remove 'length' field.
17048         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
17049         (regrename_optimize): Do not sort chains.  Rework comments, add others.
17050         Force renaming to the preferred class (if any) in the first pass and do
17051         not consider registers that belong to it in the second pass.
17052         (create_new_chain): Do not set 'length' field.
17053         (scan_rtx_reg): Likewise.
17055 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
17057         PR tree-optimization/47140
17058         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
17059         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
17060         to bit_value_binop.
17062         PR rtl-optimization/47028
17063         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
17064         parm_birth_insn instead of at the beginning of first bb.
17066 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
17068         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
17069         Remove the word "see" before "@pxref".
17070         * doc/rtl.texi: Remove the word "see" before "@pxref".
17072 2011-01-01  Jan Hubicka  <jh@suse.cz>
17074         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
17075         memory.
17077 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
17079         PR target/38662
17080         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
17083 Copyright (C) 2011 Free Software Foundation, Inc.
17085 Copying and distribution of this file, with or without modification,
17086 are permitted in any medium without royalty provided the copyright
17087 notice and this notice are preserved.