OSDN Git Service

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