OSDN Git Service

2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
2             Andrew Stubbs  <ams@codesourcery.com>
3
4         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
5         multiplies.
6         * doc/md.texi (Canonicalization of Instructions): Document widening
7         multiply canonicalization.
8
9 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
10
11         PR gcov-profile/49299
12         * value-prof.c (gimple_ic): Don't assume icall has
13         a fallthru edge.
14
15 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
16
17         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
18         a pointer.
19         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
20         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
21         vect_recog_pow_pattern): Likewise.
22         (vect_pattern_recog_1): Remove declaration.
23         (widened_name_p): Remove declaration.  Add new argument to specify
24         whether to check that both types are either signed or unsigned.
25         (vect_recog_widen_mult_pattern): Update documentation.  Handle
26         unsigned patterns and multiplication by constants.
27         (vect_pattern_recog_1): Update vect_recog_func references.  Use
28         statement information from the statement returned from pattern
29         detection functions.
30         (vect_pattern_recog): Update vect_recog_func reference.
31         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
32         multiplication by a constant use the type of the other operand.
33
34 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
35
36         PR rtl-optimization/49145
37         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
38
39 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
40
41         PR debug/49262
42         * dwarf2out.c (native_encode_initializer): Decrement count in each
43         iteration.
44
45         PR debug/49294
46         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
47         non-MODE_INT modes.
48
49         PR c++/49264
50         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
51         if stmt folded into nothing.
52         * tree-inline.c (fold_marked_statements): If a builtin at the
53         end of a bb folded into nothing, just update cgraph edges
54         and move to next bb.
55         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
56         to be NULL.  Don't compute count and frequency if new_call is NULL.
57
58 2011-06-04  Diego Novillo  <dnovillo@google.com>
59
60         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
61         (cgraph.o): Likewise.
62         (cgraphunit.o): Likewise.
63         * cgraphunit.c: Include lto-streamer.h
64         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
65         if LTO is enabled.
66         * lto-streamer-in.c (unpack_value_fields): Call
67         streamer_hooks.unpack_value_fields if set.
68         (lto_materialize_tree): For unhandled nodes, first try to
69         call lto_streamer_hooks.alloc_tree, if it exists.
70         (lto_input_ts_decl_common_tree_pointers): Move reading of
71         DECL_INITIAL to lto_streamer_read_tree.
72         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
73         (lto_streamer_read_tree): New.
74         (lto_reader_init): Rename from lto_init_reader.
75         Move initialization code to lto/lto.c.
76         * lto-streamer-out.c (pack_value_fields): Call
77         streamer_hooks.pack_value_fields if set.
78         (lto_output_tree_ref): For tree nodes that are not
79         normally indexable, call streamer_hooks.indexable_with_decls_p
80         before giving up.
81         (lto_output_ts_decl_common_tree_pointers): Move handling
82         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to
83         lto_streamer_write_tree.
84         (lto_output_tree_header): Call streamer_hooks.is_streamable
85         instead of lto_is_streamable.
86         Call lto_streamer_hooks.output_tree_header if set.
87         (lto_write_tree): Call lto_streamer_hooks.write_tree if
88         set.
89         (lto_streamer_write_tree): New.
90         (lto_output): Call lto_streamer_init directly.
91         (lto_writer_init): Remove.
92         * lto-streamer.c (streamer_hooks): New.
93         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
94         instead of lto_preload_common_nodes.
95         (lto_is_streamable): Move from lto-streamer.h
96         (lto_streamer_hooks_init): New.
97         (streamer_hooks): New.
98         (streamer_hooks_init): New.
99         * lto-streamer.h (struct output_block): Forward declare.
100         (struct lto_input_block): Likewise.
101         (struct data_in): Likewise.
102         (struct bitpack_d): Likewise.
103         (struct streamer_hooks): Declare.
104         (streamer_hooks): Declare.
105         (lto_streamer_hooks_init): Declare.
106         (lto_streamer_write_tree): Declare.
107         (lto_streamer_read_tree): Declare.
108         (streamer_hooks_init): Declare.
109         (lto_is_streamable): Move to lto-streamer.c
110
111 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
112
113         * longlong.h (smul_ppmm): The resulting register pair contains the
114         higher order word first.
115
116 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
117
118         PR tree-optimization/46728
119         * builtins.c (powi_table): Remove.
120         (powi_lookup_cost): Remove.
121         (powi_cost): Remove.
122         (expand_powi_1): Remove.
123         (expand_powi): Remove.
124         (expand_builtin_pow_root): Remove.
125         (expand_builtin_pow): Remove.
126         (expand_builtin_powi): Eliminate handling of constant exponent.
127         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
128         
129 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
130
131         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
132
133 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
134
135         * dce.c (reset_unmarked_insns_debug_uses): New.
136         (delete_unmarked_insns): Skip debug insns.
137         (prescan_insns_for_dce): Likewise.
138         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
139         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
140         active reg can be found.
141         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
142         (convert_regs_1): Use it.
143
144 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
145
146         * tree-pretty-print.c (dump_function_header): Add flags.
147         Don't dump decl_uid with nouid.
148         * tree-pretty-print.h (dump_function_header): Adjust.
149         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
150         * passes.c (pass_init_dump_file): Pass dump_flags on.
151         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
152
153 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
154
155         PR bootstrap/49270
156         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
157
158 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
159
160         PR tree-optimization/49243
161         * calls.c (setjmp_call_p): Also check if fndecl has the
162         returns_twice attribute.
163
164 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
165
166         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
167         -ffast-math etc.
168
169 2011-06-06  Richard Henderson  <rth@redhat.com>
170             Georg-Johann Lay  <avr@gjlay.de>
171
172         PR target/42210
173         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
174         New predicates.
175         * config/avr/avr.md ("insv"): New insn expander.
176         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
177         "*insv.not.io", "*insv.reg"): New insns.
178
179 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
180
181         PR target/49285
182         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct
183         predicate to nonimmediate_operand from memory_operand for the
184         operand that is to be forced to memory by the expander.  Lose
185         the constraints.
186
187 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
188
189         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
190         EH return when delayed branches are disabled.
191
192 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
193
194         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
195         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
196         calculation.
197         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
198         Simplify MODE_V1DF and MODE_V2SF handling.
199         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
200         Simplify MODE_SF handling.
201
202 2011-06-04  Jan Hubicka  <jh@suse.cz>
203
204         PR tree-optimization/48893
205         PR tree-optimization/49091
206         PR tree-optimization/49179
207         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
208         Bounds check.
209
210 2011-06-04  Jan Hubicka  <jh@suse.cz>
211
212         PR lto/48954
213         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args bitmaps.
214
215 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
216
217         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
218
219 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
220
221         PR target/49281
222         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
223         to be strictly smaller than 1 << shiftcount.
224
225 2011-06-04  Jan Hubicka  <jh@suse.cz>
226
227         PR tree-optimize/48929
228         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
229         of empty predicate.
230
231 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
232
233         PR debug/48333
234         * calls.c (emit_call_1): Prefer the __builtin declaration of
235         builtin functions.
236
237 2011-06-03   Diego Novillo  <dnovillo@google.com>
238
239         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
240         (lto_input_tree_pointers): Likewise.
241         * lto-streamer-out.c (pack_value_fields): Likewise.
242         (lto_output_tree_pointers): Likewise.
243         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
244         and OPTIMIZATION_NODE.
245
246 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
247
248         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
249         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
250         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
251         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
252         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
253         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
254         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
255         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
256         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
257         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
258         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
259         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
260         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
261         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
262         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
263         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
264         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
265         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
266         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
267         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
268         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
269         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
270         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
271         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
272         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
273         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
274         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
275         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
276         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
277         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
278         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
279         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
280         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
281         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
282         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
283         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
284         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
285         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
286         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
287         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
288         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
289         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
290         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
291         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
292         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
293         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
294         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
295         * system.h (MD_UNWIND_SUPPORT): Poison.
296         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
297         * doc/tm.texi: Regenerate.
298         * unwind-dw2.c: Include md-unwind-support.h instead of
299         MD_UNWIND_SUPPORT.
300         * config/ia64/unwind-ia64.c: Likewise.
301         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
302
303 2011-06-03  Jack Howarth <howarth@bromo.med.uc.edu>
304
305         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
306
307 2011-06-03  Richard Henderson  <rth@redhat.com>
308             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
309
310         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
311         (sigill_hdlr): Correct insn, insn size.
312         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
313
314 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
315
316         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
317         t-slibgcc-dummy.
318         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
319         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
320         * config/mips/t-iris: Remove.
321         * config/mips/t-irix6: New file.
322         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
323
324 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
325
326         * Makefile.in (LIB2ADDEHDEP): Remove.
327         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
328         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
329         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
330         * config/t-darwin (LIB2ADDEHDEP): Remove.
331         * config/t-freebsd (LIB2ADDEHDEP): Remove.
332         * config/t-linux (LIB2ADDEHDEP): Remove.
333
334 2011-06-03  Diego Novillo  <dnovillo@google.com>
335
336         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
337         (lto_register_var_decl_in_symtab): Likewise.
338         (lto_register_function_decl_in_symtab): Likewise.
339         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
340         logic to uniquify_nodes.
341
342 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
343
344         * config/alpha/t-osf5: Remove.
345         * config/alpha/t-osf-pthread: Remove.
346         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
347         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
348
349 2011-06-03  Julian Brown  <julian@codesourcery.com>
350
351         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
352         (strongarm1110): Use strongarm tuning.
353         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
354         * config/arm/arm.c (arm_strongarm_tune): New.
355         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
356         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
357         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
358         setting, using previous defaults or 1 for Cortex-A5.
359         (arm_option_override): Set max_insns_skipped from current tuning.
360
361 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
362
363         * doc/install.texi (Options specification): Document --with-specs.
364
365 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
366
367         * config/arm/neon.md (orndi3_neon): Actually split it.
368
369 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
370
371         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
372         * var-tracking.c (reverse_op): Limite recurse depth to 5.
373
374 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
375
376         PR debug/47590
377         * target.def (delay_sched2, delay_vartrack): New.
378         * doc/tm.texi.in: Update.
379         * doc/tm.texi: Rebuild.
380         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
381         * var-tracking.c (gate_handle_var_tracking): Likewise.
382         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
383         (bfin_flag_var_tracking): Drop.
384         (output_file_start): Don't save and override flag_var_tracking.
385         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
386         (bfin_reorg): Test original variables.
387         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
388         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
389         (ia64_flag_var_tracking): Drop.
390         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
391         (ia64_file_start): Don't save and override flag_var_tracking.
392         (ia64_override_options_after_change): Ditto
393         flag_schedule_insns_after_reload.
394         (ia64_reorg): Test original variables.
395         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
396         (picochip_flag_var_tracking): Drop.
397         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
398         (picochip_option_override): Don't save and override
399         flag_schedule_insns_after_reload.
400         (picochip_asm_file_start): Ditto flag_var_tracking.
401         (picochip_reorg): Test original variables.
402         * config/spu/spu.c (spu_flag_var_tracking): Drop.
403         (TARGET_DELAY_VARTRACK): Define.
404         (spu_var_tracking): New.
405         (spu_machine_dependent_reorg): Call it.
406         (asm_file_start): Don't save and override flag_var_tracking.
407
408 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
409
410         PR target/49163
411         * config/sh/predicates.md (general_movsrc_operand): Return 0
412         for memory and memory subreg of which address is an invalid
413         indexed address for QI and HImode.
414         (general_movdst_operand): Likewise.
415
416 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
417
418         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
419         edges only, when there is a non-local label in the function.
420         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
421
422 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
423
424         * config/i386/constraints.md (Y3): New register constraint.
425         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
426         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
427         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
428         *sse2_interleave_lowv2df.
429
430 2011-06-02  Julian Brown  <julian@codesourcery.com>
431
432         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
433         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
434         (arm_cortex_a5_tune): New.
435
436 2011-06-02  Julian Brown  <julian@codesourcery.com>
437
438         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
439         * config/arm/arm.c (arm_default_branch_cost): New.
440         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
441         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
442         (arm_fa726_tune): Set branch_cost field using
443         arm_default_branch_cost.
444         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
445         current_tune structure.
446         * dojump.c (tm_p.h): Include file.
447
448 2011-06-02  Julian Brown  <julian@codesourcery.com>
449
450         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
451         tuning.
452         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
453         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
454         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
455         field.
456         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
457         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
458         (arm_fa726te_tune): Add prefer_constant_pool setting.
459         (arm_v6t2_tune, arm_cortex_tune): New.
460         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
461         prefer_constant_pool setting.
462
463 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
464
465         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
466         switch statement.
467         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
468         (*movdf_internal) <case 6,7,8>: Ditto.
469
470         * config/i386/constraints.md (Y4): New register constraint.
471         * config/i386/sse.md (vec_set<mode>_0): Merge with
472         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
473         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
474         *vec_extractv2di_1_sse.
475         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
476         and *vec_concatv2di_rex64_sse.
477
478 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
479
480         PR target/48807
481         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
482         of cgraph_local_info for null before attempting to use it.
483
484 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
485
486         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
487         (current_function_dynamic_alloc_count): Delete.
488         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
489         (expand_builtin_nonlocal_goto): Remove obsolete comment.
490         (expand_builtin_update_setjmp_buf): Remove dead code.
491         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
492         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
493         support.
494         * function.c (instantiate_virtual_regs): Likewise.
495         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
496         for a block with a single abnormal incoming edge.
497         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
498         (SETJMP_VIA_SAVE_AREA): Delete.
499         * config/sparc/sparc-protos.h (load_got_register): Declare.
500         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
501         (load_got_register): Make global.
502         (sparc_frame_pointer_required): Add 'static'.
503         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
504         (sparc_builtin_setjmp_frame_value): New function.
505         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
506         (save_stack_nonlocal): New expander.
507         (restore_stack_nonlocal): Likewise.
508         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
509         (nonlocal_goto_internal): New insn.
510         (goto_handler_and_restore): Delete.
511         (builtin_setjmp_setup): Likewise.
512         (do_builtin_setjmp_setup): Likewise.
513         (setjmp): Likewise.
514         (builtin_setjmp_receiver): New expander.
515
516 2011-06-01  David Li  <davidxl@google.com>
517
518         PR middle-end/49261
519         * tree-pretty-print.c (dump_function_header): Format cleanup.
520
521 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
522
523         PR target/49238
524         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
525         needed when original operands are used for msw_skip comparison.
526
527 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
528
529         PR debug/49250
530         * var-tracking.c (add_uses, add_stores): Don't call
531         cselib_subst_to_values on ENTRY_VALUE.
532
533 2011-06-01  Diego Novillo  <dnovillo@google.com>
534
535         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
536         output_record_start with LTO_null instead of output_zero.
537         (lto_output_ts_binfo_tree_pointers): Likewise.
538         (lto_output_tree): Likewise.
539         (output_eh_try_list): Likewise.
540         (output_eh_region): Likewise.
541         (output_eh_lp): Likewise.
542         (output_eh_regions): Likewise.
543         (output_bb): Likewise.
544         (output_function): Likewise.
545         (output_unreferenced_globals): Likewise.
546         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
547         instead of NUM_TREE_CODES.
548         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
549         (lto_output_int_in_range): Change << to >> when shifting VAL.
550
551 2011-06-01  Diego Novillo  <dnovillo@google.com>
552
553         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
554         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
555
556 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
557
558         PR target/45074
559         * optabs.h (valid_multiword_target_p): Declare.
560         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
561         doing multi-word operations.
562         * optabs.c (expand_binop): Likewise.
563         (expand_doubleword_bswap): Likewise.
564         (expand_absneg_bit): Likewise.
565         (expand_unop): Likewise.
566         (expand_copysign_bit): Likewise.
567         (multiword_target_p): New function.
568
569 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
570
571         PR rtl-optimization/48830
572         PR rtl-optimization/48808
573         PR rtl-optimization/48792
574         * reload.c (push_reload): Check contains_reg_of_mode.
575         * reload1.c (strip_paradoxical_subreg): New function.
576         (gen_reload_chain_without_interm_reg_p): Use it to handle
577         paradoxical subregs.
578         (emit_output_reload_insns, gen_reload): Likewise.
579
580 2011-06-01  David Li  <davidxl@google.com>
581
582         * predict.c : Change pass name
583         * ipa.c: Ditto.
584         * dce.c: Ditto.
585         * tree-profile.c: Ditto.
586         * except.c: Ditto.
587
588 2011-06-01  David Li  <davidxl@google.com>
589
590         * tree-pretty-print.c (dump_function_header): New function.
591         * final.c (rest_of_clean_state): Use header dumper.
592         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
593         * passes.c (pass_init_dump_file): Use header dumper.
594
595 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
596
597         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
598         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
599         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
600         New functions.
601         (mem_loc_descriptor): Use them.
602
603         * var-tracking.c (create_entry_value): New function.
604         (vt_add_function_parameter): Use it.
605
606 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
607
608         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
609         Include <signal.h>, <ucontext.h>.
610         (sigill_caught): Define.
611         (sigill_hdlr): New function.
612         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
613         insns can be executed.
614         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
615         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
616
617 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
618
619         * config/t-slibgcc-darwin: Move to ...
620         * config/t-slibgcc-dummy: ... this.  Clarify comments.
621         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
622         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
623         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
624         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
625         Remove i386/t-crtstuff from tmake_file.
626         (i[34567]86-*-solaris2*): Remove t-svr4,
627         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
628         t-slibgcc-dummy.
629         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
630         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
631         sparc/t-crtfm from tmake_file.
632         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
633         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
634         Remove extra_parts.
635         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
636         * config/i386/t-nwld (SHLIB_LINK): Remove.
637         * config/i386/t-rtems-i386: Rename to ...
638         * config/i386/t-rtems: ... this.
639         ($(T)crti.o, $(T)crtn.o): Remove.
640         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
641         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
642         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
643         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
644         EXTRA_MULTILIB_PARTS): Remove.
645         * config/sparc/t-sol2-64: Likewise.
646         * config/sparc/t-sol2: Remove.
647         * config/sparc/t-crtin: Remove.
648         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
649         * config/i386/gmon-sol2.c: Remove.
650         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
651         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
652         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
653         * config/i386/sol2-gc1.asm: Remove.
654         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
655         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
656         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
657         * config/t-slibgcc-sld: Remove.
658
659 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
660
661         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
662         base_type_for_mode with op_mode instead of mode.
663
664 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
665
666         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
667         Cortex-A15.
668         * config/arm/arm-tune.md: Regenerate.
669         * config/arm/arm-tables.opt: Regenerate.
670         * config/arm/arm.c (FL_DIV): Rename...
671         (FL_THUMB_DIV): ... to this.
672         (FL_ARM_DIV): Define.
673         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
674         (arm_arch_hwdiv): Remove.
675         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
676         (arm_issue_rate): Add cortexr5.
677         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
678         __ARM_ARCH_EXT_IDIV__.
679         (TARGET_IDIV): Define.
680         (arm_arch_hwdiv): Remove.
681         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
682         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
683         (divsi3, udivsi3): New patterns.
684         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
685         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
686
687 2011-06-01  Martin Jambor  <mjambor@suse.cz>
688
689         * ipa-utils.c (ipa_dfs_info): New field scc_no.
690         * ipa-utils.c (searchc): Set scc_no.
691
692 2011-06-01  Martin Jambor  <mjambor@suse.cz>
693
694         * ipa-utils.c (searchc_env): New field allow_overwritable.
695         (searchc): do not ignore edges to overwritable nodes if indicated
696         by env->allow_overwritable.
697         (ipa_reduced_postorder): Set env.allow_overwritable.
698
699 2011-06-01  Richard Guenther  <rguenther@suse.de>
700
701         * tree.c (free_lang_data): Do not reset boolean_type_node nor
702         char_type_node.
703         * lto-streamer.c (lto_record_common_node): Take node pointer,
704         do not register types.
705         (lto_preload_common_nodes): Explicitly skip preloading nodes
706         that differ between frontends.
707
708 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
709
710         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
711         NON_FLOAT_REGS.
712
713 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
714
715         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
716         parameter value for dump. Dump cost on outermost call only.
717         (rs6000_memory_move_cost): Dump cost on outermost call only.
718
719 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
720
721         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
722         DW_OP_GNU_convert ops.
723
724         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
725         cselib_preserve_constants.
726         (cselib_lookup_1): If cselib_preserve_constants,
727         a new VALUE is being created for REG and there is a VALUE for the
728         same register in wider mode, add another loc with lowpart SUBREG of
729         the wider VALUE.
730         (cselib_subst_to_values): Handle ENTRY_VALUE.
731         * var-tracking.c  (replace_expr_with_values): Return NULL for
732         ENTRY_VALUE too.
733         * dwarf2out.c (convert_descriptor_to_signed): New function.
734         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
735         instead of two shifts.
736         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
737         the right mode if needed.
738         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
739         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
740         convert_descriptor_to_signed.
741         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
742         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
743
744         PR target/48688
745         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
746
747 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
748
749         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
750         of X87MODEI12 and SWI48x instead of SSEMODEI24.
751         (SWI248x): New mode iterator, rename from X87MODEI.
752         (X87MODEI): Remove mode iterator.
753         (X87MODEI12): Ditto.
754         (SSEMODEI24): Ditto.
755
756 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
757
758         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
759         * doc/invoke.texi: Document max-vartrack-expr-depth.
760         * var-tracking.c (EXPR_DEPTH): New.
761         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
762
763 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
764
765         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
766         * config/i386/sse.md: Add n to negated FMA pattern names.
767
768 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
769
770         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
771
772 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
773
774         * gengtype-state.c (read_state_params_structs): Initialize previous.
775
776 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
777
778         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
779         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
780
781 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
782
783         * config/i386/i386.md (*movtf_internal): Avoid allocating general
784         registers.  Penalize F*r->o alternative to prevent partial memory
785         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
786         CONST_DOUBLE immediates when optimizing function for size.  Do not move
787         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
788         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
789         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
790         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
791         alternatives.
792         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
793
794         (fp_register_operand splitters): Use fp_register_operand
795         constraint.  Do not use FP_REG_P in insn condition.
796         (any_fp_register_operand splitters): Use any_fp_register_operand
797         constraint.  Do not use ANY_FP_REG_P in insn condition.
798
799 2011-05-31  Jan Hubicka  <jh@suse.cz>
800
801         * cgraph.h (cgraph_inline_failed_t): Give enum a name
802         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
803         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
804         (lto_output_edge): Use output_enum and var_len_unsigned.
805         (lto_output_varpool_node): Likewise.
806         (input_overwrite_node): Do not take resolution parameter;
807         extract it from a bitpack.
808         (input_node): Do not read resolution; use input_enum and
809         var_len_unsigned.
810         (input_varpool_node): Likewise.
811         (input_edge): Likewise.
812         (input_cgraph_1): Likewise.
813
814 2011-05-31  Richard Guenther  <rguenther@suse.de>
815
816         * gimple.c (gimple_register_canonical_type): Do not register
817         any types via gimple_register_type.
818
819 2011-05-31  Jan Hubicka  <jh@suse.cz>
820
821         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
822         of thunks.
823
824 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
825
826         PR rtl-optimization/49235
827         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
828         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
829
830 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
831
832         PR tree-optimization/49093
833         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
834         data references.
835
836 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
837
838         PR debug/49047
839         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
840         for concrete functions containing the code of cloned functions.
841
842 2011-05-31  Richard Guenther  <rguenther@suse.de>
843
844         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
845         to ...
846         (forward_propagate_into_comparison_1): ... this.
847         (forward_propagate_comparison): Rename to ...
848         (forward_propagate_into_comparison): ... this.  Split out
849         real forward propagation code to ...
850         (forward_propagate_comparison): ... this.
851         (forward_propagate_into_gimple_cond): Remove looping.
852         (forward_propagate_into_cond): Likewise.
853         (simplify_not_neg_expr): Return whether we have done something.
854         (simplify_gimple_switch): Likewise.
855         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
856         (ssa_forward_propagate_and_combine): ... this.  Re-structure
857         to do a forward forward-propagation walk on BBs and a backward
858         stmt combining walk on BBs.  Consistently re-scan changed statements.
859         (pass_forwprop): Adjust.
860
861 2011-05-30  Ian Lance Taylor  <iant@google.com>
862
863         * godump.c (go_format_type): Correct length of name added to
864         obstack for anonymous field.
865
866 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
867
868         PR target/49186
869         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
870         part of the second operand is 0.
871
872 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
873
874         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
875         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
876         to memory for !TARGET_MEMORY_MISMATCH_STALL.
877         (*movdf_internal_rex64): Do not penalize F->r alternative.
878         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
879         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
880         when optimizing function for size.  Do not move CONST_DOUBLEs
881         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
882         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
883         SUBREGs.  Do not check for MEM_P operands in the insn condition,
884         check for ANY_FP_REGNO_P instead.
885         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
886         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
887         function for speed.
888         * config/i386/i386.c (ix86_option_override_internal): Do not
889         set TARGET_INTEGER_DFMODE_MOVES here.
890
891 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
892
893         PR target/49168
894         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
895
896 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
897
898         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
899         DW_TAG_rvalue_reference_type even for
900         -gdwarf-4 -fno-debug-types-section.
901
902 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
903
904         PR tree-optimization/46728
905         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
906         (build_and_insert_binop): New.
907         (gimple_expand_builtin_pow): Reorder args for
908         build_and_insert_call; use build_and_insert_binop; add more
909         optimizations for fractional exponents.
910
911 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
912
913         PR bootstrap/49190
914
915         Revert:
916         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
917
918         * tree.h (struct tree_identifier): Inherit from tree_typed, not
919         tree_common.
920         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
921         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
922         TS_BASE instead of TS_COMMON.
923         * varasm.c (assemble_name): Remove assert.
924
925 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
926
927         * config.gcc: Keep obselete list sorted.
928
929 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
930             Eric Botcazou  <ebotcazou@adacore.com>
931
932         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
933         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
934         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
935         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
936         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
937
938 2011-05-30  Richard Guenther  <rguenther@suse.de>
939
940         * gimple.c (gimple_types_compatible_p_1): Compare record
941         and union type members properly.
942
943 2011-05-30  Richard Guenther  <rguenther@suse.de>
944
945         PR tree-optimization/49210
946         * ipa-split.c (split_function): Care for the case where the call
947         result is not trivially convertible to the result holding variable.
948
949 2011-05-30  Richard Guenther  <rguenther@suse.de>
950
951         PR tree-optimization/49218
952         * tree-vrp.c (adjust_range_with_scev): Properly check whether
953         overflow occured.
954
955 2011-05-30  Richard Guenther  <rguenther@suse.de>
956
957         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
958         New function split out from ...
959         (forward_propagate_into_gimple_cond): ... here.  Adjust.
960         (forward_propagate_into_cond): Likewise.
961         (forward_propagate_comparison): Also propagate into
962         comparisons on assignment RHS.  Change return value to
963         behave similar to forward_propagate_into_cond.
964         (tree_ssa_forward_propagate_single_use_vars): Handle
965         strict-overflow warnings properly for forward_propagate_comparison.
966
967 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
968
969         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
970         from plugin linker.
971         * configure: Regenerate.
972
973 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
974
975         PR tree-optimization/49199
976         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
977         non-reduction operands are either defined in the loop or by induction.
978
979 2011-05-29  Xinliang David Li  <davidxl@google.com>
980
981         * opts-global.c (handle_common_deferred_options): Handle new options.
982         * passes.c (register_one_dump_file): Call register_pass_name.
983         (execute_one_pass): Check explicit enable/disable flag.
984         (passr_hash): New function.
985         (passr_eq): Ditto.
986         (register_pass_name): Ditto.
987         (get_pass_by_name): Ditto.
988         (pass_hash): Ditto.
989         (pass_eq): Ditto.
990         (enable_pass): Ditto.
991         (disable_pass): Ditto.
992         (is_pass_explicitly_enabled_or_disabled): Ditto.
993
994 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
995
996         * config/i386/i386.md (*movoi_internal_avx): Use
997         standard_sse_constant_opcode for alternative 0.
998         (*movti_internal_sse): Ditto.
999         (*movti_internal_rex64): Use standard_sse_constant_opcode for
1000         alternative 2.
1001         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
1002         sselog1 type moves.
1003         (*movsi_internal): Ditto.
1004         (*movdi_internal): Ditto.  Add ssecvt type moves.
1005
1006 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1007
1008         PR target/48830
1009         * rtlanal.c (simplify_subreg_regno): Adjust comment.
1010
1011 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
1012
1013         PR rtl-optimization/49095
1014         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
1015         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
1016
1017 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
1018
1019         PR target/43995
1020         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
1021         recurse_p argument.  Only follow register copies if it is set,
1022         and prevent mips_find_pic_call_symbol from recursing.
1023         (mips_find_pic_call_symbol): Add a recurse_p argument.
1024         Pass it to mips_pic_call_symbol_from_set.
1025         (mips_annotate_pic_calls): Update accordingly.
1026
1027 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
1028
1029         * emit-rtl.c (try_split): Use a loop to search for
1030         NOTE_INSN_CALL_ARG_LOCATIONs.
1031
1032 2011-05-29  Richard Guenther  <rguenther@suse.de>
1033
1034         PR tree-optimization/49217
1035         * ipa-pure-const.c (propagate_pure_const): Fix typos.
1036
1037 2011-05-28  Jan Hubicka  <jh@suse.cz>
1038
1039         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
1040         length.
1041         (string_slot_free): Remove
1042         (create_output_block): Initialize obstack.
1043         (destroy_output_block): Free obstack.
1044         (lto_string_index): Add PERSISTENT parameter; do not duplicate
1045         the string unless it needs to be added into the hash.
1046         (lto_output_string_with_length): Add persistent attribute;
1047         handle NULL strings.
1048         (lto_output_string): Add PERSISTENT parameter.
1049         (output_string_cst, output_identifier): Simplify.
1050         (lto_output_location_bitpack): Update.
1051         (lto_output_builtin_tree): Update.
1052         * lto-streamer.h (struct output_block): Add obstack.
1053         (lto_output_string, lto_output_string_with_length): Remove
1054         declarations; functions are static now.
1055
1056 2011-05-28  Jan Hubicka  <jh@suse.cz>
1057
1058         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
1059         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
1060         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
1061         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
1062         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
1063         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
1064         unpack_ts_decl_with_vis_value_fields,
1065         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
1066         lto_get_builtin_tree): Use enum and variable length i/o.
1067         * basic-block.h (profile_status_d): Add PROFILE_LAST.
1068         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
1069         New functions.
1070         (bp_pack_enum, bp_unpack_enum): New macros.
1071
1072 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
1073
1074         * genrecog.c: Remove redundant forward declarations.
1075
1076 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
1077
1078         * config.gcc: Deprecate mips*-*-openbsd*.
1079
1080 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
1081
1082         PR bootstrap/49195
1083         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
1084         for match_op_dup.
1085
1086 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
1087
1088         PR middle-end/48981
1089         * gengtype.c (vec_prefix_type): New function.
1090         (note_def_vec): Use vec_prefix_type and change the length
1091         attribute to be based on the prefix.
1092         * vec.c: Include coretypes.h before vec.h.
1093         (struct vec_prefix): Remove.
1094         (vec_gc_p_reserve): Change the offsetof to sizeof.
1095         (vec_gc_p_reserve_exact): Likewise.
1096         (vec_heap_p_reserve): Likewise.
1097         (vec_heap_p_reserve_exact): Likewise.
1098         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
1099         (vec_stack_p_reserve): Change the offsetof to sizeof.
1100         (vec_stack_p_reserve_exact): Likewise.
1101         * vec.h (struct vec_prefix): New struct definition.
1102         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
1103         (VEC_T_GTY(T,B)): Likewise.
1104         (DEF_VEC_FUNC_P(T)): Use prefix field.
1105         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
1106         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
1107
1108 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1109
1110         PR tree-optimization/46728
1111         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
1112         (powi_as_mults): Add gimple_set_location.
1113         (build_and_insert_call): New.
1114         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
1115         0.5, 0.25, 0.75, 1./3., or 1./6.
1116
1117 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
1118
1119         * doc/contrib.texi: Update copyright years.
1120         (Contributors): Add Zdenek Sojka.
1121
1122 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
1123
1124         * c-decl.c (c_push_function_context): Copy the current statement
1125         list stack.
1126         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
1127         (finish_struct): Call building_stmt_list_p instead of checking
1128         cur_stmt_list.
1129         * c-parser.c (c_parser_postfix_expression): Likewise.
1130         * c-typeck.c (c_end_compound_stmt): Likewise.
1131         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
1132         * tree-iterator.c (stmt_list_cache): Change to a VEC.
1133         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
1134         (free_stmt_list): Likewise.
1135         * tree.h (struct tree_statement_list): Include typed_tree instead
1136         of tree_common.
1137         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
1138         as TS_TYPED instead of TS_COMMON.
1139
1140 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1141             Uros Bizjak  <ubizjak@gmail.com>
1142
1143         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
1144         (HAVE_AS_IX86_TLSGDPTL): Define.
1145         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
1146         (HAVE_AS_IX86_TLSLDMPLT): Define.
1147         * configure: Regenerate.
1148         * config.in: Regenerate.
1149         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
1150         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
1151         TARGET_SUN_TLS, use @tlsgdplt or @plt.
1152         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
1153         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
1154         @tlsldmplt or @plt.
1155         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
1156
1157 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
1158
1159         * sched-int.h (struct _haifa_deps_insn_data): New members cond
1160         and reverse_cond.
1161         (INSN_COND, INSN_REVERSE_COND): New macros.
1162         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
1163         once.
1164         (sched_get_condition_with_rev): Cache the results, and look them up
1165         if possible.
1166         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
1167         are clobbered by the current insn.
1168         * target.def (exposed_pipline): New sched data hook.
1169         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
1170         * doc/tm.texi: Regenerate.
1171
1172 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1173
1174         PR tree-optimization/49170
1175         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
1176         sincos or cexp.
1177
1178 2011-05-27  Richard Guenther  <rguenther@suse.de>
1179
1180         PR middle-end/49189
1181         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
1182         of comparisons.
1183
1184 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
1185
1186         * haifa-sched.c (sched_scan_info): Remove.
1187         (schedule_block): Call sched_extend_luids rather than sched_init_luids
1188         with NULL args.
1189         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
1190         Remove functions.
1191         (sched_scan): Remove.
1192         (sched_extend_luids): Renamed from luids_extend_insn and no longer
1193         static.  All callers changed.
1194         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
1195         static.  All callers changed.
1196         (sched_init_luids): Remove all arguments except the first.  All
1197         callers changed.  Don't use sched_scan.
1198         (haifa_init_h_i_d): Likewise.
1199         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
1200         manually rather than using sched_init_luids.  Likewise with
1201         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
1202         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
1203         rather than sched_init_luids with NULL args.
1204         * sel-sched-ir.c (new_insns): Remove variable.
1205         (sched_scan): New static function, previously in haifa-sched.c.  Remove
1206         all arguments but the first two; all callers changed.
1207         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
1208         rather than sched_init_luids.
1209         (sel_init_bbs): Remove second argument.  All callers changed.
1210         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
1211         with NULL arguments.
1212         (create_insn_rtx_from_pattern): Likewise.
1213         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
1214         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
1215         (sched_init_insn_luid, sched_extend_luids): Declare.
1216         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
1217         declarations.
1218
1219 2011-05-27  Richard Guenther  <rguenther@suse.de>
1220
1221         PR middle-end/49177
1222         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
1223         A CMP B ? (T) true : (T) false for non-integral types T again.
1224
1225 2011-05-27  Jan Hubicka  <jh@suse.cz>
1226
1227         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
1228         so 0 means NULL string.
1229         (lto_output_string_with_length): ... here.
1230         (lto_output_string, output_string_cst, output_identifier): Update
1231         handling of NULL strings.
1232         (lto_output_location_bitpack): New function.
1233         (lto_output_location): Use it.
1234         (lto_output_tree_ref): Use output_record_start.
1235         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
1236         len values.
1237         * lto-streamer-in.c (string_for_index): Break out from ...; offset
1238         values by 1.
1239         (input_string_internal): ... here;
1240         (input_string_cst, input_identifier, lto_input_string): Update handling
1241         of NULL strings.
1242         (lto_input_location_bitpack): New function
1243         (lto_input_location): Use it.
1244         (unpack_ts_type_common_value_fields): Pack align & alias in var len
1245         values.
1246         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
1247         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
1248         (bp_pack_value): Sanity check the value range.
1249         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
1250         New functions.
1251         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
1252         New functions.
1253
1254 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
1255
1256         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
1257         call_arg_location instructions down the floor.
1258
1259 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
1260
1261         PR rtl-optimization/49154
1262         * ira.c (setup_pressure_classes): Process class without sublcasses
1263         as a candidate for pressure classes.
1264
1265 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
1266
1267         PR rtl-optimization/48575
1268         * genrecog.c (position_type): New enum.
1269         (position): New structure.
1270         (decision): Use position structure instead of a string.
1271         (root_pos, peep2_insn_pos_list): New variables.
1272         (next_position, compare_positions): New functions.
1273         (new_decision): Use position structures instead of strings.
1274         (maybe_both_true): Likewise.
1275         (change_state): Likewise.
1276         (write_tree): Likewise.
1277         (make_insn_sequence): Likewise.
1278
1279 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
1280
1281         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
1282         TS_BASE instead of TS_COMMON.
1283         (find_decls_types_r): Check for TS_TYPED structure before looking at
1284         TREE_TYPE.
1285         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
1286         Add chain field.
1287         (BLOCK_CHAIN): Use new chain field.
1288
1289 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
1290
1291         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
1292         moves expensive on Power7 also.
1293
1294 2011-05-26  Richard Guenther  <rguenther@suse.de>
1295
1296         * fold-const.c (fold_unary_loc): Remove bogus code.
1297
1298 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
1299
1300         * tree.h (struct tree_identifier): Inherit from tree_typed, not
1301         tree_common.
1302         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
1303         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
1304         TS_BASE instead of TS_COMMON.
1305         * varasm.c (assemble_name): Remove assert.
1306
1307 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
1308
1309         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
1310         substituted first.
1311         * libgcc-std.ver: Delete file.
1312
1313 2011-05-26  Richard Guenther  <rguenther@suse.de>
1314
1315         PR tree-optimization/48702
1316         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
1317         only when we know the base address is within bounds.
1318         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
1319         assume the base address of TARGET_MEM_REFs is in bounds.
1320
1321 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1322
1323         PR target/49099
1324         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
1325         declaration in TARGET_SOLARIS.
1326
1327 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
1328
1329         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
1330         The instruction is then expanded explicitly.
1331         (supported_compare): Callable instruction.
1332         (compare): Likewise.
1333
1334 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
1335
1336         PR c++/49165
1337         * gimplify.c (shortcut_cond_r): Don't special case
1338         COND_EXPRs if they have void type on one of their arms.
1339
1340 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
1341
1342         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
1343         to reduce duplication, and to achieve a slightly more logical order
1344         of operations.
1345
1346 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
1347
1348         PR tree-optimization/49161
1349         * tree-vrp.c (struct case_info): New type.
1350         (compare_case_labels): Sort case_info structs instead of
1351         trees, and not primarily by CASE_LABEL uids but by
1352         label_for_block indexes.
1353         (find_switch_asserts): Put case labels into struct case_info
1354         array instead of TREE_VEC, adjust sorting, compare label_for_block
1355         values instead of CASE_LABELs.
1356
1357 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1358
1359         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
1360         ("orndi3_neon"): Likewise.
1361         ("bic<mode>3_neon"): Likewise.
1362
1363 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
1364
1365         PR tree-optimization/49038
1366         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
1367         Ensure at least one epilogue iteration if required by data
1368         accesses with gaps.
1369         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1370         to mark loops that require peeling for gaps.
1371         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
1372         (vect_get_known_peeling_cost): Take peeling for gaps into
1373         account.
1374         (vect_transform_loop): Generate epilogue if required by data
1375         access with gaps.
1376         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
1377         loop as requiring an epilogue if there are gaps in the end of
1378         the strided group.
1379
1380 2011-05-25  Ian Lance Taylor  <iant@google.com>
1381
1382         * godump.c (go_format_type): Output the first field with a usable
1383         Go type, if any.
1384
1385 2011-05-25  Ian Lance Taylor  <iant@google.com>
1386
1387         * godump.c (go_format_type): Check for invalid type names, pointer
1388         target types, and struct field types.
1389
1390 2011-05-25  Jason Merrill  <jason@redhat.com>
1391
1392         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
1393
1394 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
1395
1396         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
1397
1398 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1399
1400         * config/i386/i386.md (*movqi_extv_1)): Put back
1401         "register_operand" check in "type" calculation.
1402         (*movqi_extzv_2): Likewise.
1403
1404 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1405
1406         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
1407
1408 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
1409
1410         PR bootstrap/49160
1411         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
1412         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
1413         __divxc3, __divtc3): Wrap definitions in #ifndef.
1414
1415 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1416
1417         PR target/49142
1418         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
1419         "register_operand" check and replace q_regs_operand with
1420         QIreg_operand in "type" calculation.
1421         (*movqi_extv_1): Likewise.
1422         (*movqi_extzv_2_rex64): Likewise.
1423         (*movqi_extzv_2): Likewise.
1424
1425         * config/i386/predicates.md (QIreg_operand): New.
1426
1427 2011-05-25  Richard Guenther  <rguenther@suse.de>
1428
1429         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
1430         type-based offset disambiguation, streamline MEM_REF and
1431         TARGET_MEM_REF handling.
1432
1433 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1434
1435         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
1436         (bdesc_special_args): Add pause intrinsic.
1437
1438         * config/i386/i386.md (UNSPEC_PAUSE): New.
1439         (pause): Likewise.
1440         (*pause): Likewise.
1441         * config/i386/ia32intrin.h (__pause): Likewise.
1442
1443         * doc/extend.texi (X86 Built-in Functions): Add documentation for
1444         pause intrinsic.
1445
1446 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1447
1448         PR tree-optimization/46728
1449         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
1450         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
1451
1452 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
1453
1454         * tree.h (struct tree_exp): Inherit from struct tree_typed.
1455         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
1456         instead of TS_COMMON.
1457
1458 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
1459
1460         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
1461         LIBGCC2_GNU_PREFIX is defined.
1462         (__N): New macro.
1463         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
1464         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
1465         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
1466         __clz_tab): Define using __N.
1467         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
1468         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1469         * target.def (libfunc_gnu_prefix): New hook.
1470         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
1471         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
1472         * doc/tm.texi: Regenerate.
1473         * system.h (LIBGCC2_GNU_PREFIX): Poison.
1474         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
1475         account.
1476         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
1477         (init_optabs): Likewise for the bswap libfuncs.
1478         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
1479         and divide.
1480         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
1481         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
1482         * libgcc-std.ver: Remove.
1483         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
1484         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
1485         libgcc-std.ver.
1486         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1487         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
1488         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
1489         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
1490         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
1491         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1492         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1493         * config/fixed-bit.h (FIXED_OP): Define differently depending on
1494         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
1495         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
1496
1497 2011-05-25  Jan Hubicka  <jh@suse.cz>
1498
1499         * lto-streamer-out.c (output_record_start): Use lto_output_enum
1500         (lto_output_tree): Use output_record_start.
1501         * lto-streamer-in.c (input_record_start): Use lto_input_enum
1502         (lto_get_pickled_tree): Use input_record_start.
1503         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
1504         (lto_value_range_error): New function.
1505         * lto-streamer.h (lto_value_range_error): Declare.
1506         (lto_output_int_in_range, lto_input_int_in_range): New functions.
1507         (lto_output_enum, lto_input_enum): New macros.
1508
1509 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1510
1511         * common.opt (flag_stack_usage_info): New variable.
1512         (-Wstack-usage): New option.
1513         * doc/invoke.texi (Warning options): Document -Wstack-usage.
1514         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
1515         <OPT_fstack_usage>: Likewise.
1516         * toplev.c (output_stack_usage): Handle -Wstack-usage.
1517         * calls.c (expand_call): Test flag_stack_usage_info variable instead
1518         of flag_stack_usage.
1519         (emit_library_call_value_1): Likewise.
1520         * explow.c (allocate_dynamic_stack_space): Likewise.
1521         * function.c (instantiate_virtual_regs ): Likewise.
1522         (prepare_function_start): Likewise.
1523         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
1524         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
1525         * config/arm/arm.c (arm_expand_prologue): Likewise.
1526         (thumb1_expand_prologue): Likewise.
1527         * config/avr/avr.c (expand_prologue): Likewise.
1528         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1529         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1530         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
1531         * config/mips/mips.c (mips_expand_prologue): Likewise.
1532         * config/pa/pa.c (hppa_expand_prologue): Likewise.
1533         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1534         * config/s390/s390.c (s390_emit_prologue): Likewise.
1535         * config/sh/sh.c (sh_expand_prologue): Likewise.
1536         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1537         * config/spu/spu.c (spu_expand_prologue): Likewise.
1538
1539 2011-05-25  Richard Guenther  <rguenther@suse.de>
1540
1541         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
1542         (gimple_canonical_types_compatible_p): Likewise.
1543
1544 2011-05-25  Jan Hubicka  <jh@suse.cz>
1545
1546         PR middle-end/49062
1547         * ipa.c (function_and_variable_visibility): Only add to same
1548         comdat group list if DECL_ONE_ONLY.
1549
1550 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
1551
1552         PR rtl-optimization/49014
1553         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
1554
1555 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
1556
1557         PR target/49128
1558         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1559
1560 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1561
1562         PR rtl-optimization/48757
1563         * ira-build.c (loop_with_eh_edge_p): Rename to
1564         loop_with_complex_edge_p, check edges on complexity, make function
1565         conditional.
1566         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
1567         conditional.
1568
1569 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1570
1571         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
1572         force flag_ira_share_save_slots to 0.
1573
1574 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1575
1576         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
1577         (vt_initialize): Set PROLOGUE_BB unconditionally.
1578         Add block comment about CFA_BASE_RTX machinery.
1579         Reset FP_CFA_OFFSET to -1 on all invalid paths.
1580         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
1581
1582 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1583
1584         PR objc/48187
1585         * c-parser.c (c_parser_objc_class_instance_variables): More robust
1586         parsing of syntax error in ObjC instance variable lists.  In
1587         particular, avoid an infinite loop if there is a stray ']'.
1588         Updated error message.
1589
1590 2011-05-24  Ian Lance Taylor  <iant@google.com>
1591
1592         * godump.c (go_define): Don't accept a string immediately after
1593         another operand.
1594
1595 2011-05-24  Ian Lance Taylor  <iant@google.com>
1596
1597         * godump.c (struct godump_container): Add invalid_hash field.
1598         (go_format_type): Return false if type is found in invalid_hash.
1599         (go_output_typedef): Add invalid type to invalid_hash.
1600         (go_finish): Create and delete invalid_hash.
1601
1602 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1603
1604         PR tree-optimization/46728
1605         * tree-ssa-math-opts.c (powi_table): New.
1606         (powi_lookup_cost): New.
1607         (powi_cost): New.
1608         (powi_as_mults_1): New.
1609         (powi_as_mults): New.
1610         (gimple_expand_builtin_powi): New.
1611         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
1612         (gate_cse_sincos): Remove sincos/cexp restriction.
1613
1614 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1615
1616         PR target/3746
1617         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
1618         mips-tdump native.
1619         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
1620         * mips-tdump.c: Likewise.
1621
1622 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1623
1624         PR target/49128
1625         * config/i386/driver-i386.c (host_detect_local_cpu): Always
1626         add -mno-XXX.  Handle FMA.
1627
1628 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1629
1630         PR rtl-optimization/48633
1631         * ira-build.c (loop_with_eh_edge_p): New function.
1632         (mark_loops_for_removal): Use it.
1633
1634 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
1635
1636         PR rtl-optimization/48971
1637         * ira.c (setup_pressure_classes): Don't check register move cost
1638         for classes with one registers.  Don't add pressure class if there
1639         is a pressure class with the same available hard registers.
1640         Check contains_reg_of_mode.  Fix a typo in collecting
1641         temp_hard_regset.  Ignore hard registers not belonging to a class.
1642
1643 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
1644
1645         PR target/49133
1646         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
1647
1648 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1649             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1650
1651         PR gcov-profile/48845
1652         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
1653
1654 2011-05-24  Richard Guenther  <rguenther@suse.de>
1655
1656         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
1657         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
1658         (gimple_types_compatible_p_1): Adjust.
1659         (iterative_hash_canonical_type): Do not bother about complete vs.
1660         incomplete types.
1661         (gimple_canonical_types_compatible_p): Likewise.
1662
1663 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1664
1665         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
1666
1667 2011-05-24  Richard Guenther  <rguenther@suse.de>
1668
1669         PR bootstrap/49078
1670         * gimple.c (gimple_register_canonical_type): Revert
1671         previous change.
1672         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
1673         does not for a tree for the case where it matters.  Cache
1674         pointer-type alias-sets.
1675
1676 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
1677
1678         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
1679         (OBJS): Remove options.o, opts-common.o and prefix.o.
1680         (OBJS-libcommon-target): New.
1681         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
1682         (BACKEND): Include libcommon-target.a.
1683         (MOSTLYCLEANFILES): Include libcommon-target.a.
1684         (libcommon-target.a): New.
1685         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
1686         prefix.o.
1687
1688 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
1689
1690         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
1691         parts of output shared with the driver.
1692         * optc-gen.awk: Don't generate parts of output not shared with the
1693         driver.
1694         * opth-gen.awk: Remove GCC_DRIVER conditionals.
1695         * doc/options.texi (SourcerInclude): Mention options-save.c.
1696         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
1697         (OBJS): Add options-save.o.
1698         (options-save.c, options-save.o): New.
1699         (options.o): Update dependencies.
1700         (gcc-options.o): Remove.
1701         (mostlyclean): Remove options-save.c.
1702
1703 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1704
1705         PR debug/49032
1706         * dbxout.c: Include cgraph.h.
1707         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
1708         and without value expr, return NULL if no varpool node exists for
1709         it or if it is not needed.
1710         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
1711
1712         PR c/49120
1713         * c-decl.c (start_decl): Convert expr to void_type_node.
1714
1715 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
1716
1717         PR rtl-optimization/48826
1718         * emit-rtl.c (try_split): When splitting a call that is followed
1719         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
1720
1721 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1722
1723         * cfgexpand.c (expand_debug_expr): For unused non-addressable
1724         parameters passed in memory prefer using DECL_INCOMING_RTL over
1725         the pseudos it will be copied into.
1726
1727 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1728
1729         PR target/47315
1730         * config/i386/i386.c (ix86_option_override_internal): Save the
1731         initial options after checking vzeroupper.
1732
1733 2011-05-23  David Li  <davidxl@google.com>
1734
1735         PR tree-optimization/48988
1736         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1737         Initialize has_valid_pred for each pred chain.
1738
1739 2011-05-23  Richard Guenther  <rguenther@suse.de>
1740
1741         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1742         (iterative_hash_gimple_type): Always hash type names.
1743
1744 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
1745
1746         * c-typeck.c (build_function_call_vec): Tweak call to
1747         check_function_arguments.
1748
1749 2011-05-23  Richard Guenther  <rguenther@suse.de>
1750
1751         PR tree-optimization/49115
1752         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1753         is not necessarily carried out, do not claim it kills the ref.
1754         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1755
1756 2011-05-23  Richard Guenther  <rguenther@suse.de>
1757
1758         PR middle-end/15419
1759         * builtins.c (fold_builtin_memory_op): Be less restrictive about
1760         what pointer types we accept for folding.
1761
1762 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1763
1764         * gthr-gnat.c: Remove.
1765         * gthr-gnat.h: Remove.
1766         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1767         * config/t-freebsd (LIB2ADDEH): Likewise.
1768         * config/t-linux (LIB2ADDEH): Likewise.
1769         * config/t-sol2 (LIB2ADDEH): Likewise.
1770         * config/ia64/t-vms (LIB2ADDEH): Likewise.
1771         * configure.ac (target_thread_file): Remove gnat handling.
1772         * configure: Regenerate.
1773         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1774
1775 2011-05-23  Tristan Gingold  <gingold@adacore.com>
1776             Eric Botcazou  <ebotcazou@adacore.com>
1777
1778         * gcov.c (create_file_names): If no object directory is specified,
1779         keep the directory of the file.
1780
1781 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1782
1783         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1784         * configure: Regenerate.
1785
1786 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1787
1788         PR middle-end/48973
1789         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1790         failed and the comparison has a single bit signed type, use
1791         constm1_rtx instead of const1_rtx for true value.
1792         (do_store_flag): If ops->type is single bit signed type, disable
1793         signel bit test optimization and pass -1 instead of 1 as last
1794         parameter to emit_store_flag_force.
1795
1796 2011-05-23  Tom de Vries  <tom@codesourcery.com>
1797
1798         PR target/45098
1799         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1800         function.
1801         (infer_loop_bounds_from_undefined): Use new function.
1802
1803 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1804
1805         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1806         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
1807         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1808         and -O0 otherwise.
1809         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1810
1811 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1812
1813         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1814         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1815         returns true.
1816
1817 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1818
1819         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1820
1821 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1822
1823         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1824         UNSPEC_MOVE_PIC pattern.
1825
1826 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1827
1828         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1829         (sparc-*-rtems*): Likewise.
1830         (sparc64-*-elf*): Likewise.
1831         (sparc64-*-rtems*): Likewise.
1832         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
1833         * config/sparc/t-crtin: New file.
1834         * config/sparc/t-sol2 (crti.o): Delete rule.
1835         (crtn.o): Likewise.
1836         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1837         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1838         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1839         (ENDFILE_SPEC): Add crtn.o.
1840
1841 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1842
1843         PR middle-end/48689
1844         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1845         CODE_CONTAINS_STRUCT (TS_COMMON).
1846
1847 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
1848
1849         PR middle-end/49029
1850         * expmed.c (extract_fixed_bit_field): Test whether target can be used
1851         only after deciding which mode to use.
1852
1853 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1854
1855         PR target/45098
1856         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1857         for call to get_shiftadd_cost.
1858
1859 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
1860
1861         PR target/49104
1862         * config/i386/cpuid.h (bit_MMXEXT): New define.
1863
1864 2011-05-22  Nick Clifton  <nickc@redhat.com>
1865
1866         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1867         initialisation of non-existant args[2] element.  Use args[] array
1868         not arg[] array to pass arguments to build_function_type_list.
1869
1870 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
1871
1872         PR tree-optimization/49087
1873         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1874
1875 2011-05-21  Jason Merrill  <jason@redhat.com>
1876
1877         PR c++/49092
1878         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1879         static storage duration.
1880
1881 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1882
1883         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1884         frame pointer.
1885
1886 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1887
1888         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1889         false if there are call-saved registers here...
1890         (sparc_can_use_return_insn_p): ...but here instead.
1891         (save_or_restore_regs): Fix thinko.
1892         (sparc_expand_prologue): Use current_function_is_leaf.
1893         (sparc_frame_pointer_required): Likewise.
1894
1895 2011-05-21  Nick Clifton  <nickc@redhat.com>
1896
1897         PR target/49098
1898         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1899
1900 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1901
1902         * gengtype.c (walk_type): Implemented "atomic" GTY option.
1903         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1904
1905 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
1906
1907         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
1908         * optc-gen.awk: Move common code to opt-read.awk.
1909         * opth-gen.awk: Likewise.
1910         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1911
1912 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1913
1914         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1915
1916 2011-05-20  Tom de Vries  <tom@codesourcery.com>
1917
1918         PR target/45098
1919         * tree-ssa-loop-ivopts.c: Include expmed.h.
1920         (get_shiftadd_cost): New function.
1921         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
1922
1923 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1924
1925         PR bootstrap/49086
1926         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1927         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1928
1929 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1930
1931         * Makefile.in: Update comment referring to $(OBJS-common).
1932
1933 2011-05-20  Ian Lance Taylor  <iant@google.com>
1934
1935         * godump.c (go_output_typedef): Put enum constants in the macro
1936         hash table to avoid duplicate Go const definitions.
1937
1938 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1939
1940         * Makefile.in (LIBDEPS): Add libcommon.a.
1941         (LIBS): Likewise.
1942         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1943         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1944         pretty-print.o and version.o.
1945         (OBJS-libcommon): New.
1946         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1947         (BACKEND): Add libcommon.a.
1948         (MOSTLYCLEANFILES): Likewise.
1949         (libcommon.a): New.
1950         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1951         (cpp$(exeext)): Likewise.
1952         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1953         pretty-print.o and input.o.
1954         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1955         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1956         (errors.o): Remove.
1957         (mips-tfile): Don't explicitly use version.o.
1958         (mips-tdump): Likewise.
1959         (gcov.o): Depend on $(DIAGNOSTIC_H).
1960         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1961         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1962         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1963         * gcov-dump.c: Include intl.h and diagnostic.h.
1964         (main): Initialize diagnostics.
1965         * gcov.c: Include diagnostic.h.
1966         (fnotice): Remove.
1967         (main): Initialize diagnostics.
1968         * lto-wrapper.c: Include diagnostic.h.
1969         (main): Initialize diagnostics.
1970
1971 2011-05-20  Michael Matz  <matz@suse.de>
1972
1973         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1974
1975 2011-05-20  Michael Matz  <matz@suse.de>
1976             Richard Guenther  <rguenther@suse.de>
1977
1978         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1979         use lto_streamer_cache_append directly instead of returning a VEC.
1980         (preload_common_node): Remove.
1981         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1982         track seen nodes.
1983         (lto_streamer_cache_create): Call lto_preload_common_nodes.
1984
1985 2011-05-20  Richard Guenther  <rguenther@suse.de>
1986
1987         PR tree-optimization/49079
1988         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1989         MEM_REFs correctly for the trailing array access detection.
1990         Special case constants the same way as decls for overall size
1991         constraining.
1992
1993 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
1994
1995         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1996         argument expansion.
1997
1998 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1999
2000         PR tree-optimization/49073
2001         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
2002         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
2003         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
2004
2005 2011-05-20  Richard Guenther  <rguenther@suse.de>
2006
2007         PR middle-end/48849
2008         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
2009         of pointer types the same way the middle-end does.
2010
2011 2011-05-20  Richard Guenther  <rguenther@suse.de>
2012
2013         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
2014         or pointer-to chains.  Delay all fixup to uniquify_nodes.
2015
2016 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
2017
2018         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
2019         (fma4_fmaddsub): Likewise
2020
2021 2011-05-19  Jan Hubicka  <jh@suse.cz>
2022
2023         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
2024         (GIMPLE_TYPE_PAIR_SIZE): New macro.
2025         (type_pair_cache): New static var.
2026         (lookup_type_pair): Use fixed sized custom hash; make inline.
2027         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
2028         calls of lookup_type_pair.
2029         (print_gimple_types_stats): Remove cache stats.
2030         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
2031         and gtc_ob.
2032
2033 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
2034
2035         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
2036         when TARGET_RDRND is active.
2037         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
2038         Generate dummy SImode target register when target is NULL.
2039
2040 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
2041
2042         * config/arm/arm-fpus.def: New.
2043         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
2044         arm-fpus.def.
2045         * config/arm/arm-tables.opt: Regenerate.
2046         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
2047         (arm_option_override): Don't decode FPU name to string here.
2048         * config/arm/arm.opt (mfpu=): Use Enum.
2049         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
2050         Update dependencies.
2051
2052 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
2053
2054         * collect2.c: Include diagnostic.h.
2055         (fatal_perror, fatal, error, fancy_abort): Remove.
2056         (main): Set progname.  Call xmalloc_set_program_name and
2057         diagnostic_initialize.
2058         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
2059         scan_libraries, resolve_lib_name): Call fatal_error instead of
2060         fatal and fatal_perror.
2061         * collect2.h (error, fatal, fatal_perror): Don't declare.
2062         * tlink.c: Include diagnostic-core.h.
2063         (recompile_files): Call fatal_error instead of fatal_perror.
2064         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
2065         pretty-print.o and input.o.
2066         (collect2.o, tlink.o): Update dependencies.
2067
2068 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2069
2070         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
2071
2072 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2073
2074         PR target/40483
2075         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
2076         COMDAT group syntax, both SPARC and x86 variants.
2077         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
2078         * configure: Regenerate.
2079         * config/sol2.h (TARGET_SOLARIS): Define.
2080         (PUSHSECTION_FORMAT): Remove.
2081         (SECTION_NAME_FORMAT): Define.
2082         * config/sol2.c: Include hashtab.h.
2083         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
2084         expansion, using SECTION_NAME_FORMAT.
2085         (solaris_comdat_htab): New variable.
2086         (struct comdat_entry): Define.
2087         (comdat_hash): New function.
2088         (comdat_eq): New function.
2089         (solaris_elf_asm_comdat_section): New function.
2090         (solaris_define_comdat_signature): New function.
2091         (solaris_code_end): New function.
2092         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
2093         (solaris_code_end): Declare.
2094         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
2095         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
2096         solaris_code_end.
2097         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
2098         Remove ATTRIBUTE_UNUSED.
2099         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
2100         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
2101         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2102         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
2103         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
2104         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
2105         (PUSHSECTION_FORMAT): Remove.
2106         (SECTION_NAME_FORMAT): Redefine.
2107
2108 2011-05-19  Kai Tietz  <ktietz@redhat.com>
2109
2110         * tree-cfg.c (verify_gimple_assign_binary): Barf on
2111         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
2112         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
2113
2114 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
2115             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2116
2117         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
2118
2119 2011-05-19  Richard Guenther  <rguenther@suse.de>
2120
2121         PR middle-end/48985
2122         * tree-object-size.c (addr_object_size): If the pointed-to
2123         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
2124
2125 2011-05-19  Richard Guenther  <rguenther@suse.de>
2126
2127         * gimple.c (gimple_types_compatible_p_1): Compare names of
2128         the types themselves.
2129         (iterative_hash_gimple_type): And hash them that way.
2130         (gimple_register_type_1): If we register a main variant properly
2131         initialize the leader to ourselves.
2132
2133 2011-05-19  Tom de Vries  <tom@codesourcery.com>
2134
2135         PR target/45098
2136         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
2137         get_loop_invariant_expr_id.
2138         (get_loop_invariant_expr_id): Use get_expr_id.
2139         (parm_decl_cost): New function.
2140         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
2141         Improve bound cost estimation.  Use different inv_expr_id for elim and
2142         express cases.
2143
2144 2011-05-19  Tom de Vries  <tom@codesourcery.com>
2145
2146         PR target/45098
2147         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
2148         cost_base.cost == 0.
2149
2150 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
2151
2152         PR target/49002
2153         * config/i386/sse.md
2154         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
2155         load cast.
2156
2157 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
2158
2159         PR tree-optimization/49039
2160         * tree-vrp.c (extract_range_from_binary_expr): For
2161         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
2162         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
2163
2164 2011-05-18  Tom de Vries  <tom@codesourcery.com>
2165
2166         PR target/45098
2167         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
2168
2169 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
2170
2171         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
2172         (*tls_global_dynamic_64): Ditto.
2173         (*tls_local_dynamic_base_32_gnu): Ditto.
2174         (*tls_local_dynamic_base_64): Ditto.
2175         (tls_initial_exec_64_sun): Ditto.
2176
2177 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
2178
2179         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
2180         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2181         bf592-none.
2182         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2183         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2184         * config/bfin/bfin.c (bfin_cpus): Add bf592.
2185         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2186         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
2187         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
2188         * config/bfin/elf.h (LIB_SPEC): Add bf592.
2189
2190 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
2191
2192         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
2193         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
2194         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
2195         target_thread_pointer, arm_structure_size_boundary, struct
2196         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
2197         struct abi_name, arm_all_abis): Remove.
2198         (arm_option_override) Don't process most enumerated option values here.
2199         Don't process target_fpe_name here.  Work with integer not string for
2200         structure size boundary; use separate diagnostics for each case.
2201         * config/arm/arm.h (enum float_abi_type, enum
2202         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
2203         to arm-opts.h.
2204         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
2205         arm_structure_size_boundary): Remove.
2206         * config/arm/arm.opt (mabi=): Use Enum and Init.
2207         (arm_abi_type): New Enum and EnumValue entries.
2208         (mfloat-abi=): Use Enum and Init.
2209         (float_abi_type): New Enum and EnumValue entries.
2210         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
2211         (mfp16-format=): Use Enum and Init.
2212         (arm_fp16_format_type): New Enum and EnumValue entries.
2213         (mstructure-size-boundary=): Use UInteger and Init.
2214         (mtp=): Use Enum and Init.
2215         (arm_tp_type): New Enum and EnumValue entries.
2216
2217 2011-05-18  Richard Guenther  <rguenther@suse.de>
2218
2219         PR tree-optimization/49018
2220         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
2221         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
2222         gimple_has_side_effects.
2223
2224 2011-05-18  Richard Guenther  <rguenther@suse.de>
2225
2226         * gimple.c (gimple_register_type_1): New function, split out from ...
2227         (gimple_register_type): ... here.  Avoid infinite recursion.
2228
2229 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
2230
2231         PR tree-optimization/41881
2232         * tree-vectorizer.h (struct _loop_vec_info): Add new field
2233         reduction_chains along with a macro for its access.
2234         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
2235         (destroy_loop_vec_info): Free reduction chains.
2236         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
2237         (vect_is_slp_reduction): New function.
2238         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
2239         (vect_create_epilog_for_reduction): Support SLP reduction chains.
2240         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
2241         definition types for reduction chains.
2242         (vect_supported_load_permutation_p): Don't allow permutations for
2243         reduction chains.
2244         (vect_analyze_slp_instance): Support reduction chains.
2245         (vect_analyze_slp): Try to build SLP instance from reduction chains.
2246         (vect_get_constant_vectors):  Handle reduction chains.
2247         (vect_schedule_slp_instance): Mark the first statement of the
2248         reduction chain as reduction.
2249
2250 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
2251
2252         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
2253         names for group elements access.
2254         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
2255         reduction chains as well.  Remove data reference and interleaving
2256         related words from the fields names.
2257         * tree-vect-loop.c (vect_transform_loop): Use new names for group
2258         elements access.
2259         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
2260         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
2261         vect_update_interleaving_chain, vect_same_range_drs,
2262         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
2263         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
2264         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
2265         vect_analyze_group_access, vect_analyze_data_ref_access,
2266         vect_create_data_ref_ptr, vect_transform_strided_load,
2267         vect_record_strided_load_vectors): Likewise.
2268         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
2269         vect_model_load_cost, vectorizable_store, vectorizable_load,
2270         vect_remove_stores, new_stmt_vec_info): Likewise.
2271         * tree-vect-slp.c (vect_build_slp_tree,
2272         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
2273
2274 2011-05-18  Richard Guenther  <rguenther@suse.de>
2275
2276         PR middle-end/48989
2277         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
2278         operand verification.
2279         (verify_gimple_assign_binary): Likewise.
2280         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
2281         to non-1-precision BOOLEAN_TYPEs.
2282
2283 2011-05-18  Tom de Vries  <tom@codesourcery.com>
2284
2285         PR target/45098
2286         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
2287
2288 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
2289
2290         PR tree-optimization/49000
2291         * tree-ssa.c (execute_update_addresses_taken): Call
2292         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
2293         be rewritten and decl has been marked for renaming, reset
2294         the debug stmt.
2295
2296 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
2297
2298         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
2299         enum_opts_set when testing if attributes have set -mfpmath=.
2300
2301 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
2302
2303         * config/mips/mips.c (mips_handle_option): Remove unused variable.
2304
2305 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
2306
2307         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
2308         info->entry with 0
2309         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
2310         id.transform_lang_insert_block with NULL.
2311
2312 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
2313
2314         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
2315         (output_fp_compare): Change args 3 and 4 to bool.
2316         (ix86_expand_call): Change arg 6 to bool.
2317         (ix86_attr_length_immediate_default): Change arg 2 to bool.
2318         (ix86_attr_length_vex_default): Change arg 3 to bool.
2319         * config/i386/i386.md: Update all uses.
2320         * config/i386/i386.c: Ditto.
2321         (ix86_flags_dependent): Change return type to bool.
2322
2323 2011-05-17  Richard Guenther  <rguenther@suse.de>
2324
2325         * gimple.c (type_hash_pair_compare): Fix comparison.
2326
2327 2011-05-17  Richard Guenther  <rguenther@suse.de>
2328
2329         * gimple.c (iterative_hash_gimple_type): Simplify singleton
2330         case some more, fix final hash value of the non-singleton case.
2331
2332 2011-05-17  Richard Guenther  <rguenther@suse.de>
2333
2334         PR bootstrap/49013
2335         Revert
2336         2011-05-16  Richard Guenther  <rguenther@suse.de>
2337
2338         * gimple.c (gimple_types_compatible_p_1): Use names of the
2339         type itself, not its main variant.
2340         (iterative_hash_gimple_type): Likewise.
2341
2342 2011-05-17  Richard Guenther  <rguenther@suse.de>
2343
2344         * gimple.c (gimple_register_canonical_type): Use the main-variant
2345         leader for computing the canonical type.
2346
2347 2011-05-17  Nick Clifton  <nickc@redhat.com>
2348
2349         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
2350         moves.
2351
2352         * config/rx/rx.md: Add peephole to remove redundant extensions
2353         after loads.
2354         (bitset_in_memory): Use rx_restricted_mem_operand.
2355         (bitinvert_in_memory): Likewise.
2356         (bitclr_in_memory): Likewise.
2357
2358 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
2359             Nick Clifton  <nickc@redhat.com>
2360
2361         * config/rx/rx.md: Add peepholes to match a register move followed
2362         by a comparison of the moved register.  Replace these with an
2363         addition of zero that does both actions in one instruction.
2364
2365 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
2366
2367         PR target/48986
2368         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
2369         predicate to allow CONST_INT.
2370         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
2371
2372 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
2373
2374         * opts-common.c (opt_enum_arg_to_value): New.
2375         * opts.h (opt_enum_arg_to_value): Declare.
2376         * config/i386/i386.opt (fpmath): Remove.
2377         (mfpmath=): Use Enum, Init and Save.
2378         (fpmath_unit): New Enum and EnumValue entries.
2379         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
2380         name for function fpmath state.
2381         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
2382         * config/i386/i386.c: Include diagnostic.h.
2383         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
2384         (ix86_target_string): Take enum fpmath_unit value instead of string.
2385         (ix86_debug_options): Update call to ix86_target_string.
2386         (ix86_option_override_internal): Don't process fpmath strings here.
2387         (x86_function_specific_save, ix86_function_specific_restore):
2388         Don't handle fpmath state specially.
2389         (ix86_function_specific_print): Pass fpmath state to
2390         ix86_target_string instead of printing in this function.
2391         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
2392         Handle enum attributes.
2393         (IX86_ATTR_ENUM, ix86_opt_enum): New.
2394         (ix86_valid_target_attribute_tree): Update option_strings
2395         handling.  Handle fpmath as enum option.
2396         (ix86_can_inline_p): Update field names for function fpmath state.
2397         (ix86_expand_builtin): Update call to ix86_target_string.
2398         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
2399         (ix86_fpmath): Remove.
2400         * config/i386/t-i386 (i386.o): Update dependencies.
2401
2402 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
2403
2404         PR preprocessor/48677
2405         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
2406         from decoded_options[0], not from itself.
2407
2408 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
2409
2410         * config/i386/constraints.md (z): New constraint.
2411         * config/i386/i386.c (c): New mode attribute.
2412         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
2413         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
2414         constraint for operand 0.
2415         (*call_vzeroupper): Ditto.
2416         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
2417         (*call_rex64_ms_sysv_vzeroupper): Ditto.
2418         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
2419         Use "lzm" constraint for operand 0.
2420         (*call_pop_vzeroupper): Ditto.
2421         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
2422         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
2423         constraint for operand 0.
2424         (*sibcall_vzeroupper): Ditto.
2425         (*sibcall_rex64_ms_sysv): Ditto.
2426         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
2427         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
2428         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
2429         (*sibcall_pop_vzeroupper): Ditto.
2430         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
2431         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
2432         mode iterator.  Use "<c>zm" constraint for operand 1.
2433         (*call_value_vzeroupper): Ditto.
2434         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
2435         for operand 1.
2436         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
2437         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
2438         *call_value_pop_1.  Use "lzm" constraint for operand 1.
2439         (*call_value_pop_vzeroupper): Ditto.
2440         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
2441         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
2442         mode iterator.  Use "Uz" constraint for operand 1.
2443         (*sibcall_value_vzeroupper): Ditto.
2444         (*sibcall_value_rex64_ms_sysv): Ditto.
2445         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
2446         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
2447         constraint for operand 1.
2448         (*sibcall_value_pop_vzeroupper): Ditto.
2449         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
2450         and "z" constraint for operand 2.
2451         (*tls_global_dynamic_32_gnu): Ditto.
2452         (*tls_local_dynamic_base_32_gnu): Ditto.
2453         (*tls_local_dynamic_base_64): Ditto.
2454         (*tls_local_dynamic_32_once): Ditto.
2455         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
2456         Update all callers.
2457         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
2458
2459 2011-05-16  Richard Guenther  <rguenther@suse.de>
2460
2461         * gimple.c (gimple_types_compatible_p_1): Use names of the
2462         type itself, not its main variant.
2463         (iterative_hash_gimple_type): Likewise.
2464
2465 2011-05-16  Richard Guenther  <rguenther@suse.de>
2466
2467         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
2468         always visit pointer target and function result and argument types.
2469
2470 2011-05-16  Jason Merrill  <jason@redhat.com>
2471
2472         PR c++/48999
2473         * tree-inline.c (copy_statement_list): Put back recursion.
2474
2475 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
2476
2477         PR target/27663
2478         PR target/41076
2479         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
2480         * config/avr/avr.md ("*ior<mode>qi.byte0",
2481         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
2482
2483 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
2484
2485         PR target/45099
2486         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
2487         register is needed for a function argument.
2488
2489 2011-05-16  Richard Guenther  <rguenther@suse.de>
2490
2491         * gimple.c (struct type_hash_pair): New type.
2492         (type_hash_pair_compare): New function.
2493         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
2494
2495 2011-05-16  Revital Eres  <revital.eres@linaro.org>
2496
2497         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
2498
2499 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
2500
2501         * config/i386/i386.md (floating point move splitters): Fix
2502         usage of standard_80387_constant_p.
2503         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
2504
2505 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
2506
2507         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
2508
2509 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2510
2511         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
2512         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
2513         (tree_ssa_lim_finalize): Likewise.
2514
2515 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
2516
2517         * config/i386/constraint.md (Yd, Yx): New register constraints.
2518         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
2519         Yd conditional register constraint.
2520         (*movtf_internal): Use standard_sse_constant_opcode.
2521         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
2522         Yx conditional register constraint.
2523         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
2524         Yd conditional register constraint.  Use standard_sse_constant_p to
2525         check for valid SSE constants and call standard_sse_constant_opcode to
2526         output SSE insn.
2527         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
2528         constants and call standard_sse_constant_opcode to output SSE insn.
2529         * config/i386/i386.c (ix86_option_ovverride_internal): Set
2530         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
2531         optimize_size is set.
2532         (standard_sse_constant_opcode): Output conditional AVX insn templates.
2533
2534 2011-05-14  Tobias Burnus  <burnus@net-b.de>
2535
2536         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
2537
2538 2011-05-13  Martin Jambor  <mjambor@suse.cz>
2539
2540         * ipa-prop.c (ipa_cst_from_jfunc): New function.
2541         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
2542         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
2543         (evaluate_conditions_for_ipcp_clone): Removed.
2544         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
2545         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
2546         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
2547
2548 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2549
2550         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
2551         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
2552         lieu of MAY_HAVE_DEBUG_STMTS.
2553         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
2554         debug statements if !MAY_HAVE_DEBUG_STMTS.
2555
2556 2011-05-13  Martin Thuresson  <martint@google.com>
2557
2558         PR gcov-profile/47793
2559         * libgcov.c (gcov_exit): Support relative profile paths.
2560         * doc/invoke.texi (-fprofile-dir): Update for above change.
2561
2562 2011-05-13  Richard Guenther  <rguenther@suse.de>
2563
2564         * gimple.c (gimple_canonical_types_compatible_p): Do not use
2565         type-pair caching, do not compare hashes.
2566
2567 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
2568
2569         PR middle-end/48965
2570         * tree-cfg.c (edge_to_cases_cleanup): Return true.
2571         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
2572
2573 2011-05-13  Kai Tietz  <ktietz@redhat.com>
2574
2575         * gimplify.c (gimplify_expr): Make sure operand is boolified.
2576         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
2577         compatible type for TRUTH_NOT_EXPR.
2578
2579 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2580
2581         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2582         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
2583         can_create_pseudo_p ().
2584
2585 2011-05-13  Richard Guenther  <rguenther@suse.de>
2586
2587         PR lto/48978
2588         * gimple.c (iterative_hash_gimple_type): Revert change in
2589         pointer target and function result and argument hashing.
2590
2591 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
2592
2593         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
2594         (*movxf_internal_nointeger): Ditto.
2595         (*movdf_internal_rex64): Ditto.
2596         (*movdf_internal): Ditto.
2597         (*movdf_internal_nointeger): Ditto.
2598         (*movsf_internal): Ditto.
2599         (sincos splitters): Use can_create_pseudo ().
2600
2601 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
2602
2603         * config/i386/i386-opts.h: New.
2604         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
2605         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
2606         ix86_section_threshold): Remove.
2607         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
2608         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
2609         OPT_mbranch_cost_.
2610         (ix86_option_override_internal): Don't decode strings for options
2611         other than -march=, -mtune= and -mfpmath=.  Don't allow for
2612         __attribute__ uses in remaining diagnostics for options with
2613         string arguments.  Don't check for integer arguments being negative.
2614         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
2615         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
2616         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
2617         ix86_branch_cost, ix86_section_threshold): Remove.
2618         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
2619         HeaderInclude.
2620         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
2621         but not Var.
2622         (masm=): Use Enum and Init.
2623         (asm_dialect): New Enum and EnumValue entries.
2624         (mbranch-cost=): Use UInteger.
2625         (mlarge-data-threshold=): Use UInteger and Init.
2626         (mcmodel=): Use Enum and Init.
2627         (cmodel): New Enum and EnumValue entries.
2628         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
2629         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
2630         mregparm=): Use UInteger.
2631         (mstringop-strategy=): Use Enum and Init.
2632         (stringop_alg): New Enum and EnumValue entries.
2633         (mtls-dialect=): Use Enum and Init.
2634         (tls_dialect): New Enum and EnumValue entries.
2635         (mabi=): Use Enum and Init.
2636         (calling_abi): New Enum and EnumValue entries.
2637         (mveclibabi=): Use Enum and Init.
2638         (ix86_veclibabi): New Enum and EnumValue entries.
2639
2640 2011-05-13  Nick Clifton  <nickc@redhat.com>
2641
2642         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
2643         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
2644
2645 2011-05-13  Kai Tietz  <ktietz@redhat.com>
2646
2647         PR middle-end/48984
2648         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
2649         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
2650         (gimple_boolify): Check for cast for boolean_type_node instead for
2651         BOOLEAN_TYPE.
2652
2653 2011-05-13  Richard Guenther  <rguenther@suse.de>
2654
2655         PR tree-optimization/48172
2656         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
2657         multiplying by number of iterations for equal step.
2658         (vect_create_cond_for_alias_checks): Likewise.
2659
2660 2011-05-13  Andreas Schwab  <schwab@redhat.com>
2661
2662         * configure.ac: Use AS_HELP_STRING throughout.
2663         * configure: Regenerate.
2664
2665 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2666
2667         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
2668         (ix86_emit_restore_regs_using_mov): Likewise.
2669         (ix86_emit_restore_sse_regs_using_mov): Likewise.
2670
2671 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
2672
2673         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
2674         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
2675         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
2676         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
2677         RTX_OK_FOR_OLO10_P): ...here.
2678         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
2679         SYMBOLIC_CONST.
2680
2681 2011-05-12  Kai Tietz  <ktietz@redhat.com>
2682
2683         * gimplify.c (gimple_boolify): Re-boolify expression
2684         arguments even if expression type is of kind BOOLEAN_TYPE.
2685         (gimplify_boolean_expr): Removed.
2686         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
2687         and XOR. Additional take care that we keep expression's type.
2688         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
2689         of TRUTH_AND|OR|XOR_EXPR.
2690
2691 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
2692
2693         PR tree-optimization/48975
2694         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
2695         on all bbs here and free and clear ifc_bbs at the end.
2696
2697 2011-05-12  Richard Guenther  <rguenther@suse.de>
2698
2699         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
2700         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
2701         until after simple checks.
2702         (gimple_types_compatible_p): Likewise.
2703         (iterative_hash_gimple_type): Always hash pointer targets
2704         and function return and argument types.
2705         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
2706         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
2707         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
2708         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
2709         completely in the simple compare section.
2710         (gimple_register_canonical_type): Query the cache again after
2711         registering.
2712
2713 2011-05-12  Richard Guenther  <rguenther@suse.de>
2714
2715         PR tree-optimization/48172
2716         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
2717         the number of iterations from the segment size calculation.
2718         (vect_create_cond_for_alias_checks): Adjust.
2719
2720 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
2721
2722         PR debug/48967
2723         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
2724         if validate_subreg fails.
2725
2726 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
2727
2728         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
2729         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
2730         early.
2731
2732 2011-05-12  DJ Delorie  <dj@redhat.com>
2733
2734         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
2735         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
2736         created builtin into rx_builtins array.
2737         (rx_builtin_decl): New function.
2738         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
2739
2740 2011-05-12  DJ Delorie  <dj@redhat.com>
2741             Nick Clifton  <nickc@redhat.com>
2742
2743         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2744         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2745         (rx_is_legitimate_address): Add pre-decrement and post-increment
2746         addressing in HImode and QImode.  Fix test for out of range
2747         REG+INT addressing.
2748         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
2749         (rx_align_for_label): Test label before extracting its usage count.
2750         (rx_adjust_insn_lengths): Fix selection of insn codes.
2751         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
2752
2753 2011-05-11  Jason Merrill  <jason@redhat.com>
2754
2755         * tree.c (type_hash_canon): Use struct tree_type_non_common.
2756
2757 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2758
2759         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2760         reindent the subsequent block.
2761
2762 2011-05-11  Satoru Takabayashi  <satorux@google.com>
2763             Paul Pluzhnikov  <ppluzhnikov@google.com>
2764
2765         * doc/install.texi (Configuration): Document --with-linker-hash-style.
2766         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2767         * config.in: Add LINKER_HASH_STYLE.
2768         * configure.ac: Add --with-linker-hash-style.
2769         * configure: Regenerate.
2770
2771 2011-05-11  Richard Guenther  <rguenther@suse.de>
2772
2773         PR middle-end/48964
2774         * gimple.c (iterative_hash_canonical_type): Fix typo.
2775
2776 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
2777
2778         * config/i386/i386.c (legitimize_tls_address)
2779         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2780         expanders directly for TARGET_GNU2_TLS.  Determine pic and
2781         __tls_get_addr symbol reference here.  Update call to
2782         gen_tls_global_dynamic_{32,64} for added arguments.
2783         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2784         expanders directly for TARGET_GNU2_TLS.  Determine
2785         __tls_get_addr symbol reference here.  Update call to
2786         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
2787         unique UNSPEC REG_EQUIV to libcall block.
2788         (ix86_tls_get_addr): Declare static.
2789         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2790         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2791         Do not determine pic and __tls_get_addr symbol reference here. Do not
2792         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2793         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2794         (tls_global_dynamic_64): Add operand 2.  Do not determine
2795         __tls_get_addr symbol reference here.  Do not call
2796         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2797         (tls_local_dynamic_base64): Ditto for operand 1.
2798
2799 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2800
2801         * function.c (expand_function_start): Initialize stack_check_probe_note
2802         only if the generic stack checking mechanism is used.
2803
2804 2011-05-11  Richard Guenther  <rguenther@suse.de>
2805
2806         PR tree-optimization/15256
2807         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2808         (A & B) | C, combine (A op CST1) op CST2.
2809         (tree_ssa_forward_propagate_single_use_vars): Only bother to
2810         visit assigns that have uses.
2811
2812 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
2813
2814         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2815         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2816         (unpack_ts_type_common_value_fields): ...this.  Update comment.
2817         (unpack_value_fields): Adjust for renaming.
2818         (lto_input_ts_type_tree_pointers): Split into...
2819         (lto_input_ts_type_common_tree_pointer): ...this and...
2820         (lto_input_ts_type_non_common_tree_pointers): ...this.
2821         (lto_input_tree_pointers): Adjust for above split.
2822         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2823         (pack_ts_type_common_value_fields): ...this.  Update comment.
2824         (lto_output_ts_type_tree_pointers): Split into...
2825         (lto_output_ts_type_common_tree_pointers): ...this and...
2826         (lto_output_ts_type_non_common_tree_pointers): ...this.
2827         (lto_output_tree_pointers): Adjust for above split.
2828         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2829         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2830         * stor-layout.c (vector_type_mode): Adjust location of mode field.
2831         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2832         Define.
2833         (struct tree_type): Split into...
2834         (struct tree_type_common: ...this and...
2835         (struct tree_type_with_lang_specific): ...this and...
2836         (struct tree_type_non_common): ...this.  Adjust accessor macros
2837         accordingly.
2838         (TYPE_VALUES_RAW): Define.
2839         (union tree_node): Update for above changes.
2840         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2841         TS_TYPE_NON_COMMON.
2842         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2843         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2844         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2845         * treestructu.def (TS_TYPE): Remove.
2846         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2847         Define.
2848
2849 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
2850
2851         PR debug/48159
2852         * tree-ssa.c (reset_debug_uses): New function.
2853         * tree-flow.h (reset_debug_uses): New prototype.
2854         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2855         * tree-loop-distribution.c (generate_loops_for_partition): Call
2856         reset_debug_uses on the stmts that will be removed.  Keep around
2857         all debug stmts, don't count them as bits in partition bitmap.
2858         (generate_builtin): Don't count debug stmts or labels as bits in
2859         partition bitmap.
2860
2861 2011-05-11  Richard Guenther  <rguenther@suse.de>
2862
2863         * gimple.c (gimple_type_hash_1): Merge with ...
2864         (gimple_type_hash): ... this.
2865         (gtc_visit): Remove mode parameter and simplify accordingly.
2866         (gimple_types_compatible_p_1): Likewise.
2867         (gimple_types_compatible_p): Likewise.
2868         (iterative_hash_gimple_type): Likewise.
2869         (visit): Likewise.
2870         (gimple_type_eq): Adjust.
2871
2872 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2873
2874         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2875         enters the branch create an anti edge in the opposite direction
2876         to prevent the creation of reg-moves.
2877         * modulo-sched.c: Adjust comment to reflect the fact we are
2878         scheduling closing branch.
2879         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2880         (stage_count): New field in struct partial_schedule.
2881         (calculate_stage_count): New function.
2882         (normalize_sched_times): Rename to reset_sched_times and handle
2883         incrementing the sched time of the nodes by a constant value
2884         passed as parameter.
2885         (duplicate_insns_of_cycles): Skip closing branch.
2886         (sms_schedule_by_order): Schedule closing branch.
2887         (ps_insn_find_column): Handle closing branch.
2888         (sms_schedule): Call reset_sched_times and adjust the code to
2889         support scheduling of the closing branch.
2890         (ps_insert_empty_row): Update calls to normalize_sched_times
2891         and rotate_partial_schedule functions.
2892
2893 2011-05-11  Richard Guenther  <rguenther@suse.de>
2894
2895         PR middle-end/48953
2896         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2897
2898 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
2899
2900         * opts.c (finish_options): Move warning settings from process_options.
2901         * toplev.c (process_options): Move warning settings to finish_options.
2902
2903 2011-05-11  Richard Guenther  <rguenther@suse.de>
2904
2905         PR tree-optimization/18041
2906         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2907         (simplify_bitwise_binary): ... this.  Handle operand conversions
2908         by applying them to the result instead.
2909         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
2910
2911 2011-05-11  Richard Guenther  <rguenther@suse.de>
2912
2913         * gimple.c (gimple_canonical_types_compatible_p): Split out
2914         from gimple_types_compatible_p and friends.  Do not recurse
2915         to pointed-to types.
2916         (gimple_canonical_type_eq): Use it.
2917         (iterative_hash_canonical_type): Split out from
2918         iterative_hash_gimple_type and friends.  Do not recurse
2919         to pointed-to types.
2920         (gimple_canonical_type_hash): Use it, allocate the hash here.
2921
2922 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2923
2924         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2925         recognizing doloop.
2926
2927 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2928
2929         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2930         instead of PREV_INSN.
2931
2932 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2933
2934         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2935         * loop-doloop.c (doloop_condition_get): Likewise.
2936         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2937         (doloop_end): New.
2938         * config/arm/arm.md (*addsi3_compare0): Remove "*".
2939
2940 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
2941
2942         * tree.def (CASE_LABEL_EXPR): Add an operand.
2943         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2944
2945 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2946
2947         * c-decl.c (c_override_global_bindings_to_false): Remove.
2948         (global_bindings_p): Don't check
2949         c_override_global_bindings_to_false.
2950         * c-tree.h (c_override_global_bindings_to_false): Remove.
2951         * c-typeck.c (composite_type): Don't set
2952         c_override_global_bindings_to_false.
2953
2954 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2955
2956         PR target/48857, 48495
2957         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2958         (VSX_MODE): Ditto.
2959         (VSX_MOVE_MODE): Ditto.
2960         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2961         VSX vector types.  Add V2DImode.
2962         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2963         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2964         (MODES_TIEABLE_P): Ditto.
2965
2966         * config/rs6000/rs6000.c (rs6000_emit_move): Use
2967         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2968         VSX_VECTOR_MODE.
2969         (init_cumulative_args): Ditto.
2970         (rs6000_function_arg_boundary): Ditto.
2971         (rs6000_function_arg_advance_1): Ditto.
2972         (rs6000_function_arg): Ditto.
2973         (rs6000_function_ok_for_sibcall): Ditto.
2974         (emit_frame_save): Ditto.
2975         (rs6000_function_value): Ditto.
2976         (rs6000_libcall_value): Ditto.
2977
2978 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2979
2980         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2981         i386/darwin-lib.h to $libgcc_tm_file.
2982         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2983
2984 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2985
2986         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2987
2988 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2989
2990         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2991         * config/rs6000/rs6000-tables.opt: New file (generated).
2992         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2993         rs6000/rs6000-tables.opt to extra_options.
2994         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2995         * config/rs6000/rs6000.c (rs6000_select): Remove.
2996         (processor_target_table): Move contents to rs6000-cpus.def.
2997         (darwin_rs6000_override_options): Check
2998         global_options_set.x_rs6000_cpu_index instead of
2999         rs6000_select[1].string.
3000         (rs6000_option_override_internal): Likewise.
3001         (rs6000_handle_option): Don't assert that global structures are in
3002         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
3003         (rs6000_default_cpu): New variable.
3004         (rs6000_file_start): Set it instead of local default_cpu.  Check
3005         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
3006         global_options_set.x_rs6000_tune_index instead of rs6000_select.
3007         (rs6000_darwin_file_start): Check rs6000_default_cpu and
3008         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
3009         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
3010         rs6000_select): Remove.
3011         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
3012         Remove.
3013         (mcpu=, mtune=): Use Var, Init, Enum and Save.
3014         * config/rs6000/t-rs6000
3015         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
3016         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3017         global_options_set.x_rs6000_cpu_index instead of
3018         rs6000_select[1].string.
3019         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3020         global_options_set.x_rs6000_cpu_index instead of
3021         rs6000_select[1].string.
3022
3023 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
3024
3025         * config.gcc (libgcc_tm_file): Define instead of including files
3026         from ../../libgcc/config/ in tm_file.
3027         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
3028         * configure: Regenerate.
3029         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
3030         libgcc_tm.h, cs-libgcc_tm.h): New.
3031         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
3032         (clean): Remove libgcc_tm.h.
3033         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
3034         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
3035         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
3036
3037 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
3038
3039         PR target/48896
3040         * config/avr/avr.c (avr_ret_register): Return unsigned int
3041         instead of int.
3042         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
3043         it to avr_libcall_value.
3044         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
3045         expand_expr.
3046         (avr_expand_binop_builtin): Ditto.
3047         (avr_expand_unop_builtin): Ditto.
3048
3049 2011-05-10  DJ Delorie  <dj@redhat.com>
3050
3051         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
3052         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
3053         * config/rx/rx.c (rx_align_for_label): Add label and
3054         uses_threshold parameters.  Do not align when the label is not
3055         used enough.
3056         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
3057
3058 2011-05-10  Richard Guenther  <rguenther@suse.de>
3059
3060         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
3061         a series of conversions and apply foldings similar to what
3062         fold-const does.
3063         (tree_ssa_forward_propagate_single_use_vars): Call it.
3064
3065 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
3066
3067         PR tree-optimization/48611
3068         PR tree-optimization/48794
3069         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
3070         referenced from RESX or EH_DISPATCH arguments.
3071
3072         PR debug/48928
3073         * dfp.c (decimal_to_decnumber): Handle conversion from
3074         dconst{1,2,m1,half}.
3075
3076 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3077
3078         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
3079         for !flag_prefer_avx128.
3080         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
3081
3082 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
3083
3084         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
3085         (fold_ternary_loc): Use expr_location_or.
3086
3087 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3088
3089         PR debug/48853
3090         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
3091         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
3092         Pmode and mem_mode is not VOIDmode.
3093
3094 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
3095
3096         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
3097         TYPE_QUAL_RESTRICT): Convert to enum.
3098
3099 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3100
3101         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
3102         (const_pow2_1_to_8_operand): Ditto.
3103         (const_pow2_1_to_128_operand): Ditto.
3104         (const_pow2_1_to_32768_operand): Ditto.
3105         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
3106         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
3107         in insn constraint to check integer value of operand 3.
3108         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
3109
3110         (PINSR_MODE): New mode iterator.
3111         (sse2p4_1): New mode attribute.
3112         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
3113         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
3114         iterator.  Use const_int_operand instead of
3115         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
3116         exact_log2 in insn constraint to check integer value of operand 3.
3117
3118 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3119
3120         * config/i386/sse.md (blendbits): Remove mode attribute.
3121         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
3122         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
3123         Check integer value of operand 3 in insn constraint.
3124
3125 2011-05-09  Richard Guenther  <rguenther@suse.de>
3126
3127         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
3128         for diagnostics.
3129         (lto_symtab_merge): Likewise.  Do not register types here.
3130         (lto_symtab_merge_decls_2): Likewise.
3131         (lto_symtab_merge_decls_1): Likewise.
3132         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
3133         * gimple.c (enum gtc_mode): Declare.
3134         (gimple_types_compatible_p): Make static.
3135
3136 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3137
3138         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
3139         temporary register to match Pmode.
3140
3141 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3142
3143         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
3144         and *vec_concatv4si_1_avx.
3145
3146 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
3147
3148         PR rtl-optimization/48927
3149         * ira-conflicts.c (commutative_constraint_p): Use
3150         recog_data.alternative_enabled_p to disable alternatives where
3151         "enabled" attribute is false.
3152         (get_dup_num): Ditto.
3153         * ira-lives.c (single_reg_class): Ditto.
3154         (ira_implicitly_set_insn_hard_regs): Ditto.
3155
3156 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
3157
3158         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
3159         (dataflow_set_preserve_mem_locs): Likewise.
3160
3161 2011-05-09  Philipp Thomas  <pth@suse.de>
3162
3163         * config/mep/mep.c (mep_validate_vliw): Syntax description
3164         should not be translated.
3165
3166 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
3167
3168         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
3169         * config/mips/mips-tables.opt: New file (generated).
3170         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
3171         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
3172         MIPS_ARCH_OPTION_NATIVE): Define.
3173         * config/mips/mips.c (mips_cpu_info_table): Move contents to
3174         mips-cpus.def.
3175         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
3176         mips_parse_cpu): Remove.
3177         (mips_cpu_info_from_opt, mips_default_arch): New.
3178         (mips_handle_option): Don't assert that global structures are in
3179         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
3180         (mips_option_override): Use new variables and functions to set
3181         state of these options.  Use strcmp to check for individual CPU names.
3182         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
3183         definition.
3184         * config/mips/mips.opt (march=): Use ToLower and Enum.
3185         (mips): Use ToLower, Enum and Var.
3186         (mtune=): Use ToLower and Enum.
3187         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
3188
3189 2011-05-08  Jan Hubicka  <jh@suse.cz>
3190
3191         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
3192         Arrange type pairs to be UID ordered.
3193         (gimple_lookup_type_leader): Make inline.
3194
3195 2011-05-09  Nick Clifton  <nickc@redhat.com>
3196
3197         PR target/48899
3198         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
3199         PROCESSOR_DEFAULT.
3200
3201         PR target/48897
3202         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
3203         variable 's'.
3204
3205 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
3206
3207         * combine.c (simplify_comparison): Abstract out parts into...
3208         (simplify_compare_const): ... new function.
3209         (try_combine): Generalize parallel arithmetic/compare combining
3210         to call simplify_compare_const() and CANONICALIZE_COMPARE().
3211
3212 2011-05-08  Jan Hubicka  <jh@suse.cz>
3213
3214         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
3215         (cgraph_create_virtual_clone): Call hooks once virtual clone
3216         is finished.
3217         * cgraph.h (cgraph_clone_node): Update prototype.
3218         * ipa-cp.c (ipcp_estimate_growth): Use
3219         estimate_ipcp_clone_size_and_time.
3220         * ipa-inline-transform.c (clone_inlined_nodes): Update.
3221         * lto-cgraph.c (input_node): Update.
3222         * ipa-inline.c (recursive_inlining): Update.
3223         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
3224         (evaluate_conditions_for_known_args): Break out from ...
3225         (evaluate_conditions_for_edge): ... here.
3226         (evaluate_conditions_for_ipcp_clone): New function.
3227         (inline_node_duplication_hook): Update clone summary based
3228         on parameter map.
3229         (estimate_callee_size_and_time): Rename to ...
3230         (estimate_node_size_and_time): take NODE instead of EDGE;
3231         take POSSIBLE_TRUTHS as argument.
3232         (estimate_callee_size_and_time): Update.
3233         (estimate_ipcp_clone_size_and_time): New function.
3234         (do_estimate_edge_time): Update.
3235
3236 2011-05-08  Richard Guenther  <rguenther@suse.de>
3237
3238         PR middle-end/48908
3239         PR middle-end/48905
3240         * expmed.c (expand_shift_1): Compute adjusted constant shift
3241         amount manually.
3242
3243 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3244
3245         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
3246
3247 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3248
3249         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
3250
3251 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
3252
3253         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
3254
3255 2011-05-07  Jan Hubicka  <jh@suse.cz>
3256
3257         * ipa-inline-transform.c (inline_call): Account when program size
3258         decreases.
3259         * ipa-inline.c (relative_time_benefit): New function.
3260         (edge_badness): Reorganize to be power 2 based; fix thinko when
3261         computing badness for negative growth; update comments to match
3262         reality; better dumps.
3263
3264 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
3265
3266         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
3267         type to bool and adjust comment.
3268         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
3269         (fold_mathfn_compare): Remove calls to global_bindings_p.
3270         (fold_inf_compare): Likewise.
3271         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
3272         * c-tree.h (global_bindings_p): Adjust prototype.
3273         * c-decl.c (global_bindings_p): Return bool and simplify.
3274
3275 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
3276
3277         PR tree-optimization/48837
3278         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
3279         when accumulator transformation is performed.
3280
3281 2011-05-06  Jan Hubicka  <jh@suse.cz>
3282
3283         * i386.h (ix86_tune_indices): Add
3284         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
3285         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
3286         * i386.c (initial_ix86_tune_features): Add
3287         X86_SOFTARE_PREFETCHING_BENEFICIAL.
3288         (software_prefetching_beneficial_p): Remove predicate.
3289         (ix86_option_override_internal): Use new macro.
3290
3291 2011-05-06  Jan Hubicka  <jh@suse.cz>
3292
3293         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
3294
3295 2011-05-06  Jan Hubicka  <jh@suse.cz>
3296
3297         * cgraph.c (cgraph_add_thunk): Create real function node instead
3298         of alias node; finalize it and mark needed/reachale; arrange visibility
3299         to be right and add it into the corresponding same comdat group list.
3300         (dump_cgraph_node): Dump thunks.
3301         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
3302         cgraph_function_with_gimple_body_p,
3303         cgraph_first_function_with_gimple_body,
3304         cgraph_next_function_with_gimple_body): New functions.
3305         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
3306         New macros.
3307         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
3308         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3309         * cgraphunit.c (cgraph_finalize_function): Only look into possible
3310         devirtualization when optimizing.
3311         (verify_cgraph_node): Verify thunks.
3312         (cgraph_analyze_function): Analyze thunks.
3313         (cgraph_mark_functions_to_output): Output thunks only in combination
3314         with function they are assigned to.
3315         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
3316         alias into normal node.
3317         (assemble_thunks): New functoin.
3318         (cgraph_expand_function): Use it.
3319         * lto-cgraph.c (lto_output_node): Stream thunks.
3320         (input_overwrite_node): Stream in thunks.
3321         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
3322         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
3323         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
3324         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
3325         (inline_analyze_function): Do not care about thunk jump functions.
3326         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
3327         * ipa-prop.c (ipa_prop_write_jump_functions): Use
3328         cgraph_function_with_gimple_body_p.
3329         * passes.c (do_per_function_toporder): Use
3330         cgraph_function_with_gimple_body_p.
3331         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3332         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
3333         (function_called_by_processed_nodes_p): Likewise.
3334
3335 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
3336
3337         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
3338         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
3339         entries.
3340         (mabi=): Replace with separate entries for mabi=altivec,
3341         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
3342         mabi=ieeelongdouble and mabi=ibmlongdouble.
3343         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
3344         check for -mabi=spe without SPE ABI support here.
3345         (rs6000_handle_option): Replace OPT_mabi_ handling with
3346         OPT_mabi_altivec and OPT_mabi_spe handling.
3347
3348 2011-05-06  Cary Coutant  <ccoutant@google.com>
3349
3350         * dwarf2out.c (contains_subprogram_definition): New function.
3351         (should_move_die_to_comdat): Call it.
3352
3353 2011-05-06  Jeff Law  <law@redhat.com>
3354
3355         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
3356         remove_ctrl_stmt_and_useless_edges.
3357         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
3358         (fixup_template_block, thread_single_edge): Likewise.
3359         (mark_threaded_blocks): Use THREAD_TARGET.
3360
3361 2011-05-06  Alan Modra  <amodra@gmail.com>
3362
3363         PR target/48900
3364         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
3365         const0_rtx as the arg to the dummy __tls_get_addr libcall.
3366
3367 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
3368
3369         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
3370         constraint modifier to "r".
3371
3372 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
3373
3374         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
3375         fall through for OPT_mcmodel_.
3376
3377 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3378
3379         * config/s390/s390.c (s390_asm_trampoline_template): Comment
3380         instruction sizes.
3381         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
3382
3383 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3384
3385         PR target/47930
3386         * config/arm/arm.opt (marm): Document it.
3387         (mthumb): Reject negative variant.
3388
3389 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
3390
3391         PR target/48898
3392         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3393         Fix typo in "ccvt" variable name.
3394
3395 2011-05-06  Tristan Gingold  <gingold@adacore.com>
3396
3397         PR target/48895
3398         * config/vms/vms-ar.c (main): Remove cwd variable.
3399
3400 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
3401
3402         PR debug/48902
3403         * var-tracking.c (prepare_call_arguments): Move else before #endif.
3404
3405 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
3406
3407         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
3408         * gimplify.c (gimplify_switch_expr): Likewise.
3409         * omp-low.c (expand_omp_sections): Likewise.
3410         * tree-eh.c (lower_try_finally_switch): Likewise.
3411         (lower_eh_dispatch): Likewise.
3412         * tree.h (build_case_label): Declare.
3413         * tree.c (build_case_label): Define.
3414
3415 2011-05-05  Jason Merrill  <jason@redhat.com>
3416
3417         PR c++/40975
3418         * tree-inline.c (copy_tree_r): Use copy_statement_list.
3419         (copy_statement_list): Don't recurse.
3420         * stor-layout.c (copy_self_referential_tree_r): Don't allow
3421         STATEMENT_LIST.
3422
3423 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3424
3425         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
3426         through from -mfpu= handling.
3427         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
3428
3429 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
3430
3431         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
3432         POST_MODIFY.
3433
3434 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
3435
3436         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
3437         for 11.31.
3438         (hppa[12]*-*-hpux11*): Ditto.
3439         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
3440         * config/ia64/hpux-unix2003.h: New.
3441         * config/pa/pa-hpux1131.opt: New.
3442         * config/pa/pa-hpux1131.h: New.
3443         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
3444         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
3445         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
3446
3447 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
3448
3449         PR debug/48853
3450         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
3451         instead of mode as 3rd argument to recursive call.
3452         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
3453         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
3454         VOIDmode.
3455         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
3456         don't give up if mode is Pmode and mem_mode is not VOIDmode.
3457         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
3458         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
3459
3460 2011-05-05  Julian Brown  <julian@codesourcery.com>
3461
3462         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
3463         parenthesis in D-register case.
3464
3465 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3466
3467         * opt-functions.awk (var_type_struct): Handle Enum options.
3468         * optc-gen.awk: Don't check range of variables of character type.
3469         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
3470         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
3471         rs6000_sdata_name, rs6000_explicit_options): Remove.
3472         (rs6000_option_override_internal): Check for -malign-power here.
3473         Use global_options_set instead of rs6000_explicit_options.
3474         (rs6000_parse_fpu_option): Remove.
3475         (rs6000_handle_option): Access variables via opts and opts_set
3476         pointers.  Use error_at and warning_at.  Add fall-through
3477         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
3478         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
3479         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
3480         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
3481         here.  Don't use rs6000_parse_fpu_option.
3482         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
3483         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
3484         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
3485         (mrecip=): Use Var.
3486         (mspe): Use Var and Save.
3487         (mtraceback=): Use Enum and Var.
3488         (rs6000_traceback_type): New Enum and EnumValue entries.
3489         (mfloat-gprs=): Use Enum, Var and Save.
3490         (rs6000_float_gprs): New Enum and EnumValue entries.
3491         (mlong-double-): use Var and Save.
3492         (msched-costly-dep=, minsert-sched-nops=): Use Var.
3493         (malign-): Use Enum and Var.
3494         (rs6000_alignment_flags): New Enum and EnumValue entries.
3495         (mfpu=): Use Enum.
3496         (fpu_type_t): New Enum and EnumValue entries.
3497         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3498         global_options_set instead of rs6000_explicit_options.
3499         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3500         global_options_set instead of rs6000_explicit_options.
3501         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3502         global_options_set instead of rs6000_explicit_options.
3503         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3504         global_options_set instead of rs6000_explicit_options.
3505         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
3506         global_options_set instead of rs6000_explicit_options.
3507         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3508         global_options_set instead of rs6000_explicit_options.
3509         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
3510         definition.
3511         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3512         global_options_set instead of rs6000_explicit_options.
3513         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
3514         (rs6000_cmodel): New Enum and EnumValue entries.
3515         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3516         global_options_set instead of rs6000_explicit_options.
3517         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
3518         (mtls-size=): Use Enum and Var.
3519         (rs6000_tls_size): New Enum and EnumValue entries.
3520
3521 2011-05-05  Michael Matz  <matz@suse.de>
3522
3523         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
3524         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
3525         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
3526         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
3527         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
3528         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
3529         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
3530         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
3531         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
3532         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
3533         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
3534         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
3535         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
3536         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
3537         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
3538         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
3539
3540 2011-05-05  Richard Guenther  <rguenther@suse.de>
3541
3542         * expmed.c (expand_variable_shift): Rename to ...
3543         (expand_shift_1): ... this.  Take an expanded shift amount.
3544         For rotates recurse directly not building trees for the shift amount.
3545         (expand_variable_shift): Wrap around expand_shift_1.
3546         (expand_shift): Adjust.
3547
3548 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
3549
3550         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
3551
3552 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3553
3554         * tree.h (get_pending_sizes): Remove prototype.
3555         (put_pending_size): Likewise.
3556         (put_pending_sizes): Likewise.
3557         * stor-layout.c (pending_sizes): Delete.
3558         (get_pending_sizes): Likewise.
3559         (put_pending_size): Likewise.
3560         (put_pending_sizes): Likewise.
3561         (variable_size): Do not call put_pending_size and tidy up.
3562         * function.h (struct function): Remove dont_save_pending_sizes_p.
3563         * lto-streamer-in.c (input_function): Do not stream it.
3564         * lto-streamer-out.c (output_function): Likewise.
3565         * tree-inline.c (initialize_cfun): Do not copy it.
3566         * c-decl.c (store_parm_decls): Do not set it.
3567         * omp-low.c (create_task_copyfn): Likewise.
3568         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3569
3570 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
3571
3572         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
3573         conditions.
3574         (*movdf_internal): Ditto.
3575         (*movdf_internal_nointeger): Ditto.
3576         (*movsf_internal): Ditto.
3577
3578 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
3579
3580         * c-decl.c (finish_decl): Don't call get_pending_sizes.
3581         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
3582         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
3583         (c_variable_size): Remove.
3584         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
3585         call put_pending_sizes.
3586         (get_parm_info): Add parameter expr.  Use it to set
3587         arg_info->pending_sizes.
3588         (store_parm_decls): Use arg_info->pending_sizes instead or calling
3589         get_pending_sizes.
3590         * c-parser.c (c_parser_parms_declarator): Update call to
3591         c_parser_parms_list_declarator.
3592         (c_parser_parms_list_declarator): Take parameter expr.  Update
3593         call to push_parm_decl.  Update recursive call.  Don't call
3594         get_pending_sizes.  Update calls to get_parm_info.
3595         (c_parser_objc_method_definition): Update calls to
3596         c_parser_objc_method_decl and objc_start_method_definition.
3597         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
3598         (c_parser_objc_method_decl): Add parameter expr.  Update call to
3599         grokparm.
3600         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
3601         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
3602         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
3603
3604 2011-05-05  Michael Hope  <michael.hope@linaro.org>
3605
3606         PR pch/45979
3607         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
3608         __ARM_EABI__ hosts.
3609
3610 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3611
3612         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
3613         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
3614         (spu_output_mi_thunk): New function.
3615
3616 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3617
3618         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
3619         targetm.asm_out.print_operand.
3620         * config/sol2.c: Include target.h.
3621
3622 2011-05-04  Jan Hubicka  <jh@suse.cz>
3623
3624         * ipa-inline.c (reset_edge_caches): New function.
3625         (update_caller_keys): Add check_inlinablity_for; do not
3626         reset edge caches; remove now unnecesary loop.
3627         (update_callee_keys): Add comments; reset node_growth_cache of callee.
3628         (update_all_callee_keys): Likewise.
3629         (inline_small_functions): Sanity check cache; update code
3630         recomputing it.
3631
3632 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
3633
3634         PR rtl-optimization/47612
3635         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
3636         as the last insn of the sequence to be moved.
3637
3638 2011-05-04  Tobias Burnus  <burnus@net-b.de>
3639
3640         PR fortran/48864
3641         * doc/invoke.texi (Ofast): Document that it
3642         enables Fortran's -fno-protect-parens.
3643
3644 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3645
3646         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
3647
3648 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3649
3650         * stor-layout.c (variable_size): Do not issue errors.
3651
3652 2011-05-04  Richard Guenther  <rguenther@suse.de>
3653
3654         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
3655         for array-ref indices.
3656         (tree_coverage_counter_addr): Likewise.
3657         (build_fn_info_type): Use size_int for index types.
3658         (build_gcov_info): Likewise.
3659
3660 2011-05-04  Richard Guenther  <rguenther@suse.de>
3661
3662         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
3663         to build_int_cst.
3664         * c-typeck.c (really_start_incremental_init): Use bitsize_int
3665         for constructor indices.
3666         (push_init_level): Likewise.
3667
3668 2011-05-04  Richard Guenther  <rguenther@suse.de>
3669
3670         * explow.c (promote_mode): Move variable declarations before code.
3671
3672 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
3673
3674         * tree.h (build_function_type_array): Declare.
3675         (build_varargs_function_type_array): Declare.
3676         (build_function_type_vec, build_varargs_function_type_vec): Define.
3677         * tree.c (build_function_type_array_1): New function.
3678         (build_function_type_array): New function.
3679         (build_varargs_function_type_array): New function.
3680
3681 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
3682
3683         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
3684         before setting STMT_VINFO_TYPE.
3685
3686 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3687
3688         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
3689         instead of spu_pass_by_reference.
3690
3691 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3692
3693         * calls.c (emit_library_call_value_1): Invoke
3694         promote_function_mode hook on libcall arguments.
3695         * explow.c (promote_function_mode, promote_mode): Handle TYPE
3696         argument being NULL.
3697         * targhooks.c (default_promote_function_mode): Lisewise.
3698         * config/s390/s390.c (s390_promote_function_mode): Likewise.
3699         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
3700
3701         * doc/tm.texi: Document that TYPE argument might be NULL.
3702
3703 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3704
3705         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
3706
3707 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3708
3709         From Bernd Schmidt
3710         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
3711
3712 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3713
3714         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
3715         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
3716         Move ...
3717         * mips-tfile.c: ... here.
3718         Don't include coretypes.h, tm.h, filenames.h.
3719         (saber_stop): Remove definition and all calls.
3720         [__SABER__]: Remove.
3721         (__LINE__): Remove default.
3722         (Size_t, Ptrdiff_t): Remove definitions.
3723         Replace by size_t, ptrdiff_t.
3724         [!MIPS_DEBUGGING_INFO]: Remove.
3725         (SHASH_SIZE, THASH_SIZE): Remove defaults.
3726         (progname): Add const.
3727         (STATIC): Remove.
3728         Replace all uses by static.
3729         (ALIGN_SYMTABLE_OFFSET): Remove default.
3730         * mips-tdump.c: Don't include coretypes.h, tm.h.
3731         Remove !MIPS_IS_STAB guard.
3732         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
3733         $(TM_H), filenames.h dependencies.
3734         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
3735
3736 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3737
3738         From Jie Zhang
3739         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
3740         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3741
3742 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3743
3744         From Bernd Schmidt
3745         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3746         account and save/restore RETS.
3747         (PROFILE_BEFORE_PROLOGUE): Define.
3748         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
3749         the push insn to use predecrement.
3750
3751 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3752
3753         From Jie Zhang
3754         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
3755
3756 2011-05-04  Nick Clifton  <nickc@redhat.com>
3757
3758         * config/mn10300/mn10300.c: Include cfgloop.h.
3759         (DUMP): New macro.
3760         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
3761         Lcc or a FLcc insn into the instruction stream.
3762         (mn10300_block_contains_call): New function.  Returns true if the
3763         given basic block contains a CALL insn.
3764         (mn10300_loop_contains_call_insn): New function.  Returns true if
3765         the given loop contains a CALL insn.
3766         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
3767         to use the SETLB and Lcc or FLcc insns.
3768         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3769         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3770         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
3771         disable the SETLB optimization.
3772         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3773         __SETLB__ or __NO_SETLB__.
3774         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3775         (movsf_internal): Handle MDR register.
3776         (cmpsi): Make visible.
3777         (setlb): New pattern.
3778         (Lcc): New pattern.
3779         (FLcc): New pattern.
3780
3781 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3782
3783         PR target/48860
3784         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3785         for reg<->xmm moves.
3786         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3787         (vec_concatv2di_rex64_sse): Ditto.
3788         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3789         (*vec_extractv2di_1_rex64): Ditto.
3790
3791         Revert:
3792         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3793
3794         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3795         reg<->xmm moves.
3796         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3797
3798 2011-05-04  Richard Guenther  <rguenther@suse.de>
3799
3800         * tree.h (int_const_binop): Remove notrunc argument.
3801         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
3802         create integer constants that are properly truncated.
3803         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3804         (const_binop): Remove zero notrunc argument to int_const_binop.
3805         (size_binop_loc): Likewise.
3806         (fold_div_compare): Likewise.
3807         (maybe_canonicalize_comparison_1): Likewise.
3808         (fold_comparison): Likewise.
3809         (fold_binary_loc): Likewise.
3810         (multiple_of_p): Likewise.
3811         * expr.c (store_constructor): Likewise.
3812         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3813         (maybe_fold_stmt_addition): Likewise.
3814         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3815         * stor-layout.c (layout_type): Likewise.
3816         * tree-data-ref.c (tree_fold_divides_p): Likewise.
3817         * tree-sra.c (build_ref_for_offset): Likewise.
3818         (build_user_friendly_ref_for_offset): Likewise.
3819         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3820         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3821         * tree-ssa-loop-niter.c (inverse): Likewise.
3822         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3823         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3824         * tree-switch-conversion.c (check_range): Likewise.
3825         (build_constructors): Likewise.
3826         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3827         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3828         (extract_range_from_assert): Likewise.
3829         (vrp_int_const_binop): Likewise.
3830         (extract_range_from_binary_expr): Likewise.
3831         (extract_range_from_unary_expr): Likewise.
3832         (check_array_ref): Likewise.
3833         (find_case_label_range): Likewise.
3834         (simplify_div_or_mod_using_ranges): Likewise.
3835         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3836         comparing case labels for merging.
3837
3838 2011-05-03  Mark Wielaard  <mjw@redhat.com>
3839
3840         * dwarf2out.c (debug_str_hash_forced): Removed.
3841         (gen_label_for_indirect_string): Removed.
3842         (get_debug_string_label): Removed.
3843         (AT_string_form): Generate label directly.
3844         (output_indirect_string): Test indirect_string_node for
3845         DW_FORM_strp instead of checking label and refcount.
3846         (prune_indirect_string): Removed.
3847         (prune_unused_types): Don't check debug_str_hash_forced or
3848         call prune_indirect_string.
3849
3850 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3851
3852         PR other/48093
3853         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3854
3855 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3856
3857         PR debug/47994
3858         PR debug/47919
3859         * combine.c (try_combine): Skip debug insns at m_split tests.
3860
3861 2011-04-26  Mark Wielaard  <mjw@redhat.com>
3862
3863         PR42288
3864         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3865         when info_section_emitted.
3866
3867 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
3868
3869         * config/mips/mips-opts.h: New.
3870         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3871         to mips-opts.h.
3872         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3873         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3874         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
3875         via opts pointer.
3876         * config/mips/mips.h (enum mips_code_readable_setting): Move to
3877         mips-opts.h.
3878         (mips_abi, mips_code_readable): Don't declare.
3879         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3880         (mabi=): Use Enum and Var.
3881         (mips_abi): New Enum and EnumValue entries.
3882         (mcode-readable=): Use Enum and Var.
3883         (mips_code_readable_setting): New Enum and EnumValue entries.
3884         (mr10k-cache-barrier=): Use Enum and Var.
3885         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3886
3887 2011-05-03  Jan Hubicka  <jh@suse.cz>
3888
3889         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3890         replace hash by pointer map.
3891         (cgraph_node_set_element_def, cgraph_node_set_element,
3892         const_cgraph_node_set_element, varpool_node_set_element_def,
3893         varpool_node_set_element, const_varpool_node_set_element): Remove.
3894         (free_cgraph_node_set, free_varpool_node_set): New function.
3895         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3896         * tree-emutls.c: Free varpool node set.
3897         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3898         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3899         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3900         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3901         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3902         Move here from ipa.c; implement using pointer_map
3903         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3904         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3905         debug_cgraph_node_set, varpool_node_set_new,
3906         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3907         dump_varpool_node_set, debug_varpool_node_set):
3908         Move to ipa-uitls.c.
3909         * passes.c (ipa_write_summaries): Update.
3910
3911 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3912
3913         From Mike Frysinger:
3914         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3915         bf542/bf544/bf547/bf548/bf549.
3916
3917 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3918
3919         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3920
3921 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3922
3923         From Bernd Schmidt:
3924         * config/bfin/bfin.md (MOVCC): New mode_macro.
3925         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3926         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
3927         comments from generated assembly.
3928
3929 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3930
3931         From Bernd Schmidt
3932         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3933         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3934         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3935         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3936         * config/bfin/lib1funcs.asm (___muldi3): New function.
3937
3938 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3939
3940         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3941         build_function_type_list instead of build_function_type.
3942         Rearrange initialization of `args' to do so.
3943
3944 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3945
3946         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3947         instead of build_function_type.
3948
3949 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3950
3951         * config/rs6000/rs6000.c (spe_init_builtins): Call
3952         build_function_type_list instead of build_function_type.
3953         (paired_init_builtins, altivec_init_builtins): Likewise.
3954         (builtin_function_type): Likewise.
3955
3956 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3957
3958         * config/sh/sh.c (sh_media_init_builtins): Call
3959         build_function_type_list instead of build_function_type.
3960
3961 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3962
3963         * config/sparc/sparc.c (sparc_file_end): Call
3964         build_function_type_list instead of build_function_type.
3965
3966 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3967
3968         * config/alpha/alpha.c (alpha_init_builtins): Call
3969         build_function_type_list instead of build_function_type.
3970
3971 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3972
3973         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3974         build_function_type_list instead of build_function_type.
3975
3976 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3977
3978         * config/iq2000/i2000.c (iq2000_init_builtins): Call
3979         build_function_type_list instead of build_function_type.
3980         Delete `endlink' variable.
3981
3982 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3983
3984         * config/avr/avr.c (avr_init_builtins): Call
3985         build_function_type_list instead of build_function_type.
3986
3987 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3988
3989         * config/picochip/picochip.c (picochip_init_builtins): Call
3990         build_function_type_list instead of build_function_type.
3991         Delete `endlink' variable.
3992
3993 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3994
3995         * config/bfin/bfin.c (bfin_init_builtins): Call
3996         build_function_type_list instead of build_function_type.
3997
3998 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3999
4000         From Bernd Schmidt
4001         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
4002         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
4003
4004 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4005
4006         From Jie Zhang:
4007         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
4008         libbffastfp overrides libgcc when -mfast-fp.
4009
4010 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4011
4012         Originally from Bernd Schmidt
4013         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
4014         * config/bfin/bfin.c (override_options): Test it and error if
4015         TARGET_FDPIC.
4016
4017 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
4018
4019         Originally From Bernd Schmidt
4020         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
4021         FD-PIC.
4022
4023 2011-05-03  Jeff Law  <law@redhat.com>
4024
4025         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
4026         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
4027         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
4028         than accessing AUX field directly.  Free the AUX field before
4029         clearing it.
4030         (thread_block, thread_through_loop_header): Likewise.
4031         (thread_single_edge, mark_threaded_blocks): Likewise.
4032         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
4033         (register_jump_thread): Do not attempt to thread to a NULL edge.
4034
4035 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
4036
4037         * function.c (init_function_start): Call decide_function_section.
4038         * varasm.c (decide_function_section): New function.
4039         (assemble_start_function): When not using
4040         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
4041         or first_function_block_is_cold.
4042         * rtl.h (decide_function_section): Declare.
4043
4044 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
4045             Jakub Jelinek  <jakub@redhat.com>
4046
4047         PR target/48774
4048         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
4049         only succeed if req_mode is the same as set_mode.
4050
4051 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
4052
4053         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
4054         * genemit.c (gen_exp): Handle RETURN.
4055         * emit-rtl.c (verify_rtx_sharing): Likewise.
4056         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
4057         * rtl.c (copy_rtx): RETURN is shared.
4058         * rtl.h (enum global_rtl_index): Add GR_RETURN.
4059         (ret_rtx): New.
4060         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
4061         * config/s390/s390.c (s390_emit_epilogue): Likewise.
4062         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
4063         * config/cris/cris.c (cris_expand_return): Likewise.
4064         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
4065         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
4066         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
4067         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
4068         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
4069         Likewise.
4070         * config/v850/v850.c (expand_epilogue): Likewise.
4071         * config/bfin/bfin.c (bfin_expand_call): Likewise.
4072         * config/arm/arm.md (epilogue): Likewise.
4073         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
4074         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
4075         variable to ret_reg.
4076
4077 2011-05-03  Richard Guenther  <rguenther@suse.de>
4078
4079         PR lto/48846
4080         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
4081         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
4082         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4083
4084 2011-05-03  Richard Guenther  <rguenther@suse.de>
4085
4086         * c-decl.c (grokdeclarator): Instead of looking at
4087         TREE_OVERFLOW check if the constant fits in the index type.
4088
4089 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
4090
4091         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
4092         (vec_store_lanes<mode><mode>): Likewise.
4093
4094 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
4095
4096         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
4097         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
4098         convert_optab_index values.
4099         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
4100         * genopinit.c (optabs): Initialize the new optabs.
4101         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
4102         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
4103         (expand_STORE_LANES): New functions.
4104         * tree.h (build_array_type_nelts): Declare.
4105         * tree.c (build_array_type_nelts): New function.
4106         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
4107         (vect_model_load_cost): Likewise.
4108         (vect_store_lanes_supported, vect_load_lanes_supported)
4109         (vect_record_strided_load_vectors): Declare.
4110         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
4111         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
4112         (vect_transform_strided_load): Split out statement recording into...
4113         (vect_record_strided_load_vectors): ...this new function.
4114         * tree-vect-stmts.c (create_vector_array, read_vector_array)
4115         (write_vector_array, create_array_ref): New functions.
4116         (vect_model_store_cost): Add store_lanes_p argument.
4117         (vect_model_load_cost): Add load_lanes_p argument.
4118         (vectorizable_store): Try to use store-lanes functions for
4119         interleaved stores.
4120         (vectorizable_load): Likewise load-lanes and loads.
4121         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
4122         to vect_model_store_cost.
4123         (vect_build_slp_tree): Likewise vect_model_load_cost.
4124
4125 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
4126
4127         * hooks.h (hook_bool_mode_uhwi_false): Declare.
4128         * hooks.c (hook_bool_mode_uhwi_false): New function.
4129         * target.def (array_mode_supported_p): New hook.
4130         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
4131         * doc/tm.texi: Regenerate.
4132         * stor-layout.c (mode_for_array): New function.
4133         (layout_type): Use it.
4134         * config/arm/arm.c (arm_array_mode_supported_p): New function.
4135         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
4136
4137 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4138
4139         PR target/48723
4140         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
4141         for -fstack-check if the size to allocate is negative.
4142
4143 2011-05-02  Lawrence Crowl  <crowl@google.com>
4144
4145         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
4146         (timevar_cond_start): New for starting a timer only when it is not
4147         already running.
4148         (timevar_cond_stop): New for stopping a timer when it was not already
4149         running.
4150
4151         * timevar.c (timevar_stop): Enable start/stop timers to start again.
4152         (timevar_cond_start): New as above.
4153         (timevar_cond_stop): New as above.
4154
4155         * timevar.def: Add start/stop timers for compiler phases,
4156         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
4157         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
4158         and TV_PHASE_FINALIZE.
4159         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
4160         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
4161         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
4162         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
4163         Make unused TV_OVERLOAD into a start/stop timer.
4164
4165         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
4166         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
4167         to indicate that they are start/stop timers.
4168
4169         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
4170         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
4171         Move initialization to do_compile.
4172         (do_compile): Add initialization from above.
4173         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
4174
4175         * c-decl.c (c_write_global_declarations): Add start/stop of
4176         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
4177
4178         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
4179         or TV_PARSE_INLINE, as appropriate.
4180         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
4181         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
4182
4183 2011-05-02  Jason Merrill  <jason@redhat.com>
4184
4185         PR c++/40975
4186         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
4187
4188 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
4189
4190         PR c/35445
4191         * c-decl.c (finish_decl): Only create a composite if the types are
4192         compatible.
4193
4194 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
4195
4196         * config/fr30/fr30-protos.h (Mmode): Don't define.
4197         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
4198         definition where used.
4199         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
4200         define.  Expand definitions where used.
4201         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
4202         Expand definitions where used.
4203         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
4204         rx_function_arg, rx_function_arg_advance,
4205         rx_function_arg_boundary): Expand definitions of those macros.
4206         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
4207         definition where used.
4208
4209 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
4210
4211         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
4212         reg<->xmm moves.
4213         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
4214         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
4215         with *movv2sf_internal_rex64_avx.
4216         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
4217         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
4218         Use %v prefix in insn mnemonic to handle TARGET_AVX.
4219         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
4220         "vex" in "prefix" attribute calculation.
4221         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
4222
4223 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
4224
4225         PR target/47951
4226         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
4227         inputs match the output.
4228
4229 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
4230
4231         PR target/47955
4232         * config/m68k/m68k.c (m68k_expand_prologue): Set
4233         current_function_static_stack_size.
4234
4235 2011-05-02   Jan Hubicka  <jh@suse.cz>
4236
4237         * lto-streamer.c (lto_streamer_cache_insert_1,
4238         lto_streamer_cache_lookup, lto_streamer_cache_create,
4239         lto_streamer_cache_delete): Use pointer map instead of hashtable.
4240         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
4241
4242 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
4243
4244         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
4245         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
4246         config/m68k/t-opts: New files.
4247         * config/m68k/m68k-tables.opt: New file (generated).
4248         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
4249         extra_options and m68k/t-opts to tmake_file.
4250         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
4251         (all_isas): Initialize using m68k-isas.def.
4252         (all_microarchs): Initialize using m68k-microarchs.def.
4253         (m68k_find_selection): Remove.
4254         (m68k_handle_option): Don't assert that global structures are in
4255         use.  Use error_at.  Access variables via opts pointer.  Don't
4256         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
4257         directly for -m68020-40 and -m68020-60.
4258         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
4259         m68k_tune_entry here.
4260         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
4261         to m68k-opts.h.
4262         (m68k_library_id_string): Remove declaration.
4263         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
4264         (m68k_library_id_string): New Variable.
4265         (march=, mcpu=, mtune=): Use Enum and Var.
4266
4267 2011-05-02  Richard Guenther  <rguenther@suse.de>
4268
4269         * varasm.c (output_constructor_regular_field): Compute zero-based
4270         index with double-ints.  Make sure to ICE instead of producing
4271         wrong code.
4272         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
4273         in asserts.  Properly use a signed type.
4274
4275 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
4276
4277         * config/i386/sse.md (V): New mode iterator.
4278         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
4279         TARGET_SSE2.
4280         (V_256): Rename from AVX256MODE.
4281         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
4282         condition to all users.
4283         (VF1): Ditto.
4284         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
4285         condition to all users.
4286         (VF_128): Make V4SF mode unconditional.
4287         (VF_256): Rename from AVX256MODEF2P.
4288         (VI4F_128): Rename from SSEMODE4S.
4289         (VI8F_128): Rename from SSEMODE2D.
4290         (VI4F_256): Rename from AVX256MODE8P.
4291         (VI8F_256): Rename from AVX256MODE4P.
4292         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
4293         (ssescalarmodesuffix): Remove SF and DF modes.
4294         (SSEMODE124): Remove.
4295         (SSEMODE1248): Ditto.
4296         (SSEMODEF2P): Ditto.
4297         (AVXMODEF2P): Ditto.
4298         (AVXMODEFDP): Ditto.
4299         (AVXMODEFSP): Ditto.
4300         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
4301         unconditional.
4302         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
4303         unconditional.
4304         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
4305         xop_pcmov_<mode>256.  Use V mode iterator.
4306
4307         Adjust RTX patterns globally for renamed mode attributes.
4308
4309 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4310
4311         * haifa-sched.c (sched_emit_insn): Emit insn before first
4312         non-scheduled insn.  Inform back-end about new insn.  Add
4313         new insn to scheduled_insns list.
4314
4315 2011-05-02  Richard Guenther  <rguenther@suse.de>
4316
4317         PR tree-optimization/48822
4318         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
4319         (process_scc): Indicate which iteration we start.
4320
4321 2011-05-02  Jan Hubicka  <jh@suse.cz>
4322
4323         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
4324         (lto_section_overrun): New.
4325         * lto-section-out.c (append_block): Rename to ...
4326         (lto_append_block): ... this one; export.
4327         (lto_output_1_stream): Move lto lto-streamer.h
4328         (lto_output_data_stream): Update.
4329         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
4330         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
4331         functions.
4332
4333 2011-05-02  Richard Guenther  <rguenther@suse.de>
4334
4335         * tree.c (tree_code_counts): New global array.
4336         (record_node_allocation_statistics): Count individual tree codes.
4337         (dump_tree_statistics): Dump individual code stats.
4338
4339 2011-05-01  Jan Hubicka  <jh@suse.cz>
4340
4341         * ipa-inline.c (caller_growth_limits): Fix thinko when
4342         looking for largest stack frame.
4343         * ipa-inline.h (dump_inline_summary): Declare.
4344         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
4345         on stack usage.
4346         (dump_inline_summary): Export.
4347         (debug_inline_summary): Declare as DEBUG_FUNCTION.
4348
4349 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
4350
4351         * reginfo.c (memory_move_cost): Change rclass argument type form
4352         'enum reg_class' to reg_class_t.
4353         * reload.h (memory_move_cost): Update prototype.
4354         * postreload.c reload_cse_simplify_set): Change type dclass var to
4355         reg_class_t.
4356         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
4357         Update prototype.
4358         (ira_allocate_and_set_costs): Change aclass argument type form
4359         'enum reg_class' to reg_class_t.
4360         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
4361         Change aclass argument type to reg_class_t.
4362         (update_conflict_hard_reg_costs): Change type aclass and pref vars
4363         to reg_class_t.
4364         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
4365         memory_move_cost call.
4366
4367         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
4368         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
4369         Change type tmp var to reg_class_t.
4370
4371 2011-04-30  Jan Hubicka  <jh@suse.cz>
4372
4373         * ipa-inline.c (can_inline_edge_p): Disregard limits when
4374         inlining into function with flatten attribute.
4375         (want_inline_small_function_p): Be more realistic about inlining
4376         cold calls where callee size grows.
4377
4378 2011-04-30  Jan Hubicka  <jh@suse.cz>
4379
4380         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
4381         flags.
4382
4383 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
4384
4385         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4386         PRINT_OPERAND_PUNCT_VALID_P): Remove.
4387         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
4388         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
4389         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4390         (print_operand): Rename to...
4391         (sparc_print_operand): ...this. Make static. Adjust
4392         sparc_print_operand function call.
4393         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
4394         functions.
4395
4396 2011-04-30  Jan Hubicka  <jh@suse.cz>
4397
4398         PR middle-end/48752
4399         * ipa-inline.c (early_inliner): Disable when doing late
4400         addition of function.
4401
4402 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
4403
4404         * dwarf2out.c (get_address_mode): New inline.
4405         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
4406         if not dwarf_strict emit
4407         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
4408         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
4409         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
4410         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
4411         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
4412         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
4413         mem_loc_descriptor callers.
4414         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
4415         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
4416         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
4417         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
4418         (base_types): New variable.
4419         (get_base_type_offset, calc_base_type_die_sizes,
4420         base_type_for_mode, mark_base_types, base_type_cmp,
4421         move_marked_base_types): New functions.
4422         (calc_die_sizes): Assert that die_offset is 0 or equal to
4423         next_die_offset.
4424         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
4425         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
4426         callers.  If not dwarf_strict, call mem_loc_descriptor even for
4427         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
4428         (gen_subprogram_die): Don't give up on call site parameters
4429         with non-integral or large integral modes.  Adjust
4430         mem_loc_descriptor callers.
4431         (prune_unused_types): Call prune_unused_types_mark on base_types
4432         vector entries.
4433         (resolve_addr): Call mark_base_types.
4434         (dwarf2out_finish): Call move_marked_base_types.
4435
4436         PR tree-optimization/48809
4437         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
4438         type.
4439         (gen_inbound_check): Don't compute index_expr - range_min in utype
4440         again, instead reuse SSA_NAME initialized in build_arrays.
4441         Remove two useless gsi_for_stmt calls.
4442
4443 2011-04-29  Jeff Law  <law@redhat.com>
4444
4445         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
4446
4447 2011-04-29  Martin Jambor  <mjambor@suse.cz>
4448
4449         * cgraph.h (cgraph_postorder): Remove declaration.
4450         * ipa-utils.h (ipa_free_postorder_info): Declare.
4451         (ipa_reverse_postorder): Likewise.
4452         * cgraphunit.c: Include ipa-utils.h.
4453         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
4454         * ipa-inline.c: Include ipa-utils.h.
4455         (ipa_inline): Update call to ipa_reverse_postorder.
4456         * ipa-pure-const.c (propagate_pure_const): Update call to
4457         ipa_reduced_postorder and ipa_print_order.  Call
4458         ipa_free_postorder_info to clean up.
4459         (propagate_nothrow): Likewise.
4460         * ipa-reference.c (propagate): Removed a useless call to
4461         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
4462         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
4463         * ipa.c: Include ipa-utils.h.
4464         (ipa_profile): Update call to ipa_reverse_postorder.
4465         (cgraph_postorder): Moved to...
4466         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
4467         (ipa_utils_print_order): Renamed to ipa_print_order.
4468         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
4469         comments.
4470         (ipa_free_postorder_info): New function.
4471         * passes.c: Include ipa-utils.h.
4472         (do_per_function_toporder): Update call to ipa_reverse_postorder.
4473         (ipa_write_summaries): Likewise.
4474         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
4475         (cgraphunit.o): Likewise.
4476         (ipa.o): Likewise.
4477         (ipa-inline.o): Likewise.
4478
4479 2011-04-29  Jan Hubicka  <jh@suse.cz>
4480
4481         * gcc.dg/tree-ssa/inline-10.c: New testcase.
4482         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
4483         * ipa-inline.h (clause_t): Turn into unsigned int.
4484         * ipa-inline-analysis.c (add_clause): Do more simplification.
4485         (and_predicates): Shortcut more cases.
4486         (predicates_equal_p): Move forward; check that clauses are properly
4487         ordered.
4488         (or_predicates): Shortcut more cases.
4489         (edge_execution_predicate): Rewrite as...
4490         (set_cond_stmt_execution_predicate): ... this function; handle
4491         __builtin_constant_p.
4492         (set_switch_stmt_execution_predicate): New .
4493         (compute_bb_predicates): New.
4494         (will_be_nonconstant_predicate): Update TODO.
4495         (estimate_function_body_sizes): Use compute_bb_predicates
4496         and free them later, always try to estimate if stmt is constant.
4497         (estimate_time_after_inlining, estimate_size_after_inlining):
4498         Gracefully handle optimized out edges.
4499         (read_predicate): Fix off by one error.
4500
4501 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4502
4503         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
4504
4505 2011-04-27  Xinliang David Li  <davidxl@google.com>
4506
4507         * tree-profile.c (init_ic_make_global_vars): Set
4508         tls attribute on ic vars.
4509         * coverage.c (coverage_end_function): Initialize
4510         function_list with zero.
4511
4512 2011-04-29  Richard Guenther  <rguenther@suse.de>
4513
4514         * builtins.c (fold_builtin_classify_type): Use integer_type_node
4515         for the type of the result.
4516         (fold_builtin_isascii): Likewise.
4517         (fold_builtin_toascii): Use integer_type_node where appropriate.
4518         (fold_builtin_logb): Likewise.
4519         (fold_builtin_frexp): Likewise.
4520         (fold_builtin_strstr): Likewise.
4521         (fold_builtin_strpbrk): Likewise.
4522         (fold_builtin_fputs): Likewise.
4523         (fold_builtin_sprintf): Likewise.
4524         (fold_builtin_snprintf): Likewise.
4525         (fold_builtin_printf): Likewise.
4526         (do_mpfr_remquo): Use a proper type for the assigned constant.
4527         (do_mpfr_lgamma_r): Likewise.
4528         * dwarf2out.c (resolve_one_addr): Use size_int.
4529         * except.c (init_eh): Likewise.
4530         (assign_filter_values): Use integer_type_node for filter values.
4531         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
4532         indices.
4533         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
4534         for EH region numbers.
4535         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
4536         for the shift amount.
4537
4538 2011-04-29  Richard Guenther  <rguenther@suse.de>
4539
4540         * expr.h (expand_shift): Rename to ...
4541         (expand_variable_shift): ... this.
4542         (expand_shift): Take a constant shift amount.
4543         * expmed.c (expand_shift): Rename to ...
4544         (expand_variable_shift): ... this.
4545         (expand_shift): New wrapper around expand_variable_shift.
4546         * expr.c (convert_move, emit_group_load_1, emit_group_store,
4547         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
4548         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
4549         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
4550         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
4551         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
4552         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
4553         emit_store_flag_1, emit_store_flag): Likewise.
4554         * builtins.c (expand_builtin_signbit): Likewise.
4555         * calls.c (load_register_parameters): Likewise.
4556         * function.c (assign_parm_setup_block): Likewise.
4557         * lower-subreg.c (resolve_shift_zext): Likewise.
4558         * optabs.c (widen_bswap, expand_abs_nojump,
4559         expand_one_cmpl_abs_nojump, expand_float): Likewise.
4560         * spu/spu.c (spu_expand_extv): Likewise.
4561         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4562
4563 2011-04-29  Richard Guenther  <rguenther@suse.de>
4564
4565         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
4566         for the remapped region number.
4567         * predict.c (build_predict_expr): Use integer_type_node for the
4568         predict kind.
4569         * fold-const.c (fold_binary_loc): Use integer_type_node for
4570         the shift amount.  Use a proper type for the PLUS_EXPR operand.
4571
4572 2011-04-29  Michael Matz  <matz@suse.de>
4573
4574         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
4575         other trees that just builtins.
4576         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
4577
4578 2011-04-29  Richard Guenther  <rguenther@suse.de>
4579
4580         * tree-nested.c (get_trampoline_type): Use size_int.
4581         (get_nl_goto_field): Likewise.
4582         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
4583         for all indexes.
4584         (lower_eh_constructs_2): Likewise.
4585         (lower_resx): Likewise.
4586         (lower_eh_dispatch): Likewise.
4587         * tree-mudflap.c (mf_build_string): Use size_int.
4588         (mudflap_register_call): Use integer_type_node for the flag.
4589         (mudflap_enqueue_constant): Use size_int.
4590         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
4591         instead of rebuilding it.
4592
4593 2011-04-29  Richard Guenther  <rguenther@suse.de>
4594
4595         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
4596         Handle OBJ_TYPE_REF.
4597         (find_func_aliases_for_call): Use it more consistently.
4598
4599 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
4600
4601         * haifa-sched.c (last_nondebug_scheduled_insn): New.
4602         (rank_for_schedule): Use it.
4603         (schedule_block): Set it.
4604
4605 2011-04-28  David Li  <davidxl@google.com>
4606
4607         * tree.c (crc32_string): Use crc32_byte.
4608         (crc32_byte): New function.
4609         * tree.h (crc32_byte): New function.
4610         * gcov.c (read_graph_file): Handle new cfg_cksum.
4611         (read_count_file): Ditto.
4612         * profile.c (instrument_values): Ditto.
4613         (get_exec_counts): Ditto.
4614         (read_profile_edge_counts): Ditto.
4615         (compute_branch_probabilities): Ditto.
4616         (compute_value_histograms): Ditto.
4617         (branch_prob): Ditto.
4618         (end_branch_prob): Ditto.
4619         * coverage.c (read_counts_file): Ditto.
4620         (get_coverage_counts): Ditto.
4621         (tree_coverage_counter_addr): Ditto.
4622         (coverage_checksum_string): Ditto.
4623         (coverage_begin_output): Ditto.
4624         (coverage_end_function): Ditto.
4625         (build_fn_info_type): Ditto.
4626         (build_fn_info_value): Ditto.
4627         * libgcov.c (gcov_exit): Ditto.
4628         * gcov-dump.c (tag_function): Ditto.
4629         (compute_checksum): Remove.
4630
4631 2011-04-29  Alan Modra  <amodra@gmail.com>
4632
4633         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4634         unspec plus offset.  Tidy macho code.
4635
4636 2011-04-29  Martin Jambor  <mjambor@suse.cz>
4637
4638         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
4639         node instead of a decl.  Update all callers.
4640         * cgraph.h: Update declaration.
4641
4642 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
4643
4644         PR tree-optimization/48765
4645         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
4646         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
4647         to indicate if loop aware SLP is being used.  Scan the statements
4648         and update the vectorization factor according to the type of
4649         vectorization before statement analysis.
4650         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
4651         pass it to vect_analyze_loop_operations.
4652         (vectorizable_reduction): Set number of copies to 1 in case of pure
4653         SLP statement.
4654         * tree-vect-stmts.c (vectorizable_conversion,
4655         vectorizable_assignment, vectorizable_shift,
4656         vectorizable_operation, vectorizable_type_demotion,
4657         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
4658         Likewise.
4659         (vectorizable_condition): Move the check that it is not SLP
4660         vectorization before the number of copies check.
4661         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
4662         to vectorize the loop using SLP.
4663
4664 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
4665
4666         PR middle-end/48597
4667         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
4668         inline asm.
4669
4670 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
4671
4672         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
4673         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
4674         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
4675         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
4676         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
4677         linux*.h headers.
4678         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
4679         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4680         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4681         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4682         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4683         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
4684         REG_NAME.
4685         * config/i386/linux.h (REG_NAME): Don't define.
4686         * config/i386/linux64.h (REG_NAME): Don't define.
4687         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
4688         Undefine before defining.
4689
4690 2011-04-28  Jan Hubicka  <jh@suse.cz>
4691
4692         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
4693         nonconstant_names array.
4694         (estimate_function_body_sizes): Build nonconstant_names array; handle
4695         BUILT_IN_CONSTANT_P.
4696
4697 2011-04-28  Richard Guenther  <rguenther@suse.de>
4698
4699         PR bootstrap/48804
4700         Revert
4701         2011-04-28  Richard Guenther  <rguenther@suse.de>
4702
4703         * tree-ssa-structalias.c (solve_constraints): Build succ graph
4704         as late as possible.
4705
4706 2011-04-28  Richard Guenther  <rguenther@suse.de>
4707
4708         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
4709         (debug_constraint): Do it here.
4710         (dump_constraints): And here.
4711         (rewrite_constraints): And here.
4712         (dump_constraint_edge): Remove.
4713         (dump_constraint_graph): Rewrite to produce DOT output.
4714         (solve_constraints): Build succ graph as late as possible.
4715         Dump constraint graphs before and after solving.
4716
4717 2011-04-28  Richard Guenther  <rguenther@suse.de>
4718
4719         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4720         New function split out from ...
4721         (find_func_aliases): ... here.  Call it.
4722         (find_func_aliases_for_call): Likewise.
4723
4724 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4725
4726         * internal-fn.h (internal_fn_name_array): Declare.
4727         (internal_fn_flags_array): Likewise.
4728
4729 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4730
4731         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
4732         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
4733         Move from sse.md.
4734         (ssemodefsuffix): Remove.
4735         (ssevecmodesuffix): New mode attribute.
4736         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
4737         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4738         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4739         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4740         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
4741         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
4742         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
4743         ssemodesuffix mode attribute.
4744         (float splitters): Use ssevecmodesuffix mode attribute.
4745         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
4746         (sseinsmode): Rename from avxvecmode.
4747         (avxsizesuffix): Rename from avxmodesuffix.
4748         (sseintvecmode): Rename from avxpermvecmode.
4749         (ssedoublevecmode): Rename from ssedoublesizemode.
4750         (ssehalfvecmode): Rename from avxhalfvecmode.
4751         (ssescalarmode): Rename from avxscalarmode.
4752         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
4753         templates for ssemodesuffix mode attribute.
4754         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
4755         mode attribute.
4756
4757         Adjust RTX patterns globally for renamed mode attributes.
4758
4759 2011-04-27  Jan Hubcika  <jh@suse.cz>
4760
4761         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
4762         * ipa-inline-analysis.c: Include alloc-pool.h.
4763         (edge_predicate_pool): New.
4764         (trye_predicate_p): New function
4765         (false_predicate_p): New function.
4766         (add_clause): Sanity check that false clauses are "optimized";
4767         never add clauses to predicate that is already known to be false.
4768         (and_predicate): Use flase_predicate_p.
4769         (evaulate_predicate): Rename to ...
4770         (evaluate_predicate): ... this one; update all callers; assert
4771         that false is not listed among possible truths.
4772         (dump_predicate): Use true_predicate_p.
4773         (account_size_time): Use false_predicate_p.
4774         (evaulate_conditions_for_edge): Rename to ...
4775         (evaluate_conditions_for_edge) ... this one.
4776         (edge_set_predicate): New function.
4777         (inline_edge_duplication_hook): Duplicate edge predicates.
4778         (inline_edge_removal_hook): Free edge predicates.
4779         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4780         (dump_inline_summary): Update.
4781         (estimate_function_body_sizes): Set edge predicates.
4782         (estimate_calls_size_and_time): Handle predicates.
4783         (estimate_callee_size_and_time): Update.
4784         (remap_predicate): Add toplev_predicate; update comment.
4785         (remap_edge_predicates): New function.
4786         (inline_merge_summary): Compute toplev predicate; update.
4787         (read_predicate): New function.
4788         (read_inline_edge_summary): Use it.
4789         (inline_read_section): Likewise.
4790         (write_predicate): New function.
4791         (write_inline_edge_summary): Use it.
4792         (inline_write_summary): Likewise.
4793         (inline_free_summary): Free alloc pool and edge summary vec.
4794
4795 2011-04-27  Richard Guenther  <rguenther@suse.de>
4796
4797         * tree-ssa-structalias.c (changed_count): Remove.
4798         (changed): Use a bitmap.
4799         (unify_nodes): Adjust.
4800         (do_sd_constraint): Likewise.
4801         (do_ds_constraint): Likewise.
4802         (do_complex_constraint): Likewise.
4803         (solve_graph): Likewise.
4804
4805 2011-04-27  Jan Hubicka  <jh@suse.cz>
4806
4807         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4808
4809 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4810
4811         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4812         (avx_vperm2f128_*_operand): Ditto.
4813         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4814         Use avx_vpermilp_parallel in insn condition.
4815         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4816         Use avx_vperm2f128_parallel in insn condition.
4817
4818 2011-04-27  Richard Guenther  <rguenther@suse.de>
4819
4820         * Makefile.in (tree-ssa-structalias.o): Remove
4821         gt-tree-ssa-structalias.h dependency.
4822         (GTFILES): Remove tree-ssa-structalias.c.
4823         * tree.c (allocate_decl_uid): New function.
4824         (make_node_stat): Use it.
4825         (copy_node_stat): Likewise.
4826         * tree.h (allocate_decl_uid): Declare.
4827         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4828         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4829         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4830         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4831         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4832         (struct heapvar_map): Likewise.
4833         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4834         heapvar_insert): Likewise.
4835         (make_heapvar_for): Rename to ...
4836         (make_heapvar): ... this.  Simplify.
4837         (fake_var_decl_obstack): New global var.
4838         (build_fake_var_decl): New function.
4839         (make_constraint_from_heapvar): Adjust.
4840         (handle_lhs_call): Likewise.
4841         (create_function_info_for): Likewise.
4842         (intra_create_variable_infos): Likewise.
4843         (init_alias_vars): Allocate fake_var_decl_obstack.
4844         (init_alias_heapvars, delete_alias_heapvars): Remove.
4845         (compute_points_to_sets): Do not call init_alias_heapvars.
4846         (ipa_pta_execute): Likewise.
4847         (delete_points_to_sets): Free fake_var_decl_obstack.
4848
4849 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4850
4851         * config/spu/divmovti4.c (union qword_UTItype): New data type.
4852         (si_from_UTItype, si_to_UTItype): New functions.
4853         (__udivmodti4): Use them to implement type-punning.
4854         * config/spu/multi3.c (union qword_TItype): New data type.
4855         (si_from_TItype, si_to_TItype): New functions.
4856         (__multi3): Use them to implement type-punning.
4857
4858 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4859
4860         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4861
4862 2011-04-27  Jan Hubicka  <jh@suse.cz>
4863
4864         * ipa-prop.c (function_insertion_hook_holder): New holder.
4865         (ipa_add_new_function): New function.
4866         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4867         Register/deregister holder.
4868
4869 2011-04-27  Richard Guenther  <rguenther@suse.de>
4870
4871         PR tree-optimization/48772
4872         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4873
4874 2011-04-27  Richard Guenther  <rguenther@suse.de>
4875
4876         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4877         TARGET_MEM_REF handling.
4878
4879 2011-04-27  Nick Clifton  <nickc@redhat.com>
4880
4881         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4882         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4883         (REG_CLASS_NAMES): Likewise.
4884         (REG_CLASS_CONTENTS): Likewise.
4885         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4886         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4887         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
4888         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
4889         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
4890         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4891         duplicate register classes.
4892         (frv_class_likely_spilled_p): Likewise.
4893         (frv_register_move_cost): Likewise.
4894
4895         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4896         end of the regno_reg_class array.
4897
4898 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
4899
4900         PR c/48742
4901         * c-typeck.c (build_binary_op): Don't wrap arguments if
4902         int_operands is true.
4903
4904 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
4905
4906         PR target/48767
4907         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4908         targetm.calls.must_pass_in_stack for void type.
4909
4910 2011-04-26  Jan Hubicka  <jh@suse.cz>
4911
4912         * cgraphbuild.c (build_cgraph_edges): Update call
4913         of cgraph_create_edge and cgraph_create_indirect_edge.
4914         * cgraph.c (cgraph_create_edge_including_clones,
4915         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4916         cgraph_update_edges_for_call_stmt_node): Do not take nest
4917         argument; do not initialize call_stmt_size/time.
4918         (dump_cgraph_node): Do not dump nest.
4919         (cgraph_clone_edge): Do not take loop_nest argument;
4920         do not propagate it; do not clone call_stmt_size/time.
4921         (cgraph_clone_node): Likewise.
4922         (cgraph_create_virtual_clone): Update.
4923         * cgraph.h (struct cgraph_edge): Remove
4924         call_stmt_size/call_stmt_time/loop_nest.
4925         (cgraph_create_edge, cgraph_create_indirect_edge,
4926         cgraph_create_edge_including_clones, cgraph_clone_node): Update
4927         prototype.
4928         * tree-emutls.c (gen_emutls_addr): Update.
4929         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4930         loop_nest; handle indirect calls, too.
4931         (clone_inlined_nodes): Do not care about updating inline summaries.
4932         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4933         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4934         stream call_stmt_size/call_stmt_time/loop_nest.
4935         * ipa-inline.c (edge_badness): Update.
4936         (ipa_inline): dump summaries after inlining.
4937         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4938         New.
4939         (inline_edge_summary): New function.
4940         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4941         (inline_edge_removal_hook): Handle edge summaries.
4942         (inline_edge_duplication_hook): New hook.
4943         (inline_summary_alloc): Alloc hooks.
4944         (initialize_growth_caches): Do not register removal hooks.
4945         (free_growth_caches); Do not free removal hook.
4946         (dump_inline_edge_summary): New function.
4947         (dump_inline_summary): Use it.
4948         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4949         (inline_update_callee_summaries): New function.
4950         (inline_merge_summary): Use it.
4951         (do_estimate_edge_time, do_estimate_edge_growth): Update.
4952         (read_inline_edge_summary): New function.
4953         (inline_read_section): Use it.
4954         (write_inline_edge_summary): New function.
4955         (inline_write_summary): Use it.
4956         (inline_free_summary): Free edge new holders.
4957         * tree-inline.c (copy_bb): Update.
4958
4959 2011-04-26  Jason Merrill  <jason@redhat.com>
4960
4961         * tree-eh.c (lower_try_finally_switch): Create the label along with
4962         the CASE_LABEL_EXPR.
4963
4964 2011-04-26  David S. Miller  <davem@davemloft.net>
4965             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4966
4967         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4968         * configure: Regenerate.
4969
4970 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4971
4972         PR target/48258
4973         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4974         reduction.
4975         (VEC_reduc): New code iterator and splitters for vector reduction.
4976         (VEC_reduc_name): Ditto.
4977         (VEC_reduc_rtx): Ditto.
4978         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4979         (reduc_<VEC_reduc_name>_v4sf): Ditto.
4980
4981         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4982         support for extracting SF on VSX.
4983
4984         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4985         generating xscvspdp.
4986         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4987         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4988         double add, minimum, maximum vector reduction.
4989         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4990         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4991         optimize double vector reduction.
4992         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4993
4994 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
4995
4996         * config/fr30/fr30.h (inhibit_libc): Don't define.
4997         * config/m32r/m32r-protos.h: Correct comment.
4998         * config/v850/v850.h (GHS_default_section_names,
4999         GHS_current_section_names): Use tree, not union tree_node *.
5000
5001 2011-04-26  Xinliang David Li  <davidxl@google.com>
5002
5003         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
5004         * c-family/c-opts.c (c_common_handle_option): Set
5005         warn_maybe_uninitialized.
5006         * opts.c (common_handle_option): Ditto.
5007         * common.opt:  New option.
5008         * tree-ssa.c (warn_uninit): Add one more parameter.
5009         (warn_uninitialized_var): Pass warning code.
5010         * tree-flow.h: Interface change.
5011
5012 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5013
5014         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
5015         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
5016         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
5017
5018 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5019
5020         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
5021         * config/mips/mips.opt (mmips-tfile): Remove.
5022
5023         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
5024         mips-tdump reference to ...
5025         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
5026         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
5027         reference by Tru64 UNIX.
5028
5029 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
5030
5031         PR debug/48768
5032         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
5033         is error_mark_node, set value to NULL.
5034
5035         PR tree-optimization/48734
5036         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
5037         if return value from maybe_fold_*_comparsions isn't something
5038         the code is prepared to handle.
5039
5040 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
5041
5042         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
5043         mode check.
5044         (ext_QIreg_nomode_operands): Remove.
5045         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
5046         (*andsi_1): Ditto.
5047         (*andhi_1): Ditto.
5048
5049 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
5050
5051         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
5052
5053 2011-04-26  Richard Guenther  <rguenther@suse.de>
5054
5055         * c-typeck.c (build_unary_op): Do not expand array-refs via
5056         pointer arithmetic.  Only adjust qualifiers for function types.
5057
5058 2011-04-26  Richard Guenther  <rguenther@suse.de>
5059
5060         PR middle-end/48694
5061         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
5062         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
5063         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
5064         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
5065
5066 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
5067
5068         * doc/extend.texi: Document __underlying_type.
5069
5070 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
5071
5072         * config/rs6000/titan.md (automata_option "progress"): Remove.
5073
5074 2011-04-25  Jeff Law  <law@redhat.com>
5075
5076         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
5077
5078 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
5079
5080         * system.h (ENUM_BITFIELD): Remove.
5081
5082 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
5083             Eric Botcazou  <ebotcazou@adacore.com>
5084
5085         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
5086         for STORE_FLAG_VALUE==-1 case.
5087
5088 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
5089
5090         PR target/43804
5091         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
5092         LEGITIMATE_PIC_OPERAND_P.
5093
5094 2011-04-24  Jan Hubicka  <jh@suse.cz>
5095
5096         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
5097         WPA hack.
5098         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
5099         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
5100         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
5101         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
5102         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
5103         Sanity check predicate length.
5104         (remap_predicate): Likewise; sanity check jump functions.
5105         (inline_read_section, inline_write_summary): Sanity check
5106         predicate length.
5107
5108 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
5109
5110         PR other/48748
5111         * doc/extend.texi (Type Traits): Document __is_standard_layout,
5112         __is_literal_type, and __is_trivial; update throughout about
5113         possibly cv-qualified void types.
5114
5115 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
5116
5117         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
5118         testsuite and make it version agnostic.
5119
5120 2011-04-22  Jan Hubicka  <jh@suse.cz>
5121
5122         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
5123
5124 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
5125
5126         PR c/48685
5127         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
5128         to VOID_TYPE even around MODIFY_EXPR.
5129
5130 2011-04-22  Mike Stump  <mikestump@comcast.net>
5131
5132         * gensupport.c (read_md_rtx): Fix typo in comment.
5133         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
5134         comment.
5135
5136 2011-04-22  Jan Hubicka  <jh@suse.cz>
5137
5138         * gengtype.c (open_base_files): Add ipa-inline.h include.
5139         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
5140         ipa-prop.c; update all uses.
5141         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
5142         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
5143         merge summary of inlined function into former caller.
5144         * ipa-inline.c (max_benefit): Remove.
5145         (edge_badness): Compensate for removal of benefits.
5146         (update_caller_keys): Use
5147         reset_node_growth_cache/reset_edge_growth_cache.
5148         (update_callee_keys): Likewise.
5149         (update_all_callee_keys): Likewise.
5150         (inline_small_functions): Do not collect max_benefit; do not reset
5151         estimated_growth; call free_growth_caches and initialize_growth_caches.
5152         * ipa-inline.h (struct condition, type clause_t, struct predicate,
5153         struct size_time_entry): New structures.
5154         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
5155         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
5156         and estimated_growth.
5157         (edge_growth_cache_entry): New structure.
5158         (node_growth_cache, edge_growth_cache): New global vars.
5159         (estimate_growth): Turn into inline.
5160         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
5161         initialize_growth_caches, free_growth_caches): Declare.
5162         (estimate_edge_growth): Rewrite.
5163         (estimate_edge_time): Implement as inline cache lookup.
5164         (reset_node_growth_cache, reset_edge_growth_cache): New inline
5165         functions.
5166         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
5167         (NUM_CONDITIONS): New constant.
5168         (predicate_conditions): New enum.
5169         (IS_NOT_CONSTANT): New constant.
5170         (edge_removal_hook_holder): New var.
5171         (node_growth_cache, edge_growth_cache): New global vars.
5172         (true_predicate, single_cond_predicate, false_predicate,
5173         not_inlined_predicate, add_condition, add_clause, and_predicates,
5174         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
5175         dump_clause, dump_predicate, account_size_time,
5176         evaulate_conditions_for_edge): New functions.
5177         (inline_summary_alloc): Move to heap.
5178         (inline_node_removal_hook): Clear condition and entry vectors.
5179         (inline_edge_removal_hook): New function.
5180         (initialize_growth_caches, free_growth_caches): New function.
5181         (dump_inline_summary): Update.
5182         (edge_execution_predicate): New function.
5183         (will_be_nonconstant_predicate): New function.
5184         (estimate_function_body_sizes): Compute BB and constantness predicates.
5185         (compute_inline_parameters): Do not clear estimated_growth.
5186         (estimate_edge_size_and_time): New function.
5187         (estimate_calls_size_and_time): New function.
5188         (estimate_callee_size_and_time): New function.
5189         (remap_predicate): New function.
5190         (inline_merge_summary): New function.
5191         (do_estimate_edge_time): New function based on...
5192         (estimate_edge_time): ... this one.
5193         (do_estimate_edge_growth): New function.
5194         (do_estimate_growth): New function based on....
5195         (estimate_growth): ... this one.
5196         (inline_analyze_function): Analyze after deciding on jump functions.
5197         (inline_read_section): New function.
5198         (inline_read_summary): Use it.
5199         (inline_write_summary): Write all the new data.
5200         * ipa-prop.c (ipa_get_param_decl_index): Export.
5201         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
5202         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
5203         Declare.
5204         (ipa_get_lattice): Move here from ipa-cp.c
5205         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
5206         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
5207         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
5208         cgraph_edge_inlinable_p): Remove.
5209         * cgraphunit.c: Include ipainline.h
5210         (cgraph_process_new_functions): Update call of
5211         compute_inline_parameters.
5212
5213 2011-04-22  Richard Guenther  <rguenther@suse.de>
5214
5215         * tree.c (build_int_cst): Properly create canonicalized integer
5216         constants.
5217         (build_int_cst_type): Remove scary comments.
5218
5219 2011-04-22  Xinliang David Li  <davidxl@google.com>
5220
5221         * toplev.c (process_options): Enable -Werror=coverage-mismatch
5222         by default when -Wno-error is not specified.
5223         * opts-global.c (decode_options): Remove call to
5224         control_warning_options.
5225
5226 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
5227
5228         PR tree-optimization/48717
5229         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
5230         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
5231
5232 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
5233
5234         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
5235         definition where used.
5236
5237 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
5238
5239         PR c/48716
5240         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
5241         TREE_STATIC variables declared inside of some OpenMP construct.
5242
5243 2011-04-22  Martin Jambor  <mjambor@suse.cz>
5244
5245         PR middle-end/48585
5246         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
5247
5248 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
5249
5250         PR c/36750
5251         * c-typeck.c (pop_init_level): Do not warn about initializing
5252         with ` = {0}'.
5253
5254 2011-04-22  Alan Modra  <amodra@gmail.com>
5255
5256         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
5257         when returning call_cookie.
5258         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
5259         pointers, to functions with no more vector args than the current
5260         function, and some non-local calls for ABI_V4.
5261         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
5262         sibcall_nonlocal_aix64): Combine to ..
5263         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
5264         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
5265         (sibcall_value_nonlocal_aix<mode>): ..likewise.
5266         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
5267         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
5268         operand.
5269         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
5270         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
5271         sibcall_value_symbolic_64): Delete.
5272
5273 2011-04-21  Xinliang David Li  <davidxl@google.com>
5274
5275         * cgraph.h: Remove pid.
5276         * cgraph.c: Remove pid.
5277         * value-prof.c (init_node_map): New function.
5278         (del_node_map): New function.
5279         (find_func_by_funcdef_no): New function.
5280         (gimple_ic_transform): Call new function.
5281         * cgraphunit.c (cgraph_finalize_function): Remove pid.
5282         * function.c (get_last_funcdef_no): New function.
5283         * function.h (get_last_funcdef_no): New function.
5284         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
5285         to libgcov function.
5286         (tree-profiling): Call node map init and delete function.
5287
5288 2011-04-21  Ian Lance Taylor  <iant@google.com>
5289
5290         * godump.c (go_format_type): Use exported Go name for anonymous
5291         field name.
5292
5293 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
5294
5295         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
5296         Call builtin_function_type_list instead of builtin_function_type.
5297         (UNARY, BINARY, TRINARY, QUAD): Likewise.
5298
5299 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
5300
5301         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
5302         build_function_type_list instead of build_function_type.
5303         Delete variable `endlink'.
5304
5305 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
5306
5307         * config/s390/s390.c (s390_init_builtins): Call
5308         build_function_type_list instead of build_function_type.
5309
5310 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
5311
5312         * config/ia64/ia64.c (ia64_init_builtins): Call
5313         build_function_type_list instead of builtin_function_type.
5314
5315 2011-04-21  Easwaran Raman  <eraman@google.com>
5316
5317         * cfgexpand.c (stack_var): Remove OFFSET...
5318         (add_stack_var): ...and its reference here...
5319         (expand_stack_vars): ...and here.
5320         (stack_var_cmp): Sort by descending order of size.
5321         (partition_stack_vars): Change heuristic.
5322         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
5323         (dump_stack_var_partition): Add newline after each partition.
5324
5325 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
5326             Jeff Law  <law@redhat.com>
5327
5328         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
5329         * gengtype.c (matching_file_name_substitute): Likewise.
5330
5331 2011-04-21  Richard Guenther  <rguenther@suse.de>
5332
5333         PR lto/48703
5334         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
5335
5336 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
5337
5338         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
5339
5340 2011-04-21  Richard Guenther  <rguenther@suse.de>
5341
5342         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
5343         file name.
5344
5345 2011-04-21  Richard Guenther  <rguenther@suse.de>
5346
5347         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
5348         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
5349         Use DECL_P, not SSA_VAR_P.
5350         (ptr_derefs_may_alias_p): Likewise.
5351         (ptr_deref_may_alias_ref_p_1): Likewise.
5352         (decl_refs_may_alias_p): Likewise.
5353         (refs_may_alias_p_1): Likewise.
5354         (ref_maybe_used_by_call_p_1): Likewise.
5355         (call_may_clobber_ref_p_1): Likewise.
5356         (indirect_ref_may_alias_decl_p): Assume indirect refrences
5357         are either MEM_REF or TARGET_MEM_REF.
5358         (indirect_refs_may_alias_p): Likewise.
5359         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
5360         for MEM_EXPR of indirect calls.
5361
5362 2011-04-21  Tristan Gingold  <gingold@adacore.com>
5363
5364         * vmsdbgout.c (write_srccorr): Compute file length from the string.
5365         (dst_file_info_struct): Remove flen field.
5366         (lookup_filename): Remove code that set flen field.
5367
5368 2011-04-21  Tristan Gingold  <gingold@adacore.com>
5369
5370         * config/ia64/ia64.c (ia64_start_function): Add a guard.
5371
5372 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
5373
5374         PR target/48708
5375         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
5376         vec_extract and vec_concat for non-SSE4_1 targets.
5377
5378 2011-04-21  Richard Guenther  <rguenther@suse.de>
5379
5380         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
5381         return statements.
5382
5383 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
5384
5385         * config/i386/cygming.h (union tree_node, TREE): Don't define or
5386         undefine.
5387         (FILE): Don't undefine.
5388
5389 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
5390
5391         * config/alpha/alpha.c (struct machine_function): Use rtx, not
5392         struct rtx_def *.
5393         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
5394         struct rtx_def *.
5395         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
5396         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
5397         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
5398         rtx_def *.
5399         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
5400         definitions where used.
5401         * config/microblaze/microblaze.h (struct microblaze_args): Use
5402         rtx, not struct rtx_def *.
5403         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
5404         rtx_def *.
5405         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
5406         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
5407         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
5408         not struct rtx_def *.
5409         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
5410         struct rtx_def *.
5411         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
5412         rtx_def *.
5413         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
5414
5415 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5416
5417         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
5418         operand_equal_p to compare DR_BASE_ADDRESSes.
5419         (vect_check_interleaving): Likewise.
5420
5421 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5422
5423         PR target/46329
5424         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
5425         for all Neon struct constants.
5426
5427 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5428
5429         * target.def (legitimate_constant_p): New hook.
5430         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
5431         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
5432         * doc/tm.texi: Regenerate.
5433         * hooks.h (hook_bool_mode_rtx_true): Declare.
5434         * hooks.c (hook_bool_mode_rtx_true): Define.
5435         * system.h (LEGITIMATE_CONSTANT_P): Poison.
5436         * calls.c (precompute_register_parameters): Replace uses of
5437         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
5438         (emit_library_call_value_1): Likewise.
5439         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
5440         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
5441         * ira-costs.c (scan_one_insn): Likewise.
5442         * recog.c (general_operand, immediate_operand): Likewise.
5443         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
5444         * reload1.c (init_eliminable_invariants): Likewise.
5445
5446         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
5447         mode argument.
5448         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
5449         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
5450         argument.
5451         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5452         * config/alpha/predicates.md (input_operand): Update call to
5453         alpha_legitimate_constant_p.
5454
5455         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
5456         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
5457         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
5458         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5459         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
5460         (arm_legitimate_constant_p): New functions.
5461         (arm_cannot_force_const_mem): Make static.
5462
5463         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
5464
5465         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
5466         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
5467         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
5468         instead of bfin_legitimate_constant_p.
5469         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
5470         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5471
5472         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
5473
5474         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
5475
5476         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
5477         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
5478         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5479         (frv_legitimate_constant_p): Make static.  Add a mode argument.
5480
5481         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
5482         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
5483         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
5484
5485         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
5486         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
5487         * config/i386/i386.c (legitimate_constant_p): Rename to...
5488         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
5489         argument.
5490         (ix86_cannot_force_const_mem): Update accordingly.
5491         (ix86_legitimate_address_p): Likewise.
5492         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5493         * config/i386/i386.md: Update commentary.
5494
5495         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
5496         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
5497         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5498         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
5499
5500         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
5501
5502         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
5503         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
5504         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5505         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
5506
5507         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
5508         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
5509         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
5510
5511         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
5512         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5513         (m32r_legitimate_constant_p): New function.
5514
5515         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
5516         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
5517         LEGITIMATE_CONSTANT_P.
5518         (LEGITIMATE_CONSTANT_P): Delete.
5519         * config/m68k/m68k.c (m68k_expand_prologue): Call
5520         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
5521         (m68k_legitimate_constant_p): New function.
5522         * config/m68k/m68k.md: Update comments.
5523
5524         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
5525         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5526         (mcore_legitimate_constant_p): New function.
5527
5528         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
5529         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
5530         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
5531         Add a mode argument.
5532         (mep_legitimate_address): Update accordingly.
5533         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5534
5535         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
5536         Delete.
5537         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
5538         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
5539         static.  Check OP's mode for VOIDmode.
5540         (microblaze_legitimate_constant_p): New function.
5541         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5542
5543         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
5544         * config/mips/mips.c (mips_legitimate_constant_p): New function.
5545         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
5546         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5547         * config/mips/predicates.md: Update comments.
5548
5549         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
5550         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
5551         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5552         (mmix_legitimate_constant_p): Make static, return a bool, and take
5553         a mode argument.
5554         (mmix_print_operand_address): Update accordingly.
5555
5556         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
5557         Delete.
5558         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
5559         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
5560         static.  Add a mode argument.
5561         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5562
5563         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
5564
5565         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
5566         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5567         (pa_legitimate_constant_p): New function.
5568
5569         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
5570
5571         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
5572         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5573         (pdp11_legitimate_constant_p): New function.
5574
5575         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
5576         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5577         (rs6000_legitimate_constant_p): New function.
5578
5579         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
5580         (rx_legitimate_constant_p): ...this.
5581         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
5582         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
5583         (rx_legitimate_constant_p): ...this.
5584         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5585         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
5586
5587         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
5588         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
5589         * config/s390/s390.c (legitimate_constant_p): Rename to...
5590         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
5591         and add a mode argument.
5592         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5593
5594         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
5595
5596         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
5597         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5598         (sh_legitimate_constant_p): New function.
5599
5600         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
5601         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
5602         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5603         (legitimate_constant_p): Rename to...
5604         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
5605         argument.
5606         (constant_address_p): Update accordingly.
5607
5608         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
5609         argument and return a bool.
5610         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
5611         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5612         (spu_legitimate_constant_p): Add a mode argument and return a bool.
5613         (spu_rtx_costs): Update accordingly.
5614         * config/spu/predicates.md (vec_imm_operand): Likewise.
5615
5616         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
5617
5618         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
5619         * config/v850/v850.c (v850_legitimate_constant_p): New function.
5620         (TARGET_LEGITIMATE_CONSTANT_P): Define.
5621
5622         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
5623         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
5624         * config/vax/vax.c (legitimate_constant_p): Likewise.
5625
5626         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
5627         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5628         (xtensa_legitimate_constant_p): New function.
5629
5630 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
5631
5632         * target.def (cannot_force_const_mem): Add a mode argument.
5633         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
5634         * doc/tm.texi: Regenerate.
5635         * hooks.h (hook_bool_mode_rtx_false): Declare.
5636         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
5637         (hook_bool_mode_const_rtx_true): Likewise.
5638         (hook_bool_mode_rtx_false): New function.
5639         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
5640         to be non-VOID.  Update call to cannot_force_const_mem.
5641         (find_reloads): Update accordingly.
5642         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
5643         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
5644         argument.
5645         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
5646         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
5647         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
5648         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
5649         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
5650         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
5651         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
5652         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5653         (m68k_cannot_force_const_mem): ...this new function.
5654         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
5655         argument.
5656         (mips_const_insns, mips_legitimize_const_move): Update calls.
5657         (mips_secondary_reload_class): Likewise.
5658         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5659         (pa_cannot_force_const_mem): ...this new function.
5660         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
5661         (rs6000_cannot_force_const_mem): ...this new function.
5662         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
5663         argument.
5664         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
5665         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
5666         to...
5667         (xtensa_cannot_force_const_mem): ...this new function.
5668
5669 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5670
5671         * config/mips/mips.c (mips16_build_function_stub): Call
5672         build_function_type_list instead of build_function_type.
5673         (mips16_build_call_stub): Likewise.
5674
5675 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5676
5677         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
5678         instead of build_function_type.
5679
5680 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
5681
5682         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
5683         instead of build_function_type.
5684
5685 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
5686
5687         PR target/48678
5688         * config/i386/i386.md (insv): Change operand 0 constraint to
5689         "register_operand".  Change operand 1 and 2 constraint to
5690         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
5691         * config/i386/sse.md (sse4_1_pinsrb): Export.
5692         (sse2_pinsrw): Ditto.
5693         (sse4_1_pinsrd): Ditto.
5694         (sse4_1_pinsrq): Ditto.
5695         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
5696         * config/i386/i386.c (ix86_expand_pinsr): New.
5697
5698 2011-04-20  Easwaran Raman  <eraman@google.com>
5699
5700         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
5701         containing union type only with -fstrict-aliasing.
5702
5703 2011-04-20  Jim Meyering  <meyering@redhat.com>
5704
5705         Remove useless if-before-free tests.
5706         * calls.c (expand_call, save_area): Likewise.
5707         * cfgcleanup.c (try_forward_edges): Likewise.
5708         * collect2.c (collect_execute): Likewise.
5709         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
5710         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
5711         * coverage.c (coverage_checksum_string): Likewise.
5712         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
5713         * cselib.c (cselib_init): Likewise.
5714         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
5715         (df_set_clean_cfg): Likewise.
5716         * function.c (free_after_compilation): Likewise.
5717         * gcc.c (do_spec_1, main): Likewise.
5718         * gcov.c (create_file_names): Likewise.
5719         * gensupport.c (identify_predicable_attribute): Likewise.
5720         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
5721         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
5722         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
5723         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
5724         * ipa-pure-const.c (local_pure_const): Likewise.
5725         * ipa-reference.c (propagate): Likewise.
5726         * ira-costs.c (free_ira_costs): Likewise.
5727         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
5728         * matrix-reorg.c (mat_free): Likewise.
5729         * prefix.c (get_key_value): Likewise.
5730         * profile.c (compute_value_histograms): Likewise.
5731         * reload1.c (free_reg_equiv): Likewise.
5732         * sched-deps.c (free_deps): Likewise.
5733         * sel-sched-ir.c (fence_clear): Likewise.
5734         * sese.c (set_rename, if_region_set_false_region): Likewise.
5735         * tree-data-ref.c (free_rdg): Likewise.
5736         * tree-eh.c (lower_try_finally): Likewise.
5737         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
5738         * tree-ssa-live.c (delete_var_map): Likewise.
5739         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
5740         * tree-ssa-pre.c (phi_trans_add): Likewise.
5741
5742 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
5743
5744         PR tree-optimization/48611
5745         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
5746         beyond ERT_MUST_NOT_THROW region.
5747
5748 2011-04-20  Catherine Moore  <clm@codesourcery.com>
5749
5750         * config/mips/mips.opt (mfix-24k): New.
5751         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
5752         * config/mips/mips.md (length): Increase by 4 for stores if
5753         fixing 24K errata.
5754         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
5755         all noreorder if fixing 24K errata.
5756         * doc/invoke.texi: Document mfix-24k.
5757
5758 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
5759
5760         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
5761         quad-word modes, reduce to 9-bit index range when above 1016 limit.
5762
5763 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5764
5765         * config/arm/arm.c (arm_gen_constant): Move movw support ....
5766         (const_ok_for_op): ... to here.
5767
5768 2011-04-20  Kai Tietz  <ktietz@redhat.com>
5769
5770         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5771         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5772
5773 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5774
5775         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5776
5777 2011-04-20  Richard Guenther  <rguenther@suse.de>
5778
5779         PR tree-optimization/47892
5780         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5781         are if-convertible.
5782
5783 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5784
5785         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5786
5787 2011-04-20  Tristan Gingold  <gingold@adacore.com>
5788
5789         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5790
5791 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
5792
5793         PR target/18145
5794
5795         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5796         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5797         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5798         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5799         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5800
5801         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5802         New prototype.
5803
5804         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5805         (avr_asm_named_section, avr_asm_output_aligned_common,
5806         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5807         New functions to update...
5808         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5809         (avr_asm_init_sections): Overwrite section callbacks for
5810         data_section, bss_section.
5811         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5812         from here to...
5813         (avr_file_end): ...here.
5814
5815 2011-04-20  Richard Guenther  <rguenther@suse.de>
5816
5817         PR middle-end/48695
5818         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5819         objects and types here.  Adjust for their offset before comparing.
5820
5821 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5822
5823         * tree-vect-stmts.c (vectorizable_store): Only chain one related
5824         statement per copy.
5825
5826 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5827
5828         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5829         (GIMPLE_H): Include $(INTERNAL_FN_H).
5830         (OBJS-common): Add internal-fn.o.
5831         (internal-fn.o): New rule.
5832         * internal-fn.def: New file.
5833         * internal-fn.h: Likewise.
5834         * internal-fn.c: Likewise.
5835         * gimple.h: Include internal-fn.h.
5836         (GF_CALL_INTERNAL): New gf_mask.
5837         (gimple_statement_call): Put fntype into a union with a new
5838         internal_fn field.
5839         (gimple_build_call_internal): Declare.
5840         (gimple_build_call_internal_vec): Likewise.
5841         (gimple_call_same_target_p): Likewise.
5842         (gimple_call_internal_p): New function.
5843         (gimple_call_internal_fn): Likewise.
5844         (gimple_call_fntype): Return null for internal calls.
5845         (gimple_call_set_fntype): Assert that the function is not internal.
5846         (gimple_call_set_fn): Likewise.
5847         (gimple_call_set_fndecl): Likewise.
5848         (gimple_call_set_internal_fn): New function.
5849         (gimple_call_addr_fndecl): Handle null functions.
5850         (gimple_call_return_type): Likewise null types.
5851         * gimple.c (gimple_build_call_internal_1): New function.
5852         (gimple_build_call_internal): Likewise.
5853         (gimple_build_call_internal_vec): Likewise.
5854         (gimple_call_same_target_p): Likewise.
5855         (gimple_call_flags): Handle calls to internal functions.
5856         (gimple_call_fnspec): New function.
5857         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5858         (gimple_has_side_effects): Handle null functions.
5859         (gimple_rhs_has_side_effects): Likewise.
5860         (gimple_call_copy_skip_args): Handle calls to internal functions.
5861         * cfgexpand.c (expand_call_stmt): Likewise.
5862         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5863         * gimple-fold.c (gimple_fold_call): Handle null functions.
5864         (gimple_fold_stmt_to_constant_1): Don't fold
5865         calls to internal functions.
5866         * gimple-low.c (gimple_check_call_args): Handle calls to internal
5867         functions.
5868         * gimple-pretty-print.c (dump_gimple_call): Likewise.
5869         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5870         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5871         (do_warn_unused_result): Likewise.
5872         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5873         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5874         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5875         the target of a call.
5876         (initialize_hash_element): Update accordingly.
5877         (hashable_expr_equal_p): Use gimple_call_same_target_p.
5878         (iterative_hash_hashable_expr): Handle calls to internal functions.
5879         (print_expr_hash_elt): Likewise.
5880         * tree-ssa-pre.c (can_value_number_call): Likewise.
5881         (eliminate): Handle null functions.
5882         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5883         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5884         (find_func_aliases): Likewise.
5885         * value-prof.c (gimple_ic_transform): Likewise.
5886         (gimple_indirect_call_to_profile): Likewise.
5887         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5888         * lto-streamer-out.c (output_gimple_stmt): Likewise.
5889
5890 2011-04-19  Jan Hubicka  <jh@suse.cz>
5891
5892         * ipa-inline-transform.c (save_inline_function_body): Add comments.
5893         * ipa-inline.c (inline_small_functions): Compute summaries first,
5894         populate heap later.
5895
5896 2011-04-19  Jan Hubicka  <jh@suse.cz>
5897
5898         * cgraph.h (save_inline_function_body): Remove.
5899         * ipa-inline-transform.c: New file, broke out of...
5900         * ipa-inline.c: ... this one; Update toplevel comment.
5901         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5902         make global.
5903         (update_noncloned_frequencies): Move to ipa-inline-transform.c
5904         (cgraph_mark_inline_edge): Rename to inline_call; move to
5905         ipa-inline-transform.c.
5906         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5907         move to ipa-inline-transform.c
5908         (recursive_inlining, inline_small_functions, flatten_function,
5909         ipa_inline, inline_always_inline_functions,
5910         early_inline_small_functions): Update.
5911         (inline_transform): Move to ipa-inline-transform.c.
5912         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5913         Declare.
5914         * Makefile.in (ipa-inline-transform.o): New file.
5915         * cgraphunit.c (save_inline_function_body): Move to
5916         ipa-inline-transform.c
5917
5918 2011-04-19  DJ Delorie  <dj@redhat.com>
5919
5920         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5921         registers if we already know there aren't any.
5922         (m32c_emit_epilogue): Don't emit a barrier here.
5923         (m32c_emit_eh_epilogue): Likewise.
5924         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5925         operands at expand time.
5926         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5927         int" wchar type.
5928         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5929         duplicates.  Provide aliases instead.
5930         * config/m32c/prologue.md (eh_return): Emit a barrier here.
5931         (eh_epilogue): Add a "(return)" here as a hint to other parts of
5932         the compiler.
5933
5934 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
5935
5936         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5937         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5938         (general_or_i64_p, sparc_register_move_cost): New function.
5939
5940 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5941
5942         * doc/install.texi (Configuration, --enable-threads): Remove mach.
5943         Add lynx, mipssde.  Sort table.
5944
5945 2011-04-19  Xinliang David Li  <davidxl@google.com>
5946
5947         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5948         not negative.
5949
5950 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
5951
5952         PR target/48678
5953         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5954         is a SUBREG with non-MODE_INT mode inside of it.
5955
5956 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5957
5958         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5959         also according to actual contants.
5960         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5961         (gimple_fold_call): Use it.
5962         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5963
5964 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5965
5966         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5967         non-pointer assignments.
5968
5969 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5970
5971         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5972         account anc_offset and otr_type from the indirect edge info.
5973         * ipa-prop.c (get_ancestor_addr_info): New function.
5974         (compute_complex_ancestor_jump_func): Assignment analysis moved to
5975         get_ancestor_addr_info, call it.
5976         (ipa_note_param_call): Do not initialize information about polymorphic
5977         calls, return the indirect call graph edge.  Remove the last
5978         parameter, adjust all callers.
5979         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5980         parameters.  Initialize polymorphic information in the indirect edge.
5981
5982 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5983
5984         PR lto/48148
5985         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5986         the types if they have different enumeration identifiers.
5987
5988 2011-04-19  Jan Hubicka  <jh@suse.cz>
5989
5990         * cgraph.h (cgraph_optimize_for_size_p): Declare.
5991         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5992         * predict.c (cgraph_optimize_for_size_p): Break out from ...
5993         (optimize_function_for_size_p) ... here.
5994
5995 2011-04-19  Richard Guenther  <rguenther@suse.de>
5996
5997         PR lto/48207
5998         * tree.c (free_lang_data): Do not reset the decl-assembler-name
5999         langhook.
6000
6001 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
6002
6003         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
6004         if DECL_NO_INLINE_WARNING_P is set on the function.
6005
6006 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
6007
6008         PR fortran/47976
6009         * reload1.c (inc_for_reload): Return void. All callers changed.
6010         (emit_input_reload_insns): Don't try to delete previous output
6011         reloads to a register, or record spill_reg_store for autoincs.
6012
6013 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
6014
6015         * gengtype.h: Updated copyright year.
6016         (struct input_file_st): Add inpisplugin field.
6017         (type_fileloc): New function.
6018         * gengtype.c
6019         (write_typed_struct_alloc_def): Add gcc_assert.
6020         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
6021         (write_typed_alloc_defns): Don't output for plugin files.
6022         (input_file_by_name): Clear inpisplugin field.
6023         (main): Set inpisplugin field for plugin files.
6024
6025 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
6026
6027         * gengtype-state.c (string_eq): New.
6028         (read_state): Use string_eq instead of strcmp when creating the
6029         state_ident_tab.
6030
6031 2011-04-19  Wei Guozhi  <carrot@google.com>
6032
6033         PR target/47855
6034         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
6035         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
6036         linkage.
6037         * config/arm/constraints.md (Uu): New constraint.
6038         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
6039
6040 2011-04-19  Tristan Gingold  <gingold@adacore.com>
6041
6042         * config.gcc (-*-*-*vms): Added.
6043         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
6044         definitions moved.
6045         * config/vms/vms-ld.c: New file.
6046         * config/vms/vms-ar.c: New file.
6047         * config/vms/t-vmsnative: New file.
6048
6049 2011-04-18  Xinliang David Li  <davidxl@google.com>
6050
6051         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
6052
6053 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
6054
6055         PR middle-end/48661
6056         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
6057         if TREE_TYPE (v) is non-NULL.
6058
6059         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
6060         gimple_get_virt_mehtod_for_binfo.
6061         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
6062         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
6063         callers.
6064         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
6065
6066 2011-04-18  Michael Matz  <matz@suse.de>
6067             Steve Ellcey  <sje@cup.hp.com>
6068
6069         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
6070         use its mode as source mode if it isn't VOIDmode.
6071
6072 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
6073
6074         * doc/passes.texi: Fill crossref nodes.
6075
6076 2011-04-18  Jim Meyering  <meyering@redhat.com>
6077
6078         Fix doubled-word typos in comments and strings
6079         * config/alpha/vms-unwind.h: s/for for/for/
6080         * config/arm/unwind-arm.h: Likewise.
6081         * config/microblaze/microblaze.c: Likewise.
6082         * config/sh/constraints.md: s/in in/in/
6083         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
6084
6085 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
6086
6087         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
6088         (AVX_FLOAT_MODE_P): Ditto.
6089         (AVX128_VEC_FLOAT_MODE_P): Ditto.
6090         (AVX256_VEC_FLOAT_MODE_P): Ditto.
6091         (AVX_VEC_FLOAT_MODE_P): Ditto.
6092         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
6093         (UNSPEC_MASKSTORE): Ditto.
6094         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
6095         Merge from <sse>_movmsk<ssemodesuffix> and
6096         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
6097         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
6098         iterator.
6099         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
6100         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
6101         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
6102
6103 2011-04-18  Jan Hubicka  <jh@suse.cz>
6104
6105         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
6106
6107         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
6108         (want_inline_function_called_once_p): Break out the logic from
6109         ipa_inline.
6110         (edge_badness): Ensure that profile is not misupdated.
6111         (lookup_recursive_calls): Prioritize by call frequencies.
6112         (inline_small_functions): Move program size estimates here;
6113         actually process whole queue even when unit growth has been
6114         met. (to properly compute inline_failed reasons and for the
6115         case unit size decrease.) Revisit comments on recursive inlining.
6116         (ipa_inline): Remove unit summary code; first inline hot calls
6117         of functions called once, cold calls next.
6118         (order, nnodes): Remove unused variables.
6119         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
6120         (GTFILES): Remove ipa-inline.c
6121         * sel-sched.c (fill_insns): Silence uninitialized var warning.
6122
6123 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6124
6125         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
6126
6127 2011-04-18  Jie Zhang  <jie@codesourcery.com>
6128             Richard Earnshaw  <rearnsha@arm.com>
6129
6130         * arm.c (neon_builtin_type_bits): Remove.
6131         (typedef enum neon_builtin_mode): New.
6132         (T_MAX): Don't define.
6133         (typedef enum neon_builtin_datum): Remove bits, codes[],
6134         num_vars and base_fcode.  Add mode, code and fcode.
6135         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
6136         VAR10): Change accordingly.
6137         (neon_builtin_data[]): Change accordingly
6138         (arm_init_neon_builtins): Change accordingly.
6139         (neon_builtin_compare): Remove.
6140         (locate_neon_builtin_icode): Remove.
6141         (arm_expand_neon_builtin): Change accordingly.
6142
6143         * arm.h (enum arm_builtins): Move to ...
6144         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
6145
6146         * arm.c (arm_builtin_decl): Declare.
6147         (TARGET_BUILTIN_DECL): Define.
6148         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
6149         (arm_builtin_decls[]): New.
6150         (arm_init_neon_builtins): Store builtin declarations in
6151         arm_builtin_decls[].
6152         (arm_init_tls_builtins): Likewise.
6153         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
6154         (arm_builtin_decl): New.
6155
6156 2011-04-18  Richard Guenther  <rguenther@suse.de>
6157
6158         * tree.c (upper_bound_in_type): Build properly canonicalized
6159         INTEGER_CSTs.
6160         (lower_bound_in_type): Likewise.
6161
6162 2011-04-18  Richard Guenther  <rguenther@suse.de>
6163
6164         * gimple.h (gimple_call_addr_fndecl): New function.
6165         (gimple_call_fndecl): Use it.
6166         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
6167         for direct calls.
6168         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
6169         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
6170
6171 2011-04-18  Richard Guenther  <rguenther@suse.de>
6172
6173         PR middle-end/48650
6174         * tree.c (build_string): STRING_CST is now derived from tree_typed.
6175
6176 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6177
6178         PR lto/48492
6179         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
6180         DECL_IN_CONSTANT_POOL without RTL.
6181
6182 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
6183             Ira Rosen  <ira.rosen@linaro.org>
6184
6185         PR target/48252
6186         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
6187         to match neon_vzip/vuzp/vtrn_internal.
6188         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
6189         outputs explicitly dependent on both inputs.
6190         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
6191
6192 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
6193
6194         PR tree-optimization/48616
6195         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
6196         whether the shift is by scalar or vector based on whether all SLP
6197         scalar stmts have the same rhs.
6198
6199 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
6200
6201         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
6202         memory operands.
6203
6204 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
6205
6206         PR target/43700
6207         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
6208         registers.
6209
6210 2011-04-17  Jan Hubicka  <jh@suse.cz>
6211
6212         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
6213         * cgrpahunit.c (cgraph_finalize_function): Do not set
6214         finalized_by_frontend.
6215         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
6216         finalized_by_frontend.
6217
6218 2011-04-17  Jan Hubicka  <jh@suse.cz>
6219
6220         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
6221         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
6222         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
6223         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
6224         method.
6225         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
6226         gimple-fold.c
6227         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
6228
6229 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
6230
6231         PR lto/48538
6232         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
6233         is non-null before accessing it.
6234         (input_cgraph): Remove trailing spaces.
6235
6236 2011-04-17  Revital Eres  <revital.eres@linaro.org>
6237
6238         * params.def (sms-min-sc): New param flag.
6239         * modulo-sched.c (sms_schedule): Use it.
6240         * doc/invoke.texi (sms-min-sc): Document it.
6241
6242 2011-04-17  Jan Hubicka  <jh@suse.cz>
6243
6244         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
6245         present, also set gimple_call_set_cannot_inline.
6246         * ipa-inline.c: Update toplevel comment.
6247         (MAX_TIME): Remove.
6248         (cgraph_clone_inlined_nodes): Fix linebreaks.
6249         (cgraph_check_inline_limits): Restructure to ...
6250         (caller_growth_limits): ... this one; be more tolerant
6251         on growth in nested inline chains; add explanatory comment;
6252         fix stack accounting thinko introduced by previous patch.
6253         (cgraph_default_inline_p): Remove.
6254         (report_inline_failed_reason): New function.
6255         (can_inline_edge_p): New function.
6256         (can_early_inline_edge_p): New function.
6257         (leaf_node_p): Move upwards in file.
6258         (want_early_inline_function_p): New function.
6259         (want_inline_small_function_p): New function.
6260         (want_inline_self_recursive_call_p): New function.
6261         (cgraph_edge_badness): Rename to ...
6262         (edge_badness) ... this one; fix linebreaks.
6263         (update_edge_key): Update call of edge_baddness; add
6264         detailed dump about queue updates.
6265         (update_caller_keys): Use can_inline_edge_p and
6266         want_inline_small_function_p.
6267         (cgraph_decide_recursive_inlining): Rename to...
6268         (recursive_inlining): Use can_inline_edge_p and
6269         want_inline_self_recursive_call_p; simplify and remove no longer
6270         valid FIXME.
6271         (cgraph_set_inline_failed): Remove.
6272         (add_new_edges_to_heap): Use can_inline_edge_p and
6273         want_inline_small_function_p.
6274         (cgraph_decide_inlining_of_small_functions): Rename to ...
6275         (inline_small_functions): ... this one; cleanup; use
6276         can/want predicates; cleanup debug ouput; work edges till fibheap
6277         is exhausted and do not stop once unit growth is reached; remove
6278         later loop processing remaining edges.
6279         (cgraph_flatten): Rename to ...
6280         (flatten_function): ... this one; use can_inline_edge_p
6281         and can_early_inline_edge_p predicates.
6282         (cgraph_decide_inlining): Rename to ...
6283         (ipa_inline): ... this one; remove unreachable nodes before
6284         inlining functions called once; simplify the pass.
6285         (cgraph_perform_always_inlining): Rename to ...
6286         (inline_always_inline_functions): ... this one; use
6287         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
6288         (cgraph_decide_inlining_incrementally): Rename to ...
6289         (early_inline_small_functions): ... this one; simplify
6290         using new predicates; cleanup; make dumps prettier.
6291         (cgraph_early_inlining): Rename to ...
6292         (early_inliner): newer inline regular functions into always-inlines;
6293         fix updating of call stmt summaries.
6294         (pass_early_inline): Update for new names.
6295         (inline_transform): Fix formating.
6296         (gate_cgraph_decide_inlining): Rename to ...
6297         (pass_ipa_inline): ... this one.
6298         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
6299         * ipa-inline-analysis.c (dump_inline_summary): Update.
6300         (compute_inline_parameters): Do not compute disregard_inline_limits;
6301         look for mismatching arguments.
6302         (estimate_growth): Fix handlig of non-trivial self recursion.
6303         (inline_read_summary): Do not read info->disregard_inline_limits.
6304         (inline_write_summary): Do not write info->disregard_inline_limits.
6305         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
6306         and move all checks into can_inline_edge_p predicate; re-enable code
6307         comparing optimization levels.
6308         (expand_call_inline): Do not test inline_forbidden_into_p.
6309         * Makefile.in (ipa-inline.o): Update arguments.
6310
6311 2011-04-17  Revital Eres  <revital.eres@linaro.org>
6312
6313         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
6314
6315 2011-04-17  Revital Eres  <revital.eres@linaro.org>
6316
6317         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
6318
6319 2011-04-17  Michael Matz  <matz@suse.de>
6320
6321         PR tree-optimization/48622
6322         PR lto/48645
6323         * ipa-inline-analysis.c (inline_read_summary): Read size/time
6324         in same order as they're written.
6325
6326 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6327
6328         * config/pa/predicates.md: Reorganize and simplify predicates.
6329         Eliminate duplicate code checks.
6330         (arith_operand): Rename to arith14_operand
6331         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
6332         * config/pa/pa.md: Use renamed operands.
6333         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
6334         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
6335         arith11_operand, adddi3_operand, indexed_memory_operand,
6336         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
6337         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
6338         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
6339         move_dest_operand, move_src_operand, prefetch_cc_operand,
6340         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
6341         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
6342         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
6343         div_operand, int5_operand, movb_comparison_operator,
6344         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
6345         arith_double_operand, ireg_operand, lhs_lshift_operand,
6346         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
6347         integer_store_memory_operand): Likewise.
6348         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
6349         (integer_store_memory_operand, read_only_operand,
6350         function_label_operand, borx_reg_operand,
6351         non_hard_reg_operand): Likewise.
6352         (eq_neq_comparison_operator): Delete unused operator.
6353         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
6354         function_label_operand.
6355         (emit_move_sequence): Likewise.
6356
6357 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
6358
6359         * config/i386/sse.md (sseunpackmode): New mode attribute.
6360         (ssepackmode): Ditto.
6361         (vec_pack_trunc_<mode>): Macroize expander from
6362         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
6363         (vec_unpacks_lo_<mode>): Macroize expander from
6364         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6365         (vec_unpacks_hi_<mode>): Macroize expander from
6366         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6367         (vec_unpacku_lo_<mode>): Macroize expander from
6368         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6369         (vec_unpacku_hi_<mode>): Macroize expander from
6370         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6371         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
6372         ix86_expand_sse4_unpack.
6373         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
6374
6375 2011-04-16  Jan Hubicka  <jh@suse.cz>
6376
6377         * cgraphbuild.c: Include ipa-inline.h.
6378         (reset_inline_failed): Use initialize_inline_failed.
6379         * cgraph.c: Include ipa-inline.h.
6380         (cgraph_create_node_1): Do not initialize estimated_growth.
6381         (initialize_inline_failed): More to ipa-inline-analysis.c
6382         (dump_cgraph_node): Do not dump inline flags.
6383         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
6384         and disregard_inline_limits flags.
6385         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
6386         time, size, estimated_growth.
6387         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
6388         Update.
6389         * cgraphunit.c (cgraph_decide_is_function_needed): Use
6390         DECL_DISREGARD_INLINE_LIMITS.
6391         (cgraph_analyze_function): Do not initialize
6392         node->local.disregard_inline_limits.
6393         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
6394         inlinable, versionable and disregard_inline_limits.
6395         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
6396         cgraph_check_inline_limits, cgraph_default_inline_p,
6397         cgraph_edge_badness, update_caller_keys, update_callee_keys,
6398         add_new_edges_to_heap): Update.
6399         (cgraph_decide_inlining_of_small_function): Update; set
6400         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
6401         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
6402         cgraph_decide_inlining_incrementally): Update.
6403         * ipa-inline.h (inline_summary): Add inlinable, versionable,
6404         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
6405         time, size and estimated_growth parameters.
6406         (estimate_edge_growth): Update.
6407         (initialize_inline_failed): Declare.
6408         * ipa-split.c: Include ipa-inline.h
6409         (execute_split_functions): Update.
6410         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
6411         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
6412         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
6413         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
6414         estimated_growth to INT_MIN.
6415         (inline_node_duplication_hook): Likewise.
6416         (dump_inline_summary): Dump new fields.
6417         (compute_inline_parameters): Update.
6418         (estimate_edge_time, estimate_time_after_inlining,
6419         estimate_size_after_inlining, estimate_growth, inline_read_summary,
6420         inline_write_summary):
6421         (initialize_inline_failed): Move here from cgraph.c.
6422         * tree-sra.c: Include ipa-inline.h.
6423         (ipa_sra_preliminary_function_checks): Update.
6424         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
6425         ipa-inline.h.
6426
6427 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
6428
6429         * config/i386/sse.md (V16): New mode iterator.
6430         (VI1, VI8): Ditto.
6431         (AVXMODEQI, AVXMODEDI): Remove.
6432         (sse2, sse3): New mode attribute.
6433         (mov<mode>): Use V16 mode iterator.
6434         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
6435         (push<mode>1): Use V16 mode iterator.
6436         (movmisalign<mode>): Ditto.
6437         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6438         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
6439         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6440         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
6441         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
6442         avx_movdqu<avxmodesuffix>.
6443         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
6444         *avx_movdqu<avxmodesuffix>.
6445         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
6446         avx_lddqu<avxmodesuffix>.
6447         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
6448         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
6449         avx_movnt<AVXMODEDI:mode>.
6450         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
6451         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
6452
6453 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
6454
6455         PR target/48629
6456         * haifa-sched.c (prune_ready_list, schedule_block): Use
6457         sched_pressure_p rather than flag_sched_pressure.
6458
6459 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6460
6461         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6462         cgraph_get_node instead of cgraph_get_create_node.
6463
6464 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
6465
6466         * cfgexpand.c (expand_debug_expr): Use
6467         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
6468
6469 2011-04-15  Michael Matz  <matz@suse.de>
6470
6471         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
6472         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
6473         * function.c (gimplify_parameters): Ditto.
6474         * gimplify.c (gimplify_vla_decl): Ditto.
6475
6476         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
6477         (gimple_call_set_alloca_for_var): New inline function.
6478         (gimple_call_alloca_for_var_p): Ditto.
6479         * gimple.c (gimple_build_call_from_tree): Remember
6480         CALL_ALLOCA_FOR_VAR_P state.
6481         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
6482
6483         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
6484         calls if they were for VLA objects.
6485
6486 2011-04-15  Martin Jambor  <mjambor@suse.cz>
6487
6488         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
6489         of ADR_EXPRs.
6490
6491 2011-04-15  Martin Jambor  <mjambor@suse.cz>
6492
6493         PR middle-end/48601
6494         * tree-emutls.c (lower_emutls_function_body): Call
6495         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
6496         result is non-NULL.
6497
6498 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
6499
6500         * c-decl.c (detect_field_duplicates): Call
6501         objc_detect_field_duplicates instead of objc_get_interface_ivars.
6502
6503 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
6504
6505         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
6506         * gimple.c (gimple_asm_clobbers_memory_p): Define.
6507         * ipa-pure-const.c (check_stmt): Call it.
6508         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
6509
6510 2011-04-15  Richard Guenther  <rguenther@suse.de>
6511
6512         PR tree-optimization/48290
6513         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
6514         Properly decide inhibiting propagation based on the valueized
6515         operand.  Do loop-closed SSA form preserving here ...
6516         (init_copy_prop): ... not here.
6517
6518 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
6519
6520         PR target/48612
6521         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
6522         (*ieee_smax<mode>3): Likewise.
6523
6524 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6525
6526         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
6527         Replace match_operand with match_dup for the third operand in
6528         these expanders.
6529
6530 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6531
6532         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
6533         to track processing of conditionals.  Update all callers.
6534         (try_combine, simplify_if_then_else): Update.
6535
6536 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6537
6538         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
6539         -fsched-pressure.
6540
6541 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
6542
6543         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
6544         instead of match_operand for operand 3.
6545
6546 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
6547
6548         * recog.h (insn_operand_data): Add an "allows_mem" field.
6549         * genoutput.c (output_operand_data): Initialize it.
6550         * optabs.c (maybe_legitimize_operand_same_code): New function.
6551         (maybe_legitimize_operand): Use it when matching the original
6552         op->value.
6553
6554 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6555
6556         * gimplify.c: Fix issues in comments throughout.
6557         (voidify_wrapper_expr): Fix long line.
6558         (build_stack_save_restore): Likewise.
6559         (gimplify_loop_expr): Likewise.
6560         (gimplify_compound_lval): Likewise.
6561         (gimplify_init_ctor_eval): Likewise.
6562         (gimplify_modify_expr_rhs): Likewise.
6563         (omp_notice_threadprivate_variable): Likewise.
6564
6565 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6566
6567         * cfgexpand.c (expand_call_stmt): Convert the function type to the
6568         original one if this is not a builtin function.
6569
6570 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
6571
6572         PR target/48605
6573         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
6574         offset it as needed based on top 2 bits in operands[3], change
6575         MEM mode to SFmode and mask those 2 bits away from operands[3].
6576
6577 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
6578
6579         * c-parser.c (c_parser_objc_protocol_definition): Updated for
6580         change from objc_declare_protocols() to objc_declare_protocol().
6581
6582 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
6583
6584         * config/i386/sse.md (sse4_1): New mode attribute.
6585         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
6586         avx_blend<ssemodesuffix><avxmodesuffix> and
6587         sse4_1_blend<ssemodesuffix> using VF mode iterator.
6588         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
6589         avx_blendv<ssemodesuffix><avxmodesuffix> and
6590         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
6591         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
6592         avx_dp<ssemodesuffix><avxmodesuffix> and
6593         sse4_1_dp<ssemodesuffix> using VF mode iterator.
6594         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
6595         (sse4_1_packusdw): Merge with *avx_packusdw.
6596         (sse4_1_pblendvb): Merge with *avx_pblendvb.
6597         (sse4_1_pblendw): Merge with *avx_pblendw.
6598         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
6599         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
6600         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
6601         VF mode iterator.
6602         (sse4_1_round<ssescalarmodesuffix>): Merge with
6603         *avx_round<ssescalarmodesuffix>.
6604         (aesenc): Merge with *avx_aesenc.
6605         (aesenclast): Merge with *avx_aesenclast.
6606         (aesdec): Merge with *avx_aesdec.
6607         (aesdeclast): Merge with *avx_aesdeclast.
6608         (pclmulqdq): Merge with *pclmulqdq.
6609         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
6610         New predicate.
6611         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
6612
6613 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
6614
6615         PR middle-end/48608
6616         * cfgexpand.c (get_decl_align_unit): Renamed to ...
6617         (align_local_variable): This.  Update DECL_ALIGN.
6618         (add_stack_var): Updated.
6619         (expand_one_stack_var): Likewise.
6620
6621 2011-04-14  Richard Guenther  <rguenther@suse.de>
6622
6623         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
6624         Remove.
6625         (dse_initialize_block_local_data, dse_leave_block,
6626         record_voperand_set, get_stmt_uid): Likewise.
6627         (dse_possible_dead_store_p): Allow any kind of killing stmt.
6628         (dse_optimize_stmt): Remove voperand set handling code.
6629         Simplify and improve to handle any kind of killing stmt.
6630         (dse_record_phi): Remove.
6631         (dse_enter_block): Simplify.
6632         (tree_ssa_dse): Likewise.
6633         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
6634
6635 2011-04-14  Jan Hubicka  <jh@suse.cz>
6636
6637         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
6638         * cgraph.h (struct inline_summary): Move to ipa-inline.h
6639         (cgraph_local_info): Remove inline_summary.
6640         * ipa-cp.c: Include ipa-inline.h.
6641         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
6642         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
6643         accesor.
6644         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
6645         (input_overwrite_node): Do not set inline summary.
6646         (input_node): Do not stream inline summary.
6647         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
6648         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
6649         growth; we do not have inline parameters computed for that anyway.
6650         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
6651         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
6652         (inline_summary_t): New type and VECtor.
6653         (debug_inline_summary, dump_inline_summaries): Declare.
6654         (inline_summary): Use VOCtor.
6655         (estimate_edge_growth): Kill hack computing call stmt size directly.
6656         * lto-section-in.c (lto_section_name): Add inline section.
6657         * ipa-inline-analysis.c: Include lto-streamer.h
6658         (node_removal_hook_holder, node_duplication_hook_holder): New holders
6659         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
6660         (inline_summary_vec): Define.
6661         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
6662         dump_inline_summaries): New functions.
6663         (estimate_function_body_sizes): Properly compute size/time of outgoing
6664         calls.
6665         (compute_inline_parameters): Alloc inline_summary; do not compute
6666         size/time of incomming calls.
6667         (estimate_edge_time): Avoid missing time summary hack.
6668         (inline_read_summary): Read inline summary info.
6669         (inline_write_summary): Write inline summary info.
6670         (inline_free_summary): Free all hooks and inline summary vector.
6671         * lto-streamer.h: Add LTO_section_inline_summary section.
6672         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
6673         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
6674
6675 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6676
6677         * tree-vectorizer.h (vect_strided_store_supported): Add a
6678         HOST_WIDE_INT argument.
6679         (vect_strided_load_supported): Likewise.
6680         (vect_permute_store_chain): Return void.
6681         (vect_transform_strided_load): Likewise.
6682         (vect_permute_load_chain): Delete.
6683         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
6684         count argument.  Check that the count is a power of two.
6685         (vect_strided_load_supported): Likewise.
6686         (vect_permute_store_chain): Return void.  Update after above changes.
6687         Assert that the access is supported.
6688         (vect_permute_load_chain): Likewise.
6689         (vect_transform_strided_load): Return void.
6690         * tree-vect-stmts.c (vectorizable_store): Update calls after
6691         above interface changes.
6692         (vectorizable_load): Likewise.
6693         (vect_analyze_stmt): Don't check for strided powers of two here.
6694
6695 2011-04-14  Richard Guenther  <rguenther@suse.de>
6696
6697         PR tree-optimization/48590
6698         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6699         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6700         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
6701         BUILT_IN_STACK_SAVE.
6702         * tree-ssa-dce.c (propagate_necessity): Handle
6703         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6704
6705 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
6706
6707         * c-parser.c (c_parser_objc_class_declaration): Updated call to
6708         objc_declare_class.
6709
6710 2011-04-14  Richard Guenther  <rguenther@suse.de>
6711
6712         * tree.h (get_object_alignment_1): Declare.
6713         * builtins.c (get_object_alignment_1): Split out worker from ...
6714         (get_object_alignment): ... here.
6715         * fold-const.c (get_pointer_modulus_and_residue): Use
6716         get_object_alignment_1.
6717
6718 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6719
6720         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
6721         type parameter.
6722         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
6723         parameter.  Generalise code to handle arrays as well as vectors.
6724         (vect_setup_realignment): Update accordingly.
6725         * tree-vect-stmts.c (vectorizable_store): Likewise.
6726         (vectorizable_load): Likewise.
6727
6728 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6729
6730         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
6731         within the per-copy loop.
6732
6733 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6734
6735         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
6736         in the dump file.
6737
6738 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
6739
6740         * doc/options.texi (Negative): Explicitly mention that the
6741         Negative chain must be circular.
6742
6743 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
6744
6745         * function.h (block_chainon): Declare.
6746         * function.c (block_chainon): Define.
6747
6748 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
6749             Eric Weddington  <eric.weddington@atmel.com>
6750             Georg-Johann Lay  <avr@gjlay.de>
6751
6752         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
6753         New Includes
6754         (avr_init_builtins, avr_expand_builtin,
6755         avr_expand_delay_cycles, avr_expand_unop_builtin,
6756         avr_expand_binop_builtin ): New functions.
6757         (avr_builtin_id): New enum
6758         (struct avr_builtin_description): New struct
6759         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
6760         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
6761
6762         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
6763         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
6764         UNSPECV_DELAY_CYCLES): new enumeration values
6765         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6766         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6767         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6768         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6769         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6770         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6771         "fmulsu"): New insns
6772
6773         * config/avr/avr-c.c: fix line endings
6774         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6775         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6776         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6777         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6778         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6779
6780         * doc/extend.texi (AVR Built-in Functions): New node
6781         (Target Builtins): Add documentation of AVR
6782         built-in functions.
6783
6784 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
6785
6786         PR target/44643
6787         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6788         alone. Error if non-const data has attribute progmem.
6789
6790 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6791
6792         * tree.h (struct tree_constructor): Include tree_typed instead of
6793         tree_common.
6794         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6795         TS_TYPED instead of TS_COMMON.
6796
6797 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6798
6799         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6800         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6801         (sse2_psadbw): Merge with *avx_psadbw.
6802         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6803         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6804         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6805         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6806         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6807         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6808         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6809         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6810         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6811         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6812         (ssse3_palignrti): Merge with *avx_palignrti.
6813
6814 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6815
6816         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6817         * tree-ssanames.c (fini_ssanames): VEC_free it.
6818         (make_ssa_name_fn): Update for VECness of free_ssanames.
6819         (release_ssa_name, release_dead_ssa_names): Likewise.
6820         * tree.h (struct tree_ssa_name): Include tree_typed instead of
6821         tree_common.
6822         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6823         TS_TYPED instead of TS_COMMON.
6824
6825 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6826
6827         * postreload-gcse.c (gcse_after_reload_main): Add calls to
6828         statistics_counter_event.
6829         * tree-ssa-copyrename.c (stats): Define.
6830         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
6831         statistics_counter_event.
6832         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6833         (bswap_stats, widen_mul_stats): Define.
6834         (insert_reciprocals): Increment rdivs_inserted.
6835         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
6836         rfuncs_inserted.  Add calls to statistics_counter_event.
6837         (execute_cse_sincos_1): Increment inserted.
6838         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
6839         statistics_counter_event.
6840         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
6841         of bswap_stats.  Add calls to statistics_counter_event.
6842         (convert_mult_to_widen): Increment widen_mults_inserted.
6843         (convert_plusminus_to_widen): Increment maccs_inserted.
6844         (convert_mult_to_fma): Increment fmas_inserted.
6845         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
6846         calls to statistics_counter_event.
6847
6848 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
6849
6850         PR rtl-optimization/48455
6851         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6852         `temp_costs->mem_cost'.
6853
6854 2011-04-13  Jan Hubicka  <jh@suse.cz>
6855
6856         * ipa-inline.h: New file.
6857         * ipa-inline-analysis.c: New file. Broken out of ...
6858         * ipa-inline.c: ... this file; update toplevel comment;
6859         include ipa-inline.h
6860         (inline_summary): Move to ipa-inline.h
6861         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6862         ipa-inline-analysis.c.
6863         (cgraph_estimate_time_after_inlining): Rename to
6864         estiamte_time_after_inlining; move to ipa-inline-analysis.c
6865         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6866         to estimate_edge_growth.
6867         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6868         rename to estimate_size_after_inlining.
6869         (cgraph_mark_inline_edge): Update for new naming convention.
6870         (cgraph_check_inline_limits): Likewise.
6871         (cgraph_edge_badness): Likewise.
6872         (cgraph_decide_recursive_inlining): Likewise.
6873         (cgraph_decide_inlining_of_small_functions): Likewise.
6874         (cgraph_decide_inlining_incrementally): Likewise.
6875         (cgraph_estimate_growth): Rename to estimate_growth; move to
6876         ipa-inline-analysis.c.
6877         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6878         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6879         (compute_inline_parameters): Likewise.
6880         (compute_inline_parameters_for_current): Likewise.
6881         (pass_inline_parameters): Likewise.
6882         (inline_indirect_intraprocedural_analysis): Likewise.
6883         (analyze_function): Rename to inline_analyze_function; likewise.
6884         (add_new_function): Move to ipa-inline-analysis.c.
6885         (inline_generate_summary): Likewise.
6886         (inline_read_summary): Likewise.
6887         (inline_write_summary): Likewise.
6888         * Makefile.in (ipa-inline-analysis.c): New file.
6889
6890 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6891
6892         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6893         * configure: Regenerate.
6894
6895 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6896
6897         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6898         instead of tree_common.
6899         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6900         Likewise.
6901         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6902         TS_TYPED rather than TS_COMMON.
6903         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6904
6905 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
6906
6907         PR target/45263
6908         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6909         r20 around calls of __tablejump_elpm__
6910
6911 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
6912
6913         PR middle-end/48591
6914         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6915         NULL.
6916         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6917
6918 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
6919
6920         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6921         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6922         (cfi_vec): New typedef.
6923         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6924         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6925         (cie_cfi_vec): New static variable.
6926         (cie_cfi_head): Delete.
6927         (add_cfi): Accept a cfi_vec * as first argument. All callers and
6928         declaration changed. Use vector rather than list operations.
6929         (new_cfi): Don't initialize the dw_cfi_next field.
6930         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6931         rather than list operations.
6932         (lookup_cfa): Use vector rather than list operations.
6933         (output_cfis): New argument upto. Accept a cfi_vec rather than
6934         a dw_cfi_ref list head as argument. All callers changed.
6935         Iterate over the vector using upto as a maximum index.
6936         (output_all_cfis): New static function.
6937         (output_fde): Use vector rather than list operations. Use the
6938         new upto argument for output_cfis rather than manipulating a
6939         list.
6940         (dwarf2out_begin_prologue): Change initializations to match
6941         new struct members.
6942         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6943         from the vector length rather than searching for the end of a list.
6944         Use output_all_cfis.
6945         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6946
6947 2011-04-13  Nick Clifton  <nickc@redhat.com>
6948
6949         * config/rx/rx.md (movmemsi): Do not use this pattern when
6950         volatile pointers are involved.
6951
6952 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6953
6954         * config/i386/sse.md (pinsrbits): Remove.
6955         (sse2_packsswb): Merge with *avx_packsswb.
6956         (sse2_packssdw): Merge with *avx_packssdw.
6957         (sse2_packuswb): Merge with *avx_packuswb.
6958         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6959         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6960         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6961         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6962         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6963         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6964         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6965         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6966         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6967         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6968         (sse2_loadld): Merge with *avx_loadld.
6969         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6970         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6971         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6972         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6973         (vec_concatv2di): Merge with *vec_concatv2di_avx.
6974
6975 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
6976
6977         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6978         calling TREE_CHAIN.
6979         * print-tree.c (print_node): Likewise.
6980         * tree-inline.c (copy_tree_r): Likewise.
6981         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6982         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6983         instead of TS_COMMON.
6984         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6985         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6986         (copy_node_stat): Zero TREE_CHAIN only if necessary.
6987         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6988         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6989         ...and these...
6990         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6991         * tree.h: ...here.
6992         (TREE_CHAIN): Check for a TS_COMMON structure.
6993         (TREE_TYPE): Check for a TS_TYPED structure.
6994
6995 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
6996
6997         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6998         cgraph_get_create_node instead of cgraph_node.
6999
7000 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7001
7002         * c-parser.c (c_parser_initelt): Updated call to
7003         objc_build_message_expr.
7004         (c_parser_postfix_expression): Likewise.
7005
7006 2011-04-12  Kai Tietz  <ktietz@redhat.com>
7007
7008         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
7009         MASK_MS_BITFIELD_LAYOUT bit.
7010
7011 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
7012
7013         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
7014         assert it is always true.
7015         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
7016         moves.
7017
7018 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7019
7020         * c-parser.c (c_lex_one_token): Rewritten conditional used when
7021         compiling Objective-C to be more efficient.
7022
7023 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
7024
7025         * opts-common.c (decode_cmdline_options_to_array): Remove variable
7026         argv_copied.
7027
7028 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
7029
7030         * recog.h, genoutput.c, optabs.c: Revert last patch.
7031
7032 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7033
7034         PR target/48090
7035         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
7036
7037 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
7038
7039         * recog.h (insn_operand_data): Add an "allows_mem" field.
7040         * genoutput.c (output_operand_data): Initialize it.
7041         * optabs.c (maybe_legitimize_operand_same_code): New function.
7042         (maybe_legitimize_operand): Use it when matching the original
7043         op->value.
7044
7045 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
7046
7047         * genpreds.c (process_define_predicate): Move most processing
7048         to gensupport.c.  Continue to validate the expression.
7049         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
7050         (process_define_predicate): Move processing to gensupport.c.
7051         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
7052         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
7053         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
7054         argument.
7055         (valid_predicate_name_p): New function, split out from old
7056         genpreds.c:process_define_predicate.
7057         (process_define_predicate): New function, combining code from
7058         old genpreds.c and genrecog.c functions.
7059         (process_rtx): Call it for DEFINE_PREDICATE and
7060         DEFINE_SPECIAL_PREDICATE.
7061
7062 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
7063
7064         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
7065         size of a '%A' memory reference.
7066         (T_DREG, T_QREG): New neon_builtin_type_bits.
7067         (arm_init_neon_builtins): Assert that the load and store operands
7068         are neon_struct_operands.
7069         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
7070         (NEON_ARG_MEMORY): New builtin_arg.
7071         (neon_dereference_pointer): New function.
7072         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
7073         Handle NEON_ARG_MEMORY.
7074         (arm_expand_neon_builtin): Update after above interface changes.
7075         Use NEON_ARG_MEMORY for loads and stores.
7076         * config/arm/predicates.md (neon_struct_operand): New predicate.
7077         * config/arm/iterators.md (V_two_elem): Tweak formatting.
7078         (V_three_elem): Use BLKmode for accesses that have no associated mode.
7079         (V_four_elem): Tweak formatting.
7080         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
7081         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
7082         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
7083         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
7084         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
7085         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
7086         (neon_vst4<mode>): Replace pointer operand with a memory operand.
7087         Use %A in the output template.
7088         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
7089         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
7090         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
7091         the width of the memory access.  Remove post-increment.
7092         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
7093
7094 2011-04-12  Nick Clifton  <nickc@redhat.com>
7095
7096         * config/v850/v850.c (expand_prologue): Do not use the CALLT
7097         instruction for interrupt handlers if the target is the basic V850
7098         architecture.
7099         (expand_epilogue): Likewise.
7100
7101 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
7102
7103         PR rtl-optimization/48549
7104         * combine.c (propagate_for_debug): Also stop after BB_END of
7105         this_basic_block.  Process LAST and just stop processing after it.
7106         (combine_instructions): If last_combined_insn has been deleted,
7107         set last_combined_insn to its PREV_INSN.
7108
7109 2011-04-12  Richard Guenther  <rguenther@suse.de>
7110
7111         PR tree-optimization/46076
7112         * gimple.h (struct gimple_statement_call): Add fntype field.
7113         (gimple_call_fntype): Adjust.
7114         (gimple_call_set_fntype): New function.
7115         * gimple.c (gimple_build_call_1): Set the call function type.
7116         * gimplify.c (gimplify_call_expr): Preserve the function
7117         type the frontend used for the call.
7118         (gimplify_modify_expr): Likewise.
7119         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
7120         function type.
7121         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
7122         function type.
7123         * tree-ssa.c (useless_type_conversion_p): Function pointer
7124         conversions are useless.
7125
7126 2011-04-12  Martin Jambor  <mjambor@suse.cz>
7127
7128         * cgraph.h (cgraph_node): Remove function declaration.
7129         (cgraph_create_node): Declare.
7130         (cgraph_get_create_node): Likewise.
7131         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
7132         Updated all callers.
7133         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
7134         the decl does not already exist.  Call cgraph_get_create_node instead
7135         of cgraph_node.
7136         (cgraph_get_create_node): New function.
7137         (cgraph_same_body_alias): Update comment.
7138         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
7139         assert it does not return NULL.
7140         (cgraph_update_edges_for_call_stmt): Likewise.
7141         (cgraph_clone_edge): Likewise.
7142         (cgraph_create_virtual_clone): Likewise.
7143         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
7144         instead of cgraph_node.
7145         (cgraph_add_new_function): Call cgraph_create_node or
7146         cgraph_get_create_node instead of cgraph_node.
7147         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
7148         instead of cgraph_node.
7149         (record_eh_tables): Likewise.
7150         (mark_address): Likewise.
7151         (mark_load): Likewise.
7152         (build_cgraph_edges): Call cgraph_get_create_node instead
7153         of cgraph_node.
7154         (rebuild_cgraph_edges): Likewise.
7155         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
7156         instead of cgraph_node.
7157         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
7158         cgraph_node.
7159         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
7160         cgraph_create_node instead of cgraph_node.
7161         * c-decl.c (finish_function): Call cgraph_get_create_node instead
7162         of cgraph_node.
7163         * lto-cgraph.c (input_node): Likewise.
7164         * lto-streamer-in.c (input_function): Likewise.
7165         * varasm.c (mark_decl_referenced): Likewise.
7166         (assemble_alias): Likewise.
7167
7168 2011-04-12  Martin Jambor  <mjambor@suse.cz>
7169
7170         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
7171         instead of cgraph_node and assert it does not return NULL.
7172         * lto-streamer-in.c (lto_read_body): Likewise.
7173         * omp-low.c (new_omp_context): Likewise.
7174         (create_task_copyfn): Likewise.
7175         * tree-emutls.c (lower_emutls_function_body): Likewise.
7176         * matrix-reorg.c (transform_allocation_sites): Likewise.
7177
7178 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
7179
7180         PR c/48552
7181         * c-typeck.c (build_asm_expr): Error out on attempts to use
7182         void type outputs or inputs for constraints that allow reg or
7183         don't allow memory.
7184
7185 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
7186             Richard Earnshaw  <rearnsha@arm.com>
7187
7188         PR target/48250
7189         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
7190         to use sign-magnitude offsets. Reject unsupported unaligned
7191         cases. Add detailed description in comments.
7192         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
7193         condition from TARGET_32BIT to TARGET_ARM.
7194
7195 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
7196
7197         * tree.h (struct typed_tree): New.
7198         (struct tree_common): Include it instead of tree_base.
7199         (TREE_TYPE): Update for new location of type field.
7200         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
7201         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
7202         (union tree_node): Add typed field.
7203         * treestruct.def (TS_TYPED): New.
7204         * lto-streamer.c (check_handled_ts_structures): Handle it.
7205         * tree.c (MARK_TS_TYPED): New macro.
7206         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
7207
7208 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
7209
7210         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
7211         (force_nonfallthru): Do not alter the loop nest if no basic block
7212         was created.
7213
7214 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
7215
7216         * config/i386/sse.md (VI): New mode iterator.
7217         (SSEMODEI): Remove.
7218         (AVX256MODEI): Ditto.
7219         (AVXMODEF4P): Ditto.
7220         (avxvecpsmode): Ditto.
7221         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
7222         (sse2_andnot<mode>3): New expander.
7223         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
7224         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
7225         (<any_logic:code><mode>3): Use VI mode iterator.
7226         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
7227         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
7228         (*andnottf3): Handle AVX three-operand constraints.
7229         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
7230
7231 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7232             Robert Millan  <rmh@gnu.org>
7233
7234         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
7235         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
7236         GNU_USER_DYNAMIC_LINKER64): Define.
7237         (REG_NAME): Don't undefine.
7238         (MD_UNWIND_SUPPORT): Undefine.
7239         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
7240         (REG_NAME): Don't undefine.
7241         (MD_UNWIND_SUPPORT): Undefine.
7242         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
7243
7244 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7245
7246         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
7247         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
7248
7249 2011-04-11  Xinliang David Li  <davidxl@google.com>
7250
7251         * value-profile.c (check_ic_target): New function.
7252         (gimple_ic_transform): Sanity check indirect call target.
7253         * gimple-low.c (gimple_check_call_args): Interface change.
7254         (gimple_check_call_matching_types): New function.
7255         * tree-inline.c (tree_can_inline_p): Call new function.
7256
7257 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
7258
7259         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
7260         tree-pretty-print.h & realmpfr.h.
7261
7262 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
7263
7264         PR middle-end/48464
7265         * ira.c (setup_pressure_classes): Fix typo in loop condition.
7266         (setup_allocno_and_important_classes): Ditto.
7267
7268 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7269
7270         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
7271         GNU_USER_DYNAMIC_LINKER.
7272         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
7273         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7274         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
7275         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7276         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7277         GNU_USER_TARGET_OS_CPP_BUILTINS.
7278         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
7279         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7280         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7281         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7282         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
7283         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7284         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7285         GNU_USER_TARGET_OS_CPP_BUILTINS.
7286         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7287         GNU_USER_DYNAMIC_LINKER.
7288         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7289         GNU_USER_TARGET_OS_CPP_BUILTINS.
7290         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
7291         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7292         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
7293         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7294         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
7295         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
7296         GNU_USER_DYNAMIC_LINKER64): Remove.
7297         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
7298         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7299         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7300         GNU_USER_DYNAMIC_LINKER.
7301         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7302         GNU_USER_TARGET_OS_CPP_BUILTINS.
7303         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7304         GNU_USER_TARGET_OS_CPP_BUILTINS.
7305         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
7306         to GNU_USER_TARGET_OS_CPP_BUILTINS.
7307         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7308         GNU_USER_TARGET_OS_CPP_BUILTINS.
7309         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
7310         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
7311         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
7312         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
7313         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7314         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7315         GNU_USER_DYNAMIC_LINKER.
7316         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7317         GNU_USER_TARGET_OS_CPP_BUILTINS.
7318         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
7319         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7320         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7321         GNU_USER_DYNAMIC_LINKER.
7322         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7323         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7324         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
7325         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7326         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7327         GNU_USER_DYNAMIC_LINKER.
7328         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
7329         GNU_USER_DYNAMIC_LINKERN32.
7330         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
7331         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
7332         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
7333         GNU_USER_DYNAMIC_LINKER32.
7334         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
7335         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7336         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7337         GNU_USER_DYNAMIC_LINKER.
7338         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7339         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7340         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
7341         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7342         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7343         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
7344         GNU_USER_DYNAMIC_LINKER32.
7345         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
7346         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
7347         GNU_USER_DYNAMIC_LINKER.
7348         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
7349         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7350         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
7351         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
7352         GNU_USER_DYNAMIC_LINKER64.
7353         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
7354         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7355         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7356         GNU_USER_DYNAMIC_LINKER.
7357         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
7358         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7359         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7360         GNU_USER_DYNAMIC_LINKER.
7361         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
7362         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7363         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
7364         GNU_USER_DYNAMIC_LINKER32.
7365         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
7366         GNU_USER_DYNAMIC_LINKER64.
7367         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
7368         GNU_USER_DYNAMIC_LINKER64.
7369         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
7370         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7371         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
7372         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7373         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7374
7375 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7376
7377         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
7378         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
7379         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
7380         GNU_USER_DYNAMIC_LINKER.
7381         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
7382         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
7383         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
7384         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
7385         GNU_USER_DYNAMIC_LINKER64.
7386         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
7387         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
7388         GNU_USER_LINK_EMULATION.
7389         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
7390         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
7391         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
7392         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
7393         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
7394         CPP_SPEC, CC1_SPEC): Remove.
7395         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
7396         (GNU_USER_DYNAMIC_LINKER): Define.
7397         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
7398         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
7399         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
7400         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
7401         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
7402         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
7403         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
7404         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
7405         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
7406         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
7407         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
7408         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
7409         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
7410         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
7411         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
7412         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
7413         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7414         GNU_USER_DYNAMIC_LINKER.
7415         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7416         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
7417         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7418         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
7419         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7420         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
7421         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
7422         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
7423         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
7424         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
7425
7426 2011-04-11  Kai Tietz  <ktietz@redhat.com>
7427
7428         PR target/9601
7429         PR target/11772
7430         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
7431         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
7432         comment.
7433         (ix86_is_msabi_thiscall): Removed.
7434         (ix86_is_type_thiscall): Likewise.
7435         (ix86_get_callcvt): New function.
7436         (ix86_comp_type_attributes): Simplify check.
7437         (ix86_function_regparm): Use ix86_get_callcvt for calling
7438         convention attribute checks.
7439         (ix86_return_pops_args): Likewise.
7440         (ix86_static_chain): Likewise.
7441         (x86_this_parameter): Likewise.
7442         (x86_output_mi_thunk): Likewise.
7443         (ix86_function_type_abi): Optimize check for types without attributes.
7444         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
7445         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
7446         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
7447         by flag-values.
7448         (IX86_BASE_CALLCVT): Helper macro.
7449         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
7450         Use ix86_get_callcvt for calling convention attribute checks and avoid
7451         symbol-decoration for stdcall in TARGET_RTD case.
7452         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
7453         Likewise.
7454         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
7455         for declaration.
7456
7457 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
7458
7459         * config/i386/sse.md (VI_128): New mode iterator.
7460         (VI12_128): Rename from SSEMODE12.
7461         (VI14_128): Rename from SSEMODE14.
7462         (VI124_128): New mode iterator.
7463         (VI24_128): Rename from SSEMODE248.
7464         (VI248_128): Rename from SSEMODE248.
7465         (SSEMODE124C8): Remove.
7466         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7467         (*sse2_<plusminus_insn><mode>3): Merge with
7468         *avx_<plusminus_insn><mode>3.
7469         (*mulv8hi3): Merge with *avx_mulv8hi3.
7470         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
7471         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
7472         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
7473         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
7474         (ashr<mode>3): Merge with *avx_ashr<mode>3.
7475         (lshr<mode>3): Merge with *avx_lshr<mode>3.
7476         (ashl<mode>3): Merge with *avx_ashl<mode>3.
7477         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
7478         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
7479         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7480         (*<smaxmin:code>v8hi3): Ditto.
7481         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
7482         (*<smaxmin:code>v16qi3): Ditto.
7483         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
7484         (*sse2_eq<mode>3): Ditto.
7485         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
7486         (*sse2_gt<mode>3): Ditto.
7487         (vcondv2di): Split out of vcond<mode>.
7488         (vconduv2di): Split out of vcondu<mode>.
7489
7490 2011-04-11  Richard Guenther  <rguenther@suse.de>
7491
7492         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
7493         before calling tree_low_cst.
7494
7495 2011-04-11  Richard Guenther  <rguenther@suse.de>
7496
7497         * stor-layout.c (layout_type): Compute all array index size operations
7498         in the original type.
7499         (initialize_sizetypes): Add comment.
7500         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
7501
7502 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
7503
7504         * common.opt (Tbss=, Tdata=, Ttext=): New options.
7505
7506 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7507
7508         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
7509         of cgraph_node, handle NULL return value.
7510         (cgraph_global_info): Likewise.
7511         (cgraph_rtl_info): Likewise.
7512         * tree-inline.c (estimate_num_insns): Likewise.
7513         * gimplify.c (unshare_body): Likewise.
7514         (unvisit_body): Likewise.
7515         (gimplify_body): Likewise.
7516         * predict.c (optimize_function_for_size_p): Likewise.
7517         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7518         (call_may_clobber_ref_p_1): Likewise.
7519         * varasm.c (function_section_1): Likewise.
7520         (assemble_start_function): Likewise.
7521
7522 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7523
7524         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
7525         of cgraph_node.
7526         * final.c (rest_of_clean_state): Likewise.
7527         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
7528         * passes.c (pass_init_dump_file): Likewise.
7529         (execute_all_ipa_transforms): Likewise.
7530         (function_called_by_processed_nodes_p): Likewise.
7531         * predict.c (maybe_hot_frequency_p): Likewise.
7532         (probably_never_executed_bb_p): Likewise.
7533         (compute_function_frequency): Likewise.
7534         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
7535         (unnest_nesting_tree_1): Likewise.
7536         (lower_nested_functions): Likewise.
7537         * tree-optimize.c (execute_fixup_cfg): Likewise.
7538         (tree_rest_of_compilation): Likewise.
7539         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
7540         * tree-sra.c (ipa_early_sra): Likewise.
7541         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
7542         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
7543         * ipa.c (record_cdtor_fn): Likewise.
7544         * ipa-inline.c (cgraph_early_inlining): Likewise.
7545         (compute_inline_parameters_for_current): Likewise.
7546         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
7547         * ipa-pure-const.c (local_pure_const): Likewise.
7548         * ipa-split.c (split_function): Likewise.
7549         (execute_split_functions): Likewise.
7550         * cgraphbuild.c (build_cgraph_edges): Likewise.
7551         (rebuild_cgraph_edges): Likewise.
7552         (cgraph_rebuild_references): Likewise.
7553         (remove_cgraph_callee_edges): Likewise.
7554         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
7555         (verify_cgraph_node): Likewise.
7556         (cgraph_analyze_functions): Likewise.
7557         (cgraph_preserve_function_body_p): Likewise.
7558         (save_inline_function_body): Likewise.
7559         (save_inline_function_body): Likewise.
7560         * tree-inline.c (copy_bb): Likewise.
7561         (optimize_inline_calls): Likewise.
7562
7563 2011-04-11  Martin Jambor  <mjambor@suse.cz>
7564
7565         PR tree-optimization/48195
7566         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
7567         ipa_check_create_edge_args.
7568         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
7569         ipa_check_create_edge_args.
7570         * ipa-inline.c (inline_generate_summary): Do not call
7571         ipa_check_create_node_params and ipa_check_create_edge_args.
7572         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
7573         ipa_check_create_edge_args.
7574
7575 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
7576
7577         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
7578         instead of loop.
7579         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
7580         * function.c (record_hard_reg_sets): Likewise.
7581         * ira.c (compute_regs_asm_clobbered): Likewise.
7582         * sched-deps.c (sched_analyze_1): Likewise.
7583         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
7584
7585 2011-04-09  Xinliang David Li  <davidxl@google.com>
7586
7587         PR tree-optimization/PR48484
7588         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
7589         has_valid_pred lazily
7590
7591 2011-04-09  Duncan Sands  <baldrick@free.fr>
7592
7593         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
7594
7595 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
7596
7597         * combine.c (combine_validate_cost): Adjust comments.  Set registered
7598         cost of I0 to zero at the end, if any.
7599
7600 2011-04-08  Xinliang David Li  <davidxl@google.com>
7601
7602         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
7603         to insane profile data.
7604
7605 2011-04-08  Xinliang David Li  <davidxl@google.com>
7606
7607         * ipa-cp.c (ipcp_update_profiling): Correct
7608          negative scale factor due to insane profile data.
7609
7610 2011-04-08  Xinliang David Li  <davidxl@google.com>
7611
7612         * final.c (dump_basic_block_info): New function.
7613         (final): Dump basic block.
7614         (final_scan_insn): Remove old dump.
7615
7616 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
7617
7618         PR target/47829
7619         * config.gcc (i386-*-freebsd): Disable unwind table generation for
7620         crtbegin/crtend.
7621
7622 2011-04-08  Michael Matz  <matz@suse.de>
7623
7624         PR middle-end/48389
7625         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
7626         functions.
7627         (rebuild_jump_labels): Call rebuild_jump_labels_1.
7628         * rtl.h (rebuild_jump_labels_chain): Declare.
7629         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
7630         insns inserted on edges.
7631
7632 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
7633
7634         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
7635         * config/arm/arm-arches.def: New.
7636         * config/arm/arm-opts.h: New.
7637         * config/arm/genopt.sh: New.
7638         * config/arm/arm-tables.opt: New (generated).
7639         * config/arm/arm.c (arm_handle_option, arm_target_help,
7640         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
7641         (all_architectures): Get most table contents from arm-arches.def.
7642         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
7643         arm_selected_tune here.
7644         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
7645         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
7646         (march=, mcpu=, mtune=): Use Enum and Var.
7647         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
7648         (arm.o): Update dependencies.
7649
7650 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
7651
7652         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
7653         of header_file.
7654         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
7655         (write_typed_alloc_defns): Likewise.
7656         (main): Calls write_typed_alloc_defns with output_header.
7657
7658 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
7659
7660         PR inline-asm/48435
7661         * ira-color.c (setup_profitable_hard_regs): Add comments.
7662         Don't take prohibited hard regs into account.
7663         (setup_conflict_profitable_regs): Rename to
7664         get_conflict_profitable_regs.
7665         (check_hard_reg_p): Check prohibited hard regs.
7666
7667 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
7668
7669         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
7670         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
7671         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
7672
7673 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7674
7675         PR target/48366
7676         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
7677         move from floating point to shift amount register.
7678         (emit_move_sequence): Remove secondary reload support for floating
7679         point to shift amount amount register copies.
7680         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
7681         amount register copies.
7682         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
7683         register, return false if mode isn't a scalar integer mode.
7684         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
7685
7686 2011-04-08  Richard Guenther  <rguenther@suse.de>
7687
7688         * gimple.c (gimple_call_flags): Remove kludge.
7689
7690 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7691
7692         * sel-sched.c (sel_region_init): Move call to
7693         sel_setup_region_sched_flags after setup_current_loop_nest.
7694
7695 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
7696
7697         PR rtl-optimization/48272
7698         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
7699         init_insn_reg_pressure_info.  Adjust a caller.
7700         * sched-int.h (init_insn_reg_pressure_info): Declare.
7701         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
7702         when sched-pressure is enabled.
7703
7704 2011-04-08  Richard Guenther  <rguenther@suse.de>
7705
7706         * gimple.c (gimple_set_modified): Do not queue calls to
7707         MODIFIED_NORETURN_CALLS here ...
7708         * tree-ssa-operands.c (update_stmt_operands): ... but here.
7709
7710 2011-04-08  Richard Guenther  <rguenther@suse.de>
7711
7712         PR lto/48467
7713         * toplev.c (lang_dependent_init): Do not open asm_out_file
7714         in WPA mode, nor perform debug machinery initialization.
7715         (finalize): Do not unlink asm_out_file in WPA mode.
7716
7717 2011-04-08  Richard Guenther  <rguenther@suse.de>
7718
7719         * gimple.h (gimple_call_fntype): New function.
7720         (gimple_call_return_type): Use it.
7721         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
7722         * gimple-low.c (gimple_check_call_args): Likewise.
7723         * gimple.c (gimple_call_flags): Likewise.
7724         (gimple_call_arg_flags): Likewise.
7725         (gimple_call_return_flags): Likewise.
7726         * tree-cfg.c (verify_gimple_call): Likewise.
7727         (do_warn_unused_result): Likewise.
7728         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7729         * value-prof.c (gimple_ic_transform): Fix fndecl check.
7730
7731 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
7732
7733         PR rtl-optimization/48235
7734         * sel-sched.c (code_motion_process_successors): Recompute the last
7735         insn in basic block if control flow changed.
7736         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
7737         Update condition for ilist_remove.
7738
7739 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7740
7741         PR rtl-optimization/48302
7742         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
7743         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
7744         it to record added preheader blocks.
7745         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
7746         on to sel_add_loop_preheaders.
7747         (sel_region_init): Move call to setup_current_loop_nest after
7748         sel_init_bbs.
7749
7750 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7751
7752         PR target/48273
7753         * cfgloop.h (loop_has_exit_edges): New helper.
7754         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
7755         non-clonable.
7756         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
7757         that have no exit edges.
7758
7759 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7760
7761         PR rtl-optimization/48442
7762         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
7763         all callers.  Adjust assert.
7764
7765 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
7766
7767         PR tree-optimization/48377
7768         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7769         is_packed to true even for types with smaller TYPE_ALIGN than
7770         TYPE_SIZE.
7771
7772 2011-04-08  Richard Guenther  <rguenther@suse.de>
7773
7774         PR bootstrap/48513
7775         * doc/tm.texi: Re-generate.
7776
7777 2011-04-08  Wei Guozhi  <carrot@google.com>
7778
7779         PR target/47855
7780         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7781         * config/arm/arm.c (arm_attr_length_push_multi): New function.
7782         * config/arm/arm.md (*push_multi): Change the length computation to
7783         call a C function.
7784
7785 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
7786
7787         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7788         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7789         * doc/tm.texi: Regenerate.
7790         * system.h (ASM_OUTPUT_BSS): Poison.
7791         * varasm.c (asm_output_bss): Remove function.
7792         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7793
7794         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7795         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7796         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7797         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7798         Likewise.
7799         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7800         Likewise.
7801         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7802         Likewise.
7803         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7804
7805 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7806
7807         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7808         EnumValue lines.
7809
7810 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7811
7812         * config/m68k/m68k.c (m68k_handle_option): Don't handle
7813         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7814         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7815         OPT_mcpu32.
7816         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7817         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7818         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7819         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7820         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7821         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7822         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7823         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7824         options.  Don't map other m68k options manually.  Don't handle
7825         old-style options as canonical.
7826         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7827         * doc/install.texi (m68k-*-*): Document binutils version requirement.
7828
7829 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7830
7831         * basic-block.h (force_nonfallthru): Move to...
7832         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7833         (force_nonfallthru): ...here.
7834         * cfghooks.c (force_nonfallthru): New function.
7835         * cfgrtl.c (force_nonfallthru): Rename into...
7836         (rtl_force_nonfallthru): ...this.
7837         (commit_one_edge_insertion): Do not set AUX field.
7838         (commit_edge_insertions): Do not discover new basic blocks.
7839         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7840         (cfg_layout_rtl_cfg_hooks): Likewise.
7841         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7842         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
7843         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7844
7845 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
7846
7847         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7848         Remove macros.
7849
7850 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
7851
7852         * config/i386/sse.md: Update copyright year.
7853         (avxcvtvecmode): Remove.
7854         (sse_movhlps): Merge with *avx_movhlps.
7855         (sse_movlhps): Merge with *avx_movlhps.
7856         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7857         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7858         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7859         (sse_loadhps): Merge with *avx_loadhps.
7860         (sse_storelps): Merge with *avx_storelps.
7861         (sse_loadlps): Merge with *avx_loadlps.
7862         (sse_movss): Merge with *avx_movss.
7863         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7864         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7865         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7866         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7867         (vec_set<mode>_0): Ditto.
7868         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7869         (sse4_1_insertps): Merge with *avx_insertps.
7870         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7871         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7872         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7873         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7874         (sse2_storehpd): Merge with *avx_storehpd.
7875         (sse2_loadhpd): Merge with *avx_loadhpd.
7876         (sse2_loadlpd): Merge with *avx_loadlpd.
7877         (sse2_movsd): Merge with *avx_movsd.
7878         (*vec_concatv2df): Merge with *vec_concatv2df.
7879
7880 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
7881
7882         PR debug/48343
7883         * combine.c (combine_instructions): Add last_combined_insn,
7884         update it if insn is after it, pass it to all try_combine calls.
7885         (try_combine): Add last_combined_insn parameter, pass it instead of
7886         i3 to propagate_for_debug.
7887
7888 2011-04-07  Nick Clifton  <nickc@redhat.com>
7889
7890         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7891         to handle MDR <-> data register transfers.
7892         (movhi_internal): Likewise.
7893
7894 2011-04-07  Alan Modra  <amodra@gmail.com>
7895
7896         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7897         previous stack info.
7898
7899 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7900
7901         PR target/43920
7902         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
7903         flow_find_cross_jump.  Swap variables to implement backward replacement.
7904         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7905
7906 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7907
7908         PR target/43920
7909         * cfgcleanup.c (walk_to_nondebug_insn): New function.
7910         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
7911         and bb2.
7912         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7913         src1 or src2.  Redirect edges to the last basic block.  Update
7914         frequency and count on multiple basic blocks in case of fallthru.
7915
7916 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7917
7918         PR target/43920
7919         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7920         function.
7921         (old_insns_match_p): Change return type.  Replace return false/true
7922         with return dir_none/dir_both.  Use can_replace_by.
7923         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
7924         direction from dir_p.  Register replacement direction in dir, last_dir
7925         and afterlast_dir.  Handle new return type of old_insns_match_p using
7926         merge_dir.  Return replacement direction in dir_p.
7927         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7928         return type of old_insns_match_p.
7929         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7930         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7931         flow_find_cross_jump.
7932         * basic-block.h (enum replace_direction): New type.
7933         (flow_find_cross_jump): Add parameter to declaration.
7934
7935 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7936
7937         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7938         (AVXMODEDCVTPS2DQ): Ditto.
7939         (VEC_FLOAT_MODE): Ditto.
7940         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
7941         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7942         (<any_logic:code><mode>3): Use VF mode iterator.
7943         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7944         Use VF mode iterator.
7945         (copysign<mode>3): Use VF mode iterator.
7946         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
7947         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7948         (*<any_logic:code><MODEF:mode>3): Merge with
7949         *avx_<any_logic:code><MODEF:mode>3.
7950         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7951         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7952         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7953         (avx_cvtdq2ps<avxmodesuffix>): Remove.
7954         (sse2_cvtdq2ps): Use %v modifier.
7955         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7956         (avx_cvtps2dq<avxmodesuffix>): Remove.
7957         (sse2_cvtps2dq): Use %v modifier.
7958         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7959         (avx_cvttps2dq<avxmodesuffix>): Remove.
7960         (sse2_cvttps2dq): Use %v modifier.
7961         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7962         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7963         (sse2_cvtsd2siq): Fix insn template.
7964         (sse2_cvtsd2siq_2): Ditto.
7965         (sse2_cvttsd2siq): Ditto.
7966         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7967         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7968
7969 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7970
7971         * gcov-io.c: Use GCC Runtime Library Exception.
7972
7973 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
7974
7975         PR debug/48466
7976         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7977         as base_reg whatever register reg has been eliminated to, instead
7978         of hardcoding STACK_POINTER_REGNUM.
7979
7980 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7981
7982         * doc/tm.texi.in: Document C target hooks as separate from general
7983         target hooks.
7984         * doc/tm.texi: Regenerate.
7985         * genhooks.c (struct hook_desc): Add docname field.
7986         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
7987         docname field.
7988         (hook_array): Include c-target.def.
7989         (emit_documentation): Use docname field in output.
7990         (emit_init_macros): Take docname argument.  Only emit definitions
7991         for hooks matching docname.
7992         (main): Expect additional arguments in all cases.  Pass argument
7993         to emit_init_macros.
7994         * target.def: Move initial macro definitions and comments to
7995         target-hooks-macros.h.
7996         (gcc_targetcm): Move to c-family/c-target.def.
7997         * target.h (targetcm): Move declaration to c-family/c-target.h.
7998         * targhooks.c (default_handle_c_option): Move to
7999         c-family/c-opts.c.
8000         * targhooks.h (default_handle_c_option): Move declaration to
8001         c-family/c-common.h.
8002         * target-hooks-macros.h: New file.
8003         * config.gcc (target_has_targetcm): Define and use to add to
8004         c_target_objs and cxx_target_objs.
8005         * config/default-c.c: New file.
8006         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
8007         of target.h and target-def.h.
8008         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
8009         (darwin_objc_construct_string, darwin_cfstring_ref_p,
8010         darwin_check_cfstring_format_arg): Make static.
8011         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
8012         TARGET_STRING_OBJECT_REF_TYPE_P,
8013         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
8014         * config/darwin-protos.h (darwin_objc_construct_string,
8015         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
8016         declare.
8017         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
8018         TARGET_STRING_OBJECT_REF_TYPE_P,
8019         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
8020         * config/t-darwin (darwin-c.o): Update dependencies.
8021         * system.h (TARGET_HAS_TARGETCM): Poison.
8022         * Makefile.in (TARGET_H): Update.
8023         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
8024         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
8025         (default-c.o): New target.
8026         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
8027         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
8028         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
8029         c-target.def.
8030         (build/genhooks.o): Update dependencies.
8031
8032 2011-04-06  Richard Guenther  <rguenther@suse.de>
8033
8034         * ipa-inline.c (enum inlining_mode): Remove.
8035         (cgraph_flatten): Use some other token.
8036         (cgraph_edge_early_inlinable_p): New function, split out from ...
8037         (cgraph_perform_always_inlining): New function, split out from ...
8038         (cgraph_decide_inlining_incrementally): ... here.
8039         (cgraph_mark_inline_edge): Adjust.
8040         (cgraph_early_inlining): Re-structure.
8041         (pass_early_inline): Require SSA form.
8042
8043 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
8044             Julian Brown  <julian@codesourcery.com>
8045             Mark Shinwell  <shinwell@codesourcery.com>
8046
8047         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
8048         LO_REGS only for Thumb-1.
8049         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
8050         be used in short instructions when optimising for size on Thumb-2.
8051
8052 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
8053
8054         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
8055         associated with user returns to be preserved.
8056
8057 2011-04-06  Tristan Gingold  <gingold@adacore.com>
8058
8059         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
8060         symbol_queue_size, DBXOUT_DECR_NESTING,
8061         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
8062         if XCOFF_DEBUGGING_INFO.
8063
8064 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
8065
8066         * config/i386/i386.md (attribute isa): New.
8067         (attribute enabled): New.
8068         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
8069         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
8070         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
8071         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
8072         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
8073         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8074         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
8075         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
8076
8077         * config/i386/sse.md (VF): New mode iterator.
8078         (VF1): Ditto.
8079         (VF2): Ditto.
8080         (VF_128): Ditto.
8081         (SSEMODEF4): Remove.
8082         (attribute sse): Handle V8SF and V4DF modes.
8083         (<absneg:code><mode>2): Use VF mode iterator.
8084         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
8085         mode iterator.
8086         (<plusminus_insn><mode>3): Use VF mode iterator.
8087         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
8088         Use VF mode iterator.
8089         (<sse>_vm<plusminus_insn><mode>3): Merge with
8090         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
8091         (mul<mode>3): Use VF mode iterator.
8092         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
8093         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
8094         mode iterator.
8095         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
8096         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
8097         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
8098         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
8099         mode iterator.
8100         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
8101         Use VF1 mode iterator.
8102         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
8103         (sqrt<VF2:mode>2): New expander.
8104         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
8105         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
8106         and sqrtv2df2.  Use VF mode iterator.
8107         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
8108         mode iterator.
8109         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
8110         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
8111         Use VF1 mode iterator.
8112         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
8113         (<smaxmin:code><mode>3): Use VF mode iterator.
8114         (*<smaxmin:code><mode>3_finite): Merge with
8115         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
8116         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8117         (<sse>_vm<smaxmin:code><mode>2): Merge with
8118         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
8119         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
8120         mode iterator.
8121         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
8122         mode iterator.
8123         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
8124         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
8125         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
8126         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
8127         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
8128         VF mode iterator.
8129         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
8130         Use VF_128 mode iterator.
8131         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
8132         mode iterator.
8133         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
8134         VF_128 mode iterator.
8135         (vcond<mode>): Use VF mode iterator.
8136         * config/i386/predicates.md (sse_comparison_operator): Merge with
8137         avx_comparison_float_operator.  Do not declare as special_predicate.
8138         * config/i386/i386.c (struct builtin_description): Update for renamed
8139         compare patterns.
8140         (ix86_expand_args_builtin): Ditto.
8141         (ix86_expand_sse_compare_mask): Ditto.
8142
8143 2011-04-06  Richard Guenther  <rguenther@suse.de>
8144
8145         * tree-inline.c (estimate_num_insns): For calls simply account
8146         for all passed arguments and a used return value.
8147
8148 2011-04-06  Richard Guenther  <rguenther@suse.de>
8149
8150         PR tree-optimization/47663
8151         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
8152         call_stmt_time fields.
8153         (cgraph_edge_inlinable_p): Declare.
8154         (cgraph_edge_recursive_p): New inline function.
8155         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
8156         (cgraph_clone_edge): Copy it.
8157         * ipa-inline.c (cgraph_estimate_edge_time): New function.
8158         Account for call stmt time.
8159         (cgraph_estimate_time_after_inlining): Take edge argument.
8160         (cgraph_estimate_edge_growth): Account call stmt size.
8161         (cgraph_estimate_size_after_inlining): Take edge argument.
8162         (cgraph_mark_inline_edge): Adjust.
8163         (cgraph_check_inline_limits): Likewise.
8164         (cgraph_recursive_inlining_p): Remove.
8165         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
8166         (cgraph_decide_recursive_inlining): Take edge argument and
8167         adjust.
8168         (cgraph_decide_inlining_of_small_functions): Do not avoid
8169         diags for recursive inlining here.
8170         (cgraph_flatten): Adjust.
8171         (cgraph_decide_inlining_incrementally): Likewise.
8172         (estimate_function_body_sizes): Remove call cost handling.
8173         (compute_inline_parameters): Initialize caller edge call costs.
8174         (cgraph_estimate_edge_growth): New function.
8175         (cgraph_estimate_growth): Use it.
8176         (cgraph_edge_badness): Likewise.
8177         (cgraph_check_inline_limits): Take an edge argument.
8178         (cgraph_decide_inlining_of_small_functions): Adjust.
8179         (cgraph_decide_inlining): Likewise.
8180         * tree-inline.c (estimate_num_insns): Only account for call
8181         return value if it is used.
8182         (expand_call_inline): Avoid diagnostics on recursive inline
8183         functions here.
8184         * lto-cgraph.c (lto_output_edge): Output edge call costs.
8185         (input_edge): Input edge call costs.
8186
8187 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8188
8189         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
8190
8191 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
8192
8193         * doc/invoke.texi (Spec Files): Fix typo.
8194
8195 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
8196
8197         * profile.c (branch_prob): Move declaration of local variable.  Remove
8198         obsolete ??? comment.  Expand the location explicitly instead of using
8199         the LOCATION_FILE and LOCATION_LINE macros.
8200
8201 2011-04-06  Wei Guozhi  <carrot@google.com>
8202
8203         PR target/47855
8204         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
8205         (arm_cond_branch): Likewise.
8206         (arm_cond_branch_reversed): Likewise.
8207         (arm_jump): Likewise.
8208         (push_multi): Likewise.
8209         * config/arm/constraints.md (Py): New constraint.
8210
8211 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8212
8213         PR bootstrap/48471
8214         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
8215         Move these...
8216         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
8217         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
8218         #ifdef DBX_DEBUGGING_INFO.
8219
8220 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
8221
8222         PR bootstrap/48403
8223         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
8224         if old and new states differ.
8225
8226 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
8227
8228         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
8229         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
8230         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
8231         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
8232         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
8233         mcfv4e): Use Alias.
8234         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
8235         ColdFire options to -mcpu= options.
8236
8237 2011-04-05  Jeff Law  <law@redhat.com>
8238
8239         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
8240         check if BB is a successor of LOOP->header and return
8241         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
8242
8243 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8244
8245         * cprop.c (struct reg_use): Remove.
8246         (reg_use_table): Make an array of RTX.
8247         (find_used_regs, constprop_register, local_cprop_pass,
8248         bypass_block): Simplify users of reg_use_table.
8249         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
8250         on one of the uses found by find_used_regs.
8251
8252 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8253
8254         PR bootstrap/48469
8255         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
8256         declaration.
8257
8258 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8259
8260         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
8261         as an rtx.
8262         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
8263
8264 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8265
8266         PR middle-end/48441
8267         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
8268
8269 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8270
8271         * combine.c: Include obstack.h.
8272         (struct insn_link): Define.
8273         (uid_log_links): Adjust type.
8274         (FOR_EACH_LOG_LINK): New macro.
8275         (insn_link_obstack): Declare.
8276         (alloc_insn_link): Define.
8277         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
8278         type of link variables.
8279         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
8280         (try_combine, record_promoted_values, distribute_notes): Likewise.
8281         (distribute_links): Likewise.  Tweak prototype.
8282         (clear_log_links): Delete.
8283         (adjust_for_new_dest): Call alloc_insn_link.
8284         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
8285
8286 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8287
8288         * gcse.c (modify_mem_list): Convert to an array of VECs.
8289         (canon_modify_mem_list, compute_transp): Tweak formatting.
8290         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
8291         (load_killed_in_block_p): Likewise.
8292         (record_last_mem_set_info): Likewise.
8293         (clear_modify_mem_tables): Likewise.
8294
8295 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8296
8297         PR middle-end/48461
8298         * function.c (emit_use_return_register_into_block): Only define if
8299         HAVE_return.
8300
8301 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
8302
8303         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
8304
8305 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
8306
8307         * config/rx/rx-opts.h: New.
8308         * config/rx/rx.c (rx_cpu_type): Remove.
8309         (rx_handle_option): Don't assert that global structures are in
8310         use.  Access variables via opts pointer.  Defer most handling of
8311         OPT_mint_register_.  Use error_at.
8312         (rx_option_override): Handle deferred OPT_mint_register_ here.
8313         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
8314         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
8315         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
8316         (rx_cpu_types): New Enum and EnumValue entries.
8317         (mint-register=): Use Defer and use Var accordingly.
8318
8319 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8320
8321         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
8322         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
8323         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
8324         Move these...
8325         (debug_free_queue, debug_nesting, symbol_queue_index):
8326         ...and these...
8327         * dbxout.c: ...to here.  Make static.
8328
8329 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
8330
8331         * gcse.c (modify_pair): Define.  Define a VEC of it.
8332         (canon_modify_mem_list): Convert to an array of VECs.
8333         (free_insn_expr_list_list): Delete.
8334         (clear_modify_mem_tables): Call VEC_free instead.
8335         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
8336         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
8337         (canon_list_insert, compute_transp): Likewise.
8338
8339 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8340
8341         PR target/43920
8342         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
8343         for size.
8344
8345 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8346
8347         PR target/43920
8348         * function.c (emit_use_return_register_into_block): New function.
8349         (thread_prologue_and_epilogue_insns): Use
8350         emit_use_return_register_into_block.
8351
8352 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8353
8354         PR target/43920
8355         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
8356         insn.
8357
8358 2011-04-05  Tom de Vries  <tom@codesourcery.com>
8359
8360         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
8361
8362 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
8363
8364         * config/arm/arm.md (define_constants for unspec): Replace with
8365         define_c_enum.
8366         (define_constants for unspecv): Replace with define_c_enum.
8367         * config/arm/neon.md (define_constants for unspec): Replace with
8368         define_c_enum.
8369
8370 2011-04-04  Richard Henderson  <rth@redhat.com>
8371
8372         PR bootstrap/48400
8373         * dwarf2out.c (output_line_info): Always emit line info from
8374         at least one section.
8375         (dwarf2out_init): Create text_section_line_info here ...
8376         (set_cur_line_info_table): ... not here.
8377
8378 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
8379
8380         PR target/48380
8381         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
8382         not called.
8383
8384         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
8385
8386 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
8387
8388         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
8389         (expr_equiv_p): Remove.
8390         (insert_set_in_table): Look at <dest, src> pair instead of expr.
8391         (hash_scan_set): Update call to insert_set_in_table.
8392         (dump_hash_table): Dump <dest, src> pair.
8393         (lookup_set): Simplify.  Lookup <dest, src> pair.
8394         (compute_transp): Remove, fold heavily simplified code into...
8395         (compute_local_properties): ...here.  Expect COMP and TRANSP
8396         unconditionally.
8397         (find_avail_set): Take set directly from struct expr.
8398         (find_bypass-set): Likewise.
8399         (bypass_block): Likewise.
8400         (cprop_insn): Likewise.  Remove redundant INSN_P test.
8401
8402         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
8403         checks on form of COND from find_implicit_sets to here.
8404         (find_implicit_sets): Cleanup control flow. Split critical edges
8405         if it exposes implicit sets.  Allocate/resize implicit_sets as
8406         necessary.
8407         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
8408         changed something.  Run df_analyze after find_implicit_sets if any
8409         edges were split.  Do not allocate implicit_sets here.
8410
8411         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
8412         (gcse_obstack): Renamed to cprop_obstack.
8413         (GNEW, GNEWVEC, GNEWVAR): Remove.
8414         (gmalloc): Remove.
8415         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
8416         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
8417         (gcse_alloc): Likewise, and rename to cprop_alloc.
8418         (alloc_gcse_men, free_gcse_mem): Remove.
8419         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
8420         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
8421         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
8422
8423         * cprop.c (oprs_not_set_p): Remove.
8424         (mark_set, mark_clobber): Remove.
8425         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
8426         (reg_not_set_p): New function.
8427         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
8428         (cprop_insn): Likewise.
8429         (cprop_jump): Use FOR_EACH_EDGE.
8430
8431 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
8432
8433         PR bootstrap/48403
8434         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
8435         (rank_for_schedule): Use scheduled_insns vector instead of
8436         last_scheduled_insn.
8437         (ok_for_early_queue_removal): Likewise.
8438         (queue_to_ready): Search forward in nonscheduled_insns_begin if
8439         we have a dbg_cnt.
8440         (choose_ready): Likewise.
8441         (commit_schedule): Use VEC_iterate.
8442         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
8443         a dbg_cnt, use it and ensure the first insn is in the ready list.
8444         (haifa_sched_init): Allocate scheduled_insns.
8445         (sched_extend_ready_list): Don't allocate it; reserve space.
8446         (haifa_sched_finish): Free it.
8447
8448 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
8449
8450         * optc-gen.awk: Always remove type from Variable entry before
8451         recording in var_seen.
8452
8453 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
8454
8455         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
8456         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
8457         call to tidy_fallthru_edges.
8458
8459 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
8460
8461         * doc/options.texi (ToLower): Document.
8462         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
8463         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
8464         * opts.h (cl_option): Add cl_tolower field.
8465         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
8466         arguments with lowercase strings.
8467         * config/rx/rx.opt (mcpu=): Add ToLower.
8468         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
8469         argument.
8470
8471 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
8472
8473         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
8474
8475 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
8476
8477         * config/vax/vax.c: Include reload.h.
8478
8479 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
8480
8481         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
8482         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8483         (sparc_preferred_reload_class): New function.
8484
8485 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
8486
8487         PR debug/48401
8488         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8489         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
8490
8491 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
8492
8493         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
8494         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
8495
8496 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
8497
8498         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
8499         (ASM_OUTPUT_ALIGNED_BSS): Define.
8500
8501 2011-04-03  Michael Matz  <matz@suse.de>
8502
8503         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
8504         and next_slot members.
8505         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
8506         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
8507         (lto_streamer_cache_append): Declare.
8508         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
8509         unsigned index, remove offset parameter, ensure that we append
8510         or update existing entries.
8511         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
8512         parameter, update next_slot for append.
8513         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
8514         parameter.
8515         (lto_streamer_cache_insert_at): Likewise.
8516         (lto_streamer_cache_append): New function.
8517         (lto_streamer_cache_lookup): Use unsigned index.
8518         (lto_streamer_cache_get): Likewise.
8519         (lto_record_common_node): Don't test tree_node_can_be_shared.
8520         (preload_common_node): Adjust call to lto_streamer_cache_insert.
8521         (lto_streamer_cache_delete): Don't free offsets member.
8522         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
8523         (lto_output_string_with_length): Use lto_output_data_stream.
8524         (lto_output_tree_header): Remove ix parameter, don't write it.
8525         (lto_output_builtin_tree): Likewise.
8526         (lto_write_tree): Adjust callers to above, don't track and write
8527         offset, write unsigned index.
8528         (output_unreferenced_globals): Don't emit all global vars.
8529         (write_global_references): Use unsigned indices.
8530         (lto_output_decl_state_refs): Likewise.
8531         (write_symbol): Likewise.
8532         * lto-streamer-in.c (lto_input_chain): Move earlier.
8533         (input_function): Use unsigned index.
8534         (input_alias_pairs): Don't read and then ignore all global vars.
8535         (lto_materialize_tree): Remove ix_p parameter, don't read index,
8536         don't pass it back, use lto_streamer_cache_append.
8537         (lto_register_var_decl_in_symtab): Use unsigned index.
8538         (lto_register_function_decl_in_symtab): Likewise.
8539         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
8540         index.
8541         (lto_get_builtin_tree): Don't read index, use
8542         lto_streamer_cache_append.
8543         (lto_read_tree): Adjust call to lto_materialize_tree.
8544
8545         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
8546         don't use function calls in arguments to MIN.
8547
8548         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
8549         twice.
8550
8551         * gimple.c (gimple_type_leader_entry): Mark deletable.
8552
8553 2011-04-03  Alan Modra  <amodra@gmail.com>
8554
8555         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
8556
8557 2011-04-03  Michael Matz  <matz@suse.de>
8558
8559         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
8560         an integer.
8561         * tree.h (tree_decl_non_common.vindex): Adjust comment.
8562
8563 2011-04-03  Michael Matz  <matz@suse.de>
8564
8565         * cgraphbuild.c (record_reference): Canonicalize constructor values.
8566         * gimple-fold.c (canonicalize_constructor_val): Accept being called
8567         without function context.
8568         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
8569         current_function_decl and cfun.
8570
8571 2011-04-03  Michael Matz  <matz@suse.de>
8572
8573         * tree.c (decl_init_priority_insert): Don't create entry for
8574         default priority.
8575         (decl_fini_priority_insert): Ditto.
8576         (fields_compatible_p, find_compatible_field): Remove.
8577         * tree.h (fields_compatible_p, find_compatible_field): Remove.
8578         * gimple.c (gimple_compare_field_offset): Adjust block comment.
8579
8580 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
8581
8582         * combine.c (try_combine): Remove useless local variable.
8583
8584 2011-04-03  Richard Guenther  <rguenther@suse.de>
8585             Ira Rosen  <ira.rosen@linaro.org>
8586
8587         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
8588         non-variable offsets and compare the remaining bases of the two
8589         accesses instead of looking for exact same data-ref.
8590
8591 2011-04-02  Kai Tietz  <ktietz@redhat.com>
8592
8593         PR target/48416
8594         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
8595
8596         * i386.c (ix86_is_msabi_thiscall): New helper function.
8597         (ix86_is_type_thiscall): New helper function.
8598         (ix86_comp_type_attributes): Handle thiscall for method-functions
8599         special.
8600         (init_cumulative_args): Likewise.
8601         (find_drap_reg): Likewise.
8602         (ix86_static_chain): Likewise.
8603         (x86_this_parameter): Likewise.
8604         (x86_output_mi_thunk): Likewise.
8605
8606 2011-04-01  Olivier Hainque  <hainque@adacore.com>
8607             Nicolas Setton  <setton@adacore.com>
8608             Eric Botcazou  <ebotcazou@adacore.com>
8609
8610         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
8611         (add_gnat_descriptive_type_attribute): New function.
8612         (gen_array_type_die): Call it.
8613         (gen_enumeration_type_die): Likewise.
8614         (gen_struct_or_union_type_die): Likewise.
8615         (modified_type_die): Likewise.
8616         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
8617         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
8618         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
8619
8620 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
8621
8622         PR bootstrap/48148
8623         * dwarf2out.c (resolve_addr): Don't call force_decl_die
8624         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
8625
8626         Revert:
8627         2011-03-17  Richard Guenther  <rguenther@suse.de>
8628
8629         PR bootstrap/48148
8630         * lto-cgraph.c (input_overwrite_node): Clear the abstract
8631         origin for decls in other ltrans units.
8632         (input_varpool_node): Likewise.
8633
8634 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
8635
8636         PR middle-end/48335
8637         * expr.c (expand_assignment): Handle all possibilities
8638         if TO_RTX is CONCAT.
8639         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
8640         (store_split_bit_field): If SUBREG_REG (op0) or
8641         op0 itself has smaller mode than word, return it
8642         for offset 0 and const0_rtx for out-of-bounds stores.
8643         If word is const0_rtx, skip it.
8644
8645 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
8646
8647         * config/h8300/h8300.c (print_operand_address): Rename to...
8648         (h8300_print_operand_address): ...this. Make static. Adjust comments.
8649         Call h8300_print_operand and h8300_print_operand_address instead of
8650         print_operand and print_operand_address. Declare.
8651         (print_operand): Renake to...
8652         (h8300_print_operand): ...this. Make static. Adjust comments.
8653         Call h8300_print_operand instead of print_operand. Declare.
8654         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
8655         (h8300_register_move_cost): Likewise.
8656         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
8657         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
8658         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
8659         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
8660         * config/h8300/h8300-protos.h (print_operand): Delete.
8661         (print_operand_address): Delete.
8662
8663 2011-04-01  Richard Henderson  <rth@redhat.com>
8664
8665         PR 48400
8666         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
8667         in strict mode before dwarf4.  Re-order tests to early out
8668         before switching sections.
8669
8670 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
8671
8672         * config/h8300/constraints.md: New file.
8673         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
8674         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
8675         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
8676         * config/h8300/predicates.md (bit_operand): Likewise.
8677         (incdec_operand): Use satisfies_constraint_M and
8678         satisfies_constraint_O.  Don't use C code block.
8679         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
8680         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
8681         (compute_mov_length): Use satisfies_constraint_G.
8682         (fix_bit_operand): Use satisfies_constraint_U.
8683         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
8684         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
8685         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
8686         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
8687         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
8688         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
8689         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8690         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
8691         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
8692         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
8693         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
8694         (EXTRA_MEMORY_CONSTRAINT): Delete.
8695
8696 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
8697             Michael Meissner  <meissner@linux.vnet.ibm.com>
8698
8699         PR target/48262
8700         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
8701         operands, as per the specifications.
8702
8703         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
8704         (vec_extract_evenv4sf): Ditto.
8705         (vec_extract_evenv8hi): Ditto.
8706         (vec_extract_evenv16qi): Ditto.
8707         (vec_extract_oddv4si): Ditto.
8708
8709 2011-03-31  Mark Wielaard  <mjw@redhat.com>
8710
8711         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
8712         high_pc attribute if the CU has no associated code. Only output
8713         DW_AT_entry_pc for CU if not generating strict dwarf and
8714         dwarf_version < 4.
8715
8716 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
8717
8718         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
8719         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
8720         out of ...
8721         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
8722         * final.c (final_start_function): Call the new function rather
8723         than using a NULL argument for dwarf2out_frame_debug.
8724
8725         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
8726         that contains the prologue.
8727
8728         * haifa-sched.c (queue_insn): New arg REASON.  All callers
8729         changed.  Print it in debugging output.
8730
8731         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
8732
8733         * sched-ebb.c (begin_schedule_ready): Remove second argument.
8734         Split most of the code into...
8735         (begin_move_insn): ... here.  New function.
8736         (ebb_sched_info): Add a pointer to it.
8737         * haifa-sched.c (scheduled_insns): New static variable.
8738         (sched_extend_ready_list): Allocate it.
8739         (schedule_block): Use it to record the order of scheduled insns.
8740         Perform RTL changes to move insns only after all scheduling
8741         decisions have been made.
8742         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
8743         begin_move_insn field.
8744         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
8745         * sched-int.h (struct haifa_sched_info): Remove second argument
8746         from begin_schedule_ready hook.  Add new member begin_move_insn.
8747         * sched-rgn.c (begin_schedule_ready): Remove second argument.
8748         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
8749
8750         * haifa-sched.c (prune_ready_list): New function, broken out of
8751         schedule_block.
8752         (schedule_block): Use it.
8753
8754 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8755
8756         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
8757
8758 2011-04-01  Kai Tietz  <ktietz@redhat.com>
8759
8760         * config.gcc (*-*-mingw*): Allow as option the
8761         posix threading model.
8762         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
8763         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
8764         definition.
8765         (CPP_SPEC): Add pthread/no-pthread handling.
8766         (LIB_SPEC): Likewise.
8767         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8768         (LIB_SPEC): Likewise.
8769         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8770         flag to pass -pthread option for shared libgcc build.
8771         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8772         for shared libgcc build.
8773         * config/i386/t-mingw-pthread: New file.
8774         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8775         New define to enable use of library pthread by default.
8776         * config/i386/mingw.opt (pthread): New driver option.
8777         (no-pthread): New driver option.
8778         * config/i386/cygming.opt: Make sure trailing empty line is retained.
8779         * config/i386/mingw-w64.opt: Likewise.
8780
8781 2011-04-01  Gary Funck  <gary@intrepid.com>
8782
8783         * c-decl.c (grokdeclarator): Fix formatting.
8784
8785 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8786
8787         * expr.c (emit_block_move_via_movmem): Use n_generator_args
8788         instead of n_operands.
8789         (set_storage_via_setmem): Likewise.
8790         * optabs.c (maybe_gen_insn): Likewise.
8791         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8792         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8793         (mips_expand_builtin_direct): Likewise.
8794         * config/spu/spu.c (expand_builtin_args): Likewise.
8795
8796 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8797
8798         * recog.h (insn_data_d): Add n_generator_args.
8799         * genoutput.c (data): Likewise.
8800         (output_insn_data): Print it.
8801         (max_opno, num_dups): Delete.
8802         (scan_operands): Just fill in "d->operand[...]".
8803         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8804
8805 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8806
8807         * gensupport.h (pattern_stats): New structure.
8808         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8809         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8810         (max_operand_1, max_operand_vec): Delete.
8811         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8812
8813 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
8814
8815         * emit-rtl.c (emit_pattern_after_setloc): New function.
8816         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8817         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8818         (emit_pattern_after): New function.
8819         (emit_insn_after, emit_jump_insn_after): Call it.
8820         (emit_call_insn_after, emit_debug_insn_after): Likewise.
8821         (emit_pattern_before_setloc): New function.
8822         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8823         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8824         Likewise.
8825         (emit_pattern_before): New function.
8826         (emit_insn_before, emit_jump_insn_before): Call it.
8827         (emit_call_insn_before, emit_debug_insn_before): Likewise.
8828
8829 2011-03-31  Richard Henderson  <rth@redhat.com>
8830
8831         * dwarf2out.c (dw_separate_line_info_ref): Remove.
8832         (dw_separate_line_info_entry): Remove.
8833         (enum dw_line_info_opcode): New.
8834         (dw_line_info_entry): Use it.
8835         (dw_line_info_table, dw_line_info_table_p): New.
8836         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8837         (line_info_table, line_info_label_num): Remove.
8838         (line_info_table_in_use): Remove.
8839         (separate_line_info_table): Remove.
8840         (separate_line_info_table_allocated): Remove.
8841         (separate_line_info_table_in_use): Remove.
8842         (LINE_INFO_TABLE_INCREMENT): Remove.
8843         (line_info_label_num): New.
8844         (cur_line_info_table): New.
8845         (text_section_line_info, cold_text_section_line_info): New.
8846         (separate_line_info): New.
8847         (SEPARATE_LINE_CODE_LABEL): Remove.
8848         (print_dwarf_line_table): Remove.
8849         (debug_dwarf): Don't dump it.
8850         (output_one_line_info_table): New.
8851         (output_line_info): Use it.
8852         (new_line_info_table): New.
8853         (set_cur_line_info_table): New.
8854         (dwarf2out_switch_text_section): Use it.
8855         (dwarf2out_begin_function): Likewise.
8856         (push_dw_line_info_entry): New.
8857         (dwarf2out_source_line): Rewrite for new line info tables.
8858         (dwarf2out_init): Remove dead initailizations.
8859
8860 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8861
8862         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
8863         various flags.
8864         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8865         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8866         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8867         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8868         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8869         * opt-functions.awk (flag_init, switch_bit_fields): New.
8870         (switch_flags): Don't handle flags moved to bit-fields.  Don't
8871         generate CL_MISSING_OK or CL_SAVE.
8872         * optc-gen.awk: Update to generate bit-field output as well as
8873         flags field.
8874         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8875         bit-field instead of CL_REJECT_DRIVER flag.
8876         * opts-common.c (generate_canonical_option,
8877         decode_cmdline_option): Use bit-fields instead of CL_* flags.
8878         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8879         instead of CL_REJECT_NEGATIVE flag.
8880         * toplev.c (print_switch_values): Use cl_report bit-field instead
8881         of CL_REPORT flag.
8882
8883 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8884
8885         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8886         a zero minimum index only if it is redundant.
8887
8888 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
8889
8890         PR rtl-optimization/48381
8891         * ira-color.c (assign_hard_reg): Use hard reg set intersection
8892         instead of ira_class_hard_reg_index for calculating conflicting
8893         hard registers.
8894
8895 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
8896
8897         * cprop.c: Clean up hash table building.
8898         (reg_avail_info): Remove.
8899         (oprs_available_p): Remove.
8900         (record_last_reg_set_info): Remove.
8901         (record_last_set_info): Remove.
8902         (reg_available_p): New function.
8903         (gcse_constant_p): Do not treat unfolded conditions as constants.
8904         (make_set_regs_unavailable): New function.
8905         (hash_scan_set): Simplify with new reg_available_p.
8906         (compute_hash_table_work): Traverse insns stream only once.
8907         Do not compute reg_avail_info. Traverse insns in reverse order.
8908         Record implicit sets after recording explicit sets from the block.
8909
8910 2011-03-31  Michael Matz  <matz@suse.de>
8911
8912         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8913
8914 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
8915
8916         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8917         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8918         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8919         (h8300_mode_dependent_address_p): New function.
8920         (h8300_get_index): Make static.
8921
8922 2011-03-31  Jeff Law  <law@redhat.com>
8923
8924         * reload1.c (elimination_effects): Fix typo in recent change.
8925
8926         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8927         typo potentially leading to null pointer dereference.
8928
8929         * caller-save.c (new_saved_hard_reg): Eliminate return value.
8930         (setup_save_areas): Corresponding changes to avoid useless
8931         assignments.
8932
8933         * jump.c (reversed_comparison_code_parts): Avoid successive return
8934         statements when REVERSE_CONDITION is defined.
8935
8936         * expr.c (expand_assignment): Avoid useless assignments.
8937         (expand_expr_real_1): Likewise.
8938         (expand_expr_real_2): Avoid useless statements.
8939
8940         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8941
8942         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8943
8944         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8945         statements.
8946
8947         * stmt.c (expand_expr_stmt): Avoid useless assignment.
8948
8949 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8950
8951         PR target/47109
8952         * doc/tm.texi.in (TARGET_VERSION): Remove.
8953         * doc/tm.texi: Regenerate.
8954         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8955         * collect2.c (main): Don't use TARGET_VERSION.
8956         * mips-tdump.c (main): Don't use TARGET_VERSION.
8957         * mips-tfile.c (main): Don't use TARGET_VERSION.
8958         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8959         * config/rs6000/vxworksae.h: Remove.
8960         * config/alpha/alpha.h (TARGET_VERSION): Remove.
8961         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8962         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8963         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8964         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8965         * config/arm/arm.h (TARGET_VERSION): Remove.
8966         * config/arm/coff.h (TARGET_VERSION): Remove.
8967         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8968         * config/arm/elf.h (TARGET_VERSION): Remove.
8969         * config/arm/freebsd.h (TARGET_VERSION): Remove.
8970         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8971         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8972         * config/arm/pe.h (TARGET_VERSION): Remove.
8973         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8974         * config/arm/semi.h (TARGET_VERSION): Remove.
8975         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8976         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8977         * config/arm/vxworks.h (TARGET_VERSION): Remove.
8978         * config/avr/avr.h (TARGET_VERSION): Remove.
8979         * config/bfin/bfin.h (TARGET_VERSION): Remove.
8980         * config/fr30/fr30.h (TARGET_VERSION): Remove.
8981         * config/frv/frv.h (TARGET_VERSION): Remove.
8982         * config/h8300/h8300.h (TARGET_VERSION): Remove.
8983         * config/i386/cygwin.h (TARGET_VERSION): Remove.
8984         * config/i386/darwin.h (TARGET_VERSION): Remove.
8985         * config/i386/darwin64.h (TARGET_VERSION): Remove.
8986         * config/i386/djgpp.h (TARGET_VERSION): Remove.
8987         * config/i386/freebsd.h (TARGET_VERSION): Remove.
8988         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8989         * config/i386/gnu.h (TARGET_VERSION): Remove.
8990         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8991         * config/i386/i386elf.h (TARGET_VERSION): Remove.
8992         * config/i386/linux.h (TARGET_VERSION): Remove.
8993         * config/i386/linux64.h (TARGET_VERSION): Remove.
8994         * config/i386/lynx.h (TARGET_VERSION): Remove.
8995         * config/i386/mingw32.h (TARGET_VERSION): Remove.
8996         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8997         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8998         * config/i386/netware.h (TARGET_VERSION): Remove.
8999         * config/i386/nto.h (TARGET_VERSION): Remove.
9000         * config/i386/openbsd.h (TARGET_VERSION): Remove.
9001         * config/i386/vxworks.h (TARGET_VERSION): Remove.
9002         * config/ia64/elf.h (TARGET_VERSION): Remove.
9003         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
9004         * config/ia64/hpux.h (TARGET_VERSION): Remove.
9005         * config/ia64/linux.h (TARGET_VERSION): Remove.
9006         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
9007         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
9008         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
9009         * config/lm32/lm32.h (TARGET_VERSION): Remove.
9010         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
9011         * config/m32c/m32c.h (TARGET_VERSION): Remove.
9012         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
9013         * config/m32r/m32r.h (TARGET_VERSION): Remove.
9014         * config/m68k/linux.h (TARGET_VERSION): Remove.
9015         * config/m68k/m68k.h (TARGET_VERSION): Remove.
9016         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
9017         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
9018         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
9019         * config/mep/mep.h (TARGET_VERSION): Remove.
9020         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
9021         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
9022         * config/mips/iris6.h (MACHINE_TYPE): Remove.
9023         * config/mips/linux.h (TARGET_VERSION): Remove.
9024         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
9025         * config/mips/vxworks.h (TARGET_VERSION): Remove.
9026         * config/mmix/mmix.h (TARGET_VERSION): Remove.
9027         * config/mn10300/linux.h (TARGET_VERSION): Remove.
9028         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
9029         * config/pa/pa.h (TARGET_VERSION): Remove.
9030         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
9031         * config/picochip/picochip.h (TARGET_VERSION): Remove.
9032         * config/rs6000/aix.h (TARGET_VERSION): Remove.
9033         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
9034         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
9035         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
9036         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
9037         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
9038         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
9039         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
9040         * config/rs6000/linux.h (TARGET_VERSION): Remove.
9041         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
9042         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
9043         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
9044         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
9045         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
9046         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
9047         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
9048         * config/s390/linux.h (TARGET_VERSION): Remove.
9049         * config/s390/s390.h (TARGET_VERSION): Remove.
9050         * config/s390/tpf.h (TARGET_VERSION): Remove.
9051         * config/score/score.h (TARGET_VERSION): Remove.
9052         * config/sh/linux.h (TARGET_VERSION): Remove.
9053         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
9054         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
9055         * config/sh/sh.h (TARGET_VERSION): Remove.
9056         * config/sh/sh64.h (TARGET_VERSION): Remove.
9057         * config/sh/superh.h (TARGET_VERSION): Remove.
9058         * config/sh/vxworks.h (TARGET_VERSION): Remove.
9059         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
9060         * config/sparc/linux.h (TARGET_VERSION): Remove.
9061         * config/sparc/linux64.h (TARGET_VERSION): Remove.
9062         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
9063         TARGET_NAME32, TARGET_NAME): Remove.
9064         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
9065         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
9066         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
9067         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
9068         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
9069         * config/spu/spu.h (TARGET_VERSION): Remove.
9070         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
9071         * config/v850/v850.h (TARGET_VERSION): Remove.
9072         * config/vax/linux.h (TARGET_VERSION): Remove.
9073         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
9074         * config/xtensa/elf.h (TARGET_VERSION): Remove.
9075         * config/xtensa/linux.h (TARGET_VERSION): Remove.
9076
9077 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
9078
9079         PR target/48142
9080         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
9081         frame-related from frame-unrelated adjustments to the stack pointer.
9082
9083 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
9084
9085         * common.opt (fdebug-types-section): Move earlier.
9086         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
9087
9088 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
9089
9090         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
9091         var.
9092
9093 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
9094
9095         * tree.h (CASE_CHAIN): Define.
9096         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
9097         (gimple_redirect_edge_and_branch): Likewise.
9098
9099 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9100
9101         PR middle-end/48367
9102         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
9103         calculation.
9104
9105 2011-03-30  Jeff Law  <law@redhat.com>
9106
9107         * PR bootstrap/48371
9108         * reload1.c (reload): Fix botch in last change.
9109
9110         * reload.h (struct reload): Fix typo introduced in last change.
9111
9112 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
9113
9114         * config/arm/arm.opt (mhard-float, msoft-float): Mark
9115         Undocumented.  Remove help text.
9116         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
9117         -mhard-float.
9118
9119 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
9120
9121         * doc/options.texi (NegativeAlias): Document.
9122         (Alias): Mention NegativeAlias.
9123         * opt-functions.awk: Handle NegativeAlias.
9124         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
9125         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
9126         * opts.h (CL_NEGATIVE_ALIAS): Define.
9127         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
9128         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
9129         OPT_mspe_.
9130         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
9131         Alias entries.
9132         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9133         mno-spe and mno-isel instead of mspe=no and -misel=no.
9134
9135 2011-03-29  Mark Wielaard  <mjw@redhat.com>
9136
9137         * common.opt (fdebug-types-section): New flag.
9138         * doc/invoke.texi: Document new -fno-debug-types-section flag.
9139         * dwarf2out.c (use_debug_types): New define.
9140         (struct die_struct): Mark die_id with GTY desc use_debug_types.
9141         (print_die): Guard output of type unit signatures using
9142         use_debug_types.
9143         (build_abbrev_table): Replace assert of dwarf_version >= 4
9144         with assert on use_debug_types.
9145         (size_of_die): Likewise.
9146         (unmark_dies): Likewise.
9147         (value_format): Decide AT_ref_external form on use_debug_types.
9148         (output_die): Replace dwarf_version version check guard with
9149         use_debug_types where appropriate.
9150         (modified_type_die): Likewise.
9151         (gen_reference_type_die): Likewise.
9152         (dwarf2out_start_source_file): Likewise.
9153         (dwarf2out_end_source_file): Likewise.
9154         (prune_unused_types_walk_attribs): Likewise.
9155         (dwarf2out_finish): Likewise.
9156
9157 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9158
9159         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
9160
9161 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
9162
9163         PR rtl-optimization/48332
9164         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
9165         mode of input operand N and modeN to its actual mode.
9166
9167 2011-03-30  Jeff Law  <law@redhat.com>
9168
9169         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
9170         define accessor macro.
9171         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
9172         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
9173         (reg_equiv_init): Likewise.
9174         (reg_equivs_size): New variable.
9175         (reg_equiv_init_size): Remove.
9176         (allocate_initial_values): Move prototype to here from....
9177         * integrate.h (allocate_initial_values): Remove prototype.
9178         * integrate.c: Include reload.h.
9179         (allocate_initial_values): Corresponding changes.
9180         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
9181         (fix_reg_equiv_init, no_equiv): Corresponding changes.
9182         (update_equiv_regs): Corresponding changes.
9183         (ira): Corresponding changes.
9184         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
9185         (push_secondary_reload): Corresponding changes.
9186         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
9187         (make_memloc, find_reloads_address): Corresponding changes.
9188         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
9189         (find_reloads_address_1): Corresponding changes.
9190         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
9191         (refers_to_regno_for_reload_p): Corresponding changes.
9192         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
9193         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
9194         * reload1.c: Include ggc.h.
9195         (grow_reg_equivs): New function.
9196         (replace_pseudos_in, reload): Corresponding changes.
9197         (calculate_needs_all_insns, alter_regs): Corresponding changes.
9198         (eliminate_regs_1, elimination_effects): Corresponding changes.
9199         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
9200         (delete_output_reload): Likewise.
9201         * caller-save.c (mark_referenced_regs): Corresponding changes.
9202         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
9203         * frv/predicates.md (frv_load_operand): Corresponding changes.
9204         * microblaze/microblaze.c (double_memory_operand): Corresponding
9205         changes.
9206         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
9207         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
9208         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
9209         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
9210         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
9211         changes.
9212         * pa/pa.c (emit_move_sequence): Corresponding changes.
9213         * vax/vax.c (nonindexed_address_p): Corresponding changes.
9214
9215 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
9216
9217         PR target/47551
9218         * config/arm/arm.c (coproc_secondary_reload_class): Handle
9219         structure modes.  Don't check neon_vector_mem_operand for
9220         vector or structure modes.
9221
9222 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
9223             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9224
9225         PR target/43590
9226         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
9227         operand 1 and reshuffle the operands to match.
9228         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
9229
9230 2011-03-30  Christian Schüler  <cschueler@gmx.de>
9231
9232         PR driver/48208
9233         * config/c.opt (F): Added 'Driver' to -F option.
9234
9235         PR driver/48260
9236         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
9237           handler function.
9238         * config/darwin.opt: Added '-arch' option.
9239
9240 2011-03-30  Nick Clifton  <nickc@redhat.com>
9241
9242         * config/rx/rx.md: Add peepholes and patterns to combine
9243         extending loads and simple arithmetic instructions.
9244         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
9245         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
9246         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
9247         modes to use pre-decrement and post-increment addressing.
9248         (rx_is_restricted_memory_address): Add range checking of REG+INT
9249         addresses.
9250         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
9251         (rx_memory_move_cost): Adjust cost of stores.
9252         (rx_adjust_insn_length): New function.
9253
9254 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
9255
9256         PR c/48305
9257         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9258         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
9259         matching arg00/arg01 types.
9260
9261 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
9262
9263         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
9264         last_location to UNKNOWN_LOCATION.
9265
9266 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9267
9268         PR target/48349
9269         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
9270         FLOAT_SSE_REGS.
9271
9272 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
9273             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9274
9275         PR bootstrap/48337
9276         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
9277         Init(PROCESSOR_V7).
9278         (sparc_cpu): Likewise.
9279         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
9280         PROCESSOR_V7.
9281
9282 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9283
9284         PR target/48336
9285         PR middle-end/48342
9286         PR rtl-optimization/48345
9287         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
9288         hard regs for given mode from profitable regs when doing secondary
9289         allocation.
9290
9291 2011-03-29  Jeff Law  <law@redhat.com>
9292
9293         PR bootstrap/48327
9294         * tree-ssa-threadupdate.c (struct redirection_data): Remove
9295         do_not_duplicate field.
9296         (lookup_redirection_data): Corresponding changes.
9297         (create_duplicates): Always create a template block.
9298         (redirect_edges): Remove code which reused the original block
9299         when it was going to become unreachable code.
9300         (thread_block): Don't set do_not_duplicate field.
9301
9302 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
9303
9304         * lto-opts.c (register_user_option_p, lto_register_user_option):
9305         Make type argument unsigned.
9306         * lto-streamer.h (lto_register_user_option): Make type argument
9307         unsigned.
9308         * opth-gen.awk: Make CL_* macros unsigned.
9309         * opts-common.c (find_opt): Make lang_mask argument unsigned.
9310         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
9311         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
9312         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
9313         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
9314         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
9315         (find_opt): Make lang_mask argument unsigned.
9316
9317 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9318
9319         PR rtl-optimization/48331
9320         PR rtl-optimization/48334
9321         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
9322         for any used algorithm.
9323
9324 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9325
9326         * ira-conflicts.c (build_object_conflicts): Add unused attribute
9327         to parent_max.
9328
9329 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
9330
9331         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
9332         (alpha_option_override): Don't set alpha_sr_alias_set.
9333         (emit_frame_store_1): Use gen_frame_mem rather than calling
9334         set_mem_alias_set.
9335         (alpha_expand_epilogue): Ditto.
9336
9337 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
9338
9339         PR tree-optimization/48290
9340         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
9341         vectorization, check that relevant phis in the basic block after
9342         the inner loop are really inner loop's exit phis.
9343
9344 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
9345
9346         PR debug/48190
9347         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
9348         (cached_dw_loc_list_def): New structure.
9349         (cached_dw_loc_list): New typedef.
9350         (cached_dw_loc_list_table): New variable.
9351         (cached_dw_loc_list_table_hash): New function.
9352         (cached_dw_loc_list_table_eq): Likewise.
9353         (add_location_or_const_value_attribute): Take a bool cache_p.
9354         Cache the list when the parameter is true.
9355         (gen_formal_parameter_die): Update caller.
9356         (gen_variable_die): Likewise.
9357         (dwarf2out_finish): Likewise.
9358         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
9359         while generating debug info for the decl.
9360         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
9361         (dwarf2out_init): Initialize cached_dw_loc_list_table.
9362         (resolve_addr): Cache the result of resolving a chain of
9363         location lists.
9364
9365 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
9366
9367         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
9368         conflict object hard regset nodes have intersecting hard reg sets.
9369
9370         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
9371         after regstat_init_n_sets_and_refs.
9372
9373         * ira.c: Add more comments at the top.
9374         (setup_stack_reg_pressure_class, setup_pressure_classes):
9375         Add comments how we compute the register pressure classes.
9376         (setup_allocno_and_important_classes): Add more comments.
9377         (setup_class_translate_array, reorder_important_classes)
9378         (setup_reg_class_relations): Add comments.
9379
9380         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
9381         start of the file.
9382
9383         * ira-color.c: Add 2011 to the Copyright line.
9384         (assign_hard_reg):  Add more comments.
9385         (improve_allocation): Ditto.
9386
9387         * ira-costs.c: Add 2011 to the Copyright line.
9388         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
9389         comments.
9390         (setup_regno_cost_classes_by_mode): Ditto.
9391
9392         Initial patches from ira-improv branch:
9393
9394         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
9395
9396         * ira-build.c (ira_create_object): Remove initialization of
9397         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
9398         (ira_create_allocno): Remove initialization of
9399         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
9400         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
9401         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
9402         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
9403         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
9404         Initialize ALLOCNO_ADD_DATA.
9405         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
9406         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
9407         ALLOCNO_REG.
9408         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
9409         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
9410
9411         * ira.c (ira_reallocate): Remove.
9412         (setup_pressure_classes): Call
9413         ira_init_register_move_cost_if_necessary.  Use
9414         ira_register_move_cost instead of ira_get_register_move_cost.
9415         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
9416         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
9417
9418         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
9419         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
9420         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
9421         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
9422         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
9423         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
9424         Fix formatting.
9425         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
9426         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9427         (struct allocno_color_data): New.
9428         (allocno_color_data_t): New typedef.
9429         (allocno_color_data): New definition.
9430         (ALLOCNO_COLOR_DATA): New macro.
9431         (struct object_color_data): New.
9432         (object_color_data_t): New typedef.
9433         (object_color_data): New definition.
9434         (OBJECT_COLOR_DATA): New macro.
9435         (update_copy_costs, calculate_allocno_spill_cost): Call
9436         ira_init_register_move_cost_if_necessary.  Use
9437         ira_register_move_cost instead of ira_get_register_move_cost.
9438         (move_spill_restore, update_curr_costs): Ditto.
9439         (allocno_spill_priority): Make it inline.
9440         (color_pass): Allocate and free allocno_color_dat and object_color_data.
9441         (struct coalesce_data, coalesce_data_t): New.
9442         (allocno_coalesce_data): New definition.
9443         (ALLOCNO_COALESCE_DATA): New macro.
9444         (merge_allocnos, coalesced_allocno_conflict_p): Use
9445         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
9446         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
9447         (coalesce_allocnos): Ditto.
9448         (setup_coalesced_allocno_costs_and_nums): Ditto.
9449         (collect_spilled_coalesced_allocnos): Ditto.
9450         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
9451         (setup_slot_coalesced_allocno_live_ranges): Ditto.
9452         (coalesce_spill_slots): Ditto.
9453         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
9454         free allocno_coalesce_data.
9455
9456         * ira-conflicts.c: Fix formatting.
9457         (process_regs_for_copy): Call
9458         ira_init_register_move_cost_if_necessary.  Use
9459         ira_register_move_cost instead of ira_get_register_move_cost.
9460         (build_object_conflicts): Optimize.
9461
9462         * ira-costs.c (record_reg_classes): Optimize.  Call
9463         ira_init_register_move_cost_if_necessary.  Use
9464         ira_register_move_cost, ira_may_move_in_cost, and
9465         ira_may_move_out_cost instead of ira_get_register_move_cost and
9466         ira_get_may_move_cost.
9467         (record_address_regs): Ditto.
9468         (scan_one_insn): Optimize.
9469         (find_costs_and_classes): Optimize.
9470         (process_bb_node_for_hard_reg_moves): Call
9471         ira_init_register_move_cost_if_necessary.  Use
9472         ira_register_move_cost instead of ira_get_register_move_cost.
9473
9474         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
9475         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
9476         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
9477         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
9478         definitions.
9479         (ira_initiate_emit_data, ira_finish_emit_data)
9480         (create_new_allocno): New functions.
9481         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
9482         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
9483         Use ira_register_move_cost instead of ira_get_register_move_cost.
9484
9485         * ira-int.h: Fix some comments.
9486         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
9487         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9488         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
9489         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
9490         add_data.
9491         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
9492         bitfield after mode.  Make hard_regno a short int.  Make
9493         hard_regno short.  Remove first_coalesced_allocno and
9494         next_coalesced_allocno.  Move mem_optimized_dest_p,
9495         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
9496         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
9497         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
9498         temp, colorable_p.  Add new member add_data.
9499         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
9500         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
9501         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
9502         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
9503         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
9504         (ALLOCNO_ADD_DATA): New macro.
9505         (ira_emit_data_t): New typedef.
9506         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
9507         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
9508         from struct ira_allocno.
9509         (ALLOCNO_EMIT_DATA): New macro.
9510         (ira_allocno_emit_data, allocno_emit_reg): New.
9511         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
9512         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
9513         (OBJECT_ADD_DATA): New macro.
9514         (ira_reallocate): Remove.
9515         (ira_initiate_emit_data, ira_finish_emit_data): New.
9516         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
9517         (ira_init_register_move_cost_if_necessary): New.
9518         (ira_object_conflict_iter_next): Merge into
9519         ira_object_conflict_iter_cond.
9520         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
9521
9522         * ira-live.c (process_single_reg_class_operands): Call
9523         ira_init_register_move_cost_if_necessary.  Use
9524         ira_register_move_cost instead of ira_get_register_move_cost.
9525
9526         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
9527
9528         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
9529
9530         * ira-costs.c: Fix formatting.
9531         (cost_classes, cost_classes_num): Remove.
9532         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
9533         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
9534         (cost_classes_del, cost_classes_htab): New.
9535         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
9536         (initiate_regno_cost_classes, setup_cost_classes): New.
9537         (setup_regno_cost_classes_by_aclass): New.
9538         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
9539         (record_reg_classes): Use regno_cost_classes instead of
9540         cost_classes.  Move checking opposite operand up.
9541         (record_address_regs): Use regno_cost_classes
9542         instead of cost_classes.
9543         (scan_one_insn): Ditto.  Use always general register.
9544         (print_allocno_costs): Use regno_cost_classes instead of
9545         cost_classes.
9546         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
9547         (find_costs_and_classes): Set up cost classes for each registers.
9548         Use also their mode for this.  Use regno_cost_classes instead of
9549         cost_classes.
9550         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
9551         cost_classes.
9552         (free_ira_costs, ira_init_costs): Don't use cost_classes.
9553         (ira_costs, ira_set_pseudo_classes): Call
9554         initiate_regno_cost_classes and finish_regno_cost_classes.
9555
9556         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9557
9558         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
9559
9560         * target.def (ira_cover_classes): Remove.
9561
9562         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
9563
9564         * doc/tm.texi.in: Ditto.
9565
9566         * ira-conflicts.c: Remove mentioning cover classes from the file.
9567         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
9568         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
9569
9570         * targhooks.c (default_ira_cover_classes): Remove.
9571
9572         * targhooks.h (default_ira_cover_classes): Ditto.
9573
9574         * haifa-sched.c: Remove mentioning cover classes from the file.
9575         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9576         ira_pressure_classes and ira_pressure_classes_num instead of
9577         ira_reg_class_cover_size and ira_reg_class_cover.  Use
9578         sched_regno_pressure_class instead of sched_regno_cover_class.
9579         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
9580         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9581
9582         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
9583         classes from the file.
9584         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
9585         (struct object_hard_regs, struct object_hard_regs_node): New.
9586         (struct ira_object): New members profitable_hard_regs,
9587         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
9588         (struct ira_allocno): Rename cover_class to aclass.  Rename
9589         cover_class_cost and updated_cover_class_cost to class_cost and
9590         updated_class_cost.  Remove splay_removed_p and
9591         left_conflict_size.  Add new members colorable_p.
9592         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
9593         (ALLOCNO_COLORABLE_P): New macro.
9594         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
9595         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
9596         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
9597         (OBJECT_...): Rename parameter C to O.
9598         (OBJECT_PROFITABLE_HARD_REGS): New macro.
9599         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
9600         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
9601         (struct target_ira_int): New members x_ira_max_memory_move_cost,
9602         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
9603         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
9604         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
9605         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
9606         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
9607         x_ira_reg_class_subunion.
9608         (ira_max_memory_move_cost, ira_max_register_move_cost)
9609         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
9610         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
9611         (ira_important_class_nums, ira_reg_class_superunion): New macros.
9612         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
9613         (ira_reg_class_union): Rename to ira_reg_class_subunion.
9614         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9615         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9616         (ira_tune_allocno_costs_and_cover_classes): Rename to
9617         ira_tune_allocno_costs.
9618         (ira_debug_hard_regs_forest): New.
9619         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
9620         (ira_object_conflict_iter_next): Fix comments.
9621         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
9622         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
9623         cover_class to aclass.
9624         (ira_allocate_and_accumulate_costs): Ditto.
9625         (ira_allocate_and_set_or_copy_costs): Ditto.
9626
9627         * opts.c (decode_options): Remove ira_cover_class check.
9628
9629         * ira-color.c: Remove mentioning cover classes from the file.  Use
9630         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
9631         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
9632         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
9633         (splay-tree.h): Remove include.
9634         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
9635         before copy_freq_compare_func.
9636         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
9637         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
9638         New definitions.
9639         (hard_regs_roots, hard_regs_node_vec): Ditto.
9640         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
9641         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
9642         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
9643         (create_new_object_hard_regs_node): Ditto.
9644         (add_new_object_hard_regs_node_to_forest): Ditto.
9645         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
9646         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
9647         Ditto.
9648         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
9649         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
9650         (remove_unused_object_hard_regs_nodes): Ditto.
9651         (enumerate_object_hard_regs_nodes): Ditto.
9652         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
9653         (object_hard_regs_subnode_t): Ditto.
9654         (struct object_hard_regs_subnode): Ditto.
9655         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
9656         (setup_object_hard_regs_subnode_index): Ditto.
9657         (get_object_hard_regs_subnodes_num): Ditto.
9658         (form_object_hard_regs_nodes_forest): Ditto.
9659         (finish_object_hard_regs_nodes_tree): Ditto.
9660         (finish_object_hard_regs_nodes_forest): Ditto.
9661         (allocnos_have_intersected_live_ranges_p): Rename to
9662         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
9663         (pseudos_have_intersected_live_ranges_p): Rename to
9664         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
9665         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
9666         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
9667         (update_copy_costs): Remove assert.  Skip cost update if the hard
9668         reg does not belong the class.
9669         (assign_hard_reg): Process only profitable hard regs.
9670         (uncolorable_allocnos_num): Make it scalar.
9671         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
9672         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
9673         and ira_reg_class_max_nregs.
9674         (bucket_allocno_compare_func): Check frequency first.
9675         (sort_bucket): Add compare function as a parameter.
9676         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
9677         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
9678         (push_allocno_to_stack): Rewrite for checking new allocno
9679         colorability.
9680         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
9681         (push_only_colorable): Pass new parameter to sort_bucket.
9682         (push_allocno_to_spill): Remove.
9683         (allocno_spill_priority_compare): Make it inline and rewrite.
9684         (splay_tree_allocate, splay_tree_free): Remove.
9685         (allocno_spill_sort_compare): New function.
9686         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
9687         build and use splay tree.  Choose first allocno in uncolorable
9688         allocno bucket to spill.  Remove setting spill cost.
9689         (all_conflicting_hard_regs): Remove.
9690         (setup_allocno_available_regs_num): Check only profitable hard
9691         regs.  Print info about hard regs nodes.
9692         (setup_allocno_left_conflicts_size): Remove.
9693         (put_allocno_into_bucket): Don't call
9694         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
9695         (improve_allocation): New.
9696         (color_allocnos): Call setup_profitable_hard_regs,
9697         form_object_hard_regs_nodes_forest, improve_allocation,
9698         finish_object_hard_regs_nodes_forest.  Setup spill cost.
9699         (print_loop_title): Use pressure classes.
9700         (color_allocnso): Ditto.
9701         (do_coloring): Remove allocation and freeing splay_tree_node_pool
9702         and allocnos_for_spilling.
9703         (ira_sort_regnos_for_alter_reg): Don't setup members
9704         {first,next}_coalesced_allocno.
9705         (color): Remove allocating and freeing removed_splay_allocno_vec.
9706         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
9707         prohibited_class_mode_regs.
9708
9709         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
9710         formatting.
9711         (update_allocno_pressure_excess_length): Use pressure classes.
9712         (inc_register_pressure, dec_register_pressure): Check for pressure
9713         class.
9714         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
9715         pressure class.  Use ira_reg_class_nregs instead of
9716         ira_reg_class_max_nregs.
9717         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
9718         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
9719         (single_reg_class): Use ira_reg_class_nregs instead of
9720         ira_reg_class_max_nregs.
9721         (process_bb_node_lives): Use pressure classes.
9722
9723         * ira-emit.c: Remove mentioning cover classes from the file.  Use
9724         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
9725         (change_loop): Use pressure classes.
9726         (modify_move_list): Call ira_set_allocno_class instead of
9727         ira_set_allocno_cover_class.
9728
9729         * ira-build.c: Remove mentioning cover classes from the file.  Use
9730         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
9731         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
9732         ALLOCNO_UPDATED_CLASS_COST instead of
9733         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
9734         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
9735         (ira_create_allocno): Remove initialization of
9736         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
9737         ALLOCNO_COLORABLE_P.
9738         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9739         Update conflict regs for the objects.
9740         (create_cap_allocno): Remove assert.  Don't propagate
9741         ALLOCNO_AVAILABLE_REGS_NUM.
9742         (ira_free_allocno_costs): New function.
9743         (finish_allocno): Change a part of code into call of
9744         ira_free_allocno_costs.
9745         (low_pressure_loop_node_p): Use pressure classes.
9746         (object_range_compare_func): Don't compare classes.
9747         (setup_min_max_conflict_allocno_ids): Ditto.
9748
9749         * loop-invariant.c: Remove mentioning cover classes from the file.
9750         Use ira_pressure_classes and ira_pressure_classes_num instead of
9751         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
9752         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
9753         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9754         Use reg_allocno_class instead of reg_cover_class.
9755         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
9756         STACK_REG_COVER_CLASS.
9757         (get_regno_cover_class): Rename to get_regno_pressure_class.
9758         (move_loop_invariants): Initialize and finalize regstat.
9759
9760         * ira.c: Remove mentioning cover classes from the file.  Add
9761         comments about coloring without cover classes.  Use ALLOCNO_CLASS
9762         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
9763         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
9764         setup_class_subset_and_memory_move_costs.
9765         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9766         (setup_cover_and_important_classes): Rename to
9767         setup_allocno_and_important_classes.
9768         (setup_class_translate_array): New.
9769         (setup_class_translate): Call it for allocno and pressure classes.
9770         (cover_class_order): Rename to allocno_class_order.
9771         (comp_reg_classes_func): Use ira_allocno_class_translate instead
9772         of ira_class_translate.
9773         (reorder_important_classes): Set up ira_important_class_nums.
9774         (setup_reg_class_relations): Set up ira_reg_class_superunion.
9775         (print_class_cover): Rename to print_classes.  Add parameter.
9776         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9777         Print pressure classes too.
9778         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
9779         setup_reg_subclasses.
9780         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9781         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9782         (setup_prohibited_class_mode_regs): Use
9783         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9784         (clarify_prohibited_class_mode_regs): New function.
9785         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9786         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9787         (ira_init_once): Initialize them.
9788         (free_register_move_costs): Process them.
9789         (ira_init): Move calls of find_reg_classes and
9790         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9791         Call clarify_prohibited_class_mode_regs.
9792         (ira_no_alloc_reg): Remove.
9793         (too_high_register_pressure_p): Use pressure classes.
9794
9795         * sched-deps.c: Remove mentioning cover classes from the file.
9796         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9797         ira_pressure_classes and ira_pressure_classes_num instead of
9798         ira_reg_class_cover_size and ira_reg_class_cover.
9799         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9800         sched_regno_pressure_class instead of sched_regno_cover_class.
9801         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
9802         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9803
9804         * ira.h: Add 2010 to Copyright.
9805         (ira_no_alloc_reg): Remove external.
9806         (struct target_ira): Rename x_ira_hard_regno_cover_class,
9807         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9808         x_ira_class_translate to x_ira_hard_regno_allocno_class,
9809         x_ira_allocno_classes_num, x_ira_allocno_classes, and
9810         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
9811         x_ira_pressure_classes, x_ira_pressure_class_translate, and
9812         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
9813         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
9814         x_ira_no_alloc_regs.
9815         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9816         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9817         ira_allocno_classes_num and ira_allocno_classes.
9818         (ira_class_translate): Rename to ira_allocno_class_translate.
9819         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9820         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9821         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9822         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9823         (ira_no_alloc_regs): New.
9824
9825         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
9826         classes from the file.  Use ALLOCNO_CLASS instead of
9827         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
9828         ALLOCNO_COVER_CLASS_COST.
9829         (regno_cover_class): Rename to regno_aclass.
9830         (record_reg_classes): Use ira_reg_class_subunion instead of
9831         ira_reg_class_union.
9832         (record_address_regs): Check overflow.
9833         (scan_one_insn): Ditto.
9834         (print_allocno_costs): Print total mem cost fore regional allocation.
9835         (print_pseudo_costs): Use REG_N_REFS.
9836         (find_costs_and_classes): Use classes intersected with them on the
9837         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
9838         ira_reg_class_union.  Use ira_allocno_class_translate and
9839         regno_aclass instead of ira_class_translate and regno_cover_class.
9840         Modify code for finding regno_aclass.  Setup preferred classes for
9841         the next pass.
9842         (setup_allocno_cover_class_and_costs): Rename to
9843         setup_allocno_class_and_costs.  Use regno_aclass instead of
9844         regno_cover_class.  Use ira_set_allocno_class instead of
9845         ira_set_allocno_cover_class.
9846         (init_costs, finish_costs): Use regno_aclass instead of
9847         regno_cover_class.
9848         (ira_costs): Use setup_allocno_class_and_costs instead of
9849         setup_allocno_cover_class_and_costs.
9850         (ira_tune_allocno_costs_and_cover_classes): Rename to
9851         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
9852         by processing objects.  Use ira_reg_class_max_nregs instead of
9853         ira_reg_class_nregs.
9854
9855         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9856
9857         * sched-int.h: Remove mentioning cover classes from the file.
9858         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9859
9860         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
9861         classes from the file.
9862         (struct reg_pref): Rename coverclass into allocnoclass.
9863         (reg_cover_class): Rename to reg_allocno_class.
9864
9865         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9866
9867         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9868
9869         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9870
9871         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9872
9873         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9874
9875         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9876
9877         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9878
9879         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9880
9881         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9882
9883         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9884
9885         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9886         (i386_ira_cover_classes): Ditto.
9887
9888         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9889
9890         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9891
9892         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9893
9894         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9895
9896         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9897
9898         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9899
9900         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9901         (mips_ira_cover_classes): Ditto.
9902
9903         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9904
9905         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9906
9907         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9908
9909         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9910
9911         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9912
9913         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9914         (IRA_COVER_CLASSES_VSX): Ditto.
9915
9916         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9917         (rs6000_ira_cover_classes): Ditto.
9918
9919         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9920
9921         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9922
9923         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9924
9925         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9926
9927         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9928
9929         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9930
9931         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9932
9933         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9934
9935         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9936
9937         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9938
9939 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
9940
9941         PR debug/48253
9942         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9943         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9944         dw_fde_unlikely_section_end_label, cold_in_std_section,
9945         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9946         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9947         fields.
9948         (output_fde): Use dw_fde_second_{begin,end} if second is
9949         true, otherwise dw_fde_{begin,end}.
9950         (output_call_frame_info): Test dw_fde_second_begin != NULL
9951         instead of dw_fde_switched_sections.
9952         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9953         fields, initialize new fields.  Initialize in_std_section
9954         unconditionally from the first partition.
9955         (dwarf2out_end_epilogue): Don't override dw_fde_end when
9956         dw_fde_second_begin is non-NULL.
9957         (dwarf2out_switch_text_section): Stop initializing removed
9958         dw_fde_struct fields, initialize new fields, initialize
9959         also dw_fde_end here.  Set dw_fde_switch_cfi even when
9960         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
9961         (struct var_loc_list_def): Add last_before_switch field.
9962         (arange_table, arange_table_allocated, arange_table_in_use,
9963         ARANGE_TABLE_INCREMENT, add_arange): Removed.
9964         (size_of_aranges): Count !in_std_section and !second_in_std_section
9965         hunks in fdes, instead of looking at arange_table_in_use.
9966         (output_aranges): Add aranges_length argument, don't call
9967         size_of_aranges here.  Instead of using aranges_table*
9968         emit ranges for fdes when !in_std_section resp.
9969         !second_in_std_section.
9970         (dw_loc_list): Break ranges crossing section switch.
9971         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
9972         use dw_fde_second_end instead of dw_fde_end as end of last range.
9973         (gen_subprogram_die): Don't call add_arange.  Use
9974         dw_fde_{begin,end} for first partition and if switched
9975         section dw_fde_second_{begin,end} for the second.
9976         (var_location_switch_text_section_1,
9977         var_location_switch_text_section): New functions.
9978         (dwarf2out_begin_function): Initialize cold_text_section even
9979         when function_section () isn't text_section.
9980         (prune_unused_types): Don't walk arange_table.
9981         (dwarf2out_finish): Don't needlessly test
9982         flag_reorder_blocks_and_partition when testing cold_text_section_used.
9983         If info_section_emitted, call size_of_aranges and if it indicates
9984         non-empty .debug_aranges, call output_aranges with the computed
9985         size.  Stop using removed dw_fde_struct fields, use
9986         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9987         for second.
9988
9989         PR debug/48203
9990         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9991         create ENTRY_VALUE if incoming or address of incoming's MEM
9992         is a hard REG.
9993         * dwarf2out.c (mem_loc_descriptor): Don't emit
9994         DW_OP_GNU_entry_value of DW_OP_fbreg.
9995         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9996         on ENTRY_VALUE is able to find the canonical parameter VALUE.
9997         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9998         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9999         ENTRY_VALUE_EXPs.
10000         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
10001         is a REG_P or MEM_P with REG_P address, compute hash directly
10002         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
10003         (preserve_only_constants): Don't clear VALUES forwaring
10004         ENTRY_VALUE to some other VALUE.
10005
10006 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
10007
10008         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
10009         instead of GEN_INT.
10010
10011 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
10012
10013         * cfgexpand.c (expand_gimple_cond): Always set the source location and
10014         block before expanding the statement.
10015         (expand_gimple_stmt_1): Likewise.  Set them here...
10016         (expand_gimple_stmt): ...and not here.  Tidy.
10017         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
10018         unknown.
10019
10020 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
10021
10022         * Makefile.in: New rule for cprop.o.
10023         * gcse.c: Move constant/copy propagation to cprop.c.
10024         (compute_local_properties): Only handle expression tables.
10025         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
10026         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
10027         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
10028         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
10029         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
10030         compute_cprop_data, find_used_regs, try_replace_reg,
10031         find_avail_set, cprop_jump, constprop_register, cprop_insn,
10032         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
10033         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
10034         find_bypass_set, reg_killed_on_edge, bypass_block,
10035         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
10036         execute_rtl_cprop, pass_rtl_cprop): Move to...
10037         * cprop.c: ...here.  New file, constant/copy propagation for RTL
10038         moved from gcse.c to here with minor cleanups in duplicated code.
10039
10040 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
10041
10042         * config/i386/i386.c (flag_opts): Fix a typo in
10043         -mavx256-split-unaligned-store.
10044
10045 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
10046
10047         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
10048         LIBCALL_VALUE): Remove macros.
10049         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10050         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10051         (h8300_function_value, h8300_libcall_value,
10052         h8300_function_value_regno_p): New functions.
10053
10054 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
10055
10056         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
10057
10058 2011-03-28  Jeff Law  <law@redhat.com>
10059
10060         * tree-ssa-threadupdate.c (redirect_edges): Call
10061         create_edge_and_update_destination_phis as needed.
10062         (create_edge_and_update_destination_phis): Accept new BB argument.
10063         All callers updated.
10064         (thread_block): Do not update the profile when threading around
10065         intermediate blocks.
10066         (thread_single_edge): Likewise.
10067         (determine_bb_domination_status): If BB is not a successor of the
10068         loop header, return NONDOMINATING.
10069         (register_jump_thread): Note when we register a jump thread around
10070         an intermediate block.
10071         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
10072         (thread_across_edge): Use it.
10073
10074 2011-03-28  Tristan Gingold  <gingold@adacore.com>
10075
10076         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
10077         when for_return is 2.
10078
10079 2011-03-28  Jeff Law  <law@redhat.com>
10080
10081         * var-tracking.c (canonicalize_values_mark): Delete unused
10082         lhs assignment.
10083         (canonicalize_values_star, set_variable_part): Likewise.
10084         (clobber_variable_part, delete_variable_part): Likewise.
10085
10086 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
10087
10088         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
10089
10090 2011-03-28  Martin Jambor  <mjambor@suse.cz>
10091
10092         * tree-inline.c (expand_call_inline): Do not check that destination
10093         node is analyzed.
10094         (optimize_inline_calls): Assert that destination node is analyzed.
10095         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
10096         not call tree_lowering_passes.
10097         * cgraph.h (cgraph_analyze_function): Declare.
10098         * cgraphunit.c (cgraph_analyze_function): Make public.
10099
10100 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
10101
10102         * config/sparc/sparc-opts.h: New.
10103         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
10104         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
10105         (sparc_option_override): Store processor_type enumeration rather
10106         than string in cpu_default.  Remove name and enumeration from
10107         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
10108         without using sparc_select.  Use target_flags_explicit instead of
10109         fpu_option_set.
10110         * config/sparc/sparc.h (enum processor_type): Move to
10111         sparc-opts.h.
10112         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
10113         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
10114         HeaderInclude entry.
10115         (mcpu=, mtune=): Use Var and Enum.
10116         (sparc_processor_type): New Enum and EnumValue entries.
10117
10118 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10119             Iain Sandoe  <iains@gcc.gnu.org>
10120
10121         PR target/48245
10122         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
10123
10124 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
10125
10126         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
10127         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
10128         Insert new statements at it in lieu of STMT.
10129         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
10130         * tree-vect-stmts.c (vectorizable_store): Likewise.
10131         (vectorizable_load): Likewise.
10132
10133 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
10134
10135         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
10136         (divtf3): Ditto.
10137         (multf3): Ditto.
10138         (subtf3): Ditto.
10139
10140 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10141
10142         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
10143         unaligned 256bit load/store.
10144         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
10145         (*avx_movdqu<avxmodesuffix>): Likewise.
10146
10147 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10148
10149         PR target/48288
10150         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
10151         * config/pa/pa.md (iordi3): Use new predicate in expander.
10152         (iorsi3): Likewise.
10153
10154 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
10155
10156         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
10157         FUNCTION_VALUE_REGNO_P): Remove macros.
10158         * config/mips/mips-protos.h (mips_function_value): Remove.
10159         * config/mips/mips.c (mips_function_value): Rename to...
10160         (mips_function_value_1): ... this. Make static.  Handle receiving
10161         the function type in 'fn_decl_or_type' argument.
10162         (mips_function_value, mips_libcall_value,
10163         mips_function_value_regno_p): New function.
10164         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10165         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10166
10167 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10168
10169         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
10170         and -mavx256-split-unaligned-store.
10171         (ix86_option_override_internal): Split 32-byte AVX unaligned
10172         load/store by default.
10173         (ix86_avx256_split_vector_move_misalign): New.
10174         (ix86_expand_vector_move_misalign): Use it.
10175
10176         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
10177         -mavx256-split-unaligned-store.
10178
10179         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
10180         256bit load/store.  Generate unaligned store on misaligned memory
10181         operand.
10182         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
10183         256bit load/store.
10184         (*avx_movdqu<avxmodesuffix>): Likewise.
10185
10186         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
10187         -mavx256-split-unaligned-store.
10188
10189 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
10190
10191         PR target/38598
10192         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
10193         Update commentary.
10194
10195 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
10196
10197         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
10198         opno arguments with an expand_operand.  Use create_input_operand.
10199         (mips_prepare_builtin_target): Delete.
10200         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
10201         functions.
10202         (mips_expand_builtin_direct): Use create_output_operand and
10203         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
10204         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
10205         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
10206
10207 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
10208
10209         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
10210         function.
10211         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10212
10213 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
10214
10215         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
10216         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
10217         basic blocks and call commit_edge_insertions directly.
10218         (fixup_abnormal_edges): Move from here to...
10219         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
10220         on the edges and return whether some have actually been inserted.
10221         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
10222         compensation code.
10223
10224 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
10225
10226         PR rtl-optimization/48144
10227         * sel-sched-ir.c (merge_history_vect): Factor out from ...
10228         (merge_expr_data): ... here.
10229         (av_set_intersect): Rename to av_set_code_motion_filter.
10230         Update all callers.  Call merge_history_vect when an expression
10231         is found in both sets.
10232         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
10233
10234 2011-03-26  Alan Modra  <amodra@gmail.com>
10235
10236         * config/rs6000/predicates.md (word_offset_memref_op): Handle
10237         cmodel medium addresses.
10238         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
10239         64-bit gpr loads and stores.
10240         (rs6000_secondary_reload_ppc64): New function.
10241         * config/rs6000/rs6000-protos.h: Declare it.
10242         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
10243
10244 2011-03-26  Alan Modra  <amodra@gmail.com>
10245
10246         PR target/47487
10247         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
10248         GNU Go in traceback table.
10249
10250 2011-03-25  Richard Henderson  <rth@redhat.com>
10251
10252         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
10253         if there are exactly 6 operands.
10254         (set_storage_via_setmem): Similarly.
10255
10256 2011-03-25  Kai Tietz  <ktietz@redhat.com>
10257
10258         * collect2.c (write_c_file_stat): Handle backslash
10259         as right-hand directory separator.
10260         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
10261         checking just for slash.
10262         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
10263         instead of checking for trailing slash.
10264         * gcc.c (record_temp_file): Use filename_cmp instead
10265         of strcmp.
10266         (do_spec_1): Likewise.
10267         (replace_outfile_spec_function): Likewise.
10268         (is_directory): Use filename_ncmp instead of strncmp.
10269         (print_multilib_info): Likewise.
10270         * gcov.c (find_source): Use filename_cmp instead
10271         instead of strcmp.
10272         (make_gcov_file_name): Fix order of slash/backslash
10273         checks.
10274         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
10275         (add_standard_paths): Likewise.
10276         * mips-tfile.c (saber_stop): Handle backslash.
10277         * prefix.c (update_path): Use filename_ncmp instead of
10278         strncmp.
10279         * profile.c (output_location): Use filename_cmp instead
10280         of strcmp.
10281         * read-md.c (handle_toplevel_file): Handle backslash.
10282         * tlink.c (frob_extension):  Likewise.
10283         * tree-cfg.c (same_line_p): Use filename_cmp instead of
10284         strcmp.
10285         * tree-dump.c (dequeue_and_dump): Handle backslash.
10286         * tree.c (get_file_function_name): Likewise.
10287         * gengtype.c (read_input_list): Likewise.
10288         (get_file_realbasename): Likewise.
10289         (get_output_file_with_visibility): Use filename_cmp
10290         instead of strcmp.
10291
10292 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
10293
10294         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
10295         case to VFPv1.
10296
10297 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
10298
10299         * fold-const.c (expr_location_or): New function.
10300         (fold_truth_not_expr): Call it.
10301
10302 2011-03-25  Jeff Law  <law@redhat.com>
10303
10304         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
10305         va_end.
10306         * c-family/c-common.c (def_fn_type): Likewise.
10307         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
10308         * emit-rtl.c (gen_rtvec): Likewise.
10309         * lto/lto-lang.c (def_fn_type): Likewise.
10310
10311 2011-03-25  Richard Guenther  <rguenther@suse.de>
10312
10313         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
10314         also generate copies.
10315         (fini_copy_prop): Handle constant values properly.
10316
10317 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
10318
10319         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
10320         mode size instead of bitsize with DWARF2_ADDR_SIZE.
10321         (hash_loc_operands, compare_loc_operands): Handle
10322         DW_OP_GNU_entry_value.
10323
10324 2011-03-25  Kai Tietz  <ktietz@redhat.com>
10325
10326         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
10327         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
10328         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
10329         comment and use macro TARGET_64BIT_MS_ABI instead.
10330         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
10331         and change default behavior for 32-bit MS_ABI.
10332         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
10333         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
10334         32-bit, too.
10335         (ix86_cfun_abi): Likewise.
10336         (ix86_maybe_switch_abi): Adjust comment.
10337         (init_cumulative_args): Check for bit-ness in MS_ABI case.
10338         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
10339         instead of checking for SYSV_ABI.
10340         (ix86_nsaved_sseregs): Likewise.
10341         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
10342         to 16 bytes.
10343         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
10344         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
10345         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
10346         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
10347         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
10348
10349 2011-03-25  Richard Guenther  <rguenther@suse.de>
10350
10351         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
10352         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
10353         (verify_gimple): Remove.
10354         * tree-cfg.c (verify_gimple_call): Merge verification
10355         from verify_stmts.
10356         (verify_gimple_phi): Merge verification from verify_stmts.
10357         (verify_gimple_label): New function.
10358         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
10359         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
10360         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
10361         (verify_stmts): Rename to verify_gimple_in_cfg.
10362         (verify_gimple_in_cfg): New function.
10363         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
10364         * tree-ssa.c (verify_ssa): Likewise.
10365         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
10366
10367 2011-03-25  Richard Guenther  <rguenther@suse.de>
10368
10369         * passes.c (init_optimization_passes): Add FRE pass after
10370         early SRA.
10371
10372 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
10373             Andrew Stubbs  <ams@codesourcery.com>
10374
10375         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
10376         for Cortex-A8.
10377         (arm_movdi_vfp_cortexa8): New pattern.
10378         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
10379         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
10380         instructions when tuning for Cortex-A8.  Set attribute "arch".
10381         * config/arm/arm.md: Move include arm-tune.md up a bit.
10382         (define_attr "arch"): Add "onlya8" and "nota8" values.
10383         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
10384
10385 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
10386
10387         PR bootstrap/48282
10388         Revert:
10389         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10390
10391         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10392         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
10393         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10394         * passes.c (init_optimization_passes): Move
10395         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10396
10397 2011-03-25  Kai Tietz  <ktietz@redhat.com>
10398
10399         * c-typeck.c (comptypes_internal): Replace target
10400         hook call of comp_type_attributes by version in tree.c file.
10401         * gimple.c (gimple_types_compatible_p_1): Likewise.
10402         * tree-ssa.c (useless_type_conversion_p): Likewise.
10403         * tree.c (build_type_attribute_qual_variant): Likewise.
10404         (attribute_value_equal): New static helper function.
10405         (comp_type_attributes): New function.
10406         (merge_attributes): Use attribute_value_equal for comparison.
10407         (attribute_list_contained): Likewise.
10408         * tree.h (comp_type_attributes): New prototype.
10409
10410 2011-03-25  Richard Guenther  <rguenther@suse.de>
10411
10412         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
10413         of complex types at -O0.
10414         (verify_gimple_assign_binary): Likewise.
10415         (verify_gimple_assign_ternary): Likewise.
10416
10417 2011-03-24  Mark Wielaard  <mjw@redhat.com>
10418
10419         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
10420         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
10421
10422 2011-03-24  Mark Wielaard  <mjw@redhat.com>
10423
10424         PR debug/48041
10425         * dwarf2out.c (output_abbrev_section): Only write table when
10426         abbrev_die_table_in_use > 1.
10427
10428 2011-02-24  Richard Henderson  <rth@redhat.com>
10429
10430         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
10431         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
10432         (alpha_expand_unaligned_load_words): Use extql.
10433         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
10434         (emit_insxl): Handle all modes for consistency.
10435
10436 2011-02-24  Richard Henderson  <rth@redhat.com>
10437
10438         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
10439         (alpha_expand_unaligned_load): Likewise.
10440         (alpha_expand_unaligned_store): Likewise.
10441         (alpha_expand_unaligned_load_words): Likewise.
10442         (alpha_expand_unaligned_store_words): Likewise.
10443         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
10444         (alpha_split_lock_test_and_set_12): Likewise.
10445         (print_operand, alpha_fold_builtin_extxx): Likewise.
10446         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
10447         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
10448         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
10449         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
10450         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
10451         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
10452         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
10453         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
10454         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
10455         (extwl, extll, extql): Similarly.
10456         (inswh, inslh, insqh): Similarly.
10457         (mskbl, mskwl, mskll, mskql): Similarly.
10458         (mskwh, msklh, mskqh): Similarly.
10459
10460 2011-02-24  Richard Henderson  <rth@redhat.com>
10461
10462         * config/alpha/alpha.md (attribute isa): Add er, ner.
10463         (attribute enabled): Handle them.
10464         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
10465
10466 2011-02-24  Richard Henderson  <rth@redhat.com>
10467
10468         * config/alpha/alpha.md (attribute isa): Add vms.
10469         (attribute enabled): Handle it.
10470         (*movsf): Merge *movsf_{nofix,fix,nofp}.
10471         (*movdf): Merge *movdf_{nofix,fix,nofp}.
10472         (*movtf): Rename from *movtf_internal for consistency.
10473         (*movsi): Merge with *movsi_nt_vms.
10474         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
10475         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
10476         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
10477         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
10478
10479 2011-02-24  Richard Henderson  <rth@redhat.com>
10480
10481         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
10482         (extendqisi2, extendhisi2): Likewise.
10483         (extendqidi2): Simplify BWX/non-BWX expansions.
10484         (extendhidi2): Similarly.
10485
10486 2011-02-24  Richard Henderson  <rth@redhat.com>
10487
10488         * config/alpha/alpha.md (attribute isa): New.
10489         (attribute enabled): New.
10490         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
10491         (zero_extendqisi2, zero_extendqidi2): Similarly.
10492         (zero_extendhisi2, zero_extendhidi2): Similarly.
10493         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
10494
10495 2011-02-24  Richard Henderson  <rth@redhat.com>
10496
10497         * config/alpha/predicates.md (input_operand): Revert last change;
10498         update comment to mention 32-bit VMS rather than Windows.
10499
10500 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10501
10502         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10503         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
10504         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10505         * passes.c (init_optimization_passes): Move
10506         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10507
10508 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10509
10510         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
10511
10512 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
10513
10514         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
10515         correctly.
10516
10517 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
10518
10519         PR debug/48204
10520         * simplify-rtx.c (simplify_const_unary_operation): Call
10521         real_convert when changing mode class with FLOAT_EXTEND.
10522
10523 2011-03-24  Nick Clifton  <nickc@redhat.com>
10524
10525         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
10526         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10527         * config/rx/rx.c (rx_option_override): Set align_jumps,
10528         align_loops and align_labels if not set by the user.
10529         (rx_align_for_label): New function.
10530         (rx_max_skip_for_label): New function.
10531         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
10532         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
10533         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
10534         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
10535         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
10536
10537 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10538
10539         PR rtl-optimization/48263
10540         * optabs.c (expand_binop_directly): Reinstate convert_modes code
10541         and original commutative_p handling.  Use maybe_gen_insn.
10542
10543 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10544
10545         * reload.c (find_reloads_subreg_address): Add address_reloaded
10546         parameter and return true there if the full address has been
10547         reloaded.
10548         (find_reloads_toplev): Pass address_reloaded flag.
10549         (find_reloads_address_1): Don't use address_reloaded parameter.
10550
10551 2011-03-24  Jeff Law  <law@redhat.com>
10552
10553         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
10554         unused variable "ann".
10555         (remove_unused_locals): Likewise.
10556
10557         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
10558         statement.
10559
10560         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
10561         after it is freed.
10562
10563 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10564
10565         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
10566         for invalid symbolic addresses.
10567         (s390_secondary_reload): Don't use s390_check_symref_alignment for
10568         larl operands.
10569
10570 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10571
10572         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
10573         the argument in calls to fold_truth_not_expr.
10574
10575 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10576
10577         * tree.c (record_node_allocation_statistics): New function.
10578         (make_node_stat, copy_node_stat, build_string): Call it.
10579         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
10580         (build1_stat, build_omp_clause): Likewise.
10581
10582 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10583
10584         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
10585         last commit.
10586
10587 2011-03-24  Richard Guenther  <rguenther@suse.de>
10588
10589         PR tree-optimization/48271
10590         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
10591         blocks that still exist.
10592
10593 2011-03-24  Richard Guenther  <rguenther@suse.de>
10594
10595         PR tree-optimization/48270
10596         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
10597         not free datarefs before ddrs.
10598
10599 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
10600
10601         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
10602         from the address built for a reference with variable offset.
10603
10604 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
10605
10606         PR target/48237
10607         * config/i386/i386.md (*movdf_internal_rex64): Do not split
10608         alternatives that can be handled with movq or movabsq insn.
10609         (*movdf_internal): Disable for !TARGET_64BIT.
10610         (*movdf_internal_nointeger): Ditto.
10611         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
10612
10613 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
10614
10615         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10616         (FUNCTION_ARG_ADVANCE): Likewise.
10617         * tm.texi.in: Change references to them to hook references.
10618         * tm.texi: Regenerate.
10619         * targhooks.c (default_function_arg): Eliminate check for target macro.
10620         (default_function_incoming_arg): Likewise.
10621         (default_function_arg_advance): Likewise.
10622         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10623         (function_arg_advance): Likewise.
10624         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10625
10626 2011-03-24  Richard Guenther  <rguenther@suse.de>
10627
10628         PR middle-end/48269
10629         * tree-object-size.c (addr_object_size): Do not double-account
10630         for MEM_REF offsets.
10631
10632 2011-03-24  Diego Novillo  <dnovillo@google.com>
10633
10634         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
10635         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
10636         (lto_input_data_block): Move from lto-opts.c.  Make extern.
10637         Update all users.
10638         (lto_input_string): Rename from input_string.  Make extern.
10639         Update all users.
10640         * lto-streamer-out.c (lto_output_string_with_length): Rename from
10641         output_string_with_length.
10642         Output 0 to indicate a non-NULL string.  Update all callers to
10643         not emit 0.
10644         (lto_output_string): Rename from output_string.  Make extern.
10645         Update all users.
10646         (lto_output_decl_state_streams): Make extern.
10647         (lto_output_decl_state_refs): Make extern.
10648         * lto-streamer.h (lto_input_string): Declare.
10649         (lto_input_data_block): Declare.
10650         (lto_output_string): Declare.
10651         (lto_output_string_with_length): Declare.
10652         (lto_output_decl_state_streams): Declare.
10653         (lto_output_decl_state_refs): Declare.
10654
10655 2011-03-24  Richard Guenther  <rguenther@suse.de>
10656
10657         PR tree-optimization/46562
10658         * tree.c (build_invariant_address): New function.
10659         * tree.h (build_invariant_address): Declare.
10660         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
10661         a renamed function moved ...
10662         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
10663         Take valueization callback parameter.
10664         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
10665         * gimple-fold.h: New file.
10666         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
10667         (ccp_fold, fold_const_aggregate_ref,
10668         fold_ctor_reference, fold_nonarray_ctor_reference,
10669         fold_array_ctor_reference, fold_string_cst_ctor_reference,
10670         get_base_constructor): Move ...
10671         * gimple-fold.c: ... here.
10672         (gimple_fold_stmt_to_constant_1): New function
10673         split out from ccp_fold.  Take a valueization callback parameter.
10674         Valueize all operands.
10675         (gimple_fold_stmt_to_constant): New wrapper function.
10676         (fold_const_aggregate_ref_1): New function split out from
10677         fold_const_aggregate_ref.  Take a valueization callback parameter.
10678         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
10679         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
10680         invariant POINTER_PLUS_EXPRs to invariant form.
10681         (vn_valueize): New function.
10682         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
10683         * tree-vrp.c (vrp_valueize): New function.
10684         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
10685         to fold statements to constants.
10686         * tree-ssa-pre.c (eliminate): Properly guard propagation of
10687         function declarations.
10688         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
10689         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
10690
10691 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
10692
10693         * config/h8300/predicates.md (jump_address_operand): Fix register
10694         mode check.
10695
10696 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
10697
10698         * doc/invoke.texi (max-stores-to-sink): Document.
10699         * params.h (MAX_STORES_TO_SINK): Define.
10700         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
10701         if either vectorization or if-conversion is disabled.
10702         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
10703         tree-vect-data-refs.c vect_equal_offsets.
10704         (dr_equal_offsets_p): New function.
10705         (find_data_references_in_bb): Remove static.
10706         * tree-data-ref.h (find_data_references_in_bb): Declare.
10707         (dr_equal_offsets_p): Likewise.
10708         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
10709         (vect_drs_dependent_in_basic_block): Update calls to
10710         vect_equal_offsets.
10711         (vect_check_interleaving): Likewise.
10712         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
10713         (cond_if_else_store_replacement): Rename to...
10714         (cond_if_else_store_replacement_1): ... this.  Change arguments and
10715         documentation.
10716         (cond_if_else_store_replacement): New function.
10717         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
10718         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
10719
10720 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
10721
10722         PR target/46934
10723         * config/arm/arm.md (casesi): Use the gen_int_mode() function
10724         to subtract lower bound instead of GEN_INT().
10725
10726 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
10727
10728         PR other/48179
10729         PR other/48221
10730         PR other/48234
10731         * doc/extend.texi (Alignment): Move section to match order in TOC.
10732         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
10733         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
10734
10735 2011-03-23  Jeff Law  <law@redhat.com>
10736
10737         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
10738         before removing the edge.
10739
10740         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
10741         it may have been freed by redirect_branch_edge or
10742         redirect_edge_succ_nodup.
10743
10744 2011-03-23  Richard Guenther  <rguenther@suse.de>
10745
10746         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
10747         (check_va_list_escapes): Likewise.
10748         (check_all_va_list_escapes): Likewise.
10749
10750 2011-03-23  Richard Guenther  <rguenther@suse.de>
10751
10752         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
10753         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
10754         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
10755         (alias.o): Likewise.
10756         (ipa-type-escape.o): Remove.
10757         (ipa-struct-reorg.o): Likewise.
10758         (GTFILES): Remove ipa-struct-reorg.c.
10759         * alias.c: Do not include ipa-type-escape.h.
10760         * tree-ssa-alias.c: Likewise.
10761         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
10762         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
10763         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
10764         and ipa-type-escape passes.
10765         * tree-pass.h (pass_ipa_type_escape): Remove.
10766         (pass_ipa_struct_reorg): Likewise.
10767         * ipa-struct-reorg.h: Remove.
10768         * ipa-struct-reorg.c: Likewise.
10769         * ipa-type-escape.h: Likewise.
10770         * ipa-type-escape.c: Likewise.
10771         * doc/invoke.texi (-fipa-struct-reorg): Remove.
10772         (--param struct-reorg-cold-struct-ratio): Likewise.
10773         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10774         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10775         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10776
10777 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10778
10779         * config/s390/2084.md: Enable all insn reservations also for z9_ec
10780         cpu attribute value.
10781         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10782         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10783         * config/s390/s390.c (processor_flags_table): New constant array.
10784         (s390_handle_arch_option): Remove.
10785         (s390_handle_option): Remove s390_handle_arch_option invocations
10786         and OPT_mwarn_framesize_ handling.
10787         (s390_option_override): Remove s390_handle_arch_option invocation.
10788         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10789         warnings.
10790         * config/s390/s390.md (cpu attribute): Add z9_ec value.
10791         * config/s390/s390.opt (s390_tune, s390_arch)
10792         (march=): Replace s390_arch_option enum and values with
10793         processor_type.  Set variable name to s390_arch.  Set
10794         initialization value.
10795         (mtune=): Replace s390_arch_option with processor_type.  Set
10796         variable name to s390_tune.  Set initialization value.
10797
10798 2011-03-23  Julian Brown  <julian@codesourcery.com>
10799
10800         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10801         accesses which are not naturally aligned.
10802
10803 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10804
10805         PR target/47553
10806         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10807
10808 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10809
10810         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10811         parameter from "int" to "enum insn_code".
10812         (expand_operand_type): New enum.
10813         (expand_operand): New structure.
10814         (create_expand_operand): New function.
10815         (create_fixed_operand, create_output_operand): Likewise
10816         (create_input_operand, create_convert_operand_to): Likewise.
10817         (create_convert_operand_from, create_address_operand): Likewise.
10818         (create_integer_operand): Likewise.
10819         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10820         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10821         (expand_insn, expand_jump_insn): Likewise.
10822         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10823         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10824         (expand_movstr, expand_builtin___clear_cache): Likewise.
10825         (expand_builtin_lock_release): Likewise.
10826         * explow.c (allocate_dynamic_stack_space): Likewise.
10827         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
10828         and use the default handling in that case.
10829         * expmed.c (check_predicate_volatile_ok): Delete.
10830         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10831         (emit_cstore): Likewise.
10832         * expr.c (emit_block_move_via_movmem): Likewise.
10833         (set_storage_via_setmem, expand_assignment): Likewise.
10834         (emit_storent_insn, try_casesi): Likewise.
10835         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
10836         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10837         (expand_vec_shift_expr, expand_binop_directly): Likewise.
10838         (expand_twoval_unop, expand_twoval_binop): Likewise.
10839         (expand_unop_direct, emit_indirect_jump): Likewise.
10840         (emit_conditional_move, vector_compare_rtx): Likewise.
10841         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10842         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10843         (expand_sync_lock_test_and_set): Likewise.
10844         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
10845         (emit_unop_insn): Likewise.
10846         (expand_copysign_absneg): Change icode to an insn_code.
10847         (create_convert_operand_from_type): New function.
10848         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10849         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10850         (expand_insn, expand_jump_insn): Likewise.
10851         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10852         than const_int_operand for operand 2.
10853
10854 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10855
10856         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10857         if possible.
10858
10859 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10860
10861         * emit-rtl.c (emit_pattern_before_noloc): New function.
10862         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10863         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10864         (emit_pattern_after_noloc): New function.
10865         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10866         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10867
10868 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10869
10870         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10871         (__ffsDI2): Likewise.
10872
10873 2011-03-22  Richard Henderson  <rth@redhat.com>
10874
10875         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10876         of !TARGET_ABI_OPEN_VMS.
10877         (alpha_trampoline_init, alpha_start_function): Likewise.
10878         (alpha_expand_epilogue, alpha_file_start): Likewise.
10879         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10880         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10881         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10882         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10883         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10884
10885 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10886
10887         * config/s390/s390-opts.h: New.
10888         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10889         s390_arch_flags, s390_warn_framesize, s390_stack_size,
10890         s390_stack_guard): Remove.
10891         (s390_handle_arch_option): Return void.  Take enum
10892         s390_arch_option value instead of string and searching array.
10893         (s390_handle_option): Don't assert that global structures are in
10894         use.  Access variables via opts pointer.  Use error_at.  Don't use
10895         sscanf for -mstack-guard= or -mstack-size=.  Update call to
10896         s390_handle_arch_option.
10897         (s390_option_override): Update call to s390_handle_arch_option.
10898         (s390_emit_prologue): Use %d format for s390_stack_size in
10899         diagnostic.  Use %wd for HOST_WIDE_INT.
10900         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10901         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10902         * config/s390/s390.opt (config/s390/s390-opts.h): New
10903         HeaderInclude entry.
10904         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10905         s390_arch_flags, s390_warn_framesize): New Variable entries.
10906         (s390_arch_option): New Enum and EnumValue entries.
10907         (march=): Use Enum instead of Var.
10908         (mstack-guard=, mstack-size=): Use UInteger and Var.
10909         (mtune=): Use Enum.
10910
10911 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10912
10913         * config/score/score.c (score_handle_option): Don't assert that
10914         global structures are in use.  Access target_flags via opts
10915         pointer.  Use value of -march= option to determine target_flags
10916         settings.
10917         * config/score/score.opt (march=): Use Enum.
10918         (score_arch): New Enum and EnumValue entries.
10919
10920 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10921
10922         * config/mep/mep.c (option_mtiny_specified): Remove.
10923         (mep_option_override): Move register handling for -mivc2 from
10924         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
10925         instead of option_mtiny_specified.
10926         (mep_handle_option): Access target_flags via opts pointer.  Don't
10927         assert that global structures are in use.  Defer part of -mivc2
10928         handling and move it to mep_option_override.
10929         * config/mep/mep.opt (IVC2): New Mask entry.
10930         (mivc2): Use Var and Defer instead of Mask.
10931
10932 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10933
10934         * config/v850/v850-opts.h: New.
10935         * config/v850/v850.c (small_memory): Replace with
10936         small_memory_physical_max array.  Make that array static const.
10937         (v850_handle_memory_option): Take integer value of argument.  Take
10938         gcc_options pointer, option text and location.  Return void.
10939         Update for changes to small memory structures.
10940         (v850_handle_option): Access target_flags via opts pointer.  Don't
10941         assert that global structures are in use.  Update calls to
10942         v850_handle_memory_option.
10943         (v850_encode_data_area): Update references to small memory settings.
10944         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10945         (enum small_memory_type): Move to v850-opts.h.
10946         * config/v850/v850.opt (config/v850/v850-opts.h): New
10947         HeaderInclude entry.
10948         (small_memory_max): New Variable entry.
10949         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
10950         (mtda, mzda): Likewise.
10951
10952 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10953
10954         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10955         pointer.  Don't assert that global structures are in use.
10956
10957 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10958
10959         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10960         via opts pointer.  Don't assert that global structures are in use.
10961
10962 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10963
10964         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10965         (munix=93): Use Var.
10966         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10967         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10968         * config/pa/pa-opts.h: New.
10969         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10970         (pa_handle_option): Don't assert that global structures are in
10971         use.  Access target_flags via opts pointer.  Don't handle
10972         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10973         OPT_munix_98 here.
10974         (pa_option_override): Handle deferred OPT_mfixed_range_.
10975
10976 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10977
10978         * config/mn10300/mn10300-opts.h: New.
10979         * config/mn10300/mn10300.c (mn10300_processor,
10980         mn10300_tune_string): Remove.
10981         (mn10300_handle_option): Don't assert that global structures are
10982         in use.  Access mn10300_processor via opts pointer.  Don't handle
10983         OPT_mtune_ here.
10984         * config/mn10300/mn10300.h (enum processor_type): Move to
10985         mn10300-opts.h.
10986         (mn10300_processor): Remove.
10987         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10988         HeaderInclude entry.
10989         (mn10300_processor): New Variable entry.
10990         (mtune=): Use Var.
10991
10992 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10993
10994         * config/microblaze/microblaze.c: Don't include opts.h.
10995         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10996         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10997         (mno-clearbss): Use Var and Warn.
10998
10999 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11000
11001         * config/m32r/m32r-opts.h: New.
11002         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
11003         (m32r_handle_option): Don't assert that global structures are in
11004         use.  Access target_flags and m32r_cache_flush_func via opts
11005         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
11006         OPT_mno_flush_trap here.
11007         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
11008         include of m32r-opts.h.
11009         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
11010         HeaderInclude entry.
11011         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
11012         (mmodel=): Use Enum and Var.
11013         (m32r_model): New Enum and EnumValue entries.
11014         (mno-flush-trap): Use Var.
11015         (msdata=): Use Enum and Var.
11016         (m32r_sdata): New Enum and EnumValue entries.
11017
11018 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11019
11020         * config/m32c/m32c.c: Don't include opts.h.
11021         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
11022         m32c_handle_option): Remove.
11023         (m32c_option_override): Check global_options_set.x_target_memregs
11024         instead of target_memregs_set.
11025         * config/m32c/m32c.h (target_memregs): Remove.
11026         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
11027         variable.
11028
11029 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11030
11031         * config/iq2000/iq2000-opts.h: New.
11032         * config/iq2000/iq2000.c: Don't include opts.h.
11033         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
11034         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
11035         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
11036         HeaderInclude entry.
11037         (iq2000_tune): New Variable entry.
11038         (march=): Add comment.  Use Enum.
11039         (iq2000_arch): New Enum and EnumValue entries.
11040         (mcpu=): Use Enum and Var.
11041         (iq2000_tune): New Enum and EnumValue entries.
11042
11043 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11044
11045         * config/ia64/ia64-opts.h: New.
11046         * config/ia64/ia64.c (ia64_tune): Remove.
11047         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
11048         here.  Use error_at.
11049         (ia64_option_override): Handle deferred OPT_mfixed_range_.
11050         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
11051         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
11052         HeaderInclude entry.
11053         (ia64_tune): New Variable entry.
11054         (mfixed-range=): Use Defer and Var.
11055         (mtune=): Use Enum and Var.
11056         (ia64_tune): New Enum and EnumValue entries.
11057
11058 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11059
11060         * config/frv/frv-opts.h: New.
11061         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
11062         frv-opts.h.
11063         (frv_cpu_type): Remove.
11064         * config/frv/frv.c: Don't include opts.h.
11065         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
11066         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
11067         (frv_cpu_type): New Variable entry.
11068         (frv_cpu): New Enum and EnumValue entries.
11069
11070 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11071
11072         * config/cris/cris.c (cris_handle_option): Access target_flags via
11073         opts pointer.  Don't assert that global structures are in use.
11074         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
11075         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
11076
11077 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11078
11079         * config/bfin/bfin-opts.h: New.
11080         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
11081         bfin_si_revision, bfin_workarounds): Remove.
11082         (bfin_cpus): Make static const.
11083         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
11084         not bfin_lib_id_given.
11085         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
11086         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
11087         pointer. Use error_at.  Don't assert that global structures are in use.
11088         * config/bfin/bfin.h: Include bfin-opts.h.
11089         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
11090         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
11091         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
11092         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
11093         entries.
11094
11095 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11096
11097         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
11098         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
11099         or -msoft-float here.
11100         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
11101         -msoft-float and -mhard-float.
11102         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
11103         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
11104         msoft-float.
11105         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
11106         -msoft-float.
11107         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
11108         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
11109         not mhard-float.
11110         (LIBGCC_SPEC): Don't handle -msoft-float.
11111         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
11112         -mhard-float.
11113         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
11114         msoft-float.
11115         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
11116         -mfloat-abi=*, not -msoft-float and -mhard-float.
11117         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
11118         -msoft-float.
11119         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
11120         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
11121         mhard-float and msoft-float.
11122         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
11123         mfloat-abi=soft in comments, not mhard-float and msoft-float.
11124         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
11125         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
11126         mhard-float.
11127         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
11128         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
11129         msoft-float.
11130         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
11131         not mhard-float.
11132         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
11133         not msoft-float.
11134
11135 2011-03-22  Richard Henderson  <rth@redhat.com>
11136
11137         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
11138         TARGET_ABI_WINDOWS_NT.
11139         (alpha_output_function_end_prologue): Likewise.
11140         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
11141         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11142         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
11143         (trap, *movsi_nt_vms): Likewise.
11144         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
11145         (*tablejump_osf_nt_internal): Remove.
11146         * config/alpha/predicates.md (input_operand): Only test Pmode.
11147
11148 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11149
11150         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
11151         via opts pointer.  Use error_at.  Don't assert that global
11152         structures are in use.
11153
11154 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11155
11156         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
11157         (ix86_handle_option): Access ix86_isa_flags and
11158         ix86_isa_flags_explicit via opts pointer.  Don't assert that
11159         global structures are in use.
11160         (ix86_function_specific_save, ix86_function_specific_restore):
11161         Update ix86_isa_flags_explicit field name.
11162         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
11163         (ix86_isa_flags_explicit): Rename TargetSave entry to
11164         x_ix86_isa_flags_explicit.
11165
11166 2011-03-22  Richard Henderson  <rth@redhat.com>
11167
11168         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
11169         (alpha_option_override, direct_return): Likewise.
11170         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
11171         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
11172         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
11173         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
11174         (alpha_expand_epilogue, alpha_end_function): Likewise.
11175         (alpha_init_libfuncs): Likewise.
11176         (struct machine_function): Remove unicosmk members.
11177         (print_operand) ['t']: Remove.
11178         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
11179         unicosmk_output_module_name, unicosmk_output_common,
11180         current_section_align, unicosmk_output_text_section_asm_op,
11181         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
11182         unicosmk_section_type_flags, unicosmk_unique_section,
11183         unicosmk_asm_named_section, unicosmk_insert_attributes,
11184         unicosmk_output_align, unicosmk_defer_case_vector,
11185         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
11186         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
11187         unicosmk_output_ssib, unicosmk_add_call_info_word,
11188         unicosmk_extern_head, unicosmk_output_default_externs,
11189         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
11190         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
11191         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
11192         * config/alpha/alpha-protos.h: Update.
11193         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
11194         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
11195         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
11196         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
11197         (*mulsi_se, mulvsi3): Likewise.
11198         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
11199         (*divmodsi_internal, call, call_value, realign): Likewise.
11200         (moddi3, umoddi3): Likewise; remove duplicate expander.
11201         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
11202         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
11203         (*movdi_nofix): Remove r/U alternative.
11204         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
11205         * config/alpha/constraints.md ("U"): Remove.
11206         * config/alpha/predicates.md (call_operand"): Don't test
11207         TARGET_ABI_UNICOSMK.
11208
11209 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11210
11211         * target.def (handle_option): Take gcc_options and
11212         cl_decoded_option pointers and location_t.
11213         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
11214         * doc/tm.texi: Regenerate.
11215         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
11216         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
11217         * lto-opts.c (lto_reissue_options): Generate option structure for
11218         targetm.handle_option call.
11219         * opts.c (target_handle_option): Update call to
11220         targetm.handle_option.  Remove assertions about values now passed
11221         down to hook.
11222         * targhooks.c (default_target_handle_option): New.
11223         * targhooks.h (default_target_handle_option): Declare.
11224         * config/alpha/alpha.c: Include opts.h.
11225         (alpha_handle_option): Update to new hook interface.
11226         * config/arm/arm.c: Include opts.h.
11227         (arm_handle_option): Update to new hook interface.
11228         * config/arm/t-arm (arm.o): Update dependencies.
11229         * config/bfin/bfin.c: Include opts.h.
11230         (bfin_handle_option): Update to new hook interface.
11231         * config/cris/cris.c: Include opts.h.
11232         (cris_handle_option): Update to new hook interface.
11233         * config/frv/frv.c: Include opts.h.
11234         (frv_handle_option): Update to new hook interface.
11235         * config/i386/i386.c: Include opts.h.
11236         (ix86_handle_option): Update to new hook interface.
11237         (ix86_valid_target_attribute_inner_p): Generate option structure
11238         for call to ix86_handle_option.
11239         * config/i386/t-i386 (i386.o): Update dependencies.
11240         * config/ia64/ia64.c: Include opts.h.
11241         (ia64_handle_option): Update to new hook interface.
11242         * config/ia64/t-ia64 (ia64.o): Update dependencies.
11243         * config/iq2000/iq2000.c: Include opts.h.
11244         (iq2000_handle_option): Update to new hook interface.
11245         * config/m32c/m32c.c: Include opts.h.
11246         (m32c_handle_option): Update to new hook interface.
11247         * config/m32r/m32r.c: Include opts.h.
11248         (m32r_handle_option): Update to new hook interface.
11249         * config/m68k/m68k.c: Include opts.h.
11250         (m68k_handle_option): Update to new hook interface.
11251         * config/mep/mep.c: Include opts.h.
11252         (mep_handle_option): Update to new hook interface.
11253         * config/microblaze/microblaze.c: Include opts.h.
11254         (microblaze_handle_option): Update to new hook interface.
11255         * config/mips/mips.c: Include opts.h.
11256         (mips_handle_option): Update to new hook interface.
11257         * config/mn10300/mn10300.c: Include opts.h.
11258         (mn10300_handle_option): Update to new hook interface.
11259         * config/pa/pa.c: Include opts.h.
11260         (pa_handle_option): Update to new hook interface.
11261         * config/pdp11/pdp11.c: Include opts.h.
11262         (pdp11_handle_option): Update to new hook interface.
11263         * config/rs6000/rs6000.c: Include opts.h.
11264         (rs6000_handle_option): Update to new hook interface.
11265         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
11266         * config/rx/rx.c: Include opts.h.
11267         (rx_handle_option): Update to new hook interface.
11268         * config/s390/s390.c: Include opts.h.
11269         (s390_handle_option): Update to new hook interface.
11270         * config/score/score.c: Include opts.h.
11271         (score_handle_option): Update to new hook interface.
11272         * config/sh/sh.c: Include opts.h.
11273         (sh_handle_option): Update to new hook interface.
11274         * config/sparc/sparc.c: Include opts.h.
11275         (sparc_handle_option): Update to new hook interface.
11276         * config/v850/v850.c: Include opts.h.
11277         (v850_handle_option): Update to new hook interface.
11278
11279 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11280
11281         * gcc.c (driver_unknown_option_callback): Only permit and save
11282         unknown -Wno- options.
11283         (driver_wrong_lang_callback): Save options directly instead of via
11284         driver_unknown_option_callback.
11285
11286 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
11287
11288         * combine.c (simplify_set): Try harder to find the best CC mode when
11289         simplifying a nested COMPARE on the RHS.
11290
11291 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
11292
11293         * config/alpha/gnu.h: Remove.
11294         * config/arc: Remove directory.
11295         * config/arm/netbsd.h: Remove.
11296         * config/arm/t-pe: Remove.
11297         * config/crx: Remove directory.
11298         * config/i386/netbsd.h: Remove.
11299         * config/m68hc11: Remove directory.
11300         * config/m68k/uclinux-oldabi.h: Remove.
11301         * config/mcore/mcore-pe.h: Remove.
11302         * config/mcore/t-mcore-pe: Remove.
11303         * config/netbsd-aout.h: Remove.
11304         * config/rs6000/gnu.h: Remove.
11305         * config/sh/sh-symbian.h: Remove.
11306         * config/sh/symbian-base.c: Remove.
11307         * config/sh/symbian-c.c: Remove.
11308         * config/sh/symbian-cxx.c: Remove.
11309         * config/sh/symbian-post.h: Remove.
11310         * config/sh/symbian-pre.h: Remove.
11311         * config/sh/t-symbian: Remove.
11312         * config/svr3.h: Remove.
11313         * config/vax/netbsd.h: Remove.
11314         * config.build: Don't handle i[34567]86-*-pe.
11315         * config.gcc: Remove handling of deprecations for most deprecated
11316         targets.
11317         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
11318         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
11319         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
11320         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
11321         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
11322         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
11323         Remove cases.
11324         * config.host: Don't handle i[34567]86-*-pe.
11325         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
11326         (ASM_SPEC32): Don't handle -mcall-gnu.
11327         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
11328         -mcall-gnu.
11329         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
11330         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
11331         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
11332         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
11333         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
11334         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
11335         conditional on SYMBIAN.
11336         * configure.ac: Don't handle powerpc*-*-gnu*.
11337         * configure: Regenerate.
11338         * doc/extend.texi (interrupt attribute): Don't mention CRX.
11339         * doc/install-old.texi (m6811, m6812): Don't mention.
11340         * doc/install.texi (arc-*-elf*): Don't document multilib option.
11341         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
11342         (m68k-uclinuxoldabi): Don't mention.
11343         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
11344         Remove.
11345         (-mcall-gnu): Remove.
11346         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
11347         families): Remove constraint documentation.
11348
11349 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
11350
11351         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
11352         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
11353         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
11354
11355 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
11356
11357         PR target/48226
11358         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
11359         vector when peeking at the next token for vector, don't expand the
11360         keywords.
11361
11362 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
11363
11364         * config/avr/avr-protos.h (expand_epilogue): Change prototype
11365         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
11366         * config/avr/avr.c (init_cumulative_args)
11367         (avr_function_arg_advance): Use it.
11368         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
11369         sibcall epilogues.
11370         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
11371         (avr_function_ok_for_sibcall): ...this new function.
11372         (avr_lookup_function_attribute1): New static Function.
11373         (avr_naked_function_p, interrupt_function_p)
11374         (signal_function_p, avr_OS_task_function_p)
11375         (avr_OS_main_function_p): Use it.
11376         * config/avr/avr.md ("sibcall", "sibcall_value")
11377         ("sibcall_epilogue"): New expander.
11378         ("*call_insn", "*call_value_insn"): New insn.
11379         ("call_insn", "call_value_insn"): Remove
11380         ("call", "call_value", "epilogue"): Change expander to handle
11381         sibling calls.
11382
11383 2011-03-21  Nick Clifton  <nickc@redhat.com>
11384
11385         * doc/invoke.texi (Overall Options): Move closing brace to end of
11386         options list.
11387         (Optimization Options): Add missing @gol.
11388         (Directory Options): Likewise.
11389         (i386 and x86-64 Options): Likewise.
11390         (RS6000 and PowerPC Options): Likewise.
11391         (i386 and x86-64 Windows Options): Likewise.
11392         (V850 Options): Add text missing from descriptions.
11393
11394 2011-03-22  Richard Henderson  <rth@redhat.com>
11395
11396         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
11397         (avr_incoming_return_addr_rtx): New.
11398         (emit_push_byte): New.
11399         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
11400         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
11401         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
11402         (emit_pop_byte): New.
11403         (expand_epilogue): Use it.  Pop frame pointer by bytes.
11404         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
11405         (INCOMING_RETURN_ADDR_RTX): New.
11406         (INCOMING_FRAME_SP_OFFSET): New.
11407         (ARG_POINTER_CFA_OFFSET): New.
11408         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
11409         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
11410         (pophi): Remove.
11411
11412         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
11413
11414 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
11415
11416         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
11417         (FUNCTION_ARG_ADVANCE): Likewise.
11418         * tm.texi.in: Change references to them to hook references.
11419         * tm.texi: Regenerate.
11420         * targhooks.c (default_function_arg): Eliminate check for target
11421         macro.
11422         (default_function_incoming_arg): Likewise.
11423         (default_function_arg_advance): Likewise.
11424         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
11425         (function_arg_advance): Likewise.
11426         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
11427
11428 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
11429
11430         * tree.c (build_call_1): New function.
11431         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
11432
11433 2011-03-22  Richard Guenther  <rguenther@suse.de>
11434
11435         PR tree-optimization/48228
11436         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
11437         for single-arg PHIs.
11438
11439 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
11440
11441         PR rtl-optimization/48143
11442         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
11443         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
11444         sse2_cvtps2pd): Likewise.
11445
11446 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11447
11448         * recog.c (canonicalize_change_group): Use validate_unshare_change.
11449
11450 2011-03-22  Richard Guenther  <rguenther@suse.de>
11451
11452         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
11453         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
11454         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
11455         and REALIGN_LOAD_EXPR.
11456         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
11457         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
11458         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
11459         DOT_PROD_EXPR case ...
11460         (expand_expr_real_2): ... here.
11461         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
11462         and REALIGN_LOAD_EXPR.
11463         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
11464         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
11465         (vect_create_epilog_for_reduction): Likewise.
11466         (vectorizable_reduction): Likewise.
11467         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
11468         * tree-vect-stmts.c (vectorizable_load): Likewise.
11469
11470 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
11471
11472         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
11473
11474 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11475
11476         * config/s390/s390.c (s390_delegitimize_address): Fix offset
11477         handling for PLTOFF/GOTOFF.
11478
11479 2011-03-22  Nick Clifton  <nickc@redhat.com>
11480
11481         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
11482         trailing backslash from the end of the macro definition.
11483
11484 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11485
11486         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
11487         and PLT unspecs.
11488
11489 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
11490
11491         * expr.h (prepare_operand): Move to...
11492         * optabs.h (prepare_operand): ...here and change the insn code
11493         parameter from "int" to "enum insn_code".
11494         (insn_operand_matches): Declare.
11495         * expr.c (init_expr_target): Use insn_operand_matches.
11496         (compress_float_constant): Likewise.
11497         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
11498         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
11499         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
11500         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
11501         Likewise.
11502         (gen_cond_trap): Likewise.
11503         (prepare_operand): Likewise.  Change icode to an insn_code.
11504         (insn_operand_matches): New function.
11505         * reload.c (find_reloads_address_1): Use insn_operand_matches.
11506         * reload1.c (gen_reload): Likewise.
11507         * targhooks.c (default_secondary_reload): Likewise.
11508
11509 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
11510
11511         * config/alpha/alpha.md (unspec): New define_c_enum.
11512         (unspecv): Ditto.
11513
11514 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
11515
11516         PR debug/48214
11517         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
11518         between a call and its CALL_ARG_LOCATION note.
11519
11520 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
11521
11522         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
11523
11524 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
11525
11526         PR c/42544
11527         PR c/48197
11528         * c-common.c (shorten_compare): If primopN is first sign-extended
11529         to opN and then zero-extended to result type, set primopN to opN.
11530
11531 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
11532
11533         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
11534         for barrier handlers.
11535
11536 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
11537
11538         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
11539         UNSPEC constants to be in the unspec enumeration, and redefine
11540         all UNSPECV constants to be in the unspecv enumeration, so that
11541         dumps print which unspec/unspec_volatile this is.
11542         * config/rs6000/vector.md (UNSPEC_*): Ditto.
11543         * config/rs6000/paired.md (UNSPEC_*): Ditto.
11544         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
11545         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
11546         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
11547
11548         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
11549         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
11550         UNSPECV_LWSYNC, since these are used as unspec_volatile.
11551         * config/rs6000/sync.md (isync, lwsync): Ditto.
11552
11553 2011-03-21  Richard Guenther  <rguenther@suse.de>
11554
11555         * params.def (lto-min-partition): Fix typo.
11556
11557 2011-03-21  Richard Guenther  <rguenther@suse.de>
11558
11559         PR c/47939
11560         * c-decl.c (grokdeclarator): Drop to the main variant only
11561         for array types.  Drop flag_gen_aux_info check.
11562
11563 2011-03-21  Richard Guenther  <rguenther@suse.de>
11564
11565         PR translation/47911
11566         * params.def (lto-partitions): Fix typo.
11567         (lto-min-partition): Fix wording.
11568
11569 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
11570
11571         * config/rs6000/t-freebsd: Remove duplication from file.
11572
11573 2011-03-21  Richard Guenther  <rguenther@suse.de>
11574
11575         PR middle-end/47661
11576         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
11577
11578 2011-03-21  Richard Guenther  <rguenther@suse.de>
11579
11580         PR lto/48210
11581         * params.def (lto-partitions): Require at least 1 partition.
11582
11583 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11584
11585         * gthr-solaris.h: Remove.
11586         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
11587         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
11588         (LIB_SPEC): Likewise.
11589         * config/sol2.opt (threads): Remove.
11590         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
11591         (sparc*-*-solaris2*): Likewise.
11592         * configure.ac (enable_threads): Enable solaris support.
11593         * configure: Regenerate.
11594         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
11595         * doc/install.texi (Configuration, --enable-threads=lib): Remove
11596         solaris.
11597
11598 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11599
11600         * config.gcc: Obsolete *-*-solaris2.8*.
11601         * doc/install.texi (Specific, *-*-solaris2*): Document it.
11602
11603 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11604
11605         PR bootstrap/48135
11606         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
11607         reference.  Solaris 8 perl works.
11608
11609 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11610
11611         PR bootstrap/48135
11612         * doc/install.texi (Prerequisites): Move jar etc. up.
11613         Explain support library version requirements.
11614
11615 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11616
11617         PR bootstrap/48135
11618         * doc/install.texi (Prerequisites): Move Perl to build
11619         requirements.  Always necessary on Solaris 2 with Sun ld.
11620
11621 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11622
11623         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
11624         binutils 2.21.
11625         (Specific, i?86-*-solaris2.[89]): Likewise.
11626         (Specific, i?86-*-solaris2.10): Likewise.
11627         (Specific, mips-sgi-irix6): Likewise.
11628         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
11629         Update for binutils 2.21.
11630
11631 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11632
11633         * configure.ac (gcc_cv_lto_plugin): Fix typo.
11634         Allow -fuse-linker-plugin for non-default plugin linker.
11635         * configure: Regenerate.
11636
11637 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11638
11639         PR bootstrap/48167
11640         * gengtype.c (files_rules): Added rule for cp/parser.h.
11641
11642 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
11643
11644         PR target/48213
11645         * config/s390/s390.c (s390_delegitimize_address): Don't call
11646         lowpart_subreg if orig_x has BLKmode.
11647
11648 2011-03-21  Kai Tietz  <ktietz@redhat.com>
11649
11650         PR target/12171
11651         * doc/plugins.texi: Adjust documentation for plugin register_callback.
11652         * tree.h (attribute_spec): Add new member affects_type_identity.
11653         * attribs.c (empty_attribute_table): Adjust attribute_spec
11654         initializers.
11655         * config/alpha/alpha.c: Likewise.
11656         * config/arc/arc.c: Likewise.
11657         * config/arm/arm.c: Likewise.
11658         * config/avr/avr.c: Likewise.
11659         * config/bfin/bfin.c: Likewise.
11660         * config/crx/crx.c: Likewise.
11661         * config/darwin.h: Likewise.
11662         * config/h8300/h8300.c: Likewise.
11663         * config/i386/cygming.h: Likewise.
11664         * config/i386/i386.c: Likewise.
11665         * config/ia64/ia64.c: Likewise.
11666         * config/m32c/m32c.c: Likewise.
11667         * config/m32r/m32r.c: Likewise.
11668         * config/m68hc11/m68hc11.c: Likewise.
11669         * config/m68k/m68k.c: Likewise.
11670         * config/mcore/mcore.c: Likewise.
11671         * config/mep/mep.c: Likewise.
11672         * config/microblaze/microblaze.c: Likewise.
11673         * config/mips/mips.c: Likewise.
11674         * config/rs6000/rs6000.c: Likewise.
11675         * config/rx/rx.c: Likewise.
11676         * config/sh/sh.c: Likewise.
11677         * config/sol2.h: Likewise.
11678         * config/sparc/sparc.c: Likewise.
11679         * config/spu/spu.c: Likewise.
11680         * config/stormy16/stormy16.c: Likewise.
11681         * config/v850/v850.c: Likewise.
11682
11683 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
11684
11685         * simplify-rtx.c (simplify_binary_operation_1): Handle
11686         (xor (and A B) C) case when B and C are both constants.
11687
11688 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
11689
11690         * tree-dfa.c (add_referenced_var): Fix typo in comment.
11691
11692 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
11693
11694         PR bootstrap/48168
11695         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
11696
11697 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
11698
11699         PR rtl-optimization/48156
11700         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
11701         assume df and df_lr are not NULL.
11702
11703 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11704
11705         PR debug/48023
11706         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
11707         between a call and its CALL_ARG_LOCATION note.
11708
11709 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
11710
11711         PR debug/48178
11712         * config/sh/sh.c (find_barrier): Don't emit a constant pool
11713         between a call and its corresponding CALL_ARG_LOCATION note.
11714
11715 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
11716
11717         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
11718         instead of loop. Use HARD_REGISTER_NUM_P predicate.
11719         * haifa-sched.c (setup_ref_regs): Ditto.
11720         * caller-save.c (add_used_regs_1): Ditto.
11721         * dse.c (look_for_hardregs): Ditto.
11722         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
11723         * sched-rgn.c (check_live_1): Ditto.
11724
11725 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
11726
11727         * c-decl.c (diagnose_mismatched_decls): Give an error for
11728         redefining a typedef with variably modified type.
11729
11730 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
11731
11732         * c-decl.c (grokfield): Don't allow typedefs for structures or
11733         unions with no tag by default.
11734         * doc/extend.texi (Unnamed Fields): Update.
11735
11736 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
11737
11738         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11739         Rewrite using indirect functions.
11740         (lwp_slwpcb): Ditto.
11741         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
11742         (avx_vinsertf128<mode>): Ditto.
11743
11744 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11745
11746         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
11747         unspecs.
11748
11749 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11750
11751         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
11752         splitting between a call and its corresponding CALL_ARG_LOCATION note.
11753
11754 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
11755
11756         PR rtl-optimization/48170
11757         * gcse.c (hoist_code): Remove bogus asserts.
11758
11759 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
11760
11761         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
11762         computation for prologue/epilogue.
11763
11764 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11765
11766         * Makefile.in (check-consistency): Remove.
11767
11768 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
11769
11770         PR debug/48176
11771         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11772         arange_table_in_use is 0, but either text_section_used or
11773         cold_text_section_used is true.  Don't call it if
11774         !info_section_emitted.
11775
11776 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
11777
11778         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11779         FUNCTION_VALUE_REGNO_P): Remove.
11780         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11781         Remove.
11782         * config/avr/avr.c (avr_ret_register): Make static inline.
11783         (avr_function_value_regno_p): New function.
11784         (avr_libcall_value): Make static. Add 'func' argument.
11785         (avr_function_value): Make static. Rename 'func' argument to
11786         'fn_decl_or_type', forward it to avr_libcall_value. Call
11787         avr_ret_register function instead of RET_REGISTER macro.
11788         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11789
11790 2011-03-18  Jason Merrill  <jason@redhat.com>
11791
11792         PR c++/23372
11793         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11794
11795 2011-03-18  Richard Guenther  <rguenther@suse.de>
11796
11797         * doc/install.texi (--enable-gold): Remove.
11798         (--with-plugin-ld): Document.
11799         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11800
11801 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
11802
11803         PR middle-end/47790
11804         * expr.c (optimize_bitfield_assignment_op): Revamp to work
11805         again after expansion changes.
11806
11807 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
11808
11809         * combine.c (try_combine): Do simplification only call of
11810         subst() on i2 even when i1 is present. Update comments.
11811
11812 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11813
11814         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11815         and UNSPEC_PCREL_SYMOFF.
11816
11817 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11818
11819         * config/s390/s390.md: Use define_c_enum for the unspec constant
11820         definitions.
11821
11822 2011-03-18  Richard Henderson  <rth@redhat.com>
11823             Jakub Jelinek  <jakub@redhat.com>
11824
11825         PR bootstrap/48161
11826         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11827         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11828
11829 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11830
11831         PR middle-end/47725
11832         * combine.c (cant_combine_insn_p): Don't check zero/sign
11833         extended hard registers.
11834
11835 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11836
11837         PR middle-end/47725
11838         * combine.c (cant_combine_insn_p): Check zero/sign extended
11839         hard registers.
11840
11841 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
11842
11843         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11844         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11845         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11846         Change return type to bool.
11847         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11848
11849 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11850
11851         PR debug/48163
11852         * var-tracking.c (prepare_call_arguments): If CALL target
11853         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11854         pc instead of looking it up using cselib_lookup and use
11855         Pmode for it if x has VOIDmode.
11856         * dwarf2out.c (gen_subprogram_die): If also both first and
11857         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11858
11859         PR debug/48163
11860         * function.c (assign_parms): For data.passed_pointer parms
11861         use MEM of data.entry_parm instead of data.entry_parm itself
11862         as DECL_INCOMING_RTL.
11863         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11864         also when passed and declared mode is the same, DECL_RTL
11865         is a MEM with pseudo as address and DECL_INCOMING_RTL is
11866         a MEM too.
11867
11868 2011-03-16  Jeff Law  <law@redhat.com>
11869
11870         PR rtl-optimization/37273
11871         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11872         handle them like argument loads from stack slots.  Do not double
11873         count memory for memory constants and argument loads from stack slots.
11874
11875 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11876
11877         PR debug/48160
11878         * var-tracking.c (prepare_call_arguments): Check SUBREG.
11879
11880 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11881
11882         PR target/48171
11883         * config/i386/i386.opt: Add Save to -mavx and -mfma.
11884
11885 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11886
11887         PR bootstrap/48153
11888         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11889         if dwarf_strict.
11890         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11891         Clear call_arg_locations and call_arg_loc_last always.
11892
11893         PR middle-end/48152
11894         * var-tracking.c (prepare_call_arguments): If argument needs to be
11895         passed by reference, adjust argtype and mode.
11896
11897 2011-03-17  Richard Guenther  <rguenther@suse.de>
11898
11899         PR middle-end/48134
11900         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11901         a value make sure to fold the statement.
11902
11903 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
11904
11905         PR target/43872
11906         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11907         return condition with !cfun->calls_alloca.
11908
11909 2011-03-17  Richard Guenther  <rguenther@suse.de>
11910
11911         PR bootstrap/48148
11912         * lto-cgraph.c (input_overwrite_node): Clear the abstract
11913         origin for decls in other ltrans units.
11914         (input_varpool_node): Likewise.
11915
11916 2011-03-17  Richard Guenther  <rguenther@suse.de>
11917
11918         PR middle-end/48165
11919         * tree-object-size.c (compute_object_offset): Properly return
11920         the offset operand of MEM_REFs as sizetype.
11921
11922 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11923
11924         PR rtl-optimization/48141
11925         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11926         * dse.c: Include params.h.
11927         (active_local_stores_len): New variable.
11928         (add_wild_read, dse_step1): Clear it when setting active_local_stores
11929         to NULL.
11930         (record_store, check_mem_read_rtx): Decrease it when removing
11931         from the chain.
11932         (scan_insn): Likewise.  Increase it when adding to chain, if it
11933         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11934         set active_local_stores to NULL before the addition.
11935         * Makefile.in (dse.o): Depend on $(PARAMS_H).
11936
11937         PR rtl-optimization/48141
11938         * dse.c (record_store): If no positions are needed in an insn
11939         that cannot be deleted, at least unchain it from active_local_stores.
11940
11941 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
11942
11943         PR debug/47510
11944         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11945         (lookup_type_die_strip_naming_typedef): ... here.
11946         (get_context_die): Use it.
11947         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11948         the anonymous struct named by the naming typedef.
11949
11950 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11951
11952         PR target/48154
11953         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11954         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11955
11956 2011-03-16  Jeff Law  <law@redhat.com>
11957
11958         * tree-vrp.c (identify_jump_threads): Slightly simplify type
11959         check for operands of conditional.  Allow type to be a pointer.
11960
11961 2011-03-16  Richard Guenther  <rguenther@suse.de>
11962
11963         PR tree-optimization/48149
11964         * fold-const.c (fold_binary_loc): Fold
11965         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11966
11967 2011-03-16  Richard Guenther  <rguenther@suse.de>
11968
11969         PR tree-optimization/26134
11970         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11971         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11972         (non_rewritable_mem_ref_base): Handle complex type component
11973         accesses, constrain offsets for vector and complex extracts
11974         more properly.
11975
11976 2011-03-16  Richard Guenther  <rguenther@suse.de>
11977
11978         PR tree-optimization/48146
11979         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11980         operands avoiding the need for renaming.
11981
11982 2011-03-16  Richard Guenther  <rguenther@suse.de>
11983
11984         * gimple-fold.c (maybe_fold_reference): Open-code relevant
11985         constant folding.  Move MEM_REF canonicalization first.
11986         Rely on fold_const_aggregate_ref for initializer folding.
11987         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11988
11989 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11990
11991         PR middle-end/48136
11992         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11993         arg0/arg1 or their arguments are always fold converted to matching
11994         types.
11995
11996         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11997         to nargs.
11998
11999 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12000
12001         PR lto/46944
12002         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
12003         Handle in-tree gold.
12004         (ld_vers): Extract binutils version for gold.
12005         (gcc_cv_ld_hidden): Handle gold here.
12006         (gcc_cv_lto_plugin): Determine level of linker plugin support.
12007         * configure: Regenerate.
12008         * config.in: Regenerate.
12009         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
12010         -fuse-linker-plugin otherwise.
12011         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
12012         (LINK_COMMAND_SPEC): Use it.
12013         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
12014
12015 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
12016
12017         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
12018         * calls.c: Remove debug.h include.
12019         (emit_call_1): Don't call virtual_call_token debug hook.
12020         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
12021         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
12022         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
12023         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
12024         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
12025         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
12026         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
12027         dwarf2out_virtual_call): Remove.
12028         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
12029         copy_call_info and virtual_call hooks.
12030         (dwarf2out_init): Don't initialize vcall_insn_table,
12031         debug_dcall_section and debug_vcall_section.
12032         (prune_unused_types): Don't mark nodes from dcall_table.
12033         (dwarf2out_finish): Don't output dcall or vcall tables.
12034         * final.c (final_scan_insn): Don't call direct_call or
12035         virtual_call debug hooks.
12036         * debug.h (struct gcc_debug_hooks): Remove direct_call,
12037         virtual_call_token, copy_call_info and virtual_call hooks.
12038         (debug_nothing_uid): Remove prototype.
12039         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
12040         copy_call_info and virtual_call hooks.
12041         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12042         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
12043         * debug.c (do_nothing_debug_hooks): Likewise.
12044         (debug_nothing_uid): Remove.
12045         * doc/invoke.texi (-fenable-icf-debug): Remove.
12046         * common.opt (-fenable-icf-debug): Likewise.
12047
12048         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
12049         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
12050         call's MEM.  Handle functions returning aggregate through a hidden
12051         first pointer.  For virtual calls add clobbered pc to call arguments
12052         chain.
12053         * dwarf2out.c (gen_subprogram_die): Emit
12054         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
12055         can't be emitted.
12056
12057         PR debug/45882
12058         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
12059         * rtl.h (ENTRY_VALUE_EXP): Define.
12060         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
12061         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12062         * print-rtl.c (print_rtx): Likewise.
12063         * gengtype.c (adjust_field_rtx_def): Likewise.
12064         * var-tracking.c (vt_add_function_parameter): Adjust
12065         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
12066         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
12067         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
12068         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
12069         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
12070
12071         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
12072         Call var_location debug hook even on CALL_INSNs.
12073         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
12074         * rtl.def (ENTRY_VALUE): New.
12075         * dwarf2out.c: Include cfglayout.h.
12076         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
12077         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
12078         (struct call_arg_loc_node): New type.
12079         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
12080         tail_call_site_count): New variables.
12081         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
12082         DW_TAG_GNU_call_site_parameter.
12083         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
12084         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
12085         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
12086         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
12087         and DW_AT_GNU_all_source_call_sites.
12088         (mem_loc_descriptor): Handle ENTRY_VALUE.
12089         (add_src_coords_attributes): Don't add enything if
12090         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
12091         (dwarf2out_abstract_function): Save and clear call_arg_location,
12092         call_site_count and tail_call_site_count around dwarf2out_decl call.
12093         (gen_call_site_die): New function.
12094         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
12095         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
12096         (dwarf2out_function_decl): Clear call_arg_locations,
12097         call_arg_loc_last, set call_site_count and tail_call_site_count
12098         to -1 and free block_map.
12099         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
12100         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
12101         followed by any real instructions.
12102         (dwarf2out_begin_function): Set call_site_count and
12103         tail_call_site_count to 0.
12104         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
12105         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
12106         attempt to force a DIE for it and worst case remove the attribute.
12107         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
12108         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
12109         the decl itself.
12110         * var-tracking.c: Include tm_p.h.
12111         (vt_stack_adjustments): For calls call note_register_arguments.
12112         (argument_reg_set): New variable.
12113         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
12114         ensure the VALUE is resolved.
12115         (call_arguments): New variable.
12116         (prepare_call_arguments): New function.
12117         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
12118         (struct expand_loc_callback_data): Add ignore_cur_loc field.
12119         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
12120         always use the best expression.
12121         (vt_expand_loc): Add ignore_cur_loc argument.
12122         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
12123         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
12124         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
12125         note for all calls.
12126         (vt_add_function_parameter): Use cselib_lookup_from_insn.
12127         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
12128         argument.  Don't call cselib_preserve_only_values and
12129         cselib_reset_table.
12130         (note_register_arguments): New function.
12131         (vt_initialize): Compute argument_reg_set.  Call
12132         vt_add_function_parameters before processing basic blocks instead of
12133         afterwards.  For calls call prepare_call_arguments before calling
12134         cselib_process_insn.
12135         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
12136         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
12137         (var-tracking.o): Depend on $(TM_P_H).
12138         * cfglayout.h (insn_scope): New prototype.
12139         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
12140         * cfglayout.c (insn_scope): No longer static.
12141         * insn-notes.def (CALL_ARG_LOCATION): New.
12142         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
12143         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
12144         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
12145         nothing for DECL_EXTERNAL BLOCK_VARS.
12146
12147 2011-03-16  Alan Modra  <amodra@gmail.com>
12148
12149         PR target/45844
12150         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
12151         create invalid offset address for vsx splat insn.
12152         * config/rs6000/predicates.md (splat_input_operand): New.
12153         * config/rs6000/vsx.md (vsx_splat_*): Use it.
12154
12155 2011-03-15  Xinliang David Li  <davidxl@google.com>
12156
12157         PR c/47837
12158         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
12159         (normalize_preds): New function.
12160         (is_use_properly_guarded): Normalize def predicates.
12161
12162 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12163
12164         PR target/46788
12165         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
12166         in the output template.
12167
12168 2011-03-15  Richard Guenther  <rguenther@suse.de>
12169
12170         PR middle-end/47650
12171         * tree-pretty-print.c (dump_function_declaration): Properly
12172         dump unprototyped and varargs function types.
12173
12174 2011-03-15  Richard Guenther  <rguenther@suse.de>
12175
12176         PR tree-optimization/13954
12177         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
12178         and friends.
12179
12180 2011-03-15  Richard Guenther  <rguenther@suse.de>
12181
12182         PR tree-optimization/48037
12183         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
12184         selects into BIT_FIELD_REFs.
12185         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
12186         vector select.
12187
12188 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
12189
12190         PR tree-optimization/48129
12191         * builtins.c (fold_builtin_snprintf): Convert to type of
12192         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
12193         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
12194
12195 2011-03-15  Richard Guenther  <rguenther@suse.de>
12196
12197         PR tree-optimization/41490
12198         * tree-ssa-dce.c (propagate_necessity): Handle returns without
12199         value but with VUSE.
12200         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
12201         return statements.
12202         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
12203         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
12204         * tree-tailcall.c (find_tail_calls): Ignore returns.
12205
12206 2011-03-15  Richard Guenther  <rguenther@suse.de>
12207
12208         PR middle-end/48031
12209         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
12210         or variable-indexed array accesses when in gimple form.
12211
12212 2011-03-15  Richard Guenther  <rguenther@suse.de>
12213
12214         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
12215
12216 2011-03-15  Alan Modra  <amodra@gmail.com>
12217
12218         PR target/48032
12219         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
12220         presume symbol_refs without a symbol_ref_decl are suitably
12221         aligned, nor other trees we may see here.  Handle anchor symbols.
12222         (legitimate_constant_pool_address_p): Comment.  Add mode param.
12223         Check cmodel=medium addresses.  Adjust all calls.
12224         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
12225         creating cmodel=medium optimized access to locals.
12226         * config/rs6000/constraints.md (R): Pass QImode to
12227         legitimate_constant_pool_address_p.
12228         * config/rs6000/predicates.md (input_operand): Pass mode to
12229         legitimate_constant_pool_address_p.
12230         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
12231         Update prototype.
12232
12233 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12234
12235         PR target/48053
12236         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
12237         64-bit constants being loaded into registers other than GPRs such
12238         as loading 0 into a VSX register.
12239
12240 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12241
12242         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
12243
12244 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
12245
12246         PR middle-end/47917
12247         * builtins.c (fold_builtin_snprintf): New function.
12248         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
12249         (fold_builtin_4): Likewise.
12250
12251         PR middle-end/38878
12252         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
12253         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
12254         and C - X == X also strip nops from +/-/p+ operand.
12255         When optimizing -X == C, fold C to arg0's type.
12256
12257         PR debug/47946
12258         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
12259         emit it as add_AT_int instead of add_AT_unsigned.
12260
12261 2011-03-14  Tom Tromey  <tromey@redhat.com>
12262
12263         * unwind-dw2.c: Include sys/sdt.h if it exists.
12264         (_Unwind_DebugHook): Use STAP_PROBE2.
12265         * config.in, configure: Rebuild.
12266         * configure.ac: Check for sys/sdt.h.
12267
12268 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
12269
12270         * config/i386/i386.md (ROUND_FLOOR): New constant.
12271         (ROUND_CEIL): Ditto.
12272         (ROUND_TRUNC): Ditto.
12273         (ROUND_MXCSR): Ditto.
12274         (ROUND_NO_EXC): Ditto.
12275         (rint<mode>2): Use new defines instead of numerical constants.
12276         (floor<mode>2): Ditto.
12277         (ceil<mode>2): Ditto.
12278         (btrunc<mode>2): Ditto.
12279         * config/i386/i386-builtin-types.def: Define ROUND function type
12280         aliases.
12281         * config/i386/i386.c (enum ix86_builtins): Add
12282         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
12283         (struct builtin_description): Add
12284         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
12285         (ix86_expand_sse_round): New static function.
12286         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
12287         function types.
12288         (ix86_builtin_vectorized_function): Handle
12289         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
12290
12291 2011-03-14  Tom Tromey  <tromey@redhat.com>
12292
12293         * c-parser.c (c_parser_asm_string_literal): Clear
12294         warn_overlength_strings.
12295
12296 2011-03-14  Tom Tromey  <tromey@redhat.com>
12297
12298         * c-parser.c (disable_extension_diagnostics): Save
12299         warn_overlength_strings.
12300         (restore_extension_diagnostics): Restore warn_overlength_strings.
12301
12302 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
12303
12304         * BASE-VER: Change to 4.7.0.
12305
12306 2011-03-14  Richard Guenther  <rguenther@suse.de>
12307
12308         PR middle-end/48098
12309         * tree.c (build_vector_from_val): Adjust assert to requirements
12310         and reality.
12311
12312 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
12313
12314         PR bootstrap/48102
12315         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
12316
12317 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
12318
12319         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
12320         terms of target_flags_explicit. Adjust copyright year.
12321
12322         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
12323         * config/rs6000/t-freebsd: New file. Add override for
12324         LIB2FUNCS_EXTRA.
12325
12326 2011-03-13  Chris Demetriou  <cgd@google.com>
12327
12328         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
12329         (-fno-diagnostics-show-option): this, to reflect current default.
12330         (-Werror=): Update text about -fno-diagnostics-show-option.
12331
12332 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
12333
12334         PR target/48053
12335         * config/rs6000/predicates.md (easy_vector_constant_add_self,
12336         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
12337         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
12338         mode is not V2DImode or V2DFmode.
12339         (vspltis_constant): Do not handle V2DImode and V2DFmode.
12340         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
12341         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
12342         registers to 0.
12343         (movdi_internal64): Likewise.
12344
12345 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
12346
12347         PR tree-optimization/47127
12348         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
12349         parameter.
12350         (set_cloog_options): Same.
12351         (scop_to_clast): Same.
12352         (print_clast_stmt): Do not call cloog_state_malloc and
12353         cloog_state_free.
12354         (print_generated_program): Same.
12355         (gloog): Same.
12356         * graphite-clast-to-gimple.h (cloog_state): Declared.
12357         (scop_to_clast): Adjust declaration.
12358         * graphite.c (cloog_state): Defined here.
12359         (graphite_initialize): Call cloog_state_malloc.
12360         (graphite_finalize): Call cloog_state_free.
12361
12362 2011-03-11  Jason Merrill  <jason@redhat.com>
12363
12364         * attribs.c (lookup_attribute_spec): Take const_tree.
12365         * tree.h: Adjust.
12366
12367 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
12368
12369         * config/sparc/sparc.c (sparc_option_override): Use
12370         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
12371
12372 2011-03-11  Richard Guenther  <rguenther@suse.de>
12373
12374         PR tree-optimization/48067
12375         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
12376         multiplication result will be only used once on the target
12377         stmt.
12378
12379 2011-03-11  Richard Guenther  <rguenther@suse.de>
12380
12381         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
12382
12383 2011-03-11  Richard Guenther  <rguenther@suse.de>
12384
12385         PR lto/48073
12386         * tree.c (find_decls_types_r): Do not walk types only reachable
12387         from IDENTIFIER_NODEs.
12388
12389 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
12390
12391         PR middle-end/48044
12392         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
12393         all vnode->force_output nodes as needed.
12394
12395 2011-03-11  Jason Merrill  <jason@redhat.com>
12396
12397         PR c++/48069
12398         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
12399         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
12400
12401 2011-03-11  Martin Jambor  <mjambor@suse.cz>
12402
12403         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
12404         cgraph_node.
12405
12406 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
12407
12408         PR tree-optimization/48063
12409         * ipa-inline.c (cgraph_decide_inlining): Don't try to
12410         inline functions called once if !tree_can_inline_p (node->callers).
12411
12412 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
12413
12414         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
12415         extra_objs.
12416         * config/score/score3.c: Delete.
12417         * config/score/score3.h: Delete.
12418         * config/score/mul-div.S: Delete.
12419         * config/score/sfp-machine.h: Add new file.
12420         * config/score/constraints.md: Add new file.
12421         * config/score/t-score-softfp: Add new file.
12422         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
12423         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
12424         (score7_extra_constraint): Delete.
12425         (score7_option_override): Remove unused code.
12426         * config/score/score.c: Remove score3 and score5 define and code.
12427         * config/score/score.h: Remove score3 and score5 define and code.
12428         * config/score/score.md: Remove score3 template and unusual insn.
12429         * config/score/score.opt: Remove score3 and score5 options.
12430
12431 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12432
12433         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
12434         when _HPUX_SOURCE is defined.
12435         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
12436
12437 2011-03-10  Jason Merrill  <jason@redhat.com>
12438
12439         PR c++/48029
12440         * stor-layout.c (layout_type): Don't set structural equality
12441         on arrays of incomplete type.
12442         * tree.c (type_hash_eq): Handle comparing them properly.
12443
12444 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
12445
12446         PR debug/48043
12447         * config/s390/s390.c (s390_delegitimize_address): Make sure the
12448         result mode matches original rtl mode.
12449
12450 2011-03-10  Nick Clifton  <nickc@redhat.com>
12451
12452         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
12453         (andsi3, andsi3_flags): Fix timings for three operand alternative.
12454
12455 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
12456
12457         PR rtl-optimization/47866
12458         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
12459         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
12460         if target wasn't scalar.
12461         * function.c (assign_stack_temp_for_type): Assert that neither
12462         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
12463         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
12464         macro.
12465         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
12466
12467 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12468
12469         * config/s390/s390-protos.h (s390_label_align): New prototype.
12470         * config/s390/s390.c (s390_label_align): New function.
12471         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
12472
12473 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
12474
12475         PR target/47755
12476         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
12477         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
12478         (output_vec_const_move): Ditto.
12479
12480 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
12481
12482         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
12483         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
12484         * config/mips/mips.c (mips_preferred_reload_class): Make static.
12485         Change 'rclass' argument and result type to reg_class_t.
12486         (TARGET_PREFERRED_RELOAD_CLASS): Define.
12487
12488 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
12489
12490         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12491         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
12492         (TARGET_MEMORY_MOVE_COST): Define.
12493         (avr_register_move_cost, avr_memory_move_cost): New Functions.
12494
12495 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
12496
12497         PR debug/47881
12498         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
12499         removed anything.
12500
12501         PR tree-optimization/48022
12502         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
12503         for EQ/NE_EXPR.
12504
12505 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
12506
12507         PR debug/47991
12508         * var-tracking.c (find_use_val): Return NULL for
12509         cui->sets && cui->store_p BLKmode MEMs.
12510
12511 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
12512
12513         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
12514         Remove.
12515         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
12516         xstormy16_print_operand_address): Remove.
12517         * config/stormy16/stormy16.c (xstormy16_print_operand,
12518         xstormy16_print_operand_address): Make static.
12519         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12520
12521 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
12522
12523         PR target/47862
12524         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12525         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
12526         before definition.
12527
12528 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
12529
12530         PR bootstrap/48000
12531         * cfgloopmanip.c (fix_bb_placements): Return immediately
12532         if FROM is BASE_LOOP's header.
12533
12534 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
12535
12536         * gimplify.c (gimplify_function_tree): Fix building calls
12537         to __builtin_return_address.
12538
12539 2011-03-07  Alan Modra  <amodra@gmail.com>
12540
12541         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
12542         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
12543         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
12544         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
12545         return_mode args.
12546         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
12547         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
12548         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
12549         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
12550         * config/rs6000/rs6000.c
12551         (rs6000_elf_end_indicate_exec_stack): Rename to..
12552         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
12553         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
12554         (rs6000_file_start): ..here.
12555         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
12556         file scope variables.
12557         (call_ABI_of_interest): New function.
12558         (init_cumulative_args): Set above vars when function return value
12559         is a float, vector, or small struct.
12560         (rs6000_function_arg_advance_1): Likewise for function args.
12561         (rs6000_va_start): Set rs6000_passes_float if variable arg function
12562         references float args.
12563
12564 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
12565
12566         * doc/cfg.texi: Remove "See" before @ref.
12567         * doc/invoke.texi: Likewise.
12568
12569 2011-03-05  Jason Merrill  <jason@redhat.com>
12570
12571         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
12572
12573 2011-03-05  Anthony Green  <green@moxielogic.com>
12574
12575         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
12576
12577 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
12578
12579         PR rtl-optimization/47899
12580         * cfgloopmanip.c (fix_bb_placements): Fix first argument
12581         to flow_loop_nested_p when moving the loop upward.
12582
12583 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
12584
12585         PR target/47719
12586         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
12587
12588 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
12589
12590         PR tree-optimization/47967
12591         * ipa-cp.c (build_const_val): Return NULL instead of creating
12592         VIEW_CONVERT_EXPR for mismatching sizes.
12593         (ipcp_create_replace_map): Return NULL if build_const_val failed.
12594         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
12595         give up on versioning.
12596
12597 2011-03-05  Alan Modra  <amodra@gmail.com>
12598
12599         PR target/47986
12600         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12601         full cmodel medium/large lo_sum + high addresses.
12602
12603 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12604
12605         * config/s390/s390.c (s390_decompose_address): Reject non-literal
12606         pool references in UNSPEC_LTREL_OFFSET.
12607
12608 2011-03-04  Jan Hubicka  <jh@suse.cz>
12609
12610         PR lto/47497
12611         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
12612         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
12613         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
12614         Add node pointers.
12615         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
12616         cgraph_add_thunk): Add node pointers.
12617         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
12618         associated to right node.
12619         (input_node): Update use of cgraph_same_body_alias
12620         and cgraph_add_thunk.
12621
12622 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
12623
12624         * config/i386/i386.opt (mprefer-avx128): New flag.
12625         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
12626         modes when the flag -mprefer-avx128 is on.
12627
12628 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
12629
12630         * dwarf2out.c (compare_loc_operands): Fix address handling.
12631
12632 2011-03-04  Alan Modra  <amodra@gmail.com>
12633
12634         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
12635
12636 2011-03-04  Richard Guenther  <rguenther@suse.de>
12637
12638         PR middle-end/47968
12639         * expmed.c (extract_bit_field_1): Prefer vector modes that
12640         vec_extract patterns can handle.
12641
12642 2011-03-04  Richard Guenther  <rguenther@suse.de>
12643
12644         PR middle-end/47975
12645         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
12646
12647 2011-03-04  Richard Henderson  <rth@redhat.com>
12648
12649         * explow.c (emit_stack_save): Remove 'after' parameter.
12650         (emit_stack_restore): Likewise.
12651         * expr.h: Update to match.
12652         * builtins.c, calls.c, stmt.c: Likewise.
12653         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
12654         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
12655         * function.c (expand_function_end): Insert the emit_stack_save
12656         sequence before parm_birth_insn instead of after.
12657
12658 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
12659
12660         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
12661         (ssse3_pmaddubsw128): Ditto.
12662         (ssse3_pmaddubsw): Ditto.
12663
12664 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
12665
12666         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
12667
12668 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
12669
12670         PR c/47963
12671         * gimplify.c (omp_add_variable): Only call omp_notice_variable
12672         on TYPE_SIZE_UNIT if it is a DECL.
12673
12674         PR debug/47283
12675         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
12676         first operand is not is_gimple_mem_ref_addr, try to fold it.
12677         If the operand still isn't is_gimple_mem_ref_addr, clear
12678         MEM_EXPR on op0.
12679
12680 2011-03-03  Richard Guenther  <rguenther@suse.de>
12681
12682         PR middle-end/47283
12683         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
12684         match comment.
12685         (refs_may_alias_p_1): For release branches return true if
12686         we are confused by our input.
12687
12688 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12689
12690         * config/s390/s390.c (s390_function_value): Rename to ...
12691         (s390_function_and_libcall_value): ... this.
12692         (s390_function_value): New function.
12693         (s390_libcall_value): New function.
12694         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
12695         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
12696         target macro definitions.
12697         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
12698
12699 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
12700
12701         * config/i386/freebsd64.h (CC1_SPEC): Define.
12702         * config/i386/linux64.h (CC1_SPEC): Define.
12703         * config/i386/x86-64.h (CC1_SPEC): Don't define.
12704
12705 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
12706
12707         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12708         Remove.
12709         * config/stormy16/stormy16.c: Include reload.h.
12710         (xstormy16_memory_move_cost): New function.
12711         (TARGET_MEMORY_MOVE_COST): Define.
12712
12713 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
12714
12715         PR rtl-optimization/47925
12716         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
12717         with side effects.  Remove the more-specific check for volatile asms.
12718
12719 2011-03-02  Alan Modra  <amodra@gmail.com>
12720
12721         PR target/47935
12722         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
12723         toc relative addresses for valid offsets.
12724
12725 2011-03-01  Richard Guenther  <rguenther@suse.de>
12726
12727         PR tree-optimization/47890
12728         * tree-vect-loop.c (get_initial_def_for_induction): Set
12729         related stmt properly.
12730
12731 2011-03-01  Richard Guenther  <rguenther@suse.de>
12732
12733         PR lto/47924
12734         * lto-streamer.c (lto_record_common_node): Also register
12735         the canonical type.
12736
12737 2011-03-01  Richard Guenther  <rguenther@suse.de>
12738
12739         PR lto/46911
12740         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12741         Do not stream DECL_ABSTRACT_ORIGIN.
12742         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12743         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12744         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12745         Do not stream DECL_ABSTRACT_ORIGIN.
12746         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12747         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12748
12749 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
12750
12751         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
12752         FUNCTION_VALUE_REGNO_P): Remove.
12753         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
12754         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
12755         Add 'outgoing' argument.
12756         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
12757         function.
12758         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12759         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12760
12761 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
12762
12763         PR debug/28047
12764         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12765         (lookup_filename): Likewise.
12766         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
12767
12768 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
12769             Jakub Jelinek  <jakub@redhat.com>
12770
12771         PR middle-end/47893
12772         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12773         (assign_stack_local_1): Change last argument type to int.
12774         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12775         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
12776         don't record padding space into frame_space_list nor use those areas.
12777         (assign_stack_local): Adjust caller.
12778         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12779         of assign_stack_local, pass 0 as last argument.
12780         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12781         callers.
12782
12783 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
12784
12785         PR debug/47283
12786         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12787         Use target address_mode and pointer_mode hooks instead of hardcoded
12788         Pmode and ptr_mode.  Handle some simple cases of extending if
12789         POINTERS_EXTEND_UNSIGNED < 0.
12790         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12791         Call convert_debug_memory_address.
12792         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12793         convert_debug_memory_address.
12794
12795         PR middle-end/46790
12796         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12797         * configure: Regenerated.
12798         * config.in: Regenerated.
12799         * varasm.c (default_function_section): Return NULL
12800         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12801
12802 2011-02-28  Martin Jambor  <mjambor@suse.cz>
12803
12804         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12805         the description to match the printed values.
12806
12807 2011-02-28  Richard Guenther  <rguenther@suse.de>
12808
12809         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12810         of the copied scope tree.
12811
12812 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12813
12814         * doc/extend.texi (Function Attributes): Avoid deeply (and
12815         wrongly) nested tables.
12816
12817 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
12818
12819         PR middle-end/47903
12820         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12821         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12822         r isn't op0 nor op1.
12823
12824 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12825
12826         * config/avr/avr.md: Remove magic comment for emacs.
12827
12828 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12829
12830         PR target/45261
12831         * config/avr/avr.c (avr_option_override): Use error on bad options.
12832         (avr_help): New function.
12833         (TARGET_HELP): Define.
12834
12835 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
12836
12837         PR target/42240
12838         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12839         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12840
12841 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
12842
12843         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12844         (ARM Options): Ditto.
12845         (i386 and x86-64 Options): Ditto.
12846         (RX Options): Ditto.
12847         (SPARC Options): Ditto.
12848
12849 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
12850
12851         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12852         FreeBSD 6 and later.  Generally use cpu generic.
12853
12854 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
12855
12856         * doc/cpp.texi: Update copyright years.
12857
12858 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12859
12860         PR target/46898
12861         * config/lm32/lm32.md (ashrsi3): Added needed variable.
12862
12863 2011-02-25  Jon Beniston  <jon@beniston.com>
12864
12865         PR target/46898
12866         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12867         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12868         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12869         (lm32_block_move_inline): Add type cast to remove warning.
12870         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12871         (gen_int_relational): Move declarations to start of function.
12872
12873 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
12874
12875         PR tree-optimization/45470
12876         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12877         can throw internally only.
12878         * tree-vect-stmts.c (vectorizable_call): Likewise.
12879
12880 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
12881
12882         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12883         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12884         * config/stormy16/stormy16-protos.h
12885         (xstormy16_preferred_reload_class): Remove.
12886         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12887         static. Change 'rclass' argument and return type to reg_class_t.
12888         (TARGET_PREFERRED_RELOAD_CLASS,
12889         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12890
12891 2011-02-24  Richard Guenther  <rguenther@suse.de>
12892
12893         * lto-streamer-in.c (input_bb): Do not find referenced vars
12894         in debug statements.
12895
12896 2011-02-23  Jason Merrill  <jason@redhat.com>
12897
12898         * common.opt (fabi-version): Document v5 and v6.
12899
12900 2011-02-23  Richard Guenther  <rguenther@suse.de>
12901
12902         PR tree-optimization/47849
12903         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12904
12905 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12906
12907         * opts-common.c (decode_cmdline_option): Print empty string
12908         argument as "" in decoded->orig_option_with_args_text.
12909         * gcc.c (execute): Print empty string argument as ""
12910         in the verbose output.
12911         (do_spec_1): Keep empty string argument.
12912
12913 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
12914
12915         * config.gcc: Declare score-* and crx-* obsolete.
12916
12917 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12918
12919         PR rtl-optimization/47763
12920         * web.c (web_main): Ignore naked clobber when replacing register.
12921
12922 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
12923
12924         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12925         Remove.
12926
12927 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12928
12929         PR doc/47848
12930         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12931
12932 2011-02-22  Mike Stump  <mikestump@comcast.net>
12933
12934         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12935         assembler.
12936         * configure: Regenerate.
12937
12938 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
12939
12940         PR rtl-optimization/46002
12941         * ira-color.c (update_copy_costs): Change class intersection
12942         test to reg_class_contents[] test of 'hard_regno'.
12943
12944 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
12945
12946         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12947         than Driver option.
12948         * config/hpux11.opt (mt): Likewise.
12949         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12950         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12951         * config/vax/elf.opt (mno-asm-pic): Likewise.
12952         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12953
12954 2011-02-21  Mike Stump  <mikestump@comcast.net>
12955
12956         PR target/47822
12957         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12958         tree so we can get save the type.
12959         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12960         for CFString instead of trying to use past the end of the builtins.
12961         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12962         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12963         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12964         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12965         Rename to darwin_builtin_cfstring.
12966         (darwin_init_cfstring_builtins): Return the built type.
12967
12968 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
12969
12970         PR target/47840
12971         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12972         (_mm256_insert_epi64): Use _mm_insert_epi64.
12973
12974 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
12975
12976         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12977         * config/stormy16/stormy16-protos.h
12978         (xstormy16_mode_dependent_address_p): Remove.
12979         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12980         Make static. Change return type to bool. Change argument type to
12981         const_rtx. Remove dead code.
12982         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12983
12984 2011-02-21  Richard Guenther  <rguenther@suse.de>
12985
12986         PR lto/47820
12987         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12988         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12989         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12990         TUs context.
12991         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12992         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12993
12994 2011-02-20  Richard Guenther  <rguenther@suse.de>
12995
12996         PR lto/47822
12997         * tree.c (free_lang_data_in_decl): Clean builtins from
12998         the TU decl BLOCK_VARS.
12999
13000 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
13001
13002         PR debug/47620
13003         PR debug/47630
13004         * haifa-sched.c (fix_tick_ready): Skip tick computation
13005         for debug insns.
13006
13007 2011-02-19  Richard Guenther  <rguenther@suse.de>
13008
13009         PR lto/47647
13010         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
13011         Remove lazy BLOCK_VARS streaming.
13012         (lto_input_ts_block_tree_pointers): Likewise.
13013         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
13014
13015 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
13016
13017         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
13018
13019 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
13020
13021         * config/i386/biarch32.h, config/i386/mach.h,
13022         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
13023
13024 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
13025
13026         PR target/47800
13027         * config/i386/i386.md (peephole2 for shift and plus): Use
13028         operands[1] original mode in the first insn.
13029
13030 2011-02-18  Mike Stump  <mikestump@comcast.net>
13031
13032         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
13033
13034 2011-02-18  Jan Hubicka  <jh@suse.cz>
13035
13036         PR middle-end/47788
13037         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
13038         to zero when the function is not inlinable at all.
13039
13040 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13041
13042         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
13043         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13044         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
13045         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
13046         * config/pa/t-pa64: Likewise.
13047         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
13048
13049 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
13050
13051         PR driver/47787
13052         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
13053
13054 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13055
13056         PR target/47792
13057         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
13058
13059 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
13060
13061         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
13062         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
13063         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
13064         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
13065         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
13066         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
13067         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
13068         m32r_load_postinc_p, m32r_store_preinc_predec_p,
13069         m32r_legitimate_address_p): New functions.
13070         * config/m32r/constraints.md (constraint "S"): Don't use
13071         STORE_PREINC_PREDEC_P.
13072         (constraint "U"): Don't use LOAD_POSTINC_P.
13073
13074 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
13075
13076         PR rtl-optimization/46178
13077         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
13078         compute ira_hard_regno_cover_class[].
13079
13080 2011-02-18  Richard Guenther  <rguenther@suse.de>
13081
13082         PR lto/47798
13083         * lto-streamer.h (lto_global_var_decls): Declare.
13084         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
13085         statics for global var processing.
13086
13087 2011-02-18  Richard Guenther  <rguenther@suse.de>
13088
13089         PR tree-optimization/47737
13090         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
13091         edge dominance check.
13092
13093 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
13094
13095         PR debug/47780
13096         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
13097         avoid invalid rtx sharing.
13098
13099 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
13100
13101         * doc/cpp.texi (Obsolete Features): Add background on the
13102         origin of assertions.
13103
13104 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
13105
13106         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
13107         objc_abi == 2.
13108         * config/darwin.c (output_objc_section_asm_op): Added support for
13109         ABI v1 and v2.
13110         (is_objc_metadata): New.
13111         (darwin_objc2_section): New.
13112         (darwin_objc1_section): New.
13113         (machopic_select_section): Added support for ABI v1 and v2.
13114         (darwin_emit_objc_zeroed): New.
13115         (darwin_output_aligned_bss): Detect objc metadata and treat it
13116         appropriately.
13117         (darwin_asm_output_aligned_decl_common): Same.
13118         (darwin_asm_output_aligned_decl_local): Same.
13119         * config/darwin-sections.def: Updated for ABI v1 and v2.
13120         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
13121         compiling Objective-C code for the NeXT runtime, default to using
13122         ABI version 0 for 32-bit, and version 2 for 64-bit.
13123
13124 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13125
13126         * common.opt (optimize_fast): New Variable.
13127         * opts.c (default_options_optimization): Use opts->x_optimize_fast
13128         instead of local variable ofast.
13129
13130 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
13131
13132         * doc/invoke.texi (fobjc-abi-version): Documented.
13133         (fobjc-nilcheck): Documented.
13134         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
13135         version.
13136
13137 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13138
13139         PR driver/47390
13140         * common.opt (export-dynamic): New Driver option.
13141         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
13142
13143 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13144
13145         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
13146
13147 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
13148             Jan Hubicka  <jh@suse.cz>
13149
13150         PR debug/47106
13151         PR debug/47402
13152         * cfgexpand.c (account_used_vars_for_block): Remove.
13153         (estimated_stack_frame_size): Use referenced vars.
13154         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
13155         that were referenced in the original function.  Test src_fn
13156         rather than cfun.  Drop redundant get_var_ann.
13157         (setup_one_parameter): Drop redundant get_var_ann.
13158         (declare_return_variable): Likewise.
13159         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
13160         (copy_arguments_for_versioning): Drop redundant get_var_ann.
13161         * ipa-inline.c (compute_inline_parameters): Do not compute
13162         disregard_inline_limits here.
13163         (compute_inlinable_for_current, pass_inlinable): New.
13164         (pass_inline_parameters): Require PROP_referenced_vars.
13165         * cgraphunit.c (cgraph_process_new_functions): Don't run
13166         compute_inline_parameters explicitly unless function is in SSA form.
13167         (cgraph_analyze_function): Set .disregard_inline_limits.
13168         * tree-sra.c (convert_callers): Compute inliner parameters
13169         only for functions already in SSA form.
13170
13171 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13172
13173         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
13174         -mlittle-endian-data.
13175
13176 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
13177
13178         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
13179         -mno-fpu, not -fpu and -no-fpu.
13180         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
13181         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
13182
13183 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
13184
13185         PR target/43653
13186         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
13187         input reload with PLUS RTX.
13188
13189 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13190
13191         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
13192         of InverseVar(MDMX).
13193
13194 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13195
13196         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
13197         --m4-340.
13198
13199 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13200
13201         * config/mn10300/mn10300.opt (mno-crt0): New.
13202
13203 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13204
13205         * config/m68k/uclinux.opt (static-libc): New Driver option.
13206
13207 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13208
13209         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
13210
13211 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
13212
13213         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
13214         %{muser-extend-enabled}.
13215
13216 2011-02-16  Richard Guenther  <rguenther@suse.de>
13217
13218         PR tree-optimization/47738
13219         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
13220         the TODO from tree_predictive_commoning.
13221
13222 2011-02-15  Jeff Law  <law@redhat.com>
13223
13224         Revert
13225         2011-01-25  Jeff Law  <law@redhat.com>
13226
13227         PR rtl-optimization/37273
13228         * ira-costs.c (scan_one_insn): Detect constants living in memory and
13229         handle them like argument loads from stack slots.  Do not double
13230         count memory for memory constants and argument loads from stack slots.
13231
13232 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
13233
13234         PR middle-end/47725
13235         * combine.c (cant_combine_insn_p): Revert the last change.
13236
13237 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
13238
13239         PR target/47755
13240         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
13241         mode for vector constants.  Remove code that checks for TImode.
13242
13243 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
13244
13245         PR debug/47106
13246         PR debug/47402
13247         * cgraph.h (compute_inline_parameters): Return void.
13248         * ipa-inline.c (compute_inline_parameters): Adjust.
13249
13250 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
13251
13252         PR debug/47106
13253         PR debug/47402
13254         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
13255         rather than decl.
13256         * cfgexpand.c (estimated_stack_frame_size): Likewise.
13257         * ipa-inline.c (compute_inline_parameters): Adjust.
13258
13259 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
13260
13261         PR debug/47106
13262         PR debug/47402
13263         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
13264         Adjust all users.  Pass FN to...
13265         * tree-flow-inline.h (first_referenced_var): ... this.  Add
13266         fn argument.
13267         * ipa-struct-reorg.c: Adjust.
13268         * tree-dfa.c: Adjust.
13269         * tree-into-ssa.c: Adjust.
13270         * tree-sra.c: Adjust.
13271         * tree-ssa-alias.c: Adjust.
13272         * tree-ssa-live.c: Adjust.
13273         * tree-ssa.c: Adjust.
13274         * tree-ssanames.c: Adjust.
13275         * tree-tailcall.c: Adjust.
13276
13277 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
13278
13279         PR debug/47106
13280         PR debug/47402
13281         * tree-flow.h (referenced_var_lookup): Add fn parameter.
13282         Adjust all callers.
13283         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
13284         * tree-flow-inline.h: Adjust.
13285         * gimple-pretty-print.c: Adjust.
13286         * tree-into-ssa.c: Adjust.
13287         * tree-ssa.c: Adjust.
13288         * cfgexpand.c: Adjust.
13289
13290 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
13291
13292         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
13293         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13294         (EXTRA_CONSTRAINT): Delete.
13295         * config/iq2000/constraints.md: New file.
13296         * config/iq2000/iq2000.md: Include it.
13297         (define_insn ""): Delete.
13298         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
13299         unsupported constraint letters from patterns.
13300         (call_value, call_value_internal1): Likewise.
13301         (call_value_multiple_internal1): Likewise.
13302
13303 2011-02-15  Nick Clifton  <nickc@redhat.com>
13304
13305         * config/mn10300/mn10300.c: Include tm-constrs.h.
13306         (struct liw_data): New data structure describing an LIW candidate
13307         instruction.
13308         (extract_bundle): Use struct liw_data.  Allow small integer
13309         operands for some instructions.
13310         (check_liw_constraints): Use struct liw_data.  Remove swapped
13311         parameter.  Add comments describing the checks.  Fix bug when
13312         assigning the source of liw1 to the source of liw2.
13313         (liw_candidate): Delete.  Code moved into extract_bundle.
13314         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
13315         before swapping.
13316         * config/mn10300/predicates.md (liw_operand): New predicate.
13317         Allows registers and small integer constants.
13318         * config/mn10300/constraints.md (O): New constraint.  Accetps
13319         integers in the range -8 to +7 inclusive.
13320         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
13321         for moving a small integer into a register.  Give this alternative
13322         LIW attributes.
13323         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
13324         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
13325         using the J,K,L and M constraints,
13326         (liw): Remove SI mode on second operands to allow for HI and QI
13327         mode values.
13328         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
13329         instruction.
13330
13331 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
13332
13333         PR middle-end/47725
13334         * combine.c (cant_combine_insn_p): Check zero/sign extended
13335         hard registers.
13336
13337 2011-02-15  Richard Guenther  <rguenther@suse.de>
13338
13339         PR tree-optimization/47743
13340         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
13341         for a non-type-compatible VN lookup bail out.
13342
13343 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
13344
13345         * config/fr30/constraints.md: New file.
13346         * config/fr30/fr30.md: Include it.
13347         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
13348         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13349         (EXTRA_CONSTRAINT): Delete.
13350
13351 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
13352
13353         * config/frv/constraints.md: New file.
13354         * config/frv/predicates.md: Include it.
13355         * config/frv/frv.c (reg_class_from_letter): Delete.
13356         (frv_option_override): Don't initialize it.
13357         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
13358         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
13359         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
13360         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
13361         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
13362         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13363         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
13364         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
13365         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
13366         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
13367         (REG_CLASS_FROM_CONSTRAINT): Delete.
13368
13369 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
13370
13371         PR middle-end/47581
13372         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
13373         if frame size is 0 in a leaf function.
13374
13375 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13376
13377         PR pch/14940
13378         * config/alpha/host-osf.c: New file.
13379         * config/alpha/x-osf: New file.
13380         * config.host (alpha*-dec-osf*): Use it.
13381
13382 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
13383
13384         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13385         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
13386         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
13387         (rx_mode_dependent_address_p): ...this. Make static. Change argument
13388         type to const_rtx.
13389         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13390
13391 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
13392
13393         * config/stormy16/constraints.md: New file.
13394         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
13395         Use satisfies_constraint_Q and satisfies_constraint_R.
13396         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
13397         Delete.
13398         (xstormy16_legitiamte_address_p): Declare.
13399         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
13400         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13401         (EXTRA_CONSTRAINT): Delete.
13402         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
13403         Un-staticize.
13404         (xstormy16_extra_constraint_p): Delete.
13405
13406 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
13407
13408         PR tree-optimization/46494
13409         * loop-unroll.c (split_edge_and_insert): Adjust comment.
13410         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
13411         (pass_rtl_loop_done): Add TODO_verify_flow.
13412         * fwprop.c (pass_rtl_fwprop): Likewise.
13413         * modulo-sched.c (pass_sms): Likewise.
13414         * tree-ssa-dom.c (pass_dominator): Likewise.
13415         * tree-ssa-loop-ch.c (pass_ch): Likewise.
13416         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
13417         (pass_tree_loop_done): Likewise.
13418         * tree-ssa-pre.c (execute_pre): Likewise.
13419         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
13420         * tree-ssa-sink.c (pass_sink_code): Likewise.
13421         * tree-vrp.c (pass_vrp): Likewise.
13422
13423 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
13424
13425         * config/v850/constraints.md: New file.
13426         * config/v850/v850.md: Include it.
13427         * config/v850/predicates.md (reg_or_0_operand): Use
13428         satisfies_constraint_G.
13429         (special_symbolref_operand): Use satisfies_constraint_K.
13430         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
13431         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13432         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
13433         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
13434         (EXTRA_CONSTRAINT): Delete.
13435         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
13436         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
13437         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
13438
13439 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
13440
13441         PR target/47696
13442         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
13443         description.
13444
13445 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
13446
13447         * config/mcore/constraints.md: New file.
13448         * config/mcore/mcore.md: Include it.
13449         * config/mcore/mcore.c (reg_class_from_letter): Delete.
13450         * config/mcore/mcore.h (reg_class_from_letter): Delete.
13451         (REG_CLASS_FROM_LETTER): Delete.
13452         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
13453         insn_const_int_ok_for_constraint.
13454         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
13455         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
13456         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13457         (EXTRA_CONSTRAINT): Delete.
13458
13459 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13460
13461         PR ada/41929
13462         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
13463         (IS_SIGHANDLER): Define.
13464         (sparc64_is_sighandler): New function, split off from
13465         sparc64_fallback_frame_state.
13466         (sparc_is_sighandler): New function, split off from
13467         sparc_fallback_frame_state.
13468         (sparc64_fallback_frame_state): Merge with ...
13469         (sparc_fallback_frame_state): ... this into ...
13470         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
13471         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
13472         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
13473         stack instead of hardcoded offsets.
13474
13475 2011-02-14  Andriy Gapon  <avg@freebsd.org>
13476
13477         PR target/45808
13478         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
13479
13480 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13481
13482         * configure: Regenerate.
13483
13484 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
13485
13486         PR driver/45731
13487         * gcc.c (asm_options): Correct spec matching --target-help.
13488
13489 2011-02-12  Martin Jambor  <mjambor@suse.cz>
13490
13491         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
13492         to gimple call error.
13493
13494 2011-02-12  Mike Stump  <mikestump@comcast.net>
13495
13496         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
13497         comments in backslash regions.
13498
13499 2011-02-12  Mike Stump  <mikestump@comcast.net>
13500             Jakub Jelinek  <jakub@redhat.com>
13501             Iain Sandoe  <iains@gcc.gnu.org>
13502
13503         PR target/47324
13504         * dwarf2out.c (output_cfa_loc): When required, apply the
13505         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
13506         (output_loc_sequence): Likewise.
13507         (output_loc_operands_raw): Likewise.
13508         (output_loc_sequence_raw): Likewise.
13509         (output_cfa_loc): Likewise.
13510         (output_loc_list): Suppress register number adjustment when
13511         calling output_loc_sequence()
13512         (output_die): Likewise.
13513
13514 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
13515
13516         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13517         Remove macros.
13518         * config/xtensa/xtensa.c (xtensa_register_move_cost,
13519         xtensa_memory_move_cost): New functions.
13520         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
13521
13522 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
13523
13524         PR lto/47225
13525         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
13526         in the current directory.
13527         * configure: Rebuilt.
13528
13529 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
13530
13531         * config/darwin.c (darwin_override_options): Add a hunk missed
13532         from the commit of r168571.  Trim comment line lengths and
13533         correct indents of the preceding block.
13534
13535 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
13536
13537         * gcc.c (driver_handle_option): Concatenate the argument to -F with
13538         the switch.
13539
13540 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
13541
13542         * common.opt (nostartfiles): New Driver option.
13543
13544 2011-02-11  Xinliang David Li  <davidxl@google.com>
13545
13546         PR tree-optimization/47707
13547         * tree-chrec.c (convert_affine_scev): Keep type precision.
13548
13549 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
13550
13551         PR tree-optimization/47420
13552         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
13553
13554 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
13555
13556         PR rtl-optimization/47614
13557         * rtl.h (check_for_inc_dec): Declare.
13558         * dse.c (check_for_inc_dec): Externalize...
13559         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
13560         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
13561
13562 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
13563
13564         PR driver/47678
13565         * gcc.c (main): Do not compile inputs if there were errors in
13566         option handling.
13567         * opts-common.c (read_cmdline_option): Check for wrong language
13568         after other error checks.
13569
13570 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
13571
13572         * cgraph.c: Fix comment typos.
13573         * cgraph.h: Likewise.
13574         * cgraphunit.c: Likewise.
13575         * ipa-cp.c: Likewise.
13576         * ipa-inline.c: Likewise.
13577         * ipa-prop.c: Likewise.
13578         * ipa-pure-const.c: Likewise.
13579         * ipa-ref.c: Likewise.
13580         * ipa-reference.c: Likewise.
13581
13582 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
13583
13584         PR debug/47684
13585         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
13586
13587 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13588
13589         PR testsuite/47400
13590         * doc/sourcebuild.texi (Require Support): Document
13591         dg-require-ascii-locale.
13592
13593 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
13594
13595         * doc/lto.texi (Write summary): Fix missing parentheses.
13596
13597 2011-02-10  DJ Delorie  <dj@redhat.com>
13598
13599         * config/m32c/m32c.c (m32c_option_override): Disable
13600         -fcombine-stack-adjustments until flag value tracking and compare
13601         optimization can be rewritten.
13602
13603 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
13604
13605         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
13606         PROCESSOR_POWER7.
13607         (PROCESSOR_DEFAULT64): Likewise.
13608
13609 2011-02-10  Richard Henderson  <rth@redhat.com>
13610
13611         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
13612         change from 2011-02-03.
13613         * config/rx/rx.c (flags_from_code): Likewise.
13614         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
13615         is valid, n/pz otherwise.
13616         (rx_select_cc_mode): Return CCmode if Y is not zero.
13617
13618 2011-02-10  Richard Guenther  <rguenther@suse.de>
13619
13620         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
13621
13622 2011-02-10  Richard Guenther  <rguenther@suse.de>
13623
13624         PR tree-optimization/47677
13625         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
13626
13627 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
13628
13629         PR target/47665
13630         * combine.c (make_compound_operation): Only change shifts into
13631         multiplication for SCALAR_INT_MODE_P.
13632
13633 2011-02-10  Jie Zhang  <jie@codesourcery.com>
13634
13635         PR testsuite/47622
13636         Revert
13637         2011-02-05  Jie Zhang  <jie@codesourcery.com>
13638         PR debug/42631
13639         * web.c (entry_register): Don't clobber the number of the
13640         first uninitialized reference in used[].
13641
13642 2011-02-09  Richard Guenther  <rguenther@suse.de>
13643
13644         PR tree-optimization/47664
13645         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
13646         all edges again.
13647
13648 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
13649
13650         PR target/46481
13651         PR target/47032
13652         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
13653         PROCESSOR_POWER7.
13654         (PROCESSOR_DEFAULT64): Same.
13655         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
13656
13657 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13658
13659         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
13660
13661 2011-02-09  Martin Jambor  <mjambor@suse.cz>
13662
13663         PR middle-end/45505
13664         * tree-sra.c (struct access): New flags grp_scalar_read and
13665         grp_scalar_write.  Changed description of assignment read and write
13666         flags.
13667         (dump_access): Dump new flags, reorder all of them.
13668         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
13669         to detect multiple scalar reads.
13670         (analyze_access_subtree): Use the new scalar read write flags instead
13671         of the old flags.  Adjusted comments.
13672
13673 2011-02-08  DJ Delorie  <dj@redhat.com>
13674
13675         PR target/47548
13676         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
13677         patterns.
13678
13679 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13680
13681         * config/m68k/uclinux.opt: New.
13682         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
13683
13684 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13685
13686         * config/cris/elf.opt (sim): New Driver option.
13687
13688 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13689
13690         * config/xtensa/elf.opt: New.
13691         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
13692
13693 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13694
13695         * config/vax/elf.opt: New.
13696         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
13697
13698 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13699
13700         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
13701
13702 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13703
13704         * config/gnu-user.opt: New.
13705         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
13706         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
13707         *-*-uclinux*): Use gnu-user.opt.
13708
13709 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
13710
13711         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
13712         * config/i386/gnu.h (CPP_SPEC): Likewise.
13713
13714 2011-02-08  Ian Lance Taylor  <iant@google.com>
13715
13716         * common.opt (fcx-limited-range): Add SetByCombined flag.
13717         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
13718         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
13719         (fassociative-math, freciprocal-math): Likewise.
13720         (funsafe-math-optimizations): Likewise.
13721         * opth-gen.awk: Handle SetByCombined.
13722         * optc-gen.awk: Likewise.
13723         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
13724         (set_unsafe_math_optimizations_flags): Likewise.
13725         * doc/options.texi (Option properties): Document SetByCombined.
13726
13727 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
13728
13729         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
13730         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
13731         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
13732         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
13733         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
13734
13735 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
13736
13737         PR tree-optimization/46834
13738         PR tree-optimization/46994
13739         PR tree-optimization/46995
13740         * graphite-sese-to-poly.c (used_outside_reduction): New.
13741         (detect_commutative_reduction): Call used_outside_reduction.
13742         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
13743         translate_scalar_reduction_to_array only when at least one
13744         loop-phi/close-phi tuple has been detected.
13745
13746 2011-02-08  Richard Guenther  <rguenther@suse.de>
13747
13748         PR middle-end/47639
13749         * tree-vect-generic.c (expand_vector_operations_1): Update
13750         stmts here ...
13751         (expand_vector_operations): ... not here.  Cleanup EH info
13752         and the CFG if required.
13753
13754 2011-02-08  Richard Guenther  <rguenther@suse.de>
13755
13756         PR tree-optimization/47641
13757         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
13758         require type compatibility.
13759
13760 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13761
13762         * gimple-low.c (lower_function_body): Don't remove the location of
13763         the return statement here.
13764         (lower_gimple_return): Do it here instead but only if the return
13765         statement is actually used twice.
13766
13767 2011-02-08  Richard Guenther  <rguenther@suse.de>
13768
13769         PR tree-optimization/47632
13770         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13771         unused up_to_stmt parameter, return whether cfg-cleanup is
13772         necessary, remove EH info properly.
13773         (forward_propagate_into_gimple_cond): Adjust caller.
13774         (forward_propagate_into_cond): Likewise.
13775         (forward_propagate_comparison): Likewise.
13776         (tree_ssa_forward_propagate_single_use_vars): Make
13777         forward_propagate_comparison case similar to the two others.
13778
13779 2011-02-08  Nick Clifton  <nickc@redhat.com>
13780
13781         * config/mn10300/mn10300.opt (mliw): New command line option.
13782         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13783         (liw_bundling): New automaton.
13784         (liw): New attribute.
13785         (liw_op): New attribute.
13786         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13787         (movsi_internal): Add LIW attributes.
13788         (andsi3): Likewise.
13789         (iorsi3): Likewise.
13790         (xorsi3): Likewise.
13791         (addsi3): Separate register and immediate alternatives.
13792         Add LIW attributes.
13793         (subsi3): Likewise.
13794         (cmpsi): Likewise.
13795         (aslsi3): Likewise.
13796         (lshrsi3): Likewise.
13797         (ashrsi3): Likewise.
13798         (liw): New pattern.
13799         * config/mn10300/mn10300.c (liw_op_names): New
13800         (mn10300_print_operand): Handle 'W' operand descriptor.
13801         (extract_bundle): New function.
13802         (check_liw_constraints): New function.
13803         (liw_candidate): New function.
13804         (mn10300_bundle_liw): New function.
13805         (mn10300_reorg): New function.
13806         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13807         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13808         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13809         __LIW__ or __NO_LIW__.
13810         * doc/invoke.texi: Describe the -mliw command line option.
13811
13812 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13813
13814         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13815         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13816         pthread_mutex_unlock): Remove.
13817         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13818         * config/pa/t-pa64: Likewise.
13819         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13820         shared libc if not linking against libpthread.
13821         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13822
13823 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
13824
13825         PR target/47558
13826         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13827         on 10.6 and later to ensure that we always use the unwinder from
13828         the system.  Only add -no_compact_unwind when tarteting darwin
13829         10.6 or later.
13830
13831 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
13832
13833         PR target/46997
13834         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13835         (vec_interleave_lowv2sf): Ditto.
13836         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13837         (vec_extract_oddv2sf): Ditto.
13838
13839 2011-02-07  Mike Stump  <mikestump@comcast.net>
13840
13841         PR target/42333
13842         Add __ieee_divdc3 entry point.
13843         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13844         entry point.
13845         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13846         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13847         * config/darwin.c (darwin_rename_builtins): Add.
13848         * config/darwin-protos.h (darwin_rename_builtins): Add.
13849
13850 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
13851
13852         PR target/47636
13853         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13854         for the condition.
13855
13856 2011-02-07  Mike Stump  <mikestump@comcast.net>
13857
13858         * config/darwin.opt (mmacosx-version-min): Update default OS version.
13859
13860 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
13861
13862         PR target/47534
13863         * config/avr/libgcc.S (exit): Move .endfunc
13864
13865 2011-02-07  Richard Guenther  <rguenther@suse.de>
13866
13867         PR tree-optimization/47615
13868         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13869         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13870         (run_scc_vn): Initialize it.
13871         (visit_reference_op_load): Use it.
13872         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13873
13874 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13875
13876         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13877         DImode trapping arithmetic libfuncs.
13878
13879 2011-02-07  Richard Guenther  <rguenther@suse.de>
13880
13881         PR tree-optimization/47621
13882         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13883         two duplicates ...
13884         (execute_update_addresses_taken): ... here.  Make it more
13885         conservative in what we accept.
13886
13887 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13888
13889         * config/sparc/freebsd.h (ASM_SPEC): Define.
13890         * config/sparc/vxworks.h (ASM_SPEC): Define.
13891
13892 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13893
13894         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13895
13896 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
13897
13898         * doc/invoke.texi: Remove reference to compiler internals from
13899         user documentation.
13900
13901         * reg-notes.def: Remove REG_VALUE_PROFILE.
13902         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13903
13904 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
13905
13906         PR middle-end/47610
13907         * varasm.c (default_section_type_flags): If decl is NULL,
13908         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13909
13910 2011-02-05  Jie Zhang  <jie@codesourcery.com>
13911
13912         PR debug/42631
13913         * web.c (entry_register): Don't clobber the number of the
13914         first uninitialized reference in used[].
13915
13916 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
13917
13918         PR tree-optimization/46194
13919         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13920         (build_classic_dist_vector_1): Do not represent classic distance
13921         vectors when the access functions are variating in different loops.
13922
13923 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13924
13925         * config/mips/iris6.opt: New.
13926         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13927
13928 2011-02-04  Richard Henderson  <rth@redhat.com>
13929             Steve Ellcey  <sje@cup.hp.com>
13930
13931         PR target/46997
13932         * config/ia64/predicates.md (mux1_brcst_element): New.
13933         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13934         * config/ia64/ia64.c (ia64_unpack_assemble): New.
13935         (ia64_unpack_sign): New.
13936         (ia64_expand_unpack): Rewrite using new routines.
13937         (ia64_expand_widen_sum): Ditto.
13938         (ia64_expand_dot_prod_v8qi): Ditto.
13939         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13940         routines, add endian check.
13941         (pmpy2_even): Rename from pmpy2_r, add endian check.
13942         (pmpy2_odd): Rename from pmpy2_l, add endian check.
13943         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13944         (vec_widen_smult_hi_v4hi): Ditto.
13945         (vec_widen_umult_lo_v4hi): Ditto.
13946         (vec_widen_umult_hi_v4hi): Ditto.
13947         (mulv2si3): Change endian checks.
13948         (sdot_prodv4hi): Rewrite with new calls.
13949         (udot_prodv4hi): New.
13950         (vec_pack_ssat_v4hi): Add endian check.
13951         (vec_pack_usat_v4hi): Ditto.
13952         (vec_pack_ssat_v2si): Ditto.
13953         (max1_even): Rename from max1_r, add endian check.
13954         (max1_odd): Rename from max1_l, add endian check.
13955         (*mux1_rev): Format change.
13956         (*mux1_mix): Ditto.
13957         (*mux1_shuf): Ditto.
13958         (*mux1_alt): Ditto.
13959         (*mux1_brcst_v8qi): Use new predicate.
13960         (vec_extract_evenv8qi): Remove endian check.
13961         (vec_extract_oddv8qi): Ditto.
13962         (vec_interleave_lowv4hi): Format change.
13963         (vec_interleave_highv4hi): Ditto.
13964         (mix2_even): Rename from mix2_r, add endian check.
13965         (mix2_odd): Rename from mux2_l, add endian check.
13966         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13967         (vec_extract_evenodd_helper): Format change.
13968         (vec_extract_evenv4hi): Remove endian check.
13969         (vec_extract_oddv4hi): Remove endian check.
13970         (vec_interleave_lowv2si): Format change.
13971         (vec_interleave_highv2si): Format change.
13972         (vec_initv2si): Remove endian check.
13973         (vecinit_v2si): Add endian check.
13974         (reduc_splus_v2sf): Add endian check.
13975         (reduc_smax_v2sf): Ditto.
13976         (reduc_smin_v2sf): Ditto.
13977         (vec_initv2sf): Remove endian check.
13978         (fpack): Add endian check.
13979         (fswap): Add endian check.
13980         (vec_interleave_highv2sf): Add endian check.
13981         (vec_interleave_lowv2sf): Add endian check.
13982         (fmix_lr): Add endian check.
13983         (vec_setv2sf): Format change.
13984         (*vec_extractv2sf_0_be): Use shift to extract operand.
13985         (*vec_extractv2sf_1_be): New.
13986         (vec_pack_trunc_v4hi): Add endian check.
13987         (vec_pack_trunc_v2si): Format change.
13988
13989 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
13990
13991         PR inline-asm/23200
13992         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
13993         do bb, locus and block comparison and disallow loads if it is not set.
13994         (stmt_is_replaceable_p): New function.
13995         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13996         callers.
13997         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13998         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13999         SSA_NAME_DEF_STMT.
14000         * tree-flow.h (stmt_is_replaceable_p): New prototype.
14001
14002 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
14003
14004         * config/rs6000/xilinx.opt: New.
14005         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
14006
14007 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
14008
14009         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
14010
14011 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
14012
14013         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
14014         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
14015         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
14016         secondary_reload_info, xtensa_secondary_reload): Remove.
14017         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
14018         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14019         (xtensa_preferred_reload_class): Make static. Change return and
14020         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
14021         Use CONST_DOUBLE_P predicate.
14022         (xtensa_preferred_output_reload_class): New function.
14023         (xtensa_secondary_reload): Make static.
14024
14025 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
14026
14027         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
14028         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
14029         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
14030
14031 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
14032
14033         PR middle-end/31490
14034         * output.h (SECTION_RELRO): Define.
14035         (SECTION_MACH_DEP): Adjust.
14036         (get_variable_section): New prototype.
14037         * varpool.c (varpool_finalize_named_section_flags): New function.
14038         (varpool_assemble_pending_decls): Call it.
14039         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
14040         * cgraphunit.c (cgraph_output_in_order): Call
14041         varpool_finalize_named_section_flags.
14042         * varasm.c (get_section): Allow section flags conflicts between
14043         relro and read-only sections if the section hasn't been declared yet.
14044         Set SECTION_OVERRIDE after diagnosing section type conflict.
14045         (get_variable_section): No longer static.
14046         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
14047         readonly sections that need relocations.
14048         (decl_readonly_section_1): New function.
14049         (decl_readonly_section): Use it.
14050
14051         Revert:
14052         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
14053                     Steve Ellcey  <sje@cup.hp.com>
14054
14055         PR middle-end/31490
14056         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
14057         if section attribute used.
14058
14059 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
14060
14061         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
14062         * config/darwin.c (SECTION_NO_ANCHOR): Define.
14063         (darwin_init_sections): Remove assertion.
14064
14065 2011-02-03  Nick Clifton  <nickc@redhat.com>
14066
14067         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
14068         lt and ge.
14069         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
14070         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
14071         instead of "n" and "pz".
14072         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
14073         CC_FLAG_S.
14074
14075 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
14076
14077         PR target/47312
14078         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
14079         fma, expand FMA_EXPR as fma{,f,l} call.
14080
14081         PR lto/47274
14082         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
14083         copy them into a unsigned char variable and pass address of it to
14084         lto_output_data_stream.
14085
14086         PR target/47564
14087         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
14088         around backend_init_target and lang_dependent_init_target calls.
14089         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
14090         (verify_cgraph_node): Don't call set_cfun here.  Use
14091         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
14092         Set error_found for incorrectly represented calls to thunks.
14093
14094 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
14095
14096         PR debug/43092
14097         PR rtl-optimization/43494
14098         * rtl.h (for_each_inc_dec_fn): New type.
14099         (for_each_inc_dec): Declare.
14100         * rtlanal.c (struct for_each_inc_dec_ops): New type.
14101         (for_each_inc_dec_find_inc_dec): New fn.
14102         (for_each_inc_dec_find_mem): New fn.
14103         (for_each_inc_dec): New fn.
14104         * dse.c (struct insn_size): Remove.
14105         (replace_inc_dec, replace_inc_dec_mem): Remove.
14106         (emit_inc_dec_insn_before): New fn.
14107         (check_for_inc_dec): Use it, along with for_each_inc_dec.
14108         (canon_address): Pass mem modes to cselib_lookup.
14109         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
14110         (cselib_lookup_from_insn): Likewise.
14111         (cselib_subst_to_values): Likewise.
14112         * cselib.c (find_slot_memmode): New var.
14113         (cselib_find_slot): New fn.  Use it instead of
14114         htab_find_slot_with_hash everywhere.
14115         (entry_and_rtx_equal_p): Use find_slot_memmode.
14116         (autoinc_split): New fn.
14117         (rtx_equal_for_cselib_p): Rename and implement in terms of...
14118         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
14119         Deal with autoinc.  Special-case recursion into MEMs.
14120         (cselib_hash_rtx): Likewise.
14121         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
14122         address and MEM modes.
14123         (cselib_subst_to_values): Add memmode, pass it on.
14124         Deal with autoinc.
14125         (cselib_lookup): Add memmode argument, pass it on.
14126         (cselib_lookup_from_insn): Add memmode.
14127         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
14128         (struct cselib_record_autoinc_data): New.
14129         (cselib_record_autoinc_cb): New fn.
14130         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
14131         mode to cselib_lookup.  Reset autoinced REGs here instead of...
14132         (cselib_process_insn): ... here.
14133         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
14134         to cselib_lookup.
14135         (add_uses): Likewise, also to cselib_subst_to_values.
14136         (add_stores): Likewise.
14137         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
14138         cselib_subst_to_values.
14139         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
14140         * gcse.c (do_local_cprop): Adjusted.
14141         * postreload.c (reload_cse_simplify_set): Adjusted.
14142         (reload_cse_simplify_operands): Adjusted.
14143         * sel-sched-dump (debug_mem_addr_value): Pass mode.
14144
14145 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
14146
14147         PR tree-optimization/45122
14148         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
14149         unsafe assumptions when there's more than one loop exit.
14150
14151 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14152
14153         PR target/47272
14154         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14155         Document using vector double with the load/store builtins, and
14156         that the load/store builtins always use Altivec instructions.
14157
14158         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
14159         to use altivec memory instructions, even on VSX.
14160         (vector_altivec_store_<mode>): Ditto.
14161
14162         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
14163         function.
14164
14165         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14166         V2DF, V2DI support to load/store overloaded builtins.
14167
14168         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
14169         altivec load/store builtins for V2DF/V2DI types.
14170
14171         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14172         set avoid indexed addresses on power6 if -maltivec.
14173         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
14174         vector_altivec_load/vector_altivec_store builtins.
14175         (altivec_expand_st_builtin): Ditto.
14176         (altivec_expand_builtin): Add VSX memory builtins.
14177         (rs6000_init_builtins): Add V2DI types to internal types.
14178         (altivec_init_builtins): Add support for V2DF/V2DI altivec
14179         load/store builtins.
14180         (rs6000_address_for_altivec): Insure memory address is appropriate
14181         for Altivec.
14182
14183         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
14184         vec_vsx_ld and vec_vsx_st.
14185         (vsx_store_<mode>): Ditto.
14186
14187         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
14188         variables to hold long long types for VSX vector memory builtins.
14189         (RS6000_BTI_unsigned_long_long): Ditto.
14190         (long_long_integer_type_internal_node): Ditti.
14191         (long_long_unsigned_type_internal_node): Ditti.
14192
14193         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
14194         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
14195         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
14196
14197         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
14198         short cuts.
14199         (vec_vsx_st): Ditto.
14200
14201 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
14202
14203         * config/pa/pa-hpux10.opt: New.
14204         * config/hpux11.opt (pthread): New Driver option.
14205         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
14206         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
14207
14208 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
14209
14210         * config/ia64/vms.opt: New.
14211         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
14212
14213 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
14214
14215         PR target/47580
14216         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
14217         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
14218         generator functions.
14219         (vsx_floatuns<VSi><mode>2): Ditto.
14220         (vsx_fix_trunc<mode><VSi>2): Ditto.
14221         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
14222
14223 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
14224
14225         * config/i386/djgpp.opt (posix): New Driver option.
14226
14227 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
14228
14229         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
14230         Move to the unsupported targets list.
14231
14232 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
14233
14234         PR rtl-optimization/47525
14235         * df-scan.c: Update copyright years.
14236         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
14237         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
14238
14239 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14240
14241         * config/i386/sysv4.h (TARGET_VERSION): Remove.
14242         (SUBTARGET_RETURN_IN_MEMORY): Remove.
14243         (ASM_OUTPUT_ASCII): Remove.
14244         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
14245
14246 2011-02-02  Jeff Law  <law@redhat.com>
14247
14248         PR middle-end/47543
14249         * reload.c (find_reloads_address): Handle reg+d address where both
14250         components are invalid by reloading the entire address.
14251
14252 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
14253             Richard Guenther  <rguenther@suse.de>
14254
14255         PR tree-optimization/40979
14256         PR bootstrap/47044
14257         * passes.c (init_optimization_passes): After LIM call copy_prop
14258         and DCE to clean up.
14259         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
14260
14261 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
14262
14263         PR tree-optimization/47576
14264         PR tree-optimization/47555
14265         * doc/invoke.texi (scev-max-expr-complexity): Documented.
14266         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14267         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
14268         * tree-scalar-evolution.c (follow_ssa_edge): Use
14269         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
14270
14271 2011-02-02  Richard Guenther  <rguenther@suse.de>
14272
14273         PR tree-optimization/47566
14274         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
14275
14276 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
14277
14278         PR debug/47106
14279         PR debug/47402
14280         * tree-inline.c (declare_return_variable): Remove unused caller
14281         variable.
14282
14283         PR debug/47106
14284         PR debug/47402
14285         * tree-flow-inline.h (clear_is_used, is_used_p): New.
14286         * cfgexpand.c (account_used_vars_for_block): Use them.
14287         * tree-nrv.c (tree_nrv): Likewise.
14288         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
14289         (dump_scope_block): Likewise.
14290         (remove_unused_locals): Likewise.
14291
14292         PR debug/47106
14293         PR debug/47402
14294         * tree-inline.c (declare_return_variable): Add result decl to
14295         local decls only once.
14296         * gimple-low.c (record_vars_into): Mark newly-created variables
14297         as referenced.
14298
14299 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
14300
14301         PR debug/47498
14302         PR debug/47501
14303         PR debug/45136
14304         PR debug/45130
14305         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14306         debug insns.
14307         (no_real_insns_p, schedule_block, set_priorities): Drop special
14308         treatment of boundary debug insns.
14309         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14310         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
14311         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14312         (BOUNDARY_DEBUG_INSN_P): Likewise.
14313         (SCHEDULE_DEBUG_INSN_P): Likewise.
14314         * sched-rgn.c (init_ready_list): Drop special treatment of
14315         boundary debug insns.
14316         * final.c (rest_of_clean_state): Clear notes' BB.
14317
14318 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14319
14320         * config/openbsd.opt (assert=): New Driver option.
14321
14322 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14323
14324         * config/i386/nto.opt: New.
14325         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
14326
14327 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14328
14329         * config/i386/netware.opt: New.
14330         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
14331
14332 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14333
14334         * config/interix.opt (posix): New Driver option.
14335
14336 2011-02-01  DJ Delorie  <dj@redhat.com>
14337
14338         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
14339
14340         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
14341         class for A0/A1.
14342
14343 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
14344
14345         PR tree-optimization/47561
14346         * toplev.c (process_options): Print the Graphite flags.  Add
14347         flag_loop_flatten to the list of options requiring Graphite.
14348
14349 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14350
14351         * config/i386/cygming.opt (posix): New Driver option.
14352
14353 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14354
14355         * config/arm/vxworks.opt: New.
14356         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
14357
14358 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
14359
14360         * config/alpha/elf.opt: New.
14361         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
14362         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
14363
14364 2011-02-01  Richard Guenther  <rguenther@suse.de>
14365
14366         PR tree-optimization/47559
14367         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
14368         store-motion on references that can throw.
14369
14370 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
14371
14372         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
14373         * tree-pass.h (TDF_CSELIB): New macro.
14374         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
14375         cselib_lookup): Check for it rather than for TDF_DETAILS.
14376
14377 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
14378
14379         PR driver/47547
14380         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
14381         is HOST_BIT_BUCKET.
14382
14383         * opts.c (finish_options): Don't add x_aux_base_name if it is
14384         HOST_BIT_BUCKET.
14385
14386 2011-02-01  Richard Guenther  <rguenther@suse.de>
14387
14388         PR tree-optimization/47555
14389         Revert
14390         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
14391
14392         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14393
14394 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
14395
14396         PR gcc/46692
14397         * config/lm32/t-lm32: Add multilib for all CPU options.
14398
14399 2011-02-01  Richard Guenther  <rguenther@suse.de>
14400
14401         PR tree-optimization/47541
14402         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
14403         sure to have a field at offset zero.
14404
14405 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
14406
14407         * config/arc/arc.opt (EB, EL): New Driver options.
14408
14409 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
14410
14411         * config/alpha/osf5.opt: New.
14412         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
14413
14414 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
14415
14416         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
14417
14418 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
14419
14420         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
14421         -floop-interchange.
14422         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
14423         is an alias of -floop-interchange and that it requires the
14424         Graphite infrastructure.
14425         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
14426         flag_loop_interchange based on the value of flag_tree_loop_linear.
14427
14428 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
14429             Richard Guenther  <rguenther@suse.de>
14430
14431         PR tree-optimization/47538
14432         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
14433         type instead of r1type, except for comparisons.  For right
14434         shifts and comparisons punt if there are mismatches in
14435         sizetype vs. non-sizetype types.
14436
14437 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14438
14439         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14440         avx_runtime.
14441
14442 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14443
14444         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
14445         version number.
14446         * configure: Regenerate.
14447
14448 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14449
14450         * configure.ac (gcc_cv_ld_static_option): Define.
14451         (gcc_cv_ld_dynamic_option): Define.
14452         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
14453         instead.
14454         (HAVE_LD_STATIC_DYNAMIC): Update message.
14455         (LD_STATIC_OPTION): Define.
14456         (LD_DYNAMIC_OPTION): Define.
14457         * configure: Regenerate.
14458         * config.in: Regenerate.
14459         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
14460         HAVE_LD_STATIC_DYNAMIC]: Use them.
14461
14462 2011-01-31  Nick Clifton  <nickc@redhat.com>
14463
14464         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
14465         registers inside interrupt handlers if the handler is not a leaf
14466         function.
14467
14468 2011-01-31  Nick Clifton  <nickc@redhat.com>
14469
14470         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
14471         reg_renumber returning an INVALID_REGNUM.
14472
14473 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
14474
14475         PR libgcj/44341
14476         * doc/install.texi: Document host options discarded when cross
14477         configuring target libraries.
14478
14479 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
14480
14481         Reverted:
14482         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14483         PR debug/45136
14484         PR debug/45130
14485         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14486         debug insns.
14487         (no_real_insns_p, schedule_block, set_priorities): Drop special
14488         treatment of boundary debug insns.
14489         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14490         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14491         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14492         (BOUNDARY_DEBUG_INSN_P): Likewise.
14493         (SCHEDULE_DEBUG_INSN_P): Likewise.
14494         * sched-rgn.c (init_ready_list): Drop special treatment of
14495         boundary debug insns.
14496         * final.c (rest_of_clean-state): Clear notes' BB.
14497
14498 2011-01-31  Alan Modra  <amodra@gmail.com>
14499
14500         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
14501         toc relative expressions as we do in print_operand_address.
14502
14503 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
14504
14505         * doc/extend.texi: Follow spelling conventions.
14506         * doc/invoke.texi: Fix a typo.
14507
14508 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
14509
14510         * config/hpux11.opt: New.
14511         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
14512         ia64*-*-hpux*): Use hpux11.opt.
14513
14514 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
14515
14516         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
14517         to tmake_file.
14518
14519 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14520
14521         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
14522         support sites.
14523
14524 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14525
14526         * doc/install.texi (Binaries): Remove outdated reference for
14527         Motorola 68HC11/68HC12 downloads.
14528
14529 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
14530
14531         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
14532         Drepper's paper.
14533
14534 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
14535
14536         PR bootstrap/47147
14537         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
14538         used by NetBSD.
14539
14540 2011-01-28  Ahmad Sharif  <asharif@google.com>
14541
14542         * value-prof.c (check_counter): Corrected error message.
14543
14544 2011-01-29  Jie Zhang  <jie@codesourcery.com>
14545
14546         * config/arm/arm.c (arm_legitimize_reload_address): New.
14547         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14548         arm_legitimize_reload_address.
14549         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
14550
14551 2011-01-28  Ian Lance Taylor  <iant@google.com>
14552
14553         * godump.c (go_define): Ignore macros whose definitions include
14554         two adjacent operands.
14555
14556 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
14557
14558         PR target/42894
14559         * varasm.c (force_const_mem): Store copy of x in desc->constant
14560         instead of x itself.
14561         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
14562         itself into REG_EQUAL note.
14563
14564 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
14565
14566         * config/freebsd.opt (posix, rdynamic): New Driver options.
14567
14568 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14569
14570         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
14571         -Bstatic/-Bdynamic.
14572         * configure: Regenerate.
14573
14574 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
14575
14576         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
14577         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
14578
14579 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
14580
14581         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
14582         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
14583         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14584         (s390_preferred_reload_class): Make static. Change return and
14585         'rclass' argument type to reg_class_t.
14586
14587 2011-01-27  Jan Hubicka  <jh@suse.cz>
14588
14589         PR middle-end/46949
14590         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
14591         (process_function_and_variable_attributes): Check defined weakrefs.
14592
14593 2011-01-27  Martin Jambor  <mjambor@suse.cz>
14594
14595         PR tree-optimization/47228
14596         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
14597         build_ref_for_offset.
14598
14599 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14600
14601         * config/spu/spu-elf.h (ASM_SPEC): Remove.
14602
14603 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
14604
14605         PR rtl-optimization/46856
14606         * postreload.c (reload_combine_recognize_const_pattern): Do not
14607         separate cc0 setter and user on cc0 targets.
14608
14609 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
14610
14611         PR c/43082
14612         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
14613         passed a VOID_TYPE expression, immediately emit an error and
14614         return error_mark_node.
14615
14616 2011-01-26  Jeff Law  <law@redhat.com>
14617
14618         PR rtl-optimization/47464
14619         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
14620         rather than may_trap_p as needed.
14621
14622 2011-01-26  DJ Delorie  <dj@redhat.com>
14623
14624         PR rtl-optimization/46878
14625         * combine.c (insn_a_feeds_b): Check for the implicit cc0
14626         setter/user dependency as well.
14627
14628 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
14629
14630         PR rtl-optimization/44469
14631         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
14632         after removing trivially dead basic blocks.
14633
14634 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14635
14636         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
14637         * config/frv/frv.h (LINK_SPEC): Likewise.
14638         * config/i386/netware.h (LINK_SPEC): Likewise.
14639         * config/m68k/linux.h (ASM_SPEC): Likewise.
14640         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
14641         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14642         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14643         * config/sparc/linux.h (ASM_SPEC): Likewise.
14644         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14645         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14646
14647 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14648
14649         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
14650         * config/frv/frv.h (ASM_SPEC): Likewise.
14651         * config/m68k/linux.h (ASM_SPEC): Likewise.
14652         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14653         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
14654         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14655         * config/sparc/linux.h (ASM_SPEC): Likewise.
14656         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14657         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14658
14659 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14660
14661         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
14662         * config/frv/frv.h (LINK_SPEC): Likewise.
14663         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14664
14665 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
14666
14667         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
14668         * config/frv/frv.h (ASM_SPEC): Likewise.
14669         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
14670         * config/m68k/linux.h (ASM_SPEC): Likewise.
14671         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14672         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
14673         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14674         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
14675         * config/sparc/linux.h (ASM_SPEC): Likewise.
14676         * config/sparc/linux64.h (ASM_SPEC): Likewise.
14677         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14678         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
14679
14680 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
14681
14682         PR target/46997
14683         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
14684         (*mux2): Ditto.
14685         (vec_extract_evenodd_help): Ditto.
14686         (vec_extract_evenv4hi): Ditto.
14687         (vec_extract_oddv4hi): Ditto.
14688         (vec_interleave_lowv2si): Ditto.
14689         (vec_interleave_highv2si): Ditto.
14690         (vec_extract_evenv2si): Ditto.
14691         (vec_extract_oddv2si: Ditto.
14692         (vec_pack_trunc_v2si): Ditto.
14693
14694 2011-01-22  Jan Hubicka  <jh@suse.cz>
14695
14696         PR target/47237
14697         * cgraph.h (cgraph_local_info): New field can_change_signature.
14698         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
14699         signature can change.
14700         (ipcp_estimate_growth): Call sequence simplify only if calle signature
14701         can change.
14702         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
14703         (cgraph_function_versioning): We can not change signature of functions
14704         that don't allow that.
14705         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
14706         (lto_input_node): Likewise.
14707         * ipa-inline.c (compute_inline_parameters): Compute
14708         local.can_change_signature.
14709         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
14710         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
14711         functions that can not change signature.
14712         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
14713         init_cumulative_args): Do not use local calling conventions
14714         for functions that can not change signature.
14715
14716 2011-01-22  Jan Hubicka  <jh@suse.cz>
14717
14718         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
14719
14720 2011-01-26  Richard Guenther  <rguenther@suse.de>
14721
14722         PR tree-optimization/47190
14723         * cgraphunit.c (process_common_attributes): New function.
14724         (process_function_and_variable_attributes): Use it.
14725
14726 2011-01-26  Richard Guenther  <rguenther@suse.de>
14727
14728         PR lto/47423
14729         * cgraphbuild.c (record_eh_tables): Record reference to personality
14730         function.
14731
14732 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
14733
14734         PR debug/45454
14735         * sel-sched.c (moveup_expr): Don't let debug insns prevent
14736         non-debug insns from moving up.
14737
14738 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14739
14740         PR target/40125
14741         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
14742         t-dlldir{,-x} fragment for build and add it to tmake_file.
14743         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14744         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
14745         * config/i386/t-dlldir: New file.
14746         (SHLIB_DLLDIR): Define.
14747         * config/i386/t-dlldir-x: New file.
14748         (SHLIB_DLLDIR): Define.
14749         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
14750         (SHLIB_INSTALL): Use it.
14751
14752 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
14753
14754         PR target/47246
14755         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
14756         lower bound of the allowed Thumb-2 coprocessor load/store
14757         index range to -256. Add explaining comment.
14758
14759 2011-01-25  Ian Lance Taylor  <iant@google.com>
14760
14761         * godump.c (go_define): Improve lexing of macro expansion to only
14762         accept expressions which match Go spec.
14763
14764 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14765
14766         PR c++/43601
14767         * tree.c (handle_dll_attribute): Handle it.
14768         * doc/extend.texi (@item dllexport): Mention it.
14769         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14770
14771 2011-01-25  Ian Lance Taylor  <iant@google.com>
14772
14773         PR tree-optimization/26854
14774         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14775         (decl_jump_unsafe): Move higher in file, with no other change.
14776         (bind): Set has_jump_unsafe_decl if appropriate.
14777         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14778         (check_earlier_gotos): Likewise.
14779         (c_check_switch_jump_warnings): Likewise.
14780
14781 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
14782
14783         * doc/invoke.texi (Warning Options): Add missing hyphen.
14784         (-fprofile-dir): Minor grammatical fixes.
14785         (-fbranch-probabilities): Likewise.
14786
14787 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14788
14789         PR debug/45136
14790         PR debug/45130
14791         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14792         debug insns.
14793         (no_real_insns_p, schedule_block, set_priorities): Drop special
14794         treatment of boundary debug insns.
14795         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14796         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14797         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14798         (BOUNDARY_DEBUG_INSN_P): Likewise.
14799         (SCHEDULE_DEBUG_INSN_P): Likewise.
14800         * sched-rgn.c (init_ready_list): Drop special treatment of
14801         boundary debug insns.
14802         * final.c (rest_of_clean-state): Clear notes' BB.
14803
14804 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14805
14806         * Makefile.in (LAMBDA_H): Removed.
14807         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14808         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14809         lambda-trans.o, and tree-loop-linear.o.
14810         (lto-symtab.o): Remove dependence on LAMBDA_H.
14811         (tree-loop-linear.o): Remove rule.
14812         (lambda-mat.o): Same.
14813         (lambda-trans.o): Same.
14814         (lambda-code.o): Same.
14815         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14816         (tree-vect-slp.o): Same.
14817         * hwint.h (gcd): Moved here.
14818         (least_common_multiple): Same.
14819         * lambda-code.c: Removed.
14820         * lambda-mat.c: Removed.
14821         * lambda-trans.c: Removed.
14822         * lambda.h: Removed.
14823         * tree-loop-linear.c: Removed.
14824         * lto-symtab.c: Do not include lambda.h.
14825         * omega.c (gcd): Removed.
14826         * passes.c (init_optimization_passes): Remove pass_linear_transform.
14827         * tree-data-ref.c (print_lambda_vector): Moved here.
14828         (lambda_vector_copy): Same.
14829         (lambda_matrix_copy): Same.
14830         (lambda_matrix_id): Same.
14831         (lambda_vector_first_nz): Same.
14832         (lambda_matrix_row_add): Same.
14833         (lambda_matrix_row_exchange): Same.
14834         (lambda_vector_mult_const): Same.
14835         (lambda_vector_negate): Same.
14836         (lambda_matrix_row_negate): Same.
14837         (lambda_vector_equal): Same.
14838         (lambda_matrix_right_hermite): Same.
14839         * tree-data-ref.h: Do not include lambda.h.
14840         (lambda_vector): Moved here.
14841         (lambda_matrix): Same.
14842         (dependence_level): Same.
14843         (lambda_transform_legal_p): Removed declaration.
14844         (lambda_collect_parameters): Same.
14845         (lambda_compute_access_matrices): Same.
14846         (lambda_vector_gcd): Same.
14847         (lambda_vector_new): Same.
14848         (lambda_vector_clear): Same.
14849         (lambda_vector_lexico_pos): Same.
14850         (lambda_vector_zerop): Same.
14851         (lambda_matrix_new): Same.
14852         * tree-flow.h (least_common_multiple): Removed declaration.
14853         * tree-parloops.c (lambda_trans_matrix): Moved here.
14854         (LTM_MATRIX): Same.
14855         (LTM_ROWSIZE): Same.
14856         (LTM_COLSIZE): Same.
14857         (LTM_DENOMINATOR): Same.
14858         (lambda_trans_matrix_new): Same.
14859         (lambda_matrix_vector_mult): Same.
14860         (lambda_transform_legal_p): Same.
14861         * tree-pass.h (pass_linear_transform): Removed declaration.
14862         * tree-ssa-loop.c (tree_linear_transform): Removed.
14863         (gate_tree_linear_transform): Removed.
14864         (pass_linear_transform): Removed.
14865         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14866         flag_loop_interchange.
14867
14868 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14869
14870         PR tree-optimization/47265
14871         PR tree-optimization/47443
14872         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14873         if name still has some uses.
14874
14875 2011-01-25  Martin Jambor  <mjambor@suse.cz>
14876
14877         PR tree-optimization/47382
14878         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14879         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14880
14881 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
14882
14883         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14884         sjlj_except_unwind_info.
14885
14886 2011-01-25  Richard Guenther  <rguenther@suse.de>
14887
14888         PR tree-optimization/47426
14889         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14890         visible functions results escape.
14891
14892 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14893
14894         PR target/45701
14895         * config/arm/arm.c (any_sibcall_uses_r3): New function.
14896         (arm_get_frame_offsets): Use it.
14897
14898 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14899             Jakub Jelinek  <jakub@redhat.com>
14900
14901         PR tree-optimization/47271
14902         * tree-if-conv.c (bb_postdominates_preds): New.
14903         (if_convertible_bb_p): Call bb_postdominates_preds.
14904         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14905         (predicate_scalar_phi): Call bb_postdominates_preds.
14906
14907 2011-01-25  Nick Clifton  <nickc@redhat.com>
14908
14909         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14910         * config/rx/rx.c (rx_function_value): Likewise.
14911         (rx_promote_function_mode): Likewise.
14912         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14913         in order to make it legitimate.
14914         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14915         make sure that the first operand is the same as the result register.
14916         (addsi3_unspec): Delete.
14917         (subdi3): Do not accept immediate operands.
14918         (subdi3_internal): Likewise.
14919
14920 2011-01-25  Jeff Law  <law@redhat.com>
14921
14922         PR rtl-optimization/37273
14923         * ira-costs.c (scan_one_insn): Detect constants living in memory and
14924         handle them like argument loads from stack slots.  Do not double
14925         count memory for memory constants and argument loads from stack slots.
14926
14927 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14928
14929         PR tree-optimization/47427
14930         PR tree-optimization/47428
14931         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14932         coalesce if the new root var would be TREE_READONLY.
14933
14934 2011-01-25  Richard Guenther  <rguenther@suse.de>
14935
14936         PR middle-end/47414
14937         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14938         correct type for TBAA.
14939
14940 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14941
14942         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14943         (close_phi_written_to_memory): Call for_each_index with
14944         dr_indices_valid_in_loop.
14945
14946 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14947
14948         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14949         when it is initialized.
14950
14951 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14952
14953         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14954         call to graphite_find_data_references_in_stmt.
14955         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14956         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
14957         call to graphite_find_data_references_in_stmt.
14958         (analyze_drs_in_stmts): Same.
14959         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14960         in which the scalar analysis of indices is performed.
14961         (create_data_ref): Same.  Update call to dr_analyze_indices.
14962         (find_data_references_in_stmt): Update call to create_data_ref.
14963         (graphite_find_data_references_in_stmt): Same.
14964         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14965         declaration.
14966         (create_data_ref): Same.
14967         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14968         call to create_data_ref.
14969
14970 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14971
14972         * graphite-sese-to-poly.c (build_poly_scop): Move
14973         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14974
14975 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14976
14977         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14978         VAR_DECL, PARM_DECL, and RESULT_DECL.
14979
14980 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14981
14982         * graphite-dependences.c (reduction_dr_1): Allow several reductions
14983         in a reduction PBB.
14984         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14985         that have already been marked as PBB_IS_REDUCTION.
14986
14987 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14988
14989         * graphite-scop-detection.c (same_close_phi_node): New.
14990         (remove_duplicate_close_phi): New.
14991         (make_close_phi_nodes_unique): New.
14992         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14993
14994 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14995
14996         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14997         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14998         of both data references to be the same.
14999
15000 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15001
15002         * graphite-dependences.c (build_lexicographical_constraint): Remove
15003         the gdim parameter.
15004         (build_lexicographical_constraint): Adjust call to
15005         ppl_powerset_is_empty.
15006         (dependence_polyhedron): Same.
15007         (graphite_legal_transform_dr): Same.
15008         (graphite_carried_dependence_level_k): Same.
15009         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
15010         parameter.
15011         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
15012
15013 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15014
15015         * graphite-sese-to-poly.c
15016         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
15017         (close_phi_written_to_memory): New.
15018         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
15019         and unshare_expr.
15020
15021 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15022
15023         * doc/install.texi: Update the expected version number of PPL to 0.11.
15024         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
15025         #if PPL_VERSION_MINOR < 11.
15026
15027 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15028
15029         * graphite-dependences.c: Include graphite-cloog-util.h.
15030         (new_poly_ddr): Inlined into dependence_polyhedron.
15031         (free_poly_ddr): Moved close by new_poly_ddr.
15032         (dependence_polyhedron_1): Renamed dependence_polyhedron.
15033         Early return NULL when ppl_powerset_is_empty returns true.
15034         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
15035         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
15036         (graphite_legal_transform_dr): Call new_poly_ddr.
15037         (graphite_carried_dependence_level_k): Same.
15038         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
15039         (dot_transformed_deps_stmt_1): Removed.
15040         (dot_deps_stmt_1): Call dot_deps_stmt_2.
15041         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
15042         (dot_deps_1): Call dot_deps_2.
15043         * Makefile.in (graphite-dependences.o): Add missing dependence on
15044         graphite-cloog-util.h.
15045
15046 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15047
15048         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
15049         (build_lexicographical_constraint): Same.
15050         (dependence_polyhedron_1): Same.
15051         (graphite_legal_transform_dr): Same.
15052         (graphite_carried_dependence_level_k): Same.
15053         * graphite-ppl.c (ppl_powerset_is_empty): New.
15054         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
15055         * tree-data-ref.c (dump_data_reference): Print the basic block index.
15056
15057 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15058
15059         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
15060         the "a followed by b" relation and document it.
15061
15062 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15063
15064         * graphite-dependences.c (build_lexicographical_constraint): Stop the
15065         iteration when the bag of constraints is empty.
15066
15067 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15068
15069         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
15070
15071 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15072
15073         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
15074         nest and two loop depths as parameters.
15075         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
15076         lst_perfect_nestify.
15077
15078 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15079
15080         * graphite-dependences.c (print_pddr): Call
15081         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
15082
15083 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
15084
15085         * graphite-ppl.c (debug_gmp_value): New.
15086         * graphite-ppl.h (debug_gmp_value): Declared.
15087
15088 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
15089
15090         * doc/install.texi: Document availability of cloog-0.16.
15091
15092 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
15093
15094         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
15095         invalid postdominance info.
15096
15097 2011-01-24  Jan Hubicka  <jh@suse.cz>
15098
15099         PR c/21659
15100         * doc/extend.texi (weak pragma): Drop claim that it must
15101         appear before definition.
15102         * varasm.c (merge_weak, declare_weak): Only sanity check
15103         that DECL is not output at a time it is declared weak.
15104
15105 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
15106
15107         * machmode.def: Fixed comments.
15108
15109 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
15110
15111         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
15112
15113 2011-01-24  Paul Koning  <ni1d@arrl.net>
15114
15115         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
15116         WORDS_BIG_ENDIAN.
15117
15118 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15119
15120         PR target/46519
15121         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
15122         (block_info): Add scanned and prev.
15123         (move_or_delete_vzeroupper_2): Return if the basic block
15124         has been scanned and the upper 128bit state is unchanged
15125         from the last scan.
15126         (move_or_delete_vzeroupper_1): Return true if the exit
15127         state is changed.
15128         (move_or_delete_vzeroupper): Visit basic blocks using the
15129         work-list based algorithm based on vt_find_locations in
15130         var-tracking.c.
15131
15132         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
15133
15134 2011-01-24  Nick Clifton  <nickc@redhat.com>
15135
15136         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
15137         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
15138         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
15139         then define __v850e1__.
15140         * doc/invoke.texi: Document -mv850es.
15141
15142 2011-01-24  Richard Henderson  <rth@redhat.com>
15143
15144         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
15145         compound unordered comparisons.
15146         * config/rx/rx.c (rx_split_fp_compare): Remove.
15147         * config/rx/rx-protos.h: Update.
15148         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
15149         (cbranchsf4): Don't call rx_split_fp_compare.
15150         (*cbranchsf4): Use rx_split_cbranch.
15151         (*cmpsf): Don't accept "i" constraint.
15152         (*conditional_branch): Only valid after reload.
15153         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
15154
15155 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
15156
15157         PR target/47385
15158         * config/rs6000/altivec.md (vector constant splitters): Add
15159         support for creating vector single precision constants if -mvsx is
15160         used and we would create the constant using Altivec primitives.
15161
15162 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
15163             Richard Sandiford  <rdsandiford@googlemail.com>
15164
15165         PR rtl-optimization/47166
15166         * reload1.c (emit_reload_insns): Disable the spill_reg_store
15167         mechanism for PRE_MODIFY and POST_MODIFY.
15168         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
15169         reloadreg.
15170
15171 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
15172
15173         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
15174
15175 2011-01-22  Jan Hubicka  <jh@suse.cz>
15176
15177         PR lto/47333
15178         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
15179
15180 2011-01-22  Jan Hubicka  <jh@suse.cz>
15181
15182         PR tree-optimization/43884
15183         PR lto/44334
15184         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
15185         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
15186
15187 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
15188
15189         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15190         * config/s390/s390.c (s390_register_move_cost,
15191         s390_memory_move_cost): New.
15192         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15193
15194 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15195
15196         PR middle-end/47401
15197         * except.c (sjlj_assign_call_site_values): Move setting the
15198         crtl->uses_eh_lsda flag to ...
15199         (sjlj_mark_call_sites): ... here.
15200         (sjlj_emit_function_enter): Support NULL dispatch label.
15201         (sjlj_build_landing_pads): In a function with no landing pads
15202         that still has must-not-throw regions, generate code to register
15203         a personality function with empty LSDA.
15204
15205 2011-01-21  Richard Henderson  <rth@redhat.com>
15206
15207         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
15208
15209         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
15210
15211         * compare-elim.c: New file.
15212         * Makefile.in (OBJS-common): Add it.
15213         (compare-elim.o): New.
15214         * common.opt (fcompare-elim): New.
15215         * opts.c (default_options_table): Add OPT_fcompare_elim.
15216         * tree-pass.h (pass_compare_elim_after_reload): New.
15217         * passes.c (init_optimization_passes): Add it.
15218         * recog.h: Protect against re-inclusion.
15219         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
15220         * doc/invoke.texi (-fcompare-elim): Document it.
15221         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
15222         * doc/tm.texi: Rebuild.
15223
15224 2011-01-22  Nick Clifton  <nickc@redhat.com>
15225
15226         * config/rx/rx.md (cstoresf4): Pass comparison operator to
15227         rx_split_fp_compare.
15228
15229 2011-01-22  Nick Clifton  <nickc@redhat.com>
15230
15231         * config/rx/rx.md (UNSPEC_CONST): New.
15232         (deallocate_and_return): Wrap the amount popped off the stack in
15233         an UNSPEC_CONST in order to stop it being rejected by
15234         -mmax-constant-size.
15235         (pop_and_return): Add a "(return)" rtx.
15236         (call): Drop the immediate operand.
15237         (call_internal): Likewise.
15238         (call_value): Likewise.
15239         (call_value_internal): Likewise.
15240         (sibcall_internal): Likewise.
15241         (sibcall_value_internal): Likewise.
15242         (sibcall): Likewise.  Generate an explicit call using
15243         sibcall_internal.
15244         (sibcall_value): Likewise.
15245         (mov<>): FAIL if a constant operand is not legitimate.
15246         (addsi3_unpsec): New pattern.
15247
15248         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15249         (ok_for_max_constant): New function.
15250         (gen_safe_add): New function.
15251         (rx_expand_prologue): Use gen_safe_add.
15252         (rx_expand_epilogue): Likewise.
15253         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
15254         UNSPEC CONSTs.
15255
15256 2011-01-21  Jeff Law  <law@redhat.com>
15257
15258         PR tree-optimization/47053
15259         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
15260         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
15261         statements are deleted.
15262         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
15263         is nonempty, then purge dead edges and cleanup the CFG.
15264
15265 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
15266
15267         PR debug/47402
15268         Temporarily revert:
15269         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
15270         PR debug/47106
15271         * tree-dfa.c (create_var_ann): Mark variable as used.
15272
15273 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
15274
15275         PR middle-end/45566
15276         * except.c (convert_to_eh_region_ranges): Emit queued no-region
15277         notes from other section in hot/cold partitioning even if
15278         last_action is -3.  Increment call_site_base.
15279
15280         PR rtl-optimization/47366
15281         * fwprop.c (forward_propagate_into): Return bool.  If
15282         any changes are made, -fnon-call-exceptions is used and
15283         REG_EH_REGION note is present, call purge_dead_edges
15284         and return true if it purged anything.
15285         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
15286         any EH edges were purged.
15287
15288 2011-01-21  Jeff Law  <law@redhat.com>
15289
15290         PR rtl-optimization/41619
15291         * caller-save.c (setup_save_areas): Break out code to determine
15292         which hard regs are live across calls by examining the reload chains
15293         so that it is always used.
15294         Eliminate code which checked REG_N_CALLS_CROSSED.
15295
15296 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
15297
15298         PR tree-optimization/47355
15299         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
15300         NOP has non-debug uses beyond PHIs in new_bb.
15301
15302 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
15303
15304         PR debug/47106
15305         * cfgexpand.c (account_used_vars_for_block): Only account vars
15306         that are annotated as used.
15307         (estimated_stack_frame_size): Don't set TREE_USED.
15308         * tree-dfa.c (create_var_ann): Mark variable as used.
15309
15310 2011-01-21  Richard Guenther  <rguenther@suse.de>
15311
15312         PR middle-end/47395
15313         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
15314
15315 2011-01-21  Richard Guenther  <rguenther@suse.de>
15316
15317         PR tree-optimization/47365
15318         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
15319         (vn_reference_lookup_pieces): Adjust.
15320         (vn_reference_lookup): Likewise.
15321         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
15322         (vn_reference_lookup_3): Only look through kills if in
15323         VN_WALKREWRITE mode.
15324         (vn_reference_lookup_pieces): Adjust.
15325         (vn_reference_lookup): Likewise.
15326         (visit_reference_op_load): Likewise.
15327         (visit_reference_op_store): Likewise.
15328         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
15329         (compute_avail): Likewise.
15330         (eliminate): Likewise.
15331
15332 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
15333
15334         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
15335         DECL_IGNORED_P non-reg vars if they are used.
15336
15337         PR tree-optimization/47391
15338         * varpool.c (const_value_known_p): Return false if
15339         decl is volatile.
15340
15341 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
15342
15343         PR bootstrap/47215
15344         * config/i386/i386.c (ix86_local_alignment): Handle
15345         case for va_list_type_node is nil.
15346         (ix86_canonical_va_list_type): Likewise.
15347
15348 2011-01-21  Alan Modra  <amodra@gmail.com>
15349
15350         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
15351         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
15352
15353 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15354
15355         * config/arm/arm.md (define_attr type): Rename f_load
15356         and f_store to f_fpa_load and f_fpa_store. Update.
15357         (write_conflict): Deal with rename fallout.
15358         (*push_fp_multi): Likewise.
15359         * config/arm/fpa.md (f_load): Use f_fpa_load.
15360         (f_store): Use f_fpa_store.
15361         (*movsf_fpa): Likewise.
15362         (*movdf_fpa): Likewise.
15363         (*movxf_fpa): Likewise.
15364         (*thumb2_movsf_fpa): Likewise.
15365         (*thumb2_movdf_fpa): Likewise.
15366         (*thumb2_movxf_fpa): Likewise.
15367         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
15368         f_loadd and f_stored.
15369         (*thumb2_movdi_vfp): Likewise.
15370         (*thumb2_movsf_vfp): Fix attribute to f_loads.
15371         (*thumb2_movsi_vfp): Likewise.
15372         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
15373         Use f_loads instead of f_load.
15374         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
15375
15376 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
15377
15378         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15379         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
15380         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15381         (xtensa_mode_dependent_address_p): New function.
15382         (constantpool_address_p): Make static. Change return type to bool.
15383         Change argument type to const_rtx. Use CONST_INT_P predicate.
15384
15385 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
15386
15387         PR debug/46583
15388         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
15389
15390 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
15391
15392         PR debug/47283
15393         * cfgexpand.c (expand_debug_expr): Instead of generating
15394         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
15395         etc. handling.
15396
15397 2011-01-20  Richard Guenther  <rguenther@suse.de>
15398
15399         PR middle-end/47370
15400         * tree-inline.c (remap_gimple_op_r): Recurse manually for
15401         the pointer operand of MEM_REFs.
15402
15403 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
15404
15405         PR tree-optimization/46130
15406         * ipa-split.c (consider_split): If return_bb contains non-virtual
15407         PHIs other than for retval or if split_function would not adjust it,
15408         refuse to split.
15409
15410 2011-01-20  Richard Guenther  <rguenther@suse.de>
15411
15412         PR tree-optimization/47167
15413         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
15414         Revert previous change, only avoid enumeral type changes.
15415
15416 2011-01-19  Mike Stump  <mikestump@comcast.net>
15417
15418         * doc/tm.texi.in (BRANCH_COST): Englishify.
15419         * doc/tm.texi (BRANCH_COST): Likewise.
15420
15421 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
15422
15423         PR c++/47291
15424         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
15425         (gen_scheduled_generic_parms_dies): New functions.
15426         (gen_struct_or_union_type_die): Schedule template parameters DIEs
15427         generation for the end of CU compilation.
15428         (dwarf2out_finish): Generate template parameters DIEs here.
15429
15430 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
15431
15432         PR debug/46240
15433         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
15434         debug bind stmt on merge edges.
15435
15436 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
15437
15438         PR debug/47079
15439         PR debug/46724
15440         * function.c (instantiate_expr): Instantiate incoming rtl of
15441         implicit arguments, and recurse on VALUE_EXPRs.
15442         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
15443         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
15444
15445 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
15446
15447         * c-parser.c (c_parser_for_statement): Initialize
15448         collection_expression.
15449
15450 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15451
15452         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
15453
15454 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15455
15456         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
15457         (LINK_SHLIB_SPEC): Don't use %(link_path).
15458         (SUBTARGET_EXTRA_SPECS): Remove link_path.
15459
15460 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15461
15462         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
15463         (NO_SHARED_LIB_SUPPORT): Remove.
15464         (LINK_SHLIB_SPEC): Remove one conditional definition.
15465
15466 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
15467
15468         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
15469         %{call_shared}.
15470         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
15471         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
15472         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
15473         %{call_shared} and conditionals on these options not being passed.
15474         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
15475         %{call_shared}.
15476
15477 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
15478
15479         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
15480         simplify.
15481
15482         * ipa-split.c: Spelling fixes.
15483
15484 2011-01-19  Richard Henderson  <rth@redhat.com>
15485
15486         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
15487         (*mulsi3): Likewise.
15488
15489         * longlong.h [__mn10300__] (count_leading_zeros): New.
15490         [__mn10300__] (umul_ppmm, smul_ppmm): New.
15491         [__mn10300__] (add_ssaaaa, subddmmss): New.
15492         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
15493         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
15494
15495 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15496
15497         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
15498
15499 2011-01-19  Richard Henderson  <rth@redhat.com>
15500
15501         * config/mn10300/mn10300.md (addsi3_flags): New.
15502         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
15503         (subsi3_flags, subc_internal, subdi3): New.
15504         (subdi3_internal, *subdi3_degenerate): New.
15505         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
15506
15507         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
15508         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
15509         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
15510         * config/mn10300/mn10300-protos.h: Update.
15511         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
15512         (return_ret): Likewise.  Rename from return_internal_regs.
15513         (return_internal): Remove.
15514
15515         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
15516         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
15517         (mn10300_legitimate_constant_p): Likewise.
15518         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
15519         (mn10300_frame_size): New.
15520         (mn10300_expand_prologue): Use it.
15521         (mn10300_expand_epilogue): Likewise.
15522         (mn10300_initial_offset): Likewise.
15523         * config/mn10300/mn10300-protos.h: Update.
15524         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
15525         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
15526         (prologue, epilogue, return_internal): Tidy output code.
15527         (mn10300_store_multiple_operation, return): Likewise.
15528         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
15529         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
15530         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
15531         (load_pic, am33_load_pic): New.
15532         (mn10300_load_pic0, mn10300_load_pic1): New.
15533
15534         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
15535         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
15536         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
15537         (cc_flags_for_mode, cc_flags_for_code): New.
15538         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
15539         overflow flag is not valid.  Validate that the flags we need
15540         for the comparison are valid.
15541         (mn10300_output_cmp): Remove.
15542         (mn10300_output_add): New.
15543         (mn10300_select_cc_mode): Use cc_flags_for_code.
15544         (mn10300_split_cbranch): New.
15545         (mn10300_match_ccmode): New.
15546         (mn10300_split_and_operand_count): New.
15547         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
15548         to the function.
15549         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
15550         (addsi3): ... here.  Use mn10300_output_add.
15551         (*addsi3_flags): New.
15552         (*am33_subsi3, *mn10300_subsi3): Merge...
15553         (subsi3): ... here.  Use attribute isa.
15554         (*subsi3_flags): New.
15555         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
15556         when possible.
15557         (*am33_andsi3, *mn10300_andsi3): Merge...
15558         (andsi3): ... here.
15559         (*andsi3_flags): New.
15560         (andsi3 splitters): New.
15561         (*am33_iorsi3, *mn10300_iorsi3): Merge...
15562         (iorsi3): ... here.
15563         (*iorsi3_flags): New.
15564         (*am33_xorsi3, *mn10300_xorsi3): Merge...
15565         (xorsi3): ... here.
15566         (*xorsi3_flags): New.
15567         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
15568         (one_cmplsi2): ... here.
15569         (*one_cmplsi2_flags): New.
15570         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
15571         instead of "dax" in constraints.  Use mn10300_split_cbranch.
15572         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
15573         use matching constraints to eliminate a self-comparison.
15574         (*integer_conditional_branch): Rename from integer_conditional_branch.
15575         Use int_mode_flags to match CC_REG.
15576         (*cbranchsi4_btst, *btstsi): New.
15577         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
15578         mn10300_split_cbranch.
15579         (*am33_cmpsf): Rename from am33_cmpsf.
15580         (*float_conditional_branch): Rename from float_conditional_branch.
15581         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
15582         (zero_extendqisi2): ... here.
15583         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
15584         (zero_extendhisi2): ... here.
15585         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
15586         (extendqisi2): ... here.
15587         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
15588         (extendhisi2): ... here.
15589         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
15590         (ashlsi3): ... here.
15591         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
15592         (lshrsi3): ... here.
15593         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
15594         (ashrsi3): ... here.
15595         (consecutive add peephole): Remove.
15596         * config/mn10300/predicates.md (label_ref_operand): New.
15597         (int_mode_flags): New.
15598         (CCZN_comparison_operator): New.
15599
15600         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
15601         (throughput_42_latency_43): New reservation.
15602         (mulsidi3, umulsidi3): New expanders.
15603         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
15604         the MDR register to allocation; separately allocate the low and
15605         high parts of the DImode result.
15606         (umulsidi3_internal): Similarly.
15607         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
15608         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
15609         (udivsi3, umodsi3): Remove.
15610         (udivmodsi4, divmodsi4): New expanders.
15611         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
15612         (*divmodsi4): Simiarly.
15613         (ext_internal): New.
15614
15615         * config/mn10300/constraints.md ("z"): New constraint.
15616         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
15617         (FIXED_REGISTERS): Don't fix MDR.
15618         (CALL_USED_REGSITERS): Reformat nicely.
15619         (REG_ALLOC_ORDER): Add MDR.
15620         (enum regclass): Add MDR_REGS.
15621         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
15622         (IRA_COVER_CLASSES): Add MDR_REGS.
15623         (REGNO_REG_CLASS): Handle MDR_REG.
15624         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
15625         (mn10300_register_move_cost): Likewise.
15626         * config/mn10300/mn10300.md (MDR_REG): New.
15627         (*movsi_internal): Handle moves to/from MDR_REGS.
15628
15629         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
15630         POST_MODIFY.
15631         (mn10300_secondary_reload): Tidy combination reload classes.
15632         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
15633         addresses for AM33.  Allow symbolic offsets for reg+imm.
15634         (mn10300_regno_in_class_p): New.
15635         (mn10300_legitimize_reload_address): New.
15636         * config/mn10300/mn10300.h (enum reg_class): Remove
15637         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
15638         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
15639         SP_OR_GENERAL_REGS.
15640         (REG_CLASS_NAMES): Update to match.
15641         (REG_CLASS_CONTENTS): Likewise.
15642         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
15643         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
15644         (REGNO_IN_RANGE_P): Remove.
15645         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
15646         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
15647         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
15648         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
15649         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
15650         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
15651         (REGNO_GENERAL_P): New.
15652         (HAVE_POST_MODIFY_DISP): New.
15653         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
15654         (LEGITIMIZE_RELOAD_ADDRESS): New.
15655         * config/mn10300/mn10300-protos.h: Update.
15656
15657         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
15658         DATA_REGS for AM33 stack-pointer destination.
15659         (mn10300_preferred_output_reload_class): Likewise.
15660         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
15661         into a form appropriate for ...
15662         (TARGET_SECONDARY_RELOAD): New.
15663         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
15664         * config/mn10300/mn10300-protos.h: Update.
15665         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
15666         reload_insi; use the "A" constraint for the scratch; handle AM33
15667         moves of sp to non-address registers.
15668
15669         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
15670         (*movqi_internal): ... here.
15671         (*am33_movhi, *mn10300_movhi): Merge into...
15672         (*movhi_internal): ... here.
15673         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
15674         as the source/destination of moves from/to SP.
15675         (movsf): Only allow for AM33-2.
15676         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
15677         any integer constant constraint.  Only allow for AM33-2.  Tidy
15678         all of the alternative outputs.
15679         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
15680         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
15681         for MN103.
15682         (udivsi3, umodsi3): New patterns for MN103 only.
15683
15684 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
15685
15686         * doc/tm.texi.in: Spell out that a lack of register class unions
15687         can lead to ICEs.
15688         * doc/tm.texi: Regenerate.
15689
15690 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
15691
15692         PR rtl-optimization/47337
15693         * dce.c (check_argument_store): New function.
15694         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
15695
15696         PR tree-optimization/47290
15697         * tree-eh.c (infinite_empty_loop_p): New function.
15698         (cleanup_empty_eh): Use it.
15699
15700 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
15701
15702         PR target/46997
15703         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
15704         (a64_expand_widen_sum): Ditto.
15705         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
15706         (vec_extract_evenodd_help): Ditto.
15707         (vec_extract_evenv4hi): Ditto.
15708         (vec_extract_oddv4hi): Ditto.
15709         (vec_extract_evenv2si): Ditto.
15710         (vec_extract_oddv2si): Ditto.
15711         (vec_extract_evenv2sf): Ditto.
15712         (vec_extract_oddv2sf): Ditto.
15713         (vec_pack_trunc_v4hi: Ditto.
15714         (vec_pack_trunc_v2si): Ditto.
15715         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
15716         (vec_interleave_highv8qi): Ditto.
15717         (mix1_r): Ditto.
15718         (vec_extract_oddv8qi): Ditto.
15719         (vec_interleave_lowv4hi): Ditto.
15720         (vec_interleave_highv4hi): Ditto.
15721         (vec_interleave_lowv2si): Ditto.
15722         (vec_interleave_highv2si): Ditto.
15723
15724 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15725
15726         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
15727         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
15728         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
15729         (pa_c_mode_for_suffix): New.
15730         (TARGET_EXPAND_BUILTIN): Define.
15731         (TARGET_C_MODE_FOR_SUFFIX): Define.
15732         (pa_builtins): Define.
15733         (pa_init_builtins): Register __float128 type and init new support
15734         builtins.
15735         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
15736         * config/pa/quadlib.c (_U_Qfcopysign): New.
15737
15738 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
15739
15740         PR middle-end/46894
15741         * explow.c (allocate_dynamic_stack_space): Do not assume more than
15742         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
15743         are defined.
15744
15745 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15746
15747         PR tree-optimization/47179
15748         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
15749         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
15750
15751 2011-01-18  Richard Guenther  <rguenther@suse.de>
15752
15753         PR rtl-optimization/47216
15754         * emit-rtl.c: Include tree-flow.h.
15755         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
15756         of replicating it with different semantics.
15757         * Makefile.in (emit-rtl.o): Adjust.
15758
15759 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15760
15761         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
15762         (cortex_a9_dp): Handle neon types correctly.
15763
15764 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
15765
15766         PR rtl-optimization/47299
15767         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
15768         subtarget.  Use normal multiplication if both operands are constants.
15769         * expmed.c (expand_widening_mult): Don't try to optimize constant
15770         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
15771         before using it.
15772
15773 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15774
15775         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
15776         spacing after 'e.g.', typos, comma, hyphenation.
15777
15778 2011-01-17  Richard Henderson  <rth@redhat.com>
15779
15780         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15781         (rx_restricted_mem_operand): New.
15782         (rx_shift_operand): Use register_operand.
15783         (rx_source_operand, rx_compare_operand): Likewise.
15784         * config/rx/rx.md (addsi3_flags): New expander.
15785         (adddi3): Rewrite as expander.
15786         (adc_internal, *adc_flags, adddi3_internal): New patterns.
15787         (subsi3_flags): New expander.
15788         (subdi3): Rewrite as expander.
15789         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15790
15791         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15792         (rx_init_builtins): Remove sat builtin.
15793         (rx_expand_builtin): Likewise.
15794         * config/rx/rx.md (ssaddsi3): New.
15795         (*sat): Rename from sat.  Represent the CC_REG input.
15796
15797         * config/rx/predicates.md (rshift_operator): New.
15798         * config/rx/rx.c (rx_expand_insv): Remove.
15799         * config/rx/rx-protos.h: Update.
15800         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
15801         operand to the canonical position.
15802         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15803         (*bitclr, *bitclr_in_memory): Similarly.
15804         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15805         (insv): Retain the zero_extract in the expansion.
15806
15807         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15808         (bswaphi2, bitinvert, revw): Likewise.
15809
15810         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15811         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15812         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15813         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15814         (bitset, bitset_in_memory): Likewise.
15815         (bitinvert, bitinvert_in_memory): Likewise.
15816         (bitclr, bitclr_in_memory): Likewise.
15817         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15818         (rx_strend, rx_cmpstrn): Likewise.
15819         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
15820         (bitop peep2 patterns): Remove.
15821
15822         * config/rx/rx.c (rx_match_ccmode): New.
15823         * config/rx/rx-protos.h: Update.
15824         * config/rx/rx.md (abssi2): Clobber, don't set flags.
15825         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15826         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15827         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15828         (fix_truncsfsi2, floatsisf2): Likewise.
15829         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15830         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15831         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15832         (*subsi3_flags, *xorsi3_flags): New.
15833
15834         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15835
15836         * config/rx/rx.c (rx_print_operand): Remove workaround for
15837         unsplit comparison operations.
15838
15839         * config/rx/rx.md (movsicc): Split after reload.
15840         (*movsicc): Merge *movsieq and *movsine via match_operator.
15841         (*stcc): New pattern.
15842
15843         * config/rx/rx.c (rx_float_compare_mode): Remove.
15844         * config/rx/rx.h (rx_float_compare_mode): Remove.
15845         * config/rx/rx.md (cstoresi4): Split after reload.
15846         (*sccc): New pattern.
15847
15848         * config/rx/predicates.md (label_ref_operand): New.
15849         (rx_z_comparison_operator): New.
15850         (rx_zs_comparison_operator): New.
15851         (rx_fp_comparison_operator): New.
15852         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15853         Validate that the flags are set properly for the comparison.
15854         (rx_gen_cond_branch_template): Remove.
15855         (rx_cc_modes_compatible): Remove.
15856         (mode_from_flags): New.
15857         (flags_from_code): Rename from flags_needed_for_conditional.
15858         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15859         (rx_select_cc_mode): Likewise.
15860         (rx_split_fp_compare): New.
15861         (rx_split_cbranch): New.
15862         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15863         (*cbranchsi4): Use match_operator and rx_split_cbranch.
15864         (*cbranchsf4): Similarly.
15865         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
15866         match_operator and rx_split_cbranch.
15867         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15868         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
15869         (*cmpsi): Rename from cmpsi.
15870         (*tstsi): Rename from tstsi.
15871         (*cmpsf): Rename from cmpsf; use CC_Fmode.
15872         (*conditional_branch): Rename from conditional_branch.
15873         (*reveresed_conditional_branch): Remove.
15874         (b<code>): Remove expander.
15875         * config/rx/rx-protos.h: Update.
15876
15877         * config/rx/rx.c (rx_compare_redundant): Remove.
15878         * config/rx/rx.md (cmpsi): Don't use it.
15879         * config/rx/rx-protos.h: Update.
15880
15881         * config/rx/rx-modes.def (CC_F): New mode.
15882         * config/rx/rx.c (rx_select_cc_mode): New.
15883         * config/rx/rx.h (SELECT_CC_MODE): Use it.
15884         * config/rx/rx-protos.h: Update.
15885
15886 2011-01-17  Richard Henderson  <rth@redhat.com>
15887
15888         * except.c (dump_eh_tree): Fix stray ; after for statement.
15889
15890 2011-01-17  Richard Guenther  <rguenther@suse.de>
15891
15892         PR tree-optimization/47313
15893         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15894         handling before copying the body.  Properly deal with
15895         by-reference result in SSA form.
15896
15897 2011-01-17  Ian Lance Taylor  <iant@google.com>
15898
15899         PR target/47219
15900         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15901         (struct_value_alias_set): Don't define.
15902         (sparc_option_override): Don't set sparc_sr_alias_set and
15903         struct_value_alias_set.
15904         (save_or_restore_regs): Use gen_frame_mem rather than calling
15905         set_mem_alias_set.
15906         (sparc_struct_value_rtx): Likewise.
15907
15908 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
15909
15910         PR target/47318
15911         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15912         (_mm_maskstore_pd): Likewise.
15913         (_mm_maskload_ps): Likewise.
15914         (_mm_maskstore_ps): Likewise.
15915         (_mm256_maskload_pd): Change mask to __m256i.
15916         (_mm256_maskstore_pd): Likewise.
15917         (_mm256_maskload_ps): Likewise.
15918         (_mm256_maskstore_ps): Likewise.
15919
15920         * config/i386/i386-builtin-types.def: Updated.
15921         (ix86_expand_special_args_builtin): Likewise.
15922
15923         * config/i386/i386.c (bdesc_special_args): Update
15924         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15925         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15926         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15927         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15928
15929         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15930         Use <avxpermvecmode> on mask register.
15931         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15932
15933 2011-01-17  Olivier Hainque  <hainque@adacore.com>
15934             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
15935             Eric Botcazou  <ebotcazou@adacore.com>
15936
15937         PR target/46655
15938         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15939         if <= USHRT_MAX in 32-bit mode.
15940
15941 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15942
15943         * doc/install.texi (Configuration, Specific): Wrap long
15944         lines in examples.  Allow line wrapping in long options
15945         and URLs where beneficial for PDF output.
15946
15947 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
15948
15949         * config/mips/mips.c (mips_classify_symbol): Don't return
15950         SYMBOL_PC_RELATIVE for nonlocal labels.
15951
15952 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15953
15954         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15955
15956 2011-01-15  Jan Hubicka  <jh@suse.cz>
15957
15958         PR tree-optimization/47276
15959         * ipa.c (function_and_variable_visibility): Do not try to mark alias
15960         declarations as needed.
15961
15962 2011-01-15  Martin Jambor  <mjambor@suse.cz>
15963
15964         * common.opt (fdevirtualize): New flag.
15965         * doc/invoke.texi (Option Summary): Document it.
15966         * opts.c (default_options_table): Add devirtualize flag.
15967         * ipa-prop.c (detect_type_change): Return immediately if
15968         devirtualize flag is not set.
15969         (detect_type_change_ssa): Likewise.
15970         (compute_known_type_jump_func): Likewise.
15971         (ipa_analyze_virtual_call_uses): Likewise.
15972
15973 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15974
15975         PR tree-optimization/45934
15976         PR tree-optimization/46302
15977         * ipa-prop.c (type_change_info): New type.
15978         (stmt_may_be_vtbl_ptr_store): New function.
15979         (check_stmt_for_type_change): Likewise.
15980         (detect_type_change): Likewise.
15981         (detect_type_change_ssa): Likewise.
15982         (compute_complex_assign_jump_func): Check for dynamic type change.
15983         (compute_complex_ancestor_jump_func): Likewise.
15984         (compute_known_type_jump_func): Likewise.
15985         (compute_scalar_jump_functions): Likewise.
15986         (ipa_analyze_virtual_call_uses): Likewise.
15987         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15988
15989 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15990
15991         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15992         * config/i386/i386.opt (msse5): New Alias.
15993
15994 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15995
15996         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15997         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15998         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15999         * config/sparc/sparc.h (CC1_SPEC): Likewise.
16000
16001 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16002
16003         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
16004         -mcpu options.
16005         * config/sparc/linux64.h (CC1_SPEC): Likewise.
16006         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
16007         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
16008         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
16009         Likewise.
16010         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
16011
16012 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16013
16014         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
16015
16016 2011-01-14  Mike Stump  <mikestump@comcast.net>
16017
16018         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
16019         * config/fr30/fr30.md: Likweise
16020         (movsi_push): Likewise.
16021         (movsi_pop): Likewise.
16022         (enter_func): Likewise.
16023         * config/moxie/moxie.md (movsi_push): Likewise.
16024         (movsi_pop): Likewise.
16025
16026 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16027
16028         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
16029         %{no_archive} %{exact_version}.
16030         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
16031         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
16032         %{no_archive} %{exact_version}.
16033         * config/mips/openbsd.h (LINK_SPEC): Likewise.
16034         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
16035         * config/mips/vxworks.h: Likewise.
16036
16037 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16038
16039         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
16040
16041 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16042
16043         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
16044         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
16045
16046 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16047
16048         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
16049         -nodefaultlib.
16050
16051 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16052
16053         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
16054         for mcpu not cpu.
16055         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
16056         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
16057         not cpu.
16058         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
16059         Don't handle -shlib.
16060
16061 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16062
16063         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
16064         (CC1_SPEC): Don't handle -profile.
16065
16066 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16067
16068         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
16069         * config/mips/mips.h (CC1_SPEC): Likewise.
16070
16071 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16072
16073         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
16074         * config/mips/mips.h (CC1_SPEC): Likewise.
16075
16076 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16077
16078         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
16079         * config/m32r/linux.h (LINK_SPEC): Likewise.
16080         * config/mips/linux.h (LINK_SPEC): Likewise.
16081         * config/mips/linux64.h (LINK_SPEC): Likewise.
16082         * config/sparc/linux.h (LINK_SPEC): Likewise.
16083         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
16084         LINK_SPEC): Likewise.
16085         * config/xtensa/linux.h (LINK_SPEC): Likewise.
16086
16087 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16088
16089         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
16090         %{version:-v}.
16091         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
16092
16093 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16094
16095         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
16096         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
16097
16098 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
16099
16100         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
16101
16102 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16103
16104         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
16105         supports -Bstatic/-Bdynamic.
16106         * configure: Regenerate.
16107
16108 2011-01-14  Jan Hubicka  <jh@suse.cz>
16109             Jack Howarth  <howarth@bromo.med.uc.edu>
16110
16111         PR target/46037
16112         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
16113         when checking debug_info_level. Test write_symbols instead of
16114         debug_hooks->var_location when setting flag_var_tracking_uninit.
16115
16116 2011-01-14  Richard Guenther  <rguenther@suse.de>
16117
16118         PR tree-optimization/47179
16119         * target.def (ref_may_alias_errno): New target hook.
16120         * targhooks.h (default_ref_may_alias_errno): Declare.
16121         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
16122         (default_ref_may_alias_errno): New function.
16123         * target.h (struct ao_ref_s): Declare.
16124         * tree-ssa-alias.c: Include target.h.
16125         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
16126         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
16127         (targhooks.o): Likewise.
16128         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
16129         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
16130
16131 2011-01-14  Richard Guenther  <rguenther@suse.de>
16132
16133         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
16134
16135 2011-01-14  Richard Guenther  <rguenther@suse.de>
16136
16137         PR tree-optimization/47280
16138         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
16139         return CFG changes.
16140         (tree_ssa_forward_propagate_single_use_vars): Deal with
16141         CFG changes from associate_plusminus.
16142
16143 2011-01-14  Richard Guenther  <rguenther@suse.de>
16144
16145         PR middle-end/47281
16146         Revert
16147         2011-01-11  Richard Guenther  <rguenther@suse.de>
16148
16149         PR tree-optimization/46076
16150         * tree-ssa.c (useless_type_conversion_p): Conversions from
16151         unprototyped to empty argument list function types are useless.
16152
16153 2011-01-14  Richard Guenther  <rguenther@suse.de>
16154
16155         PR tree-optimization/47286
16156         * tree-ssa-structalias.c (new_var_info): Register variables are global.
16157
16158 2011-01-14  Martin Jambor  <mjambor@suse.cz>
16159
16160         PR middle-end/46823
16161         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
16162
16163 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
16164
16165         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
16166         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16167         * config/xtensa/xtensa.c (xtensa_libcall_value,
16168         xtensa_function_value_regno_p): New functions.
16169         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16170
16171 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
16172
16173         PR c++/47213
16174         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
16175         PE specific hook.
16176         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
16177         New function prototype.
16178         * config/i386/winnt.c (i386_pe_assemble_visibility):
16179         Warn only if attribute was specified by user.
16180
16181 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
16182
16183         PR target/47251
16184         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
16185         floating point.
16186         (floatunsdidf2_fcfidu): Ditto.
16187
16188 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16189
16190         * config/s390/s390.c (print_operand_address): Replace 'error' with
16191         'output_operand_lossage'.
16192         (print_operand): Likewise.
16193
16194 2011-01-13  Jeff Law  <law@redhat.com>
16195
16196         PR rtl-optimization/39077
16197         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
16198         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
16199         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
16200         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
16201         * gcse.c (prune_insertions_deletions): New function.
16202         (compute_pre_data): Use it.
16203
16204 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
16205
16206         PR debug/PR46973
16207         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
16208         static function.
16209         (prune_unused_types_mark): Use it.
16210
16211 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
16212
16213         PR rtl-optimization/45352
16214         * sel-sched.c: Update copyright years.
16215         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
16216         in the advancing loop when we have issued issue_rate insns.
16217
16218 2011-01-12  Richard Henderson  <rth@redhat.com>
16219
16220         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
16221         (TARGET_MD_ASM_CLOBBERS): New.
16222
16223         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
16224         (TARGET_DELEGITIMIZE_ADDRESS): New.
16225
16226         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
16227         (clzsi2, *bsch): New patterns.
16228
16229         * config/mn10300/mn10300.md (INT): New mode iterator.
16230         (*mov<INT>_clr): New pattern, and peep2 to generate it.
16231
16232         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
16233         flag_split_wide_types.
16234
16235         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
16236         (mn10300_trampoline_init): Rewrite without a template, an immediate
16237         load and a direct branch.
16238         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
16239
16240 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
16241
16242         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16243         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
16244         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
16245         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16246
16247 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
16248
16249         PR debug/47209
16250         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
16251         of type.
16252
16253 2011-01-12  Jan Hubicka  <jh@suse.cz>
16254
16255         PR driver/47244
16256         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
16257         (PLUGIN_COND_CLOSE): New macro.
16258         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
16259
16260 2011-01-12  Richard Guenther  <rguenther@suse.de>
16261
16262         PR lto/47259
16263         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
16264         register variables in a MEM_REF.
16265
16266 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
16267
16268         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
16269         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
16270         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
16271         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
16272         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
16273         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
16274         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
16275         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
16276         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
16277         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
16278         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
16279         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
16280         * config/gnu-user.h: New.  Copied from linux.h.
16281         (LINUX_TARGET_STARTFILE_SPEC): Rename to
16282         GNU_USER_TARGET_STARTFILE_SPEC.
16283         (LINUX_TARGET_ENDFILE_SPEC): Rename to
16284         GNU_USER_TARGET_ENDFILE_SPEC.
16285         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
16286         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
16287         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
16288         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
16289         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
16290         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
16291         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
16292         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
16293         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
16294         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
16295         * config/arm/linux-eabi.h (CC1_SPEC): Use
16296         GNU_USER_TARGET_CC1_SPEC.
16297         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
16298         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
16299         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
16300         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
16301         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
16302         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
16303         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
16304         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
16305
16306 2011-01-12  Richard Guenther  <rguenther@suse.de>
16307
16308         PR other/46946
16309         * doc/invoke.texi (ffast-math): Document it is turned on
16310         with -Ofast.
16311
16312 2011-01-12  Jan Hubicka  <jh@suse.cz>
16313
16314         PR tree-optimization/47233
16315         * opts.c (common_handle_option): Disable ipa-reference with profile
16316         feedback.
16317
16318 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
16319
16320         * c-parser.c (c_parser_objc_at_property_declaration): Improved
16321         error message.
16322
16323 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
16324
16325         * c-parser.c (c_lex_one_token): Updated and reindented some
16326         comments.  No changes in code.
16327
16328 2011-01-11  Ian Lance Taylor  <iant@google.com>
16329
16330         * godump.c (go_output_var): Don't output the variable if there is
16331         already a type with the same name.
16332
16333 2011-01-11  Ian Lance Taylor  <iant@google.com>
16334
16335         * godump.c (go_format_type): Don't generate float80.
16336
16337 2011-01-11  Richard Henderson  <rth@redhat.com>
16338
16339         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
16340         declaration.  Rewrite for both speed and size.
16341         (mn10300_address_cost_1): Remove.
16342         (mn10300_register_move_cost): New.
16343         (mn10300_memory_move_cost): New.
16344         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
16345         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
16346         extensions, shifts, BSWAP, CLZ.
16347         (mn10300_wide_const_load_uses_clr): Remove.
16348         (TARGET_REGISTER_MOVE_COST): New.
16349         (TARGET_MEMORY_MOVE_COST): New.
16350         * config/mn10300/mn10300-protos.h: Update.
16351         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
16352
16353         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
16354         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
16355         * config/mn10300/mn10300-protos.h: Update.
16356         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
16357         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
16358         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
16359         (*test_int_bitfield, *test_byte_bitfield): Remove.
16360         (*bit_test, *subreg_bit_test): Remove.
16361         * config/mn10300/predicates.md (const_8bit_operand): Remove.
16362
16363         * config/mn10300/constraints.md ("c"): Rename from "A".
16364         ("A", "D"): New constraint letters.
16365         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
16366         (fmssf4, fnmasf4, fnmssf4): Likewise.
16367
16368         * config/mn10300/mn10300.md (isa): New attribute.
16369         (enabled): New attribute.
16370
16371         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
16372         (abssf2, negsf2): Define only for hardware fp.
16373         (sqrtsf2): Reformat.
16374         (addsf3, subsf3, mulsf3): Merge expander and insn.
16375
16376         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
16377         (DEBUGGER_AUTO_OFFSET): Remove.
16378         (DEBUGGER_ARG_OFFSET): Remove.
16379
16380         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
16381         Emit register stores with the same offsets as the hardware.
16382         (mn10300_store_multiple_operation): Don't check that the register
16383         save offsets are monotonic.
16384         * config/mn10300/mn10300-protos.h: Update.
16385
16386         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
16387
16388         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
16389         in terms of the value on the stack, not the MDR register.
16390
16391 2011-01-11  Jan Hubicka  <jh@suse.cz>
16392
16393         PR lto/45721
16394         PR lto/45375
16395         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
16396         (symbol_alias_set_destroy, symbol_alias_set_contains,
16397         propagate_aliases_backward): Declare.
16398         * lto-streamer-out.c (struct sets): New sturcture.
16399         (trivally_defined_alias): New function.
16400         (output_alias_pair_p): Rewrite.
16401         (output_unreferenced_globals): Fix output of alias pairs.
16402         (produce_symtab): Likewise.
16403         * ipa.c (function_and_variable_visibility): Set weak alias destination
16404         as needed in lto.
16405         * varasm.c (symbol_alias_set_t): Remove.
16406         (symbol_alias_set_destroy): Export.
16407         (propagate_aliases_forward, propagate_aliases_backward): New functions
16408         based on ...
16409         (compute_visible_aliases): ... this one; remove.
16410         (trivially_visible_alias): New
16411         (trivially_defined_alias): New.
16412         (remove_unreachable_alias_pairs): Rewrite.
16413         (finish_aliases_1): Reorganize code checking if alias is defined.
16414         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
16415         in LTO mode.
16416
16417 2011-01-11  Richard Guenther  <rguenther@suse.de>
16418
16419         PR tree-optimization/46076
16420         * tree-ssa.c (useless_type_conversion_p): Conversions from
16421         unprototyped to empty argument list function types are useless.
16422
16423 2011-01-11  Richard Guenther  <rguenther@suse.de>
16424
16425         PR middle-end/45235
16426         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
16427         volatile MEMs as MEM_READONLY_P.
16428
16429 2011-01-11  Richard Guenther  <rguenther@suse.de>
16430
16431         PR tree-optimization/47239
16432         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
16433
16434 2011-01-11  Jeff Law  <law@redhat.com>
16435
16436         PR tree-optimization/47086
16437         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
16438         IVs from statements that might throw.
16439
16440 2011-01-10  Jan Hubicka  <jh@suse.cz>
16441
16442         PR lto/45375
16443         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
16444
16445 2011-01-10  Jan Hubicka  <jh@suse.cz>
16446
16447         PR lto/45375
16448         * profile.c (read_profile_edge_counts): Ignore profile inconistency
16449         when correcting profile.
16450
16451 2011-01-10  Jan Hubicka  <jh@suse.cz>
16452
16453         PR lto/46083
16454         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
16455         DECL_FINI_PRIORITY.
16456         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
16457         Restore DECL_FINI_PRIORITY.
16458
16459 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16460
16461         * doc/gimple.texi: Fix quoting of multi-word return values in
16462         @deftypefn statements.  Ensure presence of return value.  Wrap
16463         overlong @deftypefn lines.
16464         (is_gimple_operand, is_gimple_min_invariant_address): Remove
16465         descriptions of removed functions.
16466         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
16467         of multi-word return value in @deftypefn statement.
16468
16469 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16470
16471         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
16472         (Conditional Expressions, Logical Operators)
16473         (Statement and operand traversals): Do not indent smallexample
16474         code.  Fix duplicate function argument in example.
16475
16476 2011-01-10  Jeff Law  <law@redhat.com>
16477
16478         PR tree-optimization/47141
16479         * ipa-split.c (split_function): Handle case where we are
16480         returning a value and the return block has a virtual operand phi.
16481
16482 2011-01-10  Jan Hubicka  <jh@suse.cz>
16483
16484         PR tree-optimization/47234
16485         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
16486         (pass_feedback_split_functions): Declare.
16487         * passes.c (init_optimization_passes): Add ipa-split as subpass of
16488         tree-profile.
16489         * ipa-split.c (gate_split_functions): Update comments; disable
16490         split-functions for profile_arc_flag and branch_probabilities.
16491         (gate_feedback_split_functions): New function.
16492         (execute_feedback_split_functions): New function.
16493         (pass_feedback_split_functions): New global var.
16494
16495 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
16496
16497         PR lto/46760
16498         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
16499         calling gimple_call_set_cannot_inline.
16500
16501 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
16502
16503         * config/darwin-sections.def: Remove unused section.
16504
16505 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
16506
16507         PR c++/47218
16508         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
16509
16510 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
16511
16512         PR objc/47232
16513         * c-parser.c (c_parser_declaration_or_fndef): Improved
16514         error message.
16515
16516 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
16517
16518         * config/i386/winnt.c (i386_pe_start_function): Make sure
16519         to switch back to function's section.
16520
16521 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
16522
16523         PR gcc/46902
16524         PR testsuite/46912
16525         * plugin.c: Move include of dlfcn.h from here...
16526         * system.h: ... to here.
16527
16528 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16529
16530         * doc/cpp.texi (C++ Named Operators): Fix markup for header
16531         file name.
16532         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
16533         two extra empty pages in PDF output.
16534
16535 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
16536
16537         PR objc/47078
16538         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
16539         for error recovery purposes behave as if it was not specified so
16540         that the default type is usd.
16541
16542 2011-01-07  Jan Hubicka  <jh@suse.cz>
16543
16544         PR tree-optmization/46469
16545         * ipa.c (function_and_variable_visibility): Clear needed flags on
16546         nodes with external decls; handle weakrefs merging correctly.
16547
16548 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
16549
16550         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
16551         not false.
16552
16553 2011-01-07  Jan Hubicka  <jh@suse.cz>
16554
16555         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
16556         and no longer claim that gold is required for linker plugin.
16557         * configure: Regenerate.
16558         * gcc.c (PLUGIN_COND): New macro.
16559         (LINK_COMMAND_SPEC): Use it.
16560         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
16561         * config.in (HAVE_LTO_PLUGIN): New.
16562         * configure.ac (--with-lto-plugin): New parameter; autodetect
16563         HAVE_LTO_PLUGIN.
16564
16565 2011-01-07  Jan Hubicka  <jh@suse.cz>
16566
16567         PR tree-optimization/46367
16568         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
16569         when we can update original.
16570         (cgraph_mark_inline_edge): Sanity check.
16571         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
16572
16573 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16574
16575         * config/spu/spu.h (ASM_COMMENT_START): Define.
16576
16577 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16578
16579         PR driver/42445
16580         * gcc.c (%>S): New.
16581         (SWITCH_KEEP_FOR_GCC): Likewise.
16582         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
16583         (do_spec_1): Handle "%>".
16584
16585         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
16586
16587 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
16588
16589         PR target/47201
16590         * config/i386/i386.c (ix86_delegitimize_address): If
16591         simplify_gen_subreg fails, return orig_x.
16592
16593         PR bootstrap/47187
16594         * value-prof.c (gimple_stringop_fixed_value): Handle
16595         lhs of the call properly.
16596
16597 2011-01-07  Jan Hubicka  <jh@suse.cz>
16598
16599         PR lto/45375
16600         * lto-opt.c (lto_reissue_options): Set flag_shlib.
16601
16602 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
16603
16604         * target.def (function_switched_text_sections): New hook.
16605         * doc/tm.texi: Regenerated.
16606         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16607         * final.c (default_function_switched_text_sections): New.
16608         (final_scan_insn): Call function_switched_text_sections when a
16609         mid-function section change occurs.
16610         * output.h (default_function_switched_text_sections): Declare.
16611         * config/darwin-protos.h (darwin_function_switched_text_sections):
16612         Likewise.
16613         * config/darwin.c (darwin_function_switched_text_sections): New.
16614         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16615
16616 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
16617
16618         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
16619         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
16620         the secondary code fragment when outputting for DWARF == 2.
16621
16622 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
16623
16624         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16625         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
16626         Remove.
16627         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
16628         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16629
16630 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
16631
16632         PR debug/46704
16633         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
16634         when it is not empty.
16635
16636 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
16637
16638         Bobcat Enablement
16639         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
16640         (case ${target}): Add btver1.
16641         * config/i386/driver-i386.c (host_detect_local_cpu): Let
16642         -march=native recognize btver1 processors.
16643         * config/i386/i386-c.c (ix86_target_macros_internal): Add
16644         btver1 def_and_undef
16645         * config/i386/i386.c (struct processor_costs btver1_cost): New
16646         btver1 cost table.
16647         (m_BTVER1): New definition.
16648         (m_AMD_MULTIPLE): Includes m_BTVER1.
16649         (initial_ix86_tune_features): Add btver1 tune.
16650         (processor_target_table): Add btver1 entry.
16651         (static const char *const cpu_names): Add btver1 entry.
16652         (software_prefetching_beneficial_p): Add btver1.
16653         (ix86_option_override_internal): Add btver1 instruction sets.
16654         (ix86_issue_rate): Add btver1.
16655         (ix86_adjust_cost): Add btver1.
16656         * config/i386/i386.h (TARGET_BTVER1): New definition.
16657         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
16658         (enum processor_type): Add PROCESSOR_BTVER1.
16659         * config/i386/i386.md (define_attr "cpu"): Add btver1.
16660
16661 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16662
16663         PR target/43309
16664         * config/i386/i386.c (legitimize_tls_address)
16665         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
16666         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
16667         (tls_initial_exec_64_sun): New pattern.
16668
16669 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
16670
16671         * doc/invoke.texi (Overall Options): Improve wording and markup
16672         of the description of -wrapper.
16673
16674 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
16675
16676         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
16677         rdynamic, threads): New Driver options.
16678
16679 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16680
16681         PR target/38118
16682         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
16683         if coming from .tdata.
16684         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16685
16686 2011-01-06  Jan Hubicka  <jh@suse.cz>
16687
16688         PR lto/47188
16689         * collect2.c (main): Do not enable LTOmode when plugin is active.
16690
16691 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16692
16693         PR other/45915
16694         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
16695         --version output if supported.
16696         * configure: Regenerate.
16697
16698 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
16699
16700         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
16701         Driver options.
16702
16703 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
16704
16705         PR c/47150
16706         * c-convert.c (convert): When converting a complex expression
16707         other than COMPLEX_EXPR to a different complex type, ensure
16708         c_save_expr is called instead of save_expr, unless in_late_binary_op.
16709         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
16710         when converting COMPLEX_TYPE.
16711
16712 2011-01-06  Ira Rosen  <irar@il.ibm.com>
16713
16714         PR tree-optimization/47139
16715         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
16716         only the last reduction value is used outside the loop.  Update
16717         documentation.
16718
16719 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
16720
16721         * config/rtems.opt: New.
16722         * config.gcc (*-*-rtems*): Use rtems.opt.
16723
16724 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
16725
16726         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
16727         processors do not support 3DNow instructions.
16728
16729 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16730
16731         * config/spu/spu.c (spu_option_override): Set parameter
16732         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
16733
16734 2011-01-05  Jan Hubicka  <jh@suse.cz>
16735
16736         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
16737         at the command line.
16738
16739 2011-01-05  Martin Jambor  <mjambor@suse.cz>
16740
16741         PR lto/47162
16742         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
16743         deltas on streamed outgoing edges.
16744         (output_node_opt_summary): Output info for outgoing edges only when
16745         the node is in new parameter set.
16746         (output_cgraph_opt_summary): New parameter set, passed to the two
16747         aforementioned functions.  Update its forward declaration and its
16748         callee too.
16749
16750 2011-01-05  Tom Tromey  <tromey@redhat.com>
16751
16752         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
16753         operator to c_finish_omp_atomic.
16754         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
16755         (build_unary_op): Update.
16756         (build_modify_expr): Update.
16757         (build_asm_expr): Update.
16758
16759 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16760
16761         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
16762         newly inserted insns.
16763         (pad_bb): Likewise.
16764         (spu_emit_branch_hint): Likewise.
16765         (insert_hbrp_for_ilb_runout): Likewise.
16766         (spu_machine_dependent_reorg): Call df_finish_pass after
16767         schedule_insns returns.
16768
16769 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16770
16771         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16772
16773 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
16774
16775         PR tree-optimization/47005
16776         * tree-sra.c (struct access): Add 'non_addressable' bit.
16777         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16778         (decide_one_param_reduction): Return 0 if the parameter is passed by
16779         reference and one of the accesses in the group is non_addressable.
16780
16781 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16782
16783         PR tree-optimization/47056
16784         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16785         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
16786         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
16787
16788 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16789
16790         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16791         initializer.  Skip view conversions from aggregate types.
16792
16793 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
16794
16795         PR bootstrap/47055
16796         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16797
16798 2011-01-04  Philipp Thomas  <pth@suse.de>
16799
16800         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16801         obvious typo.
16802
16803 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16804
16805         * function.c (thread_prologue_and_epilogue_insns): Do not crash
16806         on empty epilogue sequences.
16807
16808 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
16809
16810         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16811         non-static): New Driver options.
16812
16813 2011-01-04  Jie Zhang  <jie@codesourcery.com>
16814
16815         PR driver/47137
16816         * gcc.c (default_compilers[]): Set combinable field to 0
16817         for all assembly languages.
16818
16819 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
16820
16821         * config/mips/loongson3a.md: New file.
16822         * config/mips/mips.md: Include loongson3a.md.
16823         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16824         TUNE_LOONGSON_3A.
16825
16826 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16827
16828         PR middle-end/47017
16829         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16830         instead of convert_memory_address_addr_space on the base expression.
16831
16832 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16833
16834         * config/spu/spu.c (spu_option_override): Update error text
16835         for bad -march= / -mtune= values.
16836
16837 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16838
16839         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16840         if branch-hint optimization will be performed.
16841
16842 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16843
16844         PR tree-optimization/47148
16845         * ipa-split.c (split_function): Convert arguments to
16846         DECL_ARG_TYPE if possible.
16847
16848         PR tree-optimization/47155
16849         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16850         when computing uns.
16851
16852         PR rtl-optimization/47157
16853         * combine.c (try_combine): If undobuf.other_insn becomes
16854         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16855         and set *new_direct_jump_p too.
16856
16857 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16858
16859         PR tree-optimization/47021
16860         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16861
16862 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16863
16864         * gcc.c (process_command): Update copyright notice dates.
16865         * gcov.c (print_version): Likewise.
16866         * gcov-dump.c (print_version): Likewise.
16867         * mips-tfile.c (main): Likewise.
16868         * mips-tdump.c (main): Likewise.
16869
16870 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16871
16872         PR tree-optimization/46801
16873         * tree-sra.c (type_internals_preclude_sra_p): Check whether
16874         aggregate fields start at byte boundary instead of the bit-field flag.
16875
16876 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16877
16878         PR driver/47137
16879         * gcc.c (main): Revert revision 168407.
16880
16881 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16882
16883         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16884
16885 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16886
16887         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16888         vector optab to expand vector/scalar shift, update gimple to vector.
16889
16890 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16891
16892         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16893         a thunk.
16894
16895 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16896
16897         PR tree-optimization/46984
16898         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16899         HOST_WIDE_INT.
16900         (cgraph_create_indirect_edge): Fixed line length.
16901         (cgraph_indirect_call_info): Declare.
16902         (cgraph_make_edge_direct) Update declaration.
16903         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16904         (cgraph_create_indirect_edge): Use it.
16905         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
16906         callees.
16907         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16908         the new thunk_delta representation.
16909         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16910         HOST_WIDE_INT.
16911         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16912         (ipa_read_indirect_edge_info): Likewise.
16913         * lto-cgraph.c (output_edge_opt_summary): New function.
16914         (output_node_opt_summary): Call it on all outgoing edges.
16915         (input_edge_opt_summary): New function.
16916         (input_node_opt_summary): Call it on all outgoing edges.
16917
16918 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
16919
16920         PR driver/47137
16921         * gcc.c (main): Don't check have_o when settting combine_inputs.
16922
16923 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
16924
16925         * regrename.c: Add general comment describing the pass.
16926         (struct du_head): Remove 'length' field.
16927         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16928         (regrename_optimize): Do not sort chains.  Rework comments, add others.
16929         Force renaming to the preferred class (if any) in the first pass and do
16930         not consider registers that belong to it in the second pass.
16931         (create_new_chain): Do not set 'length' field.
16932         (scan_rtx_reg): Likewise.
16933
16934 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
16935
16936         PR tree-optimization/47140
16937         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16938         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16939         to bit_value_binop.
16940
16941         PR rtl-optimization/47028
16942         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16943         parm_birth_insn instead of at the beginning of first bb.
16944
16945 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
16946
16947         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16948         Remove the word "see" before "@pxref".
16949         * doc/rtl.texi: Remove the word "see" before "@pxref".
16950
16951 2011-01-01  Jan Hubicka  <jh@suse.cz>
16952
16953         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16954         memory.
16955
16956 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
16957
16958         PR target/38662
16959         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16960
16961 \f
16962 Copyright (C) 2011 Free Software Foundation, Inc.
16963
16964 Copying and distribution of this file, with or without modification,
16965 are permitted in any medium without royalty provided the copyright
16966 notice and this notice are preserved.