7d8ac5c93c7e26cdc7f1013f2a6f61aa9b55bc01
[gcc.git] / gcc / ChangeLog
1 2011-06-07 Andrew Stubbs <ams@codesourcery.com>
2
3 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
4 (*maddhisi4tb, *maddhisi4tt): New define_insns.
5
6 2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
7 Andrew Stubbs <ams@codesourcery.com>
8
9 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
10 multiplies.
11 * doc/md.texi (Canonicalization of Instructions): Document widening
12 multiply canonicalization.
13
14 2011-06-07 Jakub Jelinek <jakub@redhat.com>
15
16 PR gcov-profile/49299
17 * value-prof.c (gimple_ic): Don't assume icall has
18 a fallthru edge.
19
20 2011-06-07 Ira Rosen <ira.rosen@linaro.org>
21
22 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
23 a pointer.
24 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
25 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
26 vect_recog_pow_pattern): Likewise.
27 (vect_pattern_recog_1): Remove declaration.
28 (widened_name_p): Remove declaration. Add new argument to specify
29 whether to check that both types are either signed or unsigned.
30 (vect_recog_widen_mult_pattern): Update documentation. Handle
31 unsigned patterns and multiplication by constants.
32 (vect_pattern_recog_1): Update vect_recog_func references. Use
33 statement information from the statement returned from pattern
34 detection functions.
35 (vect_pattern_recog): Update vect_recog_func reference.
36 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
37 multiplication by a constant use the type of the other operand.
38
39 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
40
41 PR rtl-optimization/49145
42 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
43
44 2011-06-06 Jakub Jelinek <jakub@redhat.com>
45
46 PR debug/49262
47 * dwarf2out.c (native_encode_initializer): Decrement count in each
48 iteration.
49
50 PR debug/49294
51 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
52 non-MODE_INT modes.
53
54 PR c++/49264
55 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
56 if stmt folded into nothing.
57 * tree-inline.c (fold_marked_statements): If a builtin at the
58 end of a bb folded into nothing, just update cgraph edges
59 and move to next bb.
60 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
61 to be NULL. Don't compute count and frequency if new_call is NULL.
62
63 2011-06-04 Diego Novillo <dnovillo@google.com>
64
65 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
66 (cgraph.o): Likewise.
67 (cgraphunit.o): Likewise.
68 * cgraphunit.c: Include lto-streamer.h
69 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
70 if LTO is enabled.
71 * lto-streamer-in.c (unpack_value_fields): Call
72 streamer_hooks.unpack_value_fields if set.
73 (lto_materialize_tree): For unhandled nodes, first try to
74 call lto_streamer_hooks.alloc_tree, if it exists.
75 (lto_input_ts_decl_common_tree_pointers): Move reading of
76 DECL_INITIAL to lto_streamer_read_tree.
77 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
78 (lto_streamer_read_tree): New.
79 (lto_reader_init): Rename from lto_init_reader.
80 Move initialization code to lto/lto.c.
81 * lto-streamer-out.c (pack_value_fields): Call
82 streamer_hooks.pack_value_fields if set.
83 (lto_output_tree_ref): For tree nodes that are not
84 normally indexable, call streamer_hooks.indexable_with_decls_p
85 before giving up.
86 (lto_output_ts_decl_common_tree_pointers): Move handling
87 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to
88 lto_streamer_write_tree.
89 (lto_output_tree_header): Call streamer_hooks.is_streamable
90 instead of lto_is_streamable.
91 Call lto_streamer_hooks.output_tree_header if set.
92 (lto_write_tree): Call lto_streamer_hooks.write_tree if
93 set.
94 (lto_streamer_write_tree): New.
95 (lto_output): Call lto_streamer_init directly.
96 (lto_writer_init): Remove.
97 * lto-streamer.c (streamer_hooks): New.
98 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
99 instead of lto_preload_common_nodes.
100 (lto_is_streamable): Move from lto-streamer.h
101 (lto_streamer_hooks_init): New.
102 (streamer_hooks): New.
103 (streamer_hooks_init): New.
104 * lto-streamer.h (struct output_block): Forward declare.
105 (struct lto_input_block): Likewise.
106 (struct data_in): Likewise.
107 (struct bitpack_d): Likewise.
108 (struct streamer_hooks): Declare.
109 (streamer_hooks): Declare.
110 (lto_streamer_hooks_init): Declare.
111 (lto_streamer_write_tree): Declare.
112 (lto_streamer_read_tree): Declare.
113 (streamer_hooks_init): Declare.
114 (lto_is_streamable): Move to lto-streamer.c
115
116 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
117
118 * longlong.h (smul_ppmm): The resulting register pair contains the
119 higher order word first.
120
121 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
122
123 PR tree-optimization/46728
124 * builtins.c (powi_table): Remove.
125 (powi_lookup_cost): Remove.
126 (powi_cost): Remove.
127 (expand_powi_1): Remove.
128 (expand_powi): Remove.
129 (expand_builtin_pow_root): Remove.
130 (expand_builtin_pow): Remove.
131 (expand_builtin_powi): Eliminate handling of constant exponent.
132 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
133
134 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
135
136 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
137
138 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
139
140 * dce.c (reset_unmarked_insns_debug_uses): New.
141 (delete_unmarked_insns): Skip debug insns.
142 (prescan_insns_for_dce): Likewise.
143 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
144 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
145 active reg can be found.
146 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
147 (convert_regs_1): Use it.
148
149 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
150
151 * tree-pretty-print.c (dump_function_header): Add flags.
152 Don't dump decl_uid with nouid.
153 * tree-pretty-print.h (dump_function_header): Adjust.
154 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
155 * passes.c (pass_init_dump_file): Pass dump_flags on.
156 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
157
158 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
159
160 PR bootstrap/49270
161 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
162
163 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
164
165 PR tree-optimization/49243
166 * calls.c (setjmp_call_p): Also check if fndecl has the
167 returns_twice attribute.
168
169 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
170
171 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
172 -ffast-math etc.
173
174 2011-06-06 Richard Henderson <rth@redhat.com>
175 Georg-Johann Lay <avr@gjlay.de>
176
177 PR target/42210
178 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
179 New predicates.
180 * config/avr/avr.md ("insv"): New insn expander.
181 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
182 "*insv.not.io", "*insv.reg"): New insns.
183
184 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
185
186 PR target/49285
187 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct
188 predicate to nonimmediate_operand from memory_operand for the
189 operand that is to be forced to memory by the expander. Lose
190 the constraints.
191
192 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
193
194 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
195 EH return when delayed branches are disabled.
196
197 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
198
199 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
200 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
201 calculation.
202 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
203 Simplify MODE_V1DF and MODE_V2SF handling.
204 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
205 Simplify MODE_SF handling.
206
207 2011-06-04 Jan Hubicka <jh@suse.cz>
208
209 PR tree-optimization/48893
210 PR tree-optimization/49091
211 PR tree-optimization/49179
212 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
213 Bounds check.
214
215 2011-06-04 Jan Hubicka <jh@suse.cz>
216
217 PR lto/48954
218 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args bitmaps.
219
220 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
221
222 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
223
224 2011-06-04 Jakub Jelinek <jakub@redhat.com>
225
226 PR target/49281
227 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
228 to be strictly smaller than 1 << shiftcount.
229
230 2011-06-04 Jan Hubicka <jh@suse.cz>
231
232 PR tree-optimize/48929
233 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
234 of empty predicate.
235
236 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
237
238 PR debug/48333
239 * calls.c (emit_call_1): Prefer the __builtin declaration of
240 builtin functions.
241
242 2011-06-03 Diego Novillo <dnovillo@google.com>
243
244 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
245 (lto_input_tree_pointers): Likewise.
246 * lto-streamer-out.c (pack_value_fields): Likewise.
247 (lto_output_tree_pointers): Likewise.
248 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
249 and OPTIMIZATION_NODE.
250
251 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
252
253 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
254 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
255 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
256 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
257 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
258 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
259 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
260 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
261 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
262 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
263 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
264 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
265 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
266 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
267 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
268 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
269 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
270 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
271 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
272 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
273 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
274 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
275 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
276 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
277 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
278 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
279 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
280 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
281 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
282 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
283 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
284 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
285 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
286 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
287 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
288 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
289 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
290 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
291 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
292 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
293 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
294 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
295 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
296 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
297 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
298 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
299 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
300 * system.h (MD_UNWIND_SUPPORT): Poison.
301 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
302 * doc/tm.texi: Regenerate.
303 * unwind-dw2.c: Include md-unwind-support.h instead of
304 MD_UNWIND_SUPPORT.
305 * config/ia64/unwind-ia64.c: Likewise.
306 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
307
308 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
309
310 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
311
312 2011-06-03 Richard Henderson <rth@redhat.com>
313 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
314
315 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
316 (sigill_hdlr): Correct insn, insn size.
317 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
318
319 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
320
321 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
322 t-slibgcc-dummy.
323 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
324 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
325 * config/mips/t-iris: Remove.
326 * config/mips/t-irix6: New file.
327 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
328
329 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
330
331 * Makefile.in (LIB2ADDEHDEP): Remove.
332 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
333 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
334 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
335 * config/t-darwin (LIB2ADDEHDEP): Remove.
336 * config/t-freebsd (LIB2ADDEHDEP): Remove.
337 * config/t-linux (LIB2ADDEHDEP): Remove.
338
339 2011-06-03 Diego Novillo <dnovillo@google.com>
340
341 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
342 (lto_register_var_decl_in_symtab): Likewise.
343 (lto_register_function_decl_in_symtab): Likewise.
344 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
345 logic to uniquify_nodes.
346
347 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
348
349 * config/alpha/t-osf5: Remove.
350 * config/alpha/t-osf-pthread: Remove.
351 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
352 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
353
354 2011-06-03 Julian Brown <julian@codesourcery.com>
355
356 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
357 (strongarm1110): Use strongarm tuning.
358 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
359 * config/arm/arm.c (arm_strongarm_tune): New.
360 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
361 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
362 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
363 setting, using previous defaults or 1 for Cortex-A5.
364 (arm_option_override): Set max_insns_skipped from current tuning.
365
366 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
367
368 * doc/install.texi (Options specification): Document --with-specs.
369
370 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
371
372 * config/arm/neon.md (orndi3_neon): Actually split it.
373
374 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
375
376 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
377 * var-tracking.c (reverse_op): Limite recurse depth to 5.
378
379 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
380
381 PR debug/47590
382 * target.def (delay_sched2, delay_vartrack): New.
383 * doc/tm.texi.in: Update.
384 * doc/tm.texi: Rebuild.
385 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
386 * var-tracking.c (gate_handle_var_tracking): Likewise.
387 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
388 (bfin_flag_var_tracking): Drop.
389 (output_file_start): Don't save and override flag_var_tracking.
390 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
391 (bfin_reorg): Test original variables.
392 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
393 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
394 (ia64_flag_var_tracking): Drop.
395 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
396 (ia64_file_start): Don't save and override flag_var_tracking.
397 (ia64_override_options_after_change): Ditto
398 flag_schedule_insns_after_reload.
399 (ia64_reorg): Test original variables.
400 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
401 (picochip_flag_var_tracking): Drop.
402 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
403 (picochip_option_override): Don't save and override
404 flag_schedule_insns_after_reload.
405 (picochip_asm_file_start): Ditto flag_var_tracking.
406 (picochip_reorg): Test original variables.
407 * config/spu/spu.c (spu_flag_var_tracking): Drop.
408 (TARGET_DELAY_VARTRACK): Define.
409 (spu_var_tracking): New.
410 (spu_machine_dependent_reorg): Call it.
411 (asm_file_start): Don't save and override flag_var_tracking.
412
413 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
414
415 PR target/49163
416 * config/sh/predicates.md (general_movsrc_operand): Return 0
417 for memory and memory subreg of which address is an invalid
418 indexed address for QI and HImode.
419 (general_movdst_operand): Likewise.
420
421 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
422
423 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
424 edges only, when there is a non-local label in the function.
425 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
426
427 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
428
429 * config/i386/constraints.md (Y3): New register constraint.
430 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
431 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
432 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
433 *sse2_interleave_lowv2df.
434
435 2011-06-02 Julian Brown <julian@codesourcery.com>
436
437 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
438 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
439 (arm_cortex_a5_tune): New.
440
441 2011-06-02 Julian Brown <julian@codesourcery.com>
442
443 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
444 * config/arm/arm.c (arm_default_branch_cost): New.
445 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
446 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
447 (arm_fa726_tune): Set branch_cost field using
448 arm_default_branch_cost.
449 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
450 current_tune structure.
451 * dojump.c (tm_p.h): Include file.
452
453 2011-06-02 Julian Brown <julian@codesourcery.com>
454
455 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
456 tuning.
457 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
458 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
459 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
460 field.
461 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
462 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
463 (arm_fa726te_tune): Add prefer_constant_pool setting.
464 (arm_v6t2_tune, arm_cortex_tune): New.
465 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
466 prefer_constant_pool setting.
467
468 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
469
470 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
471 switch statement.
472 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
473 (*movdf_internal) <case 6,7,8>: Ditto.
474
475 * config/i386/constraints.md (Y4): New register constraint.
476 * config/i386/sse.md (vec_set<mode>_0): Merge with
477 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
478 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
479 *vec_extractv2di_1_sse.
480 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
481 and *vec_concatv2di_rex64_sse.
482
483 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
484
485 PR target/48807
486 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
487 of cgraph_local_info for null before attempting to use it.
488
489 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
490
491 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
492 (current_function_dynamic_alloc_count): Delete.
493 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
494 (expand_builtin_nonlocal_goto): Remove obsolete comment.
495 (expand_builtin_update_setjmp_buf): Remove dead code.
496 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
497 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
498 support.
499 * function.c (instantiate_virtual_regs): Likewise.
500 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
501 for a block with a single abnormal incoming edge.
502 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
503 (SETJMP_VIA_SAVE_AREA): Delete.
504 * config/sparc/sparc-protos.h (load_got_register): Declare.
505 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
506 (load_got_register): Make global.
507 (sparc_frame_pointer_required): Add 'static'.
508 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
509 (sparc_builtin_setjmp_frame_value): New function.
510 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
511 (save_stack_nonlocal): New expander.
512 (restore_stack_nonlocal): Likewise.
513 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
514 (nonlocal_goto_internal): New insn.
515 (goto_handler_and_restore): Delete.
516 (builtin_setjmp_setup): Likewise.
517 (do_builtin_setjmp_setup): Likewise.
518 (setjmp): Likewise.
519 (builtin_setjmp_receiver): New expander.
520
521 2011-06-01 David Li <davidxl@google.com>
522
523 PR middle-end/49261
524 * tree-pretty-print.c (dump_function_header): Format cleanup.
525
526 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
527
528 PR target/49238
529 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
530 needed when original operands are used for msw_skip comparison.
531
532 2011-06-01 Jakub Jelinek <jakub@redhat.com>
533
534 PR debug/49250
535 * var-tracking.c (add_uses, add_stores): Don't call
536 cselib_subst_to_values on ENTRY_VALUE.
537
538 2011-06-01 Diego Novillo <dnovillo@google.com>
539
540 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
541 output_record_start with LTO_null instead of output_zero.
542 (lto_output_ts_binfo_tree_pointers): Likewise.
543 (lto_output_tree): Likewise.
544 (output_eh_try_list): Likewise.
545 (output_eh_region): Likewise.
546 (output_eh_lp): Likewise.
547 (output_eh_regions): Likewise.
548 (output_bb): Likewise.
549 (output_function): Likewise.
550 (output_unreferenced_globals): Likewise.
551 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
552 instead of NUM_TREE_CODES.
553 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
554 (lto_output_int_in_range): Change << to >> when shifting VAL.
555
556 2011-06-01 Diego Novillo <dnovillo@google.com>
557
558 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
559 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
560
561 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
562
563 PR target/45074
564 * optabs.h (valid_multiword_target_p): Declare.
565 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
566 doing multi-word operations.
567 * optabs.c (expand_binop): Likewise.
568 (expand_doubleword_bswap): Likewise.
569 (expand_absneg_bit): Likewise.
570 (expand_unop): Likewise.
571 (expand_copysign_bit): Likewise.
572 (multiword_target_p): New function.
573
574 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
575
576 PR rtl-optimization/48830
577 PR rtl-optimization/48808
578 PR rtl-optimization/48792
579 * reload.c (push_reload): Check contains_reg_of_mode.
580 * reload1.c (strip_paradoxical_subreg): New function.
581 (gen_reload_chain_without_interm_reg_p): Use it to handle
582 paradoxical subregs.
583 (emit_output_reload_insns, gen_reload): Likewise.
584
585 2011-06-01 David Li <davidxl@google.com>
586
587 * predict.c : Change pass name
588 * ipa.c: Ditto.
589 * dce.c: Ditto.
590 * tree-profile.c: Ditto.
591 * except.c: Ditto.
592
593 2011-06-01 David Li <davidxl@google.com>
594
595 * tree-pretty-print.c (dump_function_header): New function.
596 * final.c (rest_of_clean_state): Use header dumper.
597 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
598 * passes.c (pass_init_dump_file): Use header dumper.
599
600 2011-06-01 Jakub Jelinek <jakub@redhat.com>
601
602 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
603 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
604 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
605 New functions.
606 (mem_loc_descriptor): Use them.
607
608 * var-tracking.c (create_entry_value): New function.
609 (vt_add_function_parameter): Use it.
610
611 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
612
613 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
614 Include <signal.h>, <ucontext.h>.
615 (sigill_caught): Define.
616 (sigill_hdlr): New function.
617 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
618 insns can be executed.
619 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
620 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
621
622 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
623
624 * config/t-slibgcc-darwin: Move to ...
625 * config/t-slibgcc-dummy: ... this. Clarify comments.
626 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
627 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
628 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
629 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
630 Remove i386/t-crtstuff from tmake_file.
631 (i[34567]86-*-solaris2*): Remove t-svr4,
632 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
633 t-slibgcc-dummy.
634 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
635 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
636 sparc/t-crtfm from tmake_file.
637 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
638 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
639 Remove extra_parts.
640 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
641 * config/i386/t-nwld (SHLIB_LINK): Remove.
642 * config/i386/t-rtems-i386: Rename to ...
643 * config/i386/t-rtems: ... this.
644 ($(T)crti.o, $(T)crtn.o): Remove.
645 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
646 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
647 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
648 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
649 EXTRA_MULTILIB_PARTS): Remove.
650 * config/sparc/t-sol2-64: Likewise.
651 * config/sparc/t-sol2: Remove.
652 * config/sparc/t-crtin: Remove.
653 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
654 * config/i386/gmon-sol2.c: Remove.
655 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
656 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
657 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
658 * config/i386/sol2-gc1.asm: Remove.
659 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
660 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
661 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
662 * config/t-slibgcc-sld: Remove.
663
664 2011-06-01 Jakub Jelinek <jakub@redhat.com>
665
666 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
667 base_type_for_mode with op_mode instead of mode.
668
669 2011-06-01 Paul Brook <paul@cpodesourcery.com>
670
671 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
672 Cortex-A15.
673 * config/arm/arm-tune.md: Regenerate.
674 * config/arm/arm-tables.opt: Regenerate.
675 * config/arm/arm.c (FL_DIV): Rename...
676 (FL_THUMB_DIV): ... to this.
677 (FL_ARM_DIV): Define.
678 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
679 (arm_arch_hwdiv): Remove.
680 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
681 (arm_issue_rate): Add cortexr5.
682 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
683 __ARM_ARCH_EXT_IDIV__.
684 (TARGET_IDIV): Define.
685 (arm_arch_hwdiv): Remove.
686 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
687 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
688 (divsi3, udivsi3): New patterns.
689 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
690 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
691
692 2011-06-01 Martin Jambor <mjambor@suse.cz>
693
694 * ipa-utils.c (ipa_dfs_info): New field scc_no.
695 * ipa-utils.c (searchc): Set scc_no.
696
697 2011-06-01 Martin Jambor <mjambor@suse.cz>
698
699 * ipa-utils.c (searchc_env): New field allow_overwritable.
700 (searchc): do not ignore edges to overwritable nodes if indicated
701 by env->allow_overwritable.
702 (ipa_reduced_postorder): Set env.allow_overwritable.
703
704 2011-06-01 Richard Guenther <rguenther@suse.de>
705
706 * tree.c (free_lang_data): Do not reset boolean_type_node nor
707 char_type_node.
708 * lto-streamer.c (lto_record_common_node): Take node pointer,
709 do not register types.
710 (lto_preload_common_nodes): Explicitly skip preloading nodes
711 that differ between frontends.
712
713 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
714
715 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
716 NON_FLOAT_REGS.
717
718 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
719
720 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
721 parameter value for dump. Dump cost on outermost call only.
722 (rs6000_memory_move_cost): Dump cost on outermost call only.
723
724 2011-05-31 Jakub Jelinek <jakub@redhat.com>
725
726 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
727 DW_OP_GNU_convert ops.
728
729 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
730 cselib_preserve_constants.
731 (cselib_lookup_1): If cselib_preserve_constants,
732 a new VALUE is being created for REG and there is a VALUE for the
733 same register in wider mode, add another loc with lowpart SUBREG of
734 the wider VALUE.
735 (cselib_subst_to_values): Handle ENTRY_VALUE.
736 * var-tracking.c (replace_expr_with_values): Return NULL for
737 ENTRY_VALUE too.
738 * dwarf2out.c (convert_descriptor_to_signed): New function.
739 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
740 instead of two shifts.
741 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
742 the right mode if needed.
743 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
744 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
745 convert_descriptor_to_signed.
746 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
747 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
748
749 PR target/48688
750 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
751
752 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
753
754 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
755 of X87MODEI12 and SWI48x instead of SSEMODEI24.
756 (SWI248x): New mode iterator, rename from X87MODEI.
757 (X87MODEI): Remove mode iterator.
758 (X87MODEI12): Ditto.
759 (SSEMODEI24): Ditto.
760
761 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
762
763 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
764 * doc/invoke.texi: Document max-vartrack-expr-depth.
765 * var-tracking.c (EXPR_DEPTH): New.
766 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
767
768 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
769
770 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
771 * config/i386/sse.md: Add n to negated FMA pattern names.
772
773 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
774
775 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
776
777 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
778
779 * gengtype-state.c (read_state_params_structs): Initialize previous.
780
781 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
782
783 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
784 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
785
786 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
787
788 * config/i386/i386.md (*movtf_internal): Avoid allocating general
789 registers. Penalize F*r->o alternative to prevent partial memory
790 stalls. Slightly penalize *roF->*r alternative. Generate SSE
791 CONST_DOUBLE immediates when optimizing function for size. Do not move
792 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
793 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
794 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
795 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
796 alternatives.
797 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
798
799 (fp_register_operand splitters): Use fp_register_operand
800 constraint. Do not use FP_REG_P in insn condition.
801 (any_fp_register_operand splitters): Use any_fp_register_operand
802 constraint. Do not use ANY_FP_REG_P in insn condition.
803
804 2011-05-31 Jan Hubicka <jh@suse.cz>
805
806 * cgraph.h (cgraph_inline_failed_t): Give enum a name
807 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
808 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
809 (lto_output_edge): Use output_enum and var_len_unsigned.
810 (lto_output_varpool_node): Likewise.
811 (input_overwrite_node): Do not take resolution parameter;
812 extract it from a bitpack.
813 (input_node): Do not read resolution; use input_enum and
814 var_len_unsigned.
815 (input_varpool_node): Likewise.
816 (input_edge): Likewise.
817 (input_cgraph_1): Likewise.
818
819 2011-05-31 Richard Guenther <rguenther@suse.de>
820
821 * gimple.c (gimple_register_canonical_type): Do not register
822 any types via gimple_register_type.
823
824 2011-05-31 Jan Hubicka <jh@suse.cz>
825
826 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
827 of thunks.
828
829 2011-05-31 Jakub Jelinek <jakub@redhat.com>
830
831 PR rtl-optimization/49235
832 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
833 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
834
835 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
836
837 PR tree-optimization/49093
838 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
839 data references.
840
841 2011-05-31 Dodji Seketeli <dodji@redhat.com>
842
843 PR debug/49047
844 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
845 for concrete functions containing the code of cloned functions.
846
847 2011-05-31 Richard Guenther <rguenther@suse.de>
848
849 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
850 to ...
851 (forward_propagate_into_comparison_1): ... this.
852 (forward_propagate_comparison): Rename to ...
853 (forward_propagate_into_comparison): ... this. Split out
854 real forward propagation code to ...
855 (forward_propagate_comparison): ... this.
856 (forward_propagate_into_gimple_cond): Remove looping.
857 (forward_propagate_into_cond): Likewise.
858 (simplify_not_neg_expr): Return whether we have done something.
859 (simplify_gimple_switch): Likewise.
860 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
861 (ssa_forward_propagate_and_combine): ... this. Re-structure
862 to do a forward forward-propagation walk on BBs and a backward
863 stmt combining walk on BBs. Consistently re-scan changed statements.
864 (pass_forwprop): Adjust.
865
866 2011-05-30 Ian Lance Taylor <iant@google.com>
867
868 * godump.c (go_format_type): Correct length of name added to
869 obstack for anonymous field.
870
871 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
872
873 PR target/49186
874 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
875 part of the second operand is 0.
876
877 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
878
879 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
880 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
881 to memory for !TARGET_MEMORY_MISMATCH_STALL.
882 (*movdf_internal_rex64): Do not penalize F->r alternative.
883 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
884 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
885 when optimizing function for size. Do not move CONST_DOUBLEs
886 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
887 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
888 SUBREGs. Do not check for MEM_P operands in the insn condition,
889 check for ANY_FP_REGNO_P instead.
890 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
891 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
892 function for speed.
893 * config/i386/i386.c (ix86_option_override_internal): Do not
894 set TARGET_INTEGER_DFMODE_MOVES here.
895
896 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
897
898 PR target/49168
899 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
900
901 2011-05-30 Jakub Jelinek <jakub@redhat.com>
902
903 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
904 DW_TAG_rvalue_reference_type even for
905 -gdwarf-4 -fno-debug-types-section.
906
907 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
908
909 PR tree-optimization/46728
910 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
911 (build_and_insert_binop): New.
912 (gimple_expand_builtin_pow): Reorder args for
913 build_and_insert_call; use build_and_insert_binop; add more
914 optimizations for fractional exponents.
915
916 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
917
918 PR bootstrap/49190
919
920 Revert:
921 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
922
923 * tree.h (struct tree_identifier): Inherit from tree_typed, not
924 tree_common.
925 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
926 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
927 TS_BASE instead of TS_COMMON.
928 * varasm.c (assemble_name): Remove assert.
929
930 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
931
932 * config.gcc: Keep obselete list sorted.
933
934 2011-05-30 Jakub Jelinek <jakub@redhat.com>
935 Eric Botcazou <ebotcazou@adacore.com>
936
937 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
938 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
939 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
940 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
941 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
942
943 2011-05-30 Richard Guenther <rguenther@suse.de>
944
945 * gimple.c (gimple_types_compatible_p_1): Compare record
946 and union type members properly.
947
948 2011-05-30 Richard Guenther <rguenther@suse.de>
949
950 PR tree-optimization/49210
951 * ipa-split.c (split_function): Care for the case where the call
952 result is not trivially convertible to the result holding variable.
953
954 2011-05-30 Richard Guenther <rguenther@suse.de>
955
956 PR tree-optimization/49218
957 * tree-vrp.c (adjust_range_with_scev): Properly check whether
958 overflow occured.
959
960 2011-05-30 Richard Guenther <rguenther@suse.de>
961
962 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
963 New function split out from ...
964 (forward_propagate_into_gimple_cond): ... here. Adjust.
965 (forward_propagate_into_cond): Likewise.
966 (forward_propagate_comparison): Also propagate into
967 comparisons on assignment RHS. Change return value to
968 behave similar to forward_propagate_into_cond.
969 (tree_ssa_forward_propagate_single_use_vars): Handle
970 strict-overflow warnings properly for forward_propagate_comparison.
971
972 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
973
974 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
975 from plugin linker.
976 * configure: Regenerate.
977
978 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
979
980 PR tree-optimization/49199
981 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
982 non-reduction operands are either defined in the loop or by induction.
983
984 2011-05-29 Xinliang David Li <davidxl@google.com>
985
986 * opts-global.c (handle_common_deferred_options): Handle new options.
987 * passes.c (register_one_dump_file): Call register_pass_name.
988 (execute_one_pass): Check explicit enable/disable flag.
989 (passr_hash): New function.
990 (passr_eq): Ditto.
991 (register_pass_name): Ditto.
992 (get_pass_by_name): Ditto.
993 (pass_hash): Ditto.
994 (pass_eq): Ditto.
995 (enable_pass): Ditto.
996 (disable_pass): Ditto.
997 (is_pass_explicitly_enabled_or_disabled): Ditto.
998
999 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
1000
1001 * config/i386/i386.md (*movoi_internal_avx): Use
1002 standard_sse_constant_opcode for alternative 0.
1003 (*movti_internal_sse): Ditto.
1004 (*movti_internal_rex64): Use standard_sse_constant_opcode for
1005 alternative 2.
1006 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
1007 sselog1 type moves.
1008 (*movsi_internal): Ditto.
1009 (*movdi_internal): Ditto. Add ssecvt type moves.
1010
1011 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
1012
1013 PR target/48830
1014 * rtlanal.c (simplify_subreg_regno): Adjust comment.
1015
1016 2011-05-29 Jakub Jelinek <jakub@redhat.com>
1017
1018 PR rtl-optimization/49095
1019 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
1020 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
1021
1022 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
1023
1024 PR target/43995
1025 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
1026 recurse_p argument. Only follow register copies if it is set,
1027 and prevent mips_find_pic_call_symbol from recursing.
1028 (mips_find_pic_call_symbol): Add a recurse_p argument.
1029 Pass it to mips_pic_call_symbol_from_set.
1030 (mips_annotate_pic_calls): Update accordingly.
1031
1032 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
1033
1034 * emit-rtl.c (try_split): Use a loop to search for
1035 NOTE_INSN_CALL_ARG_LOCATIONs.
1036
1037 2011-05-29 Richard Guenther <rguenther@suse.de>
1038
1039 PR tree-optimization/49217
1040 * ipa-pure-const.c (propagate_pure_const): Fix typos.
1041
1042 2011-05-28 Jan Hubicka <jh@suse.cz>
1043
1044 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
1045 length.
1046 (string_slot_free): Remove
1047 (create_output_block): Initialize obstack.
1048 (destroy_output_block): Free obstack.
1049 (lto_string_index): Add PERSISTENT parameter; do not duplicate
1050 the string unless it needs to be added into the hash.
1051 (lto_output_string_with_length): Add persistent attribute;
1052 handle NULL strings.
1053 (lto_output_string): Add PERSISTENT parameter.
1054 (output_string_cst, output_identifier): Simplify.
1055 (lto_output_location_bitpack): Update.
1056 (lto_output_builtin_tree): Update.
1057 * lto-streamer.h (struct output_block): Add obstack.
1058 (lto_output_string, lto_output_string_with_length): Remove
1059 declarations; functions are static now.
1060
1061 2011-05-28 Jan Hubicka <jh@suse.cz>
1062
1063 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
1064 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
1065 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
1066 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
1067 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
1068 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
1069 unpack_ts_decl_with_vis_value_fields,
1070 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
1071 lto_get_builtin_tree): Use enum and variable length i/o.
1072 * basic-block.h (profile_status_d): Add PROFILE_LAST.
1073 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
1074 New functions.
1075 (bp_pack_enum, bp_unpack_enum): New macros.
1076
1077 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
1078
1079 * genrecog.c: Remove redundant forward declarations.
1080
1081 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
1082
1083 * config.gcc: Deprecate mips*-*-openbsd*.
1084
1085 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
1086
1087 PR bootstrap/49195
1088 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
1089 for match_op_dup.
1090
1091 2011-05-27 Andrew Pinski <pinskia@gmail.com>
1092
1093 PR middle-end/48981
1094 * gengtype.c (vec_prefix_type): New function.
1095 (note_def_vec): Use vec_prefix_type and change the length
1096 attribute to be based on the prefix.
1097 * vec.c: Include coretypes.h before vec.h.
1098 (struct vec_prefix): Remove.
1099 (vec_gc_p_reserve): Change the offsetof to sizeof.
1100 (vec_gc_p_reserve_exact): Likewise.
1101 (vec_heap_p_reserve): Likewise.
1102 (vec_heap_p_reserve_exact): Likewise.
1103 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
1104 (vec_stack_p_reserve): Change the offsetof to sizeof.
1105 (vec_stack_p_reserve_exact): Likewise.
1106 * vec.h (struct vec_prefix): New struct definition.
1107 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
1108 (VEC_T_GTY(T,B)): Likewise.
1109 (DEF_VEC_FUNC_P(T)): Use prefix field.
1110 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
1111 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
1112
1113 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1114
1115 PR tree-optimization/46728
1116 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
1117 (powi_as_mults): Add gimple_set_location.
1118 (build_and_insert_call): New.
1119 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
1120 0.5, 0.25, 0.75, 1./3., or 1./6.
1121
1122 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
1123
1124 * doc/contrib.texi: Update copyright years.
1125 (Contributors): Add Zdenek Sojka.
1126
1127 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
1128
1129 * c-decl.c (c_push_function_context): Copy the current statement
1130 list stack.
1131 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
1132 (finish_struct): Call building_stmt_list_p instead of checking
1133 cur_stmt_list.
1134 * c-parser.c (c_parser_postfix_expression): Likewise.
1135 * c-typeck.c (c_end_compound_stmt): Likewise.
1136 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
1137 * tree-iterator.c (stmt_list_cache): Change to a VEC.
1138 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
1139 (free_stmt_list): Likewise.
1140 * tree.h (struct tree_statement_list): Include typed_tree instead
1141 of tree_common.
1142 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
1143 as TS_TYPED instead of TS_COMMON.
1144
1145 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1146 Uros Bizjak <ubizjak@gmail.com>
1147
1148 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
1149 (HAVE_AS_IX86_TLSGDPTL): Define.
1150 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
1151 (HAVE_AS_IX86_TLSLDMPLT): Define.
1152 * configure: Regenerate.
1153 * config.in: Regenerate.
1154 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
1155 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
1156 TARGET_SUN_TLS, use @tlsgdplt or @plt.
1157 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
1158 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
1159 @tlsldmplt or @plt.
1160 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
1161
1162 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
1163
1164 * sched-int.h (struct _haifa_deps_insn_data): New members cond
1165 and reverse_cond.
1166 (INSN_COND, INSN_REVERSE_COND): New macros.
1167 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
1168 once.
1169 (sched_get_condition_with_rev): Cache the results, and look them up
1170 if possible.
1171 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
1172 are clobbered by the current insn.
1173 * target.def (exposed_pipline): New sched data hook.
1174 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
1175 * doc/tm.texi: Regenerate.
1176
1177 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1178
1179 PR tree-optimization/49170
1180 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
1181 sincos or cexp.
1182
1183 2011-05-27 Richard Guenther <rguenther@suse.de>
1184
1185 PR middle-end/49189
1186 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
1187 of comparisons.
1188
1189 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
1190
1191 * haifa-sched.c (sched_scan_info): Remove.
1192 (schedule_block): Call sched_extend_luids rather than sched_init_luids
1193 with NULL args.
1194 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
1195 Remove functions.
1196 (sched_scan): Remove.
1197 (sched_extend_luids): Renamed from luids_extend_insn and no longer
1198 static. All callers changed.
1199 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
1200 static. All callers changed.
1201 (sched_init_luids): Remove all arguments except the first. All
1202 callers changed. Don't use sched_scan.
1203 (haifa_init_h_i_d): Likewise.
1204 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
1205 manually rather than using sched_init_luids. Likewise with
1206 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
1207 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
1208 rather than sched_init_luids with NULL args.
1209 * sel-sched-ir.c (new_insns): Remove variable.
1210 (sched_scan): New static function, previously in haifa-sched.c. Remove
1211 all arguments but the first two; all callers changed.
1212 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
1213 rather than sched_init_luids.
1214 (sel_init_bbs): Remove second argument. All callers changed.
1215 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
1216 with NULL arguments.
1217 (create_insn_rtx_from_pattern): Likewise.
1218 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
1219 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
1220 (sched_init_insn_luid, sched_extend_luids): Declare.
1221 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
1222 declarations.
1223
1224 2011-05-27 Richard Guenther <rguenther@suse.de>
1225
1226 PR middle-end/49177
1227 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
1228 A CMP B ? (T) true : (T) false for non-integral types T again.
1229
1230 2011-05-27 Jan Hubicka <jh@suse.cz>
1231
1232 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
1233 so 0 means NULL string.
1234 (lto_output_string_with_length): ... here.
1235 (lto_output_string, output_string_cst, output_identifier): Update
1236 handling of NULL strings.
1237 (lto_output_location_bitpack): New function.
1238 (lto_output_location): Use it.
1239 (lto_output_tree_ref): Use output_record_start.
1240 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
1241 len values.
1242 * lto-streamer-in.c (string_for_index): Break out from ...; offset
1243 values by 1.
1244 (input_string_internal): ... here;
1245 (input_string_cst, input_identifier, lto_input_string): Update handling
1246 of NULL strings.
1247 (lto_input_location_bitpack): New function
1248 (lto_input_location): Use it.
1249 (unpack_ts_type_common_value_fields): Pack align & alias in var len
1250 values.
1251 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
1252 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
1253 (bp_pack_value): Sanity check the value range.
1254 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
1255 New functions.
1256 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
1257 New functions.
1258
1259 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
1260
1261 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
1262 call_arg_location instructions down the floor.
1263
1264 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
1265
1266 PR rtl-optimization/49154
1267 * ira.c (setup_pressure_classes): Process class without sublcasses
1268 as a candidate for pressure classes.
1269
1270 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
1271
1272 PR rtl-optimization/48575
1273 * genrecog.c (position_type): New enum.
1274 (position): New structure.
1275 (decision): Use position structure instead of a string.
1276 (root_pos, peep2_insn_pos_list): New variables.
1277 (next_position, compare_positions): New functions.
1278 (new_decision): Use position structures instead of strings.
1279 (maybe_both_true): Likewise.
1280 (change_state): Likewise.
1281 (write_tree): Likewise.
1282 (make_insn_sequence): Likewise.
1283
1284 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
1285
1286 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
1287 TS_BASE instead of TS_COMMON.
1288 (find_decls_types_r): Check for TS_TYPED structure before looking at
1289 TREE_TYPE.
1290 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
1291 Add chain field.
1292 (BLOCK_CHAIN): Use new chain field.
1293
1294 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
1295
1296 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
1297 moves expensive on Power7 also.
1298
1299 2011-05-26 Richard Guenther <rguenther@suse.de>
1300
1301 * fold-const.c (fold_unary_loc): Remove bogus code.
1302
1303 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
1304
1305 * tree.h (struct tree_identifier): Inherit from tree_typed, not
1306 tree_common.
1307 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
1308 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
1309 TS_BASE instead of TS_COMMON.
1310 * varasm.c (assemble_name): Remove assert.
1311
1312 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
1313
1314 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
1315 substituted first.
1316 * libgcc-std.ver: Delete file.
1317
1318 2011-05-26 Richard Guenther <rguenther@suse.de>
1319
1320 PR tree-optimization/48702
1321 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
1322 only when we know the base address is within bounds.
1323 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
1324 assume the base address of TARGET_MEM_REFs is in bounds.
1325
1326 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1327
1328 PR target/49099
1329 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
1330 declaration in TARGET_SOLARIS.
1331
1332 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
1333
1334 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
1335 The instruction is then expanded explicitly.
1336 (supported_compare): Callable instruction.
1337 (compare): Likewise.
1338
1339 2011-05-26 Jakub Jelinek <jakub@redhat.com>
1340
1341 PR c++/49165
1342 * gimplify.c (shortcut_cond_r): Don't special case
1343 COND_EXPRs if they have void type on one of their arms.
1344
1345 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
1346
1347 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
1348 to reduce duplication, and to achieve a slightly more logical order
1349 of operations.
1350
1351 2011-05-26 Jakub Jelinek <jakub@redhat.com>
1352
1353 PR tree-optimization/49161
1354 * tree-vrp.c (struct case_info): New type.
1355 (compare_case_labels): Sort case_info structs instead of
1356 trees, and not primarily by CASE_LABEL uids but by
1357 label_for_block indexes.
1358 (find_switch_asserts): Put case labels into struct case_info
1359 array instead of TREE_VEC, adjust sorting, compare label_for_block
1360 values instead of CASE_LABELs.
1361
1362 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1363
1364 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
1365 ("orndi3_neon"): Likewise.
1366 ("bic<mode>3_neon"): Likewise.
1367
1368 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
1369
1370 PR tree-optimization/49038
1371 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
1372 Ensure at least one epilogue iteration if required by data
1373 accesses with gaps.
1374 * tree-vectorizer.h (struct _loop_vec_info): Add new field
1375 to mark loops that require peeling for gaps.
1376 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
1377 (vect_get_known_peeling_cost): Take peeling for gaps into
1378 account.
1379 (vect_transform_loop): Generate epilogue if required by data
1380 access with gaps.
1381 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
1382 loop as requiring an epilogue if there are gaps in the end of
1383 the strided group.
1384
1385 2011-05-25 Ian Lance Taylor <iant@google.com>
1386
1387 * godump.c (go_format_type): Output the first field with a usable
1388 Go type, if any.
1389
1390 2011-05-25 Ian Lance Taylor <iant@google.com>
1391
1392 * godump.c (go_format_type): Check for invalid type names, pointer
1393 target types, and struct field types.
1394
1395 2011-05-25 Jason Merrill <jason@redhat.com>
1396
1397 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
1398
1399 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
1400
1401 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
1402
1403 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
1404
1405 * config/i386/i386.md (*movqi_extv_1)): Put back
1406 "register_operand" check in "type" calculation.
1407 (*movqi_extzv_2): Likewise.
1408
1409 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
1410
1411 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
1412
1413 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
1414
1415 PR bootstrap/49160
1416 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
1417 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
1418 __divxc3, __divtc3): Wrap definitions in #ifndef.
1419
1420 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
1421
1422 PR target/49142
1423 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
1424 "register_operand" check and replace q_regs_operand with
1425 QIreg_operand in "type" calculation.
1426 (*movqi_extv_1): Likewise.
1427 (*movqi_extzv_2_rex64): Likewise.
1428 (*movqi_extzv_2): Likewise.
1429
1430 * config/i386/predicates.md (QIreg_operand): New.
1431
1432 2011-05-25 Richard Guenther <rguenther@suse.de>
1433
1434 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
1435 type-based offset disambiguation, streamline MEM_REF and
1436 TARGET_MEM_REF handling.
1437
1438 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
1439
1440 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
1441 (bdesc_special_args): Add pause intrinsic.
1442
1443 * config/i386/i386.md (UNSPEC_PAUSE): New.
1444 (pause): Likewise.
1445 (*pause): Likewise.
1446 * config/i386/ia32intrin.h (__pause): Likewise.
1447
1448 * doc/extend.texi (X86 Built-in Functions): Add documentation for
1449 pause intrinsic.
1450
1451 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1452
1453 PR tree-optimization/46728
1454 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
1455 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
1456
1457 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
1458
1459 * tree.h (struct tree_exp): Inherit from struct tree_typed.
1460 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
1461 instead of TS_COMMON.
1462
1463 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
1464
1465 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
1466 LIBGCC2_GNU_PREFIX is defined.
1467 (__N): New macro.
1468 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
1469 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
1470 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
1471 __clz_tab): Define using __N.
1472 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
1473 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1474 * target.def (libfunc_gnu_prefix): New hook.
1475 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
1476 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
1477 * doc/tm.texi: Regenerate.
1478 * system.h (LIBGCC2_GNU_PREFIX): Poison.
1479 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
1480 account.
1481 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
1482 (init_optabs): Likewise for the bswap libfuncs.
1483 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
1484 and divide.
1485 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
1486 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
1487 * libgcc-std.ver: Remove.
1488 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
1489 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
1490 libgcc-std.ver.
1491 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1492 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
1493 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
1494 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
1495 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
1496 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1497 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1498 * config/fixed-bit.h (FIXED_OP): Define differently depending on
1499 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
1500 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
1501
1502 2011-05-25 Jan Hubicka <jh@suse.cz>
1503
1504 * lto-streamer-out.c (output_record_start): Use lto_output_enum
1505 (lto_output_tree): Use output_record_start.
1506 * lto-streamer-in.c (input_record_start): Use lto_input_enum
1507 (lto_get_pickled_tree): Use input_record_start.
1508 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
1509 (lto_value_range_error): New function.
1510 * lto-streamer.h (lto_value_range_error): Declare.
1511 (lto_output_int_in_range, lto_input_int_in_range): New functions.
1512 (lto_output_enum, lto_input_enum): New macros.
1513
1514 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
1515
1516 * common.opt (flag_stack_usage_info): New variable.
1517 (-Wstack-usage): New option.
1518 * doc/invoke.texi (Warning options): Document -Wstack-usage.
1519 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
1520 <OPT_fstack_usage>: Likewise.
1521 * toplev.c (output_stack_usage): Handle -Wstack-usage.
1522 * calls.c (expand_call): Test flag_stack_usage_info variable instead
1523 of flag_stack_usage.
1524 (emit_library_call_value_1): Likewise.
1525 * explow.c (allocate_dynamic_stack_space): Likewise.
1526 * function.c (instantiate_virtual_regs ): Likewise.
1527 (prepare_function_start): Likewise.
1528 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
1529 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
1530 * config/arm/arm.c (arm_expand_prologue): Likewise.
1531 (thumb1_expand_prologue): Likewise.
1532 * config/avr/avr.c (expand_prologue): Likewise.
1533 * config/i386/i386.c (ix86_expand_prologue): Likewise.
1534 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1535 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
1536 * config/mips/mips.c (mips_expand_prologue): Likewise.
1537 * config/pa/pa.c (hppa_expand_prologue): Likewise.
1538 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1539 * config/s390/s390.c (s390_emit_prologue): Likewise.
1540 * config/sh/sh.c (sh_expand_prologue): Likewise.
1541 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1542 * config/spu/spu.c (spu_expand_prologue): Likewise.
1543
1544 2011-05-25 Richard Guenther <rguenther@suse.de>
1545
1546 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
1547 (gimple_canonical_types_compatible_p): Likewise.
1548
1549 2011-05-25 Jan Hubicka <jh@suse.cz>
1550
1551 PR middle-end/49062
1552 * ipa.c (function_and_variable_visibility): Only add to same
1553 comdat group list if DECL_ONE_ONLY.
1554
1555 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
1556
1557 PR rtl-optimization/49014
1558 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
1559
1560 2011-05-25 Jakub Jelinek <jakub@redhat.com>
1561
1562 PR target/49128
1563 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1564
1565 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1566
1567 PR rtl-optimization/48757
1568 * ira-build.c (loop_with_eh_edge_p): Rename to
1569 loop_with_complex_edge_p, check edges on complexity, make function
1570 conditional.
1571 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
1572 conditional.
1573
1574 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1575
1576 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
1577 force flag_ira_share_save_slots to 0.
1578
1579 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1580
1581 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
1582 (vt_initialize): Set PROLOGUE_BB unconditionally.
1583 Add block comment about CFA_BASE_RTX machinery.
1584 Reset FP_CFA_OFFSET to -1 on all invalid paths.
1585 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
1586
1587 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
1588
1589 PR objc/48187
1590 * c-parser.c (c_parser_objc_class_instance_variables): More robust
1591 parsing of syntax error in ObjC instance variable lists. In
1592 particular, avoid an infinite loop if there is a stray ']'.
1593 Updated error message.
1594
1595 2011-05-24 Ian Lance Taylor <iant@google.com>
1596
1597 * godump.c (go_define): Don't accept a string immediately after
1598 another operand.
1599
1600 2011-05-24 Ian Lance Taylor <iant@google.com>
1601
1602 * godump.c (struct godump_container): Add invalid_hash field.
1603 (go_format_type): Return false if type is found in invalid_hash.
1604 (go_output_typedef): Add invalid type to invalid_hash.
1605 (go_finish): Create and delete invalid_hash.
1606
1607 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1608
1609 PR tree-optimization/46728
1610 * tree-ssa-math-opts.c (powi_table): New.
1611 (powi_lookup_cost): New.
1612 (powi_cost): New.
1613 (powi_as_mults_1): New.
1614 (powi_as_mults): New.
1615 (gimple_expand_builtin_powi): New.
1616 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
1617 (gate_cse_sincos): Remove sincos/cexp restriction.
1618
1619 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1620
1621 PR target/3746
1622 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
1623 mips-tdump native.
1624 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
1625 * mips-tdump.c: Likewise.
1626
1627 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
1628
1629 PR target/49128
1630 * config/i386/driver-i386.c (host_detect_local_cpu): Always
1631 add -mno-XXX. Handle FMA.
1632
1633 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1634
1635 PR rtl-optimization/48633
1636 * ira-build.c (loop_with_eh_edge_p): New function.
1637 (mark_loops_for_removal): Use it.
1638
1639 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1640
1641 PR rtl-optimization/48971
1642 * ira.c (setup_pressure_classes): Don't check register move cost
1643 for classes with one registers. Don't add pressure class if there
1644 is a pressure class with the same available hard registers.
1645 Check contains_reg_of_mode. Fix a typo in collecting
1646 temp_hard_regset. Ignore hard registers not belonging to a class.
1647
1648 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
1649
1650 PR target/49133
1651 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
1652
1653 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1654 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1655
1656 PR gcov-profile/48845
1657 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
1658
1659 2011-05-24 Richard Guenther <rguenther@suse.de>
1660
1661 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
1662 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
1663 (gimple_types_compatible_p_1): Adjust.
1664 (iterative_hash_canonical_type): Do not bother about complete vs.
1665 incomplete types.
1666 (gimple_canonical_types_compatible_p): Likewise.
1667
1668 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1669
1670 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
1671
1672 2011-05-24 Richard Guenther <rguenther@suse.de>
1673
1674 PR bootstrap/49078
1675 * gimple.c (gimple_register_canonical_type): Revert
1676 previous change.
1677 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
1678 does not for a tree for the case where it matters. Cache
1679 pointer-type alias-sets.
1680
1681 2011-05-24 Joseph Myers <joseph@codesourcery.com>
1682
1683 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
1684 (OBJS): Remove options.o, opts-common.o and prefix.o.
1685 (OBJS-libcommon-target): New.
1686 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
1687 (BACKEND): Include libcommon-target.a.
1688 (MOSTLYCLEANFILES): Include libcommon-target.a.
1689 (libcommon-target.a): New.
1690 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
1691 prefix.o.
1692
1693 2011-05-23 Joseph Myers <joseph@codesourcery.com>
1694
1695 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
1696 parts of output shared with the driver.
1697 * optc-gen.awk: Don't generate parts of output not shared with the
1698 driver.
1699 * opth-gen.awk: Remove GCC_DRIVER conditionals.
1700 * doc/options.texi (SourcerInclude): Mention options-save.c.
1701 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
1702 (OBJS): Add options-save.o.
1703 (options-save.c, options-save.o): New.
1704 (options.o): Update dependencies.
1705 (gcc-options.o): Remove.
1706 (mostlyclean): Remove options-save.c.
1707
1708 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1709
1710 PR debug/49032
1711 * dbxout.c: Include cgraph.h.
1712 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
1713 and without value expr, return NULL if no varpool node exists for
1714 it or if it is not needed.
1715 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
1716
1717 PR c/49120
1718 * c-decl.c (start_decl): Convert expr to void_type_node.
1719
1720 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
1721
1722 PR rtl-optimization/48826
1723 * emit-rtl.c (try_split): When splitting a call that is followed
1724 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
1725
1726 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1727
1728 * cfgexpand.c (expand_debug_expr): For unused non-addressable
1729 parameters passed in memory prefer using DECL_INCOMING_RTL over
1730 the pseudos it will be copied into.
1731
1732 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
1733
1734 PR target/47315
1735 * config/i386/i386.c (ix86_option_override_internal): Save the
1736 initial options after checking vzeroupper.
1737
1738 2011-05-23 David Li <davidxl@google.com>
1739
1740 PR tree-optimization/48988
1741 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1742 Initialize has_valid_pred for each pred chain.
1743
1744 2011-05-23 Richard Guenther <rguenther@suse.de>
1745
1746 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1747 (iterative_hash_gimple_type): Always hash type names.
1748
1749 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
1750
1751 * c-typeck.c (build_function_call_vec): Tweak call to
1752 check_function_arguments.
1753
1754 2011-05-23 Richard Guenther <rguenther@suse.de>
1755
1756 PR tree-optimization/49115
1757 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1758 is not necessarily carried out, do not claim it kills the ref.
1759 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1760
1761 2011-05-23 Richard Guenther <rguenther@suse.de>
1762
1763 PR middle-end/15419
1764 * builtins.c (fold_builtin_memory_op): Be less restrictive about
1765 what pointer types we accept for folding.
1766
1767 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1768
1769 * gthr-gnat.c: Remove.
1770 * gthr-gnat.h: Remove.
1771 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1772 * config/t-freebsd (LIB2ADDEH): Likewise.
1773 * config/t-linux (LIB2ADDEH): Likewise.
1774 * config/t-sol2 (LIB2ADDEH): Likewise.
1775 * config/ia64/t-vms (LIB2ADDEH): Likewise.
1776 * configure.ac (target_thread_file): Remove gnat handling.
1777 * configure: Regenerate.
1778 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1779
1780 2011-05-23 Tristan Gingold <gingold@adacore.com>
1781 Eric Botcazou <ebotcazou@adacore.com>
1782
1783 * gcov.c (create_file_names): If no object directory is specified,
1784 keep the directory of the file.
1785
1786 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1787
1788 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1789 * configure: Regenerate.
1790
1791 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1792
1793 PR middle-end/48973
1794 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1795 failed and the comparison has a single bit signed type, use
1796 constm1_rtx instead of const1_rtx for true value.
1797 (do_store_flag): If ops->type is single bit signed type, disable
1798 signel bit test optimization and pass -1 instead of 1 as last
1799 parameter to emit_store_flag_force.
1800
1801 2011-05-23 Tom de Vries <tom@codesourcery.com>
1802
1803 PR target/45098
1804 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1805 function.
1806 (infer_loop_bounds_from_undefined): Use new function.
1807
1808 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1809
1810 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1811 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
1812 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1813 and -O0 otherwise.
1814 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1815
1816 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1817
1818 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1819 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1820 returns true.
1821
1822 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1823
1824 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1825
1826 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1827
1828 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1829 UNSPEC_MOVE_PIC pattern.
1830
1831 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1832
1833 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1834 (sparc-*-rtems*): Likewise.
1835 (sparc64-*-elf*): Likewise.
1836 (sparc64-*-rtems*): Likewise.
1837 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
1838 * config/sparc/t-crtin: New file.
1839 * config/sparc/t-sol2 (crti.o): Delete rule.
1840 (crtn.o): Likewise.
1841 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1842 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1843 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1844 (ENDFILE_SPEC): Add crtn.o.
1845
1846 2011-05-22 Tom de Vries <tom@codesourcery.com>
1847
1848 PR middle-end/48689
1849 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1850 CODE_CONTAINS_STRUCT (TS_COMMON).
1851
1852 2011-05-22 Jakub Jelinek <jakub@redhat.com>
1853
1854 PR middle-end/49029
1855 * expmed.c (extract_fixed_bit_field): Test whether target can be used
1856 only after deciding which mode to use.
1857
1858 2011-05-22 Tom de Vries <tom@codesourcery.com>
1859
1860 PR target/45098
1861 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1862 for call to get_shiftadd_cost.
1863
1864 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
1865
1866 PR target/49104
1867 * config/i386/cpuid.h (bit_MMXEXT): New define.
1868
1869 2011-05-22 Nick Clifton <nickc@redhat.com>
1870
1871 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1872 initialisation of non-existant args[2] element. Use args[] array
1873 not arg[] array to pass arguments to build_function_type_list.
1874
1875 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
1876
1877 PR tree-optimization/49087
1878 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1879
1880 2011-05-21 Jason Merrill <jason@redhat.com>
1881
1882 PR c++/49092
1883 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1884 static storage duration.
1885
1886 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1887
1888 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1889 frame pointer.
1890
1891 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1892
1893 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1894 false if there are call-saved registers here...
1895 (sparc_can_use_return_insn_p): ...but here instead.
1896 (save_or_restore_regs): Fix thinko.
1897 (sparc_expand_prologue): Use current_function_is_leaf.
1898 (sparc_frame_pointer_required): Likewise.
1899
1900 2011-05-21 Nick Clifton <nickc@redhat.com>
1901
1902 PR target/49098
1903 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1904
1905 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
1906
1907 * gengtype.c (walk_type): Implemented "atomic" GTY option.
1908 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1909
1910 2011-05-21 Joseph Myers <joseph@codesourcery.com>
1911
1912 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
1913 * optc-gen.awk: Move common code to opt-read.awk.
1914 * opth-gen.awk: Likewise.
1915 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1916
1917 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
1918
1919 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1920
1921 2011-05-20 Tom de Vries <tom@codesourcery.com>
1922
1923 PR target/45098
1924 * tree-ssa-loop-ivopts.c: Include expmed.h.
1925 (get_shiftadd_cost): New function.
1926 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
1927
1928 2011-05-20 Jakub Jelinek <jakub@redhat.com>
1929
1930 PR bootstrap/49086
1931 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1932 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1933
1934 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1935
1936 * Makefile.in: Update comment referring to $(OBJS-common).
1937
1938 2011-05-20 Ian Lance Taylor <iant@google.com>
1939
1940 * godump.c (go_output_typedef): Put enum constants in the macro
1941 hash table to avoid duplicate Go const definitions.
1942
1943 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1944
1945 * Makefile.in (LIBDEPS): Add libcommon.a.
1946 (LIBS): Likewise.
1947 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1948 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1949 pretty-print.o and version.o.
1950 (OBJS-libcommon): New.
1951 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1952 (BACKEND): Add libcommon.a.
1953 (MOSTLYCLEANFILES): Likewise.
1954 (libcommon.a): New.
1955 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1956 (cpp$(exeext)): Likewise.
1957 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1958 pretty-print.o and input.o.
1959 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1960 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1961 (errors.o): Remove.
1962 (mips-tfile): Don't explicitly use version.o.
1963 (mips-tdump): Likewise.
1964 (gcov.o): Depend on $(DIAGNOSTIC_H).
1965 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1966 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1967 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1968 * gcov-dump.c: Include intl.h and diagnostic.h.
1969 (main): Initialize diagnostics.
1970 * gcov.c: Include diagnostic.h.
1971 (fnotice): Remove.
1972 (main): Initialize diagnostics.
1973 * lto-wrapper.c: Include diagnostic.h.
1974 (main): Initialize diagnostics.
1975
1976 2011-05-20 Michael Matz <matz@suse.de>
1977
1978 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1979
1980 2011-05-20 Michael Matz <matz@suse.de>
1981 Richard Guenther <rguenther@suse.de>
1982
1983 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1984 use lto_streamer_cache_append directly instead of returning a VEC.
1985 (preload_common_node): Remove.
1986 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1987 track seen nodes.
1988 (lto_streamer_cache_create): Call lto_preload_common_nodes.
1989
1990 2011-05-20 Richard Guenther <rguenther@suse.de>
1991
1992 PR tree-optimization/49079
1993 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1994 MEM_REFs correctly for the trailing array access detection.
1995 Special case constants the same way as decls for overall size
1996 constraining.
1997
1998 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
1999
2000 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
2001 argument expansion.
2002
2003 2011-05-20 Jakub Jelinek <jakub@redhat.com>
2004
2005 PR tree-optimization/49073
2006 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
2007 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
2008 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
2009
2010 2011-05-20 Richard Guenther <rguenther@suse.de>
2011
2012 PR middle-end/48849
2013 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
2014 of pointer types the same way the middle-end does.
2015
2016 2011-05-20 Richard Guenther <rguenther@suse.de>
2017
2018 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
2019 or pointer-to chains. Delay all fixup to uniquify_nodes.
2020
2021 2011-05-19 Quentin Neill <quentin.neill@amd.com>
2022
2023 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
2024 (fma4_fmaddsub): Likewise
2025
2026 2011-05-19 Jan Hubicka <jh@suse.cz>
2027
2028 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
2029 (GIMPLE_TYPE_PAIR_SIZE): New macro.
2030 (type_pair_cache): New static var.
2031 (lookup_type_pair): Use fixed sized custom hash; make inline.
2032 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
2033 calls of lookup_type_pair.
2034 (print_gimple_types_stats): Remove cache stats.
2035 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
2036 and gtc_ob.
2037
2038 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
2039
2040 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
2041 when TARGET_RDRND is active.
2042 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
2043 Generate dummy SImode target register when target is NULL.
2044
2045 2011-05-19 Joseph Myers <joseph@codesourcery.com>
2046
2047 * config/arm/arm-fpus.def: New.
2048 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
2049 arm-fpus.def.
2050 * config/arm/arm-tables.opt: Regenerate.
2051 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
2052 (arm_option_override): Don't decode FPU name to string here.
2053 * config/arm/arm.opt (mfpu=): Use Enum.
2054 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
2055 Update dependencies.
2056
2057 2011-05-19 Joseph Myers <joseph@codesourcery.com>
2058
2059 * collect2.c: Include diagnostic.h.
2060 (fatal_perror, fatal, error, fancy_abort): Remove.
2061 (main): Set progname. Call xmalloc_set_program_name and
2062 diagnostic_initialize.
2063 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
2064 scan_libraries, resolve_lib_name): Call fatal_error instead of
2065 fatal and fatal_perror.
2066 * collect2.h (error, fatal, fatal_perror): Don't declare.
2067 * tlink.c: Include diagnostic-core.h.
2068 (recompile_files): Call fatal_error instead of fatal_perror.
2069 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
2070 pretty-print.o and input.o.
2071 (collect2.o, tlink.o): Update dependencies.
2072
2073 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2074
2075 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
2076
2077 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2078
2079 PR target/40483
2080 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
2081 COMDAT group syntax, both SPARC and x86 variants.
2082 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
2083 * configure: Regenerate.
2084 * config/sol2.h (TARGET_SOLARIS): Define.
2085 (PUSHSECTION_FORMAT): Remove.
2086 (SECTION_NAME_FORMAT): Define.
2087 * config/sol2.c: Include hashtab.h.
2088 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
2089 expansion, using SECTION_NAME_FORMAT.
2090 (solaris_comdat_htab): New variable.
2091 (struct comdat_entry): Define.
2092 (comdat_hash): New function.
2093 (comdat_eq): New function.
2094 (solaris_elf_asm_comdat_section): New function.
2095 (solaris_define_comdat_signature): New function.
2096 (solaris_code_end): New function.
2097 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
2098 (solaris_code_end): Declare.
2099 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
2100 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
2101 solaris_code_end.
2102 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
2103 Remove ATTRIBUTE_UNUSED.
2104 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
2105 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
2106 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2107 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
2108 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
2109 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
2110 (PUSHSECTION_FORMAT): Remove.
2111 (SECTION_NAME_FORMAT): Redefine.
2112
2113 2011-05-19 Kai Tietz <ktietz@redhat.com>
2114
2115 * tree-cfg.c (verify_gimple_assign_binary): Barf on
2116 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
2117 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
2118
2119 2011-05-19 Anatoly Sokolov <aesok@post.ru>
2120 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2121
2122 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
2123
2124 2011-05-19 Richard Guenther <rguenther@suse.de>
2125
2126 PR middle-end/48985
2127 * tree-object-size.c (addr_object_size): If the pointed-to
2128 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
2129
2130 2011-05-19 Richard Guenther <rguenther@suse.de>
2131
2132 * gimple.c (gimple_types_compatible_p_1): Compare names of
2133 the types themselves.
2134 (iterative_hash_gimple_type): And hash them that way.
2135 (gimple_register_type_1): If we register a main variant properly
2136 initialize the leader to ourselves.
2137
2138 2011-05-19 Tom de Vries <tom@codesourcery.com>
2139
2140 PR target/45098
2141 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
2142 get_loop_invariant_expr_id.
2143 (get_loop_invariant_expr_id): Use get_expr_id.
2144 (parm_decl_cost): New function.
2145 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
2146 Improve bound cost estimation. Use different inv_expr_id for elim and
2147 express cases.
2148
2149 2011-05-19 Tom de Vries <tom@codesourcery.com>
2150
2151 PR target/45098
2152 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
2153 cost_base.cost == 0.
2154
2155 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
2156
2157 PR target/49002
2158 * config/i386/sse.md
2159 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
2160 load cast.
2161
2162 2011-05-18 Jakub Jelinek <jakub@redhat.com>
2163
2164 PR tree-optimization/49039
2165 * tree-vrp.c (extract_range_from_binary_expr): For
2166 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
2167 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
2168
2169 2011-05-18 Tom de Vries <tom@codesourcery.com>
2170
2171 PR target/45098
2172 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
2173
2174 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
2175
2176 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
2177 (*tls_global_dynamic_64): Ditto.
2178 (*tls_local_dynamic_base_32_gnu): Ditto.
2179 (*tls_local_dynamic_base_64): Ditto.
2180 (tls_initial_exec_64_sun): Ditto.
2181
2182 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
2183
2184 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
2185 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2186 bf592-none.
2187 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2188 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2189 * config/bfin/bfin.c (bfin_cpus): Add bf592.
2190 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2191 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
2192 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
2193 * config/bfin/elf.h (LIB_SPEC): Add bf592.
2194
2195 2011-05-18 Joseph Myers <joseph@codesourcery.com>
2196
2197 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
2198 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
2199 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
2200 target_thread_pointer, arm_structure_size_boundary, struct
2201 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
2202 struct abi_name, arm_all_abis): Remove.
2203 (arm_option_override) Don't process most enumerated option values here.
2204 Don't process target_fpe_name here. Work with integer not string for
2205 structure size boundary; use separate diagnostics for each case.
2206 * config/arm/arm.h (enum float_abi_type, enum
2207 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
2208 to arm-opts.h.
2209 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
2210 arm_structure_size_boundary): Remove.
2211 * config/arm/arm.opt (mabi=): Use Enum and Init.
2212 (arm_abi_type): New Enum and EnumValue entries.
2213 (mfloat-abi=): Use Enum and Init.
2214 (float_abi_type): New Enum and EnumValue entries.
2215 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
2216 (mfp16-format=): Use Enum and Init.
2217 (arm_fp16_format_type): New Enum and EnumValue entries.
2218 (mstructure-size-boundary=): Use UInteger and Init.
2219 (mtp=): Use Enum and Init.
2220 (arm_tp_type): New Enum and EnumValue entries.
2221
2222 2011-05-18 Richard Guenther <rguenther@suse.de>
2223
2224 PR tree-optimization/49018
2225 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
2226 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
2227 gimple_has_side_effects.
2228
2229 2011-05-18 Richard Guenther <rguenther@suse.de>
2230
2231 * gimple.c (gimple_register_type_1): New function, split out from ...
2232 (gimple_register_type): ... here. Avoid infinite recursion.
2233
2234 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
2235
2236 PR tree-optimization/41881
2237 * tree-vectorizer.h (struct _loop_vec_info): Add new field
2238 reduction_chains along with a macro for its access.
2239 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
2240 (destroy_loop_vec_info): Free reduction chains.
2241 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
2242 (vect_is_slp_reduction): New function.
2243 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
2244 (vect_create_epilog_for_reduction): Support SLP reduction chains.
2245 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
2246 definition types for reduction chains.
2247 (vect_supported_load_permutation_p): Don't allow permutations for
2248 reduction chains.
2249 (vect_analyze_slp_instance): Support reduction chains.
2250 (vect_analyze_slp): Try to build SLP instance from reduction chains.
2251 (vect_get_constant_vectors): Handle reduction chains.
2252 (vect_schedule_slp_instance): Mark the first statement of the
2253 reduction chain as reduction.
2254
2255 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
2256
2257 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
2258 names for group elements access.
2259 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
2260 reduction chains as well. Remove data reference and interleaving
2261 related words from the fields names.
2262 * tree-vect-loop.c (vect_transform_loop): Use new names for group
2263 elements access.
2264 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
2265 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
2266 vect_update_interleaving_chain, vect_same_range_drs,
2267 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
2268 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
2269 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
2270 vect_analyze_group_access, vect_analyze_data_ref_access,
2271 vect_create_data_ref_ptr, vect_transform_strided_load,
2272 vect_record_strided_load_vectors): Likewise.
2273 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
2274 vect_model_load_cost, vectorizable_store, vectorizable_load,
2275 vect_remove_stores, new_stmt_vec_info): Likewise.
2276 * tree-vect-slp.c (vect_build_slp_tree,
2277 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
2278
2279 2011-05-18 Richard Guenther <rguenther@suse.de>
2280
2281 PR middle-end/48989
2282 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
2283 operand verification.
2284 (verify_gimple_assign_binary): Likewise.
2285 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
2286 to non-1-precision BOOLEAN_TYPEs.
2287
2288 2011-05-18 Tom de Vries <tom@codesourcery.com>
2289
2290 PR target/45098
2291 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
2292
2293 2011-05-18 Jakub Jelinek <jakub@redhat.com>
2294
2295 PR tree-optimization/49000
2296 * tree-ssa.c (execute_update_addresses_taken): Call
2297 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
2298 be rewritten and decl has been marked for renaming, reset
2299 the debug stmt.
2300
2301 2011-05-17 Joseph Myers <joseph@codesourcery.com>
2302
2303 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
2304 enum_opts_set when testing if attributes have set -mfpmath=.
2305
2306 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
2307
2308 * config/mips/mips.c (mips_handle_option): Remove unused variable.
2309
2310 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
2311
2312 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
2313 info->entry with 0
2314 * tree-inline.c (maybe_inline_call_in_expr): Initialize
2315 id.transform_lang_insert_block with NULL.
2316
2317 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
2318
2319 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
2320 (output_fp_compare): Change args 3 and 4 to bool.
2321 (ix86_expand_call): Change arg 6 to bool.
2322 (ix86_attr_length_immediate_default): Change arg 2 to bool.
2323 (ix86_attr_length_vex_default): Change arg 3 to bool.
2324 * config/i386/i386.md: Update all uses.
2325 * config/i386/i386.c: Ditto.
2326 (ix86_flags_dependent): Change return type to bool.
2327
2328 2011-05-17 Richard Guenther <rguenther@suse.de>
2329
2330 * gimple.c (type_hash_pair_compare): Fix comparison.
2331
2332 2011-05-17 Richard Guenther <rguenther@suse.de>
2333
2334 * gimple.c (iterative_hash_gimple_type): Simplify singleton
2335 case some more, fix final hash value of the non-singleton case.
2336
2337 2011-05-17 Richard Guenther <rguenther@suse.de>
2338
2339 PR bootstrap/49013
2340 Revert
2341 2011-05-16 Richard Guenther <rguenther@suse.de>
2342
2343 * gimple.c (gimple_types_compatible_p_1): Use names of the
2344 type itself, not its main variant.
2345 (iterative_hash_gimple_type): Likewise.
2346
2347 2011-05-17 Richard Guenther <rguenther@suse.de>
2348
2349 * gimple.c (gimple_register_canonical_type): Use the main-variant
2350 leader for computing the canonical type.
2351
2352 2011-05-17 Nick Clifton <nickc@redhat.com>
2353
2354 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
2355 moves.
2356
2357 * config/rx/rx.md: Add peephole to remove redundant extensions
2358 after loads.
2359 (bitset_in_memory): Use rx_restricted_mem_operand.
2360 (bitinvert_in_memory): Likewise.
2361 (bitclr_in_memory): Likewise.
2362
2363 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
2364 Nick Clifton <nickc@redhat.com>
2365
2366 * config/rx/rx.md: Add peepholes to match a register move followed
2367 by a comparison of the moved register. Replace these with an
2368 addition of zero that does both actions in one instruction.
2369
2370 2011-05-17 Jakub Jelinek <jakub@redhat.com>
2371
2372 PR target/48986
2373 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
2374 predicate to allow CONST_INT.
2375 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
2376
2377 2011-05-16 Joseph Myers <joseph@codesourcery.com>
2378
2379 * opts-common.c (opt_enum_arg_to_value): New.
2380 * opts.h (opt_enum_arg_to_value): Declare.
2381 * config/i386/i386.opt (fpmath): Remove.
2382 (mfpmath=): Use Enum, Init and Save.
2383 (fpmath_unit): New Enum and EnumValue entries.
2384 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
2385 name for function fpmath state.
2386 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
2387 * config/i386/i386.c: Include diagnostic.h.
2388 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
2389 (ix86_target_string): Take enum fpmath_unit value instead of string.
2390 (ix86_debug_options): Update call to ix86_target_string.
2391 (ix86_option_override_internal): Don't process fpmath strings here.
2392 (x86_function_specific_save, ix86_function_specific_restore):
2393 Don't handle fpmath state specially.
2394 (ix86_function_specific_print): Pass fpmath state to
2395 ix86_target_string instead of printing in this function.
2396 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
2397 Handle enum attributes.
2398 (IX86_ATTR_ENUM, ix86_opt_enum): New.
2399 (ix86_valid_target_attribute_tree): Update option_strings
2400 handling. Handle fpmath as enum option.
2401 (ix86_can_inline_p): Update field names for function fpmath state.
2402 (ix86_expand_builtin): Update call to ix86_target_string.
2403 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
2404 (ix86_fpmath): Remove.
2405 * config/i386/t-i386 (i386.o): Update dependencies.
2406
2407 2011-05-16 Joseph Myers <joseph@codesourcery.com>
2408
2409 PR preprocessor/48677
2410 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
2411 from decoded_options[0], not from itself.
2412
2413 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
2414
2415 * config/i386/constraints.md (z): New constraint.
2416 * config/i386/i386.c (c): New mode attribute.
2417 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
2418 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
2419 constraint for operand 0.
2420 (*call_vzeroupper): Ditto.
2421 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
2422 (*call_rex64_ms_sysv_vzeroupper): Ditto.
2423 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
2424 Use "lzm" constraint for operand 0.
2425 (*call_pop_vzeroupper): Ditto.
2426 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
2427 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
2428 constraint for operand 0.
2429 (*sibcall_vzeroupper): Ditto.
2430 (*sibcall_rex64_ms_sysv): Ditto.
2431 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
2432 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
2433 *sibcall_pop_1. Use "Uz" constraint for operand 0.
2434 (*sibcall_pop_vzeroupper): Ditto.
2435 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
2436 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
2437 mode iterator. Use "<c>zm" constraint for operand 1.
2438 (*call_value_vzeroupper): Ditto.
2439 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
2440 for operand 1.
2441 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
2442 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
2443 *call_value_pop_1. Use "lzm" constraint for operand 1.
2444 (*call_value_pop_vzeroupper): Ditto.
2445 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
2446 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
2447 mode iterator. Use "Uz" constraint for operand 1.
2448 (*sibcall_value_vzeroupper): Ditto.
2449 (*sibcall_value_rex64_ms_sysv): Ditto.
2450 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
2451 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
2452 constraint for operand 1.
2453 (*sibcall_value_pop_vzeroupper): Ditto.
2454 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
2455 and "z" constraint for operand 2.
2456 (*tls_global_dynamic_32_gnu): Ditto.
2457 (*tls_local_dynamic_base_32_gnu): Ditto.
2458 (*tls_local_dynamic_base_64): Ditto.
2459 (*tls_local_dynamic_32_once): Ditto.
2460 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
2461 Update all callers.
2462 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
2463
2464 2011-05-16 Richard Guenther <rguenther@suse.de>
2465
2466 * gimple.c (gimple_types_compatible_p_1): Use names of the
2467 type itself, not its main variant.
2468 (iterative_hash_gimple_type): Likewise.
2469
2470 2011-05-16 Richard Guenther <rguenther@suse.de>
2471
2472 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
2473 always visit pointer target and function result and argument types.
2474
2475 2011-05-16 Jason Merrill <jason@redhat.com>
2476
2477 PR c++/48999
2478 * tree-inline.c (copy_statement_list): Put back recursion.
2479
2480 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
2481
2482 PR target/27663
2483 PR target/41076
2484 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
2485 * config/avr/avr.md ("*ior<mode>qi.byte0",
2486 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
2487
2488 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
2489
2490 PR target/45099
2491 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
2492 register is needed for a function argument.
2493
2494 2011-05-16 Richard Guenther <rguenther@suse.de>
2495
2496 * gimple.c (struct type_hash_pair): New type.
2497 (type_hash_pair_compare): New function.
2498 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
2499
2500 2011-05-16 Revital Eres <revital.eres@linaro.org>
2501
2502 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
2503
2504 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
2505
2506 * config/i386/i386.md (floating point move splitters): Fix
2507 usage of standard_80387_constant_p.
2508 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
2509
2510 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
2511
2512 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
2513
2514 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
2515
2516 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
2517 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
2518 (tree_ssa_lim_finalize): Likewise.
2519
2520 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
2521
2522 * config/i386/constraint.md (Yd, Yx): New register constraints.
2523 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
2524 Yd conditional register constraint.
2525 (*movtf_internal): Use standard_sse_constant_opcode.
2526 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
2527 Yx conditional register constraint.
2528 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
2529 Yd conditional register constraint. Use standard_sse_constant_p to
2530 check for valid SSE constants and call standard_sse_constant_opcode to
2531 output SSE insn.
2532 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
2533 constants and call standard_sse_constant_opcode to output SSE insn.
2534 * config/i386/i386.c (ix86_option_ovverride_internal): Set
2535 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
2536 optimize_size is set.
2537 (standard_sse_constant_opcode): Output conditional AVX insn templates.
2538
2539 2011-05-14 Tobias Burnus <burnus@net-b.de>
2540
2541 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
2542
2543 2011-05-13 Martin Jambor <mjambor@suse.cz>
2544
2545 * ipa-prop.c (ipa_cst_from_jfunc): New function.
2546 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
2547 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
2548 (evaluate_conditions_for_ipcp_clone): Removed.
2549 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
2550 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
2551 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
2552
2553 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
2554
2555 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
2556 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
2557 lieu of MAY_HAVE_DEBUG_STMTS.
2558 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
2559 debug statements if !MAY_HAVE_DEBUG_STMTS.
2560
2561 2011-05-13 Martin Thuresson <martint@google.com>
2562
2563 PR gcov-profile/47793
2564 * libgcov.c (gcov_exit): Support relative profile paths.
2565 * doc/invoke.texi (-fprofile-dir): Update for above change.
2566
2567 2011-05-13 Richard Guenther <rguenther@suse.de>
2568
2569 * gimple.c (gimple_canonical_types_compatible_p): Do not use
2570 type-pair caching, do not compare hashes.
2571
2572 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
2573
2574 PR middle-end/48965
2575 * tree-cfg.c (edge_to_cases_cleanup): Return true.
2576 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
2577
2578 2011-05-13 Kai Tietz <ktietz@redhat.com>
2579
2580 * gimplify.c (gimplify_expr): Make sure operand is boolified.
2581 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
2582 compatible type for TRUTH_NOT_EXPR.
2583
2584 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
2585
2586 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2587 (ix86_hard_regno_mode_ok): Change return value to bool. Use
2588 can_create_pseudo_p ().
2589
2590 2011-05-13 Richard Guenther <rguenther@suse.de>
2591
2592 PR lto/48978
2593 * gimple.c (iterative_hash_gimple_type): Revert change in
2594 pointer target and function result and argument hashing.
2595
2596 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
2597
2598 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
2599 (*movxf_internal_nointeger): Ditto.
2600 (*movdf_internal_rex64): Ditto.
2601 (*movdf_internal): Ditto.
2602 (*movdf_internal_nointeger): Ditto.
2603 (*movsf_internal): Ditto.
2604 (sincos splitters): Use can_create_pseudo ().
2605
2606 2011-05-13 Joseph Myers <joseph@codesourcery.com>
2607
2608 * config/i386/i386-opts.h: New.
2609 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
2610 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
2611 ix86_section_threshold): Remove.
2612 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
2613 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
2614 OPT_mbranch_cost_.
2615 (ix86_option_override_internal): Don't decode strings for options
2616 other than -march=, -mtune= and -mfpmath=. Don't allow for
2617 __attribute__ uses in remaining diagnostics for options with
2618 string arguments. Don't check for integer arguments being negative.
2619 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
2620 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
2621 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
2622 ix86_branch_cost, ix86_section_threshold): Remove.
2623 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
2624 HeaderInclude.
2625 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
2626 but not Var.
2627 (masm=): Use Enum and Init.
2628 (asm_dialect): New Enum and EnumValue entries.
2629 (mbranch-cost=): Use UInteger.
2630 (mlarge-data-threshold=): Use UInteger and Init.
2631 (mcmodel=): Use Enum and Init.
2632 (cmodel): New Enum and EnumValue entries.
2633 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
2634 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
2635 mregparm=): Use UInteger.
2636 (mstringop-strategy=): Use Enum and Init.
2637 (stringop_alg): New Enum and EnumValue entries.
2638 (mtls-dialect=): Use Enum and Init.
2639 (tls_dialect): New Enum and EnumValue entries.
2640 (mabi=): Use Enum and Init.
2641 (calling_abi): New Enum and EnumValue entries.
2642 (mveclibabi=): Use Enum and Init.
2643 (ix86_veclibabi): New Enum and EnumValue entries.
2644
2645 2011-05-13 Nick Clifton <nickc@redhat.com>
2646
2647 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
2648 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
2649
2650 2011-05-13 Kai Tietz <ktietz@redhat.com>
2651
2652 PR middle-end/48984
2653 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
2654 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
2655 (gimple_boolify): Check for cast for boolean_type_node instead for
2656 BOOLEAN_TYPE.
2657
2658 2011-05-13 Richard Guenther <rguenther@suse.de>
2659
2660 PR tree-optimization/48172
2661 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
2662 multiplying by number of iterations for equal step.
2663 (vect_create_cond_for_alias_checks): Likewise.
2664
2665 2011-05-13 Andreas Schwab <schwab@redhat.com>
2666
2667 * configure.ac: Use AS_HELP_STRING throughout.
2668 * configure: Regenerate.
2669
2670 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
2671
2672 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
2673 (ix86_emit_restore_regs_using_mov): Likewise.
2674 (ix86_emit_restore_sse_regs_using_mov): Likewise.
2675
2676 2011-05-12 Anatoly Sokolov <aesok@post.ru>
2677
2678 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
2679 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
2680 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
2681 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
2682 RTX_OK_FOR_OLO10_P): ...here.
2683 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
2684 SYMBOLIC_CONST.
2685
2686 2011-05-12 Kai Tietz <ktietz@redhat.com>
2687
2688 * gimplify.c (gimple_boolify): Re-boolify expression
2689 arguments even if expression type is of kind BOOLEAN_TYPE.
2690 (gimplify_boolean_expr): Removed.
2691 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
2692 and XOR. Additional take care that we keep expression's type.
2693 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
2694 of TRUTH_AND|OR|XOR_EXPR.
2695
2696 2011-05-12 Jakub Jelinek <jakub@redhat.com>
2697
2698 PR tree-optimization/48975
2699 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
2700 on all bbs here and free and clear ifc_bbs at the end.
2701
2702 2011-05-12 Richard Guenther <rguenther@suse.de>
2703
2704 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
2705 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
2706 until after simple checks.
2707 (gimple_types_compatible_p): Likewise.
2708 (iterative_hash_gimple_type): Always hash pointer targets
2709 and function return and argument types.
2710 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
2711 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
2712 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
2713 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
2714 completely in the simple compare section.
2715 (gimple_register_canonical_type): Query the cache again after
2716 registering.
2717
2718 2011-05-12 Richard Guenther <rguenther@suse.de>
2719
2720 PR tree-optimization/48172
2721 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
2722 the number of iterations from the segment size calculation.
2723 (vect_create_cond_for_alias_checks): Adjust.
2724
2725 2011-05-12 Jakub Jelinek <jakub@redhat.com>
2726
2727 PR debug/48967
2728 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
2729 if validate_subreg fails.
2730
2731 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
2732
2733 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
2734 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
2735 early.
2736
2737 2011-05-12 DJ Delorie <dj@redhat.com>
2738
2739 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
2740 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
2741 created builtin into rx_builtins array.
2742 (rx_builtin_decl): New function.
2743 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
2744
2745 2011-05-12 DJ Delorie <dj@redhat.com>
2746 Nick Clifton <nickc@redhat.com>
2747
2748 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2749 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2750 (rx_is_legitimate_address): Add pre-decrement and post-increment
2751 addressing in HImode and QImode. Fix test for out of range
2752 REG+INT addressing.
2753 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
2754 (rx_align_for_label): Test label before extracting its usage count.
2755 (rx_adjust_insn_lengths): Fix selection of insn codes.
2756 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
2757
2758 2011-05-11 Jason Merrill <jason@redhat.com>
2759
2760 * tree.c (type_hash_canon): Use struct tree_type_non_common.
2761
2762 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2763
2764 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2765 reindent the subsequent block.
2766
2767 2011-05-11 Satoru Takabayashi <satorux@google.com>
2768 Paul Pluzhnikov <ppluzhnikov@google.com>
2769
2770 * doc/install.texi (Configuration): Document --with-linker-hash-style.
2771 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2772 * config.in: Add LINKER_HASH_STYLE.
2773 * configure.ac: Add --with-linker-hash-style.
2774 * configure: Regenerate.
2775
2776 2011-05-11 Richard Guenther <rguenther@suse.de>
2777
2778 PR middle-end/48964
2779 * gimple.c (iterative_hash_canonical_type): Fix typo.
2780
2781 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
2782
2783 * config/i386/i386.c (legitimize_tls_address)
2784 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2785 expanders directly for TARGET_GNU2_TLS. Determine pic and
2786 __tls_get_addr symbol reference here. Update call to
2787 gen_tls_global_dynamic_{32,64} for added arguments.
2788 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2789 expanders directly for TARGET_GNU2_TLS. Determine
2790 __tls_get_addr symbol reference here. Update call to
2791 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
2792 unique UNSPEC REG_EQUIV to libcall block.
2793 (ix86_tls_get_addr): Declare static.
2794 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2795 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2796 Do not determine pic and __tls_get_addr symbol reference here. Do not
2797 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2798 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2799 (tls_global_dynamic_64): Add operand 2. Do not determine
2800 __tls_get_addr symbol reference here. Do not call
2801 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2802 (tls_local_dynamic_base64): Ditto for operand 1.
2803
2804 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2805
2806 * function.c (expand_function_start): Initialize stack_check_probe_note
2807 only if the generic stack checking mechanism is used.
2808
2809 2011-05-11 Richard Guenther <rguenther@suse.de>
2810
2811 PR tree-optimization/15256
2812 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2813 (A & B) | C, combine (A op CST1) op CST2.
2814 (tree_ssa_forward_propagate_single_use_vars): Only bother to
2815 visit assigns that have uses.
2816
2817 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2818
2819 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2820 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2821 (unpack_ts_type_common_value_fields): ...this. Update comment.
2822 (unpack_value_fields): Adjust for renaming.
2823 (lto_input_ts_type_tree_pointers): Split into...
2824 (lto_input_ts_type_common_tree_pointer): ...this and...
2825 (lto_input_ts_type_non_common_tree_pointers): ...this.
2826 (lto_input_tree_pointers): Adjust for above split.
2827 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2828 (pack_ts_type_common_value_fields): ...this. Update comment.
2829 (lto_output_ts_type_tree_pointers): Split into...
2830 (lto_output_ts_type_common_tree_pointers): ...this and...
2831 (lto_output_ts_type_non_common_tree_pointers): ...this.
2832 (lto_output_tree_pointers): Adjust for above split.
2833 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2834 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2835 * stor-layout.c (vector_type_mode): Adjust location of mode field.
2836 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2837 Define.
2838 (struct tree_type): Split into...
2839 (struct tree_type_common: ...this and...
2840 (struct tree_type_with_lang_specific): ...this and...
2841 (struct tree_type_non_common): ...this. Adjust accessor macros
2842 accordingly.
2843 (TYPE_VALUES_RAW): Define.
2844 (union tree_node): Update for above changes.
2845 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2846 TS_TYPE_NON_COMMON.
2847 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2848 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2849 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2850 * treestructu.def (TS_TYPE): Remove.
2851 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2852 Define.
2853
2854 2011-05-11 Jakub Jelinek <jakub@redhat.com>
2855
2856 PR debug/48159
2857 * tree-ssa.c (reset_debug_uses): New function.
2858 * tree-flow.h (reset_debug_uses): New prototype.
2859 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2860 * tree-loop-distribution.c (generate_loops_for_partition): Call
2861 reset_debug_uses on the stmts that will be removed. Keep around
2862 all debug stmts, don't count them as bits in partition bitmap.
2863 (generate_builtin): Don't count debug stmts or labels as bits in
2864 partition bitmap.
2865
2866 2011-05-11 Richard Guenther <rguenther@suse.de>
2867
2868 * gimple.c (gimple_type_hash_1): Merge with ...
2869 (gimple_type_hash): ... this.
2870 (gtc_visit): Remove mode parameter and simplify accordingly.
2871 (gimple_types_compatible_p_1): Likewise.
2872 (gimple_types_compatible_p): Likewise.
2873 (iterative_hash_gimple_type): Likewise.
2874 (visit): Likewise.
2875 (gimple_type_eq): Adjust.
2876
2877 2011-05-11 Revital Eres <revital.eres@linaro.org>
2878
2879 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2880 enters the branch create an anti edge in the opposite direction
2881 to prevent the creation of reg-moves.
2882 * modulo-sched.c: Adjust comment to reflect the fact we are
2883 scheduling closing branch.
2884 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2885 (stage_count): New field in struct partial_schedule.
2886 (calculate_stage_count): New function.
2887 (normalize_sched_times): Rename to reset_sched_times and handle
2888 incrementing the sched time of the nodes by a constant value
2889 passed as parameter.
2890 (duplicate_insns_of_cycles): Skip closing branch.
2891 (sms_schedule_by_order): Schedule closing branch.
2892 (ps_insn_find_column): Handle closing branch.
2893 (sms_schedule): Call reset_sched_times and adjust the code to
2894 support scheduling of the closing branch.
2895 (ps_insert_empty_row): Update calls to normalize_sched_times
2896 and rotate_partial_schedule functions.
2897
2898 2011-05-11 Richard Guenther <rguenther@suse.de>
2899
2900 PR middle-end/48953
2901 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2902
2903 2011-05-11 Joseph Myers <joseph@codesourcery.com>
2904
2905 * opts.c (finish_options): Move warning settings from process_options.
2906 * toplev.c (process_options): Move warning settings to finish_options.
2907
2908 2011-05-11 Richard Guenther <rguenther@suse.de>
2909
2910 PR tree-optimization/18041
2911 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2912 (simplify_bitwise_binary): ... this. Handle operand conversions
2913 by applying them to the result instead.
2914 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
2915
2916 2011-05-11 Richard Guenther <rguenther@suse.de>
2917
2918 * gimple.c (gimple_canonical_types_compatible_p): Split out
2919 from gimple_types_compatible_p and friends. Do not recurse
2920 to pointed-to types.
2921 (gimple_canonical_type_eq): Use it.
2922 (iterative_hash_canonical_type): Split out from
2923 iterative_hash_gimple_type and friends. Do not recurse
2924 to pointed-to types.
2925 (gimple_canonical_type_hash): Use it, allocate the hash here.
2926
2927 2011-05-11 Revital Eres <revital.eres@linaro.org>
2928
2929 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2930 recognizing doloop.
2931
2932 2011-05-11 Revital Eres <revital.eres@linaro.org>
2933
2934 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2935 instead of PREV_INSN.
2936
2937 2011-05-11 Revital Eres <revital.eres@linaro.org>
2938
2939 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2940 * loop-doloop.c (doloop_condition_get): Likewise.
2941 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2942 (doloop_end): New.
2943 * config/arm/arm.md (*addsi3_compare0): Remove "*".
2944
2945 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
2946
2947 * tree.def (CASE_LABEL_EXPR): Add an operand.
2948 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2949
2950 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2951
2952 * c-decl.c (c_override_global_bindings_to_false): Remove.
2953 (global_bindings_p): Don't check
2954 c_override_global_bindings_to_false.
2955 * c-tree.h (c_override_global_bindings_to_false): Remove.
2956 * c-typeck.c (composite_type): Don't set
2957 c_override_global_bindings_to_false.
2958
2959 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2960
2961 PR target/48857, 48495
2962 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2963 (VSX_MODE): Ditto.
2964 (VSX_MOVE_MODE): Ditto.
2965 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2966 VSX vector types. Add V2DImode.
2967 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2968 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2969 (MODES_TIEABLE_P): Ditto.
2970
2971 * config/rs6000/rs6000.c (rs6000_emit_move): Use
2972 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2973 VSX_VECTOR_MODE.
2974 (init_cumulative_args): Ditto.
2975 (rs6000_function_arg_boundary): Ditto.
2976 (rs6000_function_arg_advance_1): Ditto.
2977 (rs6000_function_arg): Ditto.
2978 (rs6000_function_ok_for_sibcall): Ditto.
2979 (emit_frame_save): Ditto.
2980 (rs6000_function_value): Ditto.
2981 (rs6000_libcall_value): Ditto.
2982
2983 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2984
2985 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2986 i386/darwin-lib.h to $libgcc_tm_file.
2987 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2988
2989 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2990
2991 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2992
2993 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2994
2995 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2996 * config/rs6000/rs6000-tables.opt: New file (generated).
2997 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2998 rs6000/rs6000-tables.opt to extra_options.
2999 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
3000 * config/rs6000/rs6000.c (rs6000_select): Remove.
3001 (processor_target_table): Move contents to rs6000-cpus.def.
3002 (darwin_rs6000_override_options): Check
3003 global_options_set.x_rs6000_cpu_index instead of
3004 rs6000_select[1].string.
3005 (rs6000_option_override_internal): Likewise.
3006 (rs6000_handle_option): Don't assert that global structures are in
3007 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
3008 (rs6000_default_cpu): New variable.
3009 (rs6000_file_start): Set it instead of local default_cpu. Check
3010 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
3011 global_options_set.x_rs6000_tune_index instead of rs6000_select.
3012 (rs6000_darwin_file_start): Check rs6000_default_cpu and
3013 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
3014 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
3015 rs6000_select): Remove.
3016 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
3017 Remove.
3018 (mcpu=, mtune=): Use Var, Init, Enum and Save.
3019 * config/rs6000/t-rs6000
3020 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
3021 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3022 global_options_set.x_rs6000_cpu_index instead of
3023 rs6000_select[1].string.
3024 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3025 global_options_set.x_rs6000_cpu_index instead of
3026 rs6000_select[1].string.
3027
3028 2011-05-10 Joseph Myers <joseph@codesourcery.com>
3029
3030 * config.gcc (libgcc_tm_file): Define instead of including files
3031 from ../../libgcc/config/ in tm_file.
3032 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
3033 * configure: Regenerate.
3034 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
3035 libgcc_tm.h, cs-libgcc_tm.h): New.
3036 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
3037 (clean): Remove libgcc_tm.h.
3038 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
3039 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
3040 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
3041
3042 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
3043
3044 PR target/48896
3045 * config/avr/avr.c (avr_ret_register): Return unsigned int
3046 instead of int.
3047 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
3048 it to avr_libcall_value.
3049 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
3050 expand_expr.
3051 (avr_expand_binop_builtin): Ditto.
3052 (avr_expand_unop_builtin): Ditto.
3053
3054 2011-05-10 DJ Delorie <dj@redhat.com>
3055
3056 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
3057 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
3058 * config/rx/rx.c (rx_align_for_label): Add label and
3059 uses_threshold parameters. Do not align when the label is not
3060 used enough.
3061 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
3062
3063 2011-05-10 Richard Guenther <rguenther@suse.de>
3064
3065 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
3066 a series of conversions and apply foldings similar to what
3067 fold-const does.
3068 (tree_ssa_forward_propagate_single_use_vars): Call it.
3069
3070 2011-05-10 Jakub Jelinek <jakub@redhat.com>
3071
3072 PR tree-optimization/48611
3073 PR tree-optimization/48794
3074 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
3075 referenced from RESX or EH_DISPATCH arguments.
3076
3077 PR debug/48928
3078 * dfp.c (decimal_to_decnumber): Handle conversion from
3079 dconst{1,2,m1,half}.
3080
3081 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3082
3083 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
3084 for !flag_prefer_avx128.
3085 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
3086
3087 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
3088
3089 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
3090 (fold_ternary_loc): Use expr_location_or.
3091
3092 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
3093
3094 PR debug/48853
3095 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
3096 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
3097 Pmode and mem_mode is not VOIDmode.
3098
3099 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3100
3101 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
3102 TYPE_QUAL_RESTRICT): Convert to enum.
3103
3104 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3105
3106 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
3107 (const_pow2_1_to_8_operand): Ditto.
3108 (const_pow2_1_to_128_operand): Ditto.
3109 (const_pow2_1_to_32768_operand): Ditto.
3110 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
3111 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
3112 in insn constraint to check integer value of operand 3.
3113 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
3114
3115 (PINSR_MODE): New mode iterator.
3116 (sse2p4_1): New mode attribute.
3117 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
3118 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
3119 iterator. Use const_int_operand instead of
3120 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
3121 exact_log2 in insn constraint to check integer value of operand 3.
3122
3123 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3124
3125 * config/i386/sse.md (blendbits): Remove mode attribute.
3126 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
3127 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
3128 Check integer value of operand 3 in insn constraint.
3129
3130 2011-05-09 Richard Guenther <rguenther@suse.de>
3131
3132 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
3133 for diagnostics.
3134 (lto_symtab_merge): Likewise. Do not register types here.
3135 (lto_symtab_merge_decls_2): Likewise.
3136 (lto_symtab_merge_decls_1): Likewise.
3137 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
3138 * gimple.c (enum gtc_mode): Declare.
3139 (gimple_types_compatible_p): Make static.
3140
3141 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3142
3143 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
3144 temporary register to match Pmode.
3145
3146 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3147
3148 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
3149 and *vec_concatv4si_1_avx.
3150
3151 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3152
3153 PR rtl-optimization/48927
3154 * ira-conflicts.c (commutative_constraint_p): Use
3155 recog_data.alternative_enabled_p to disable alternatives where
3156 "enabled" attribute is false.
3157 (get_dup_num): Ditto.
3158 * ira-lives.c (single_reg_class): Ditto.
3159 (ira_implicitly_set_insn_hard_regs): Ditto.
3160
3161 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
3162
3163 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
3164 (dataflow_set_preserve_mem_locs): Likewise.
3165
3166 2011-05-09 Philipp Thomas <pth@suse.de>
3167
3168 * config/mep/mep.c (mep_validate_vliw): Syntax description
3169 should not be translated.
3170
3171 2011-05-09 Joseph Myers <joseph@codesourcery.com>
3172
3173 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
3174 * config/mips/mips-tables.opt: New file (generated).
3175 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
3176 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
3177 MIPS_ARCH_OPTION_NATIVE): Define.
3178 * config/mips/mips.c (mips_cpu_info_table): Move contents to
3179 mips-cpus.def.
3180 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
3181 mips_parse_cpu): Remove.
3182 (mips_cpu_info_from_opt, mips_default_arch): New.
3183 (mips_handle_option): Don't assert that global structures are in
3184 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
3185 (mips_option_override): Use new variables and functions to set
3186 state of these options. Use strcmp to check for individual CPU names.
3187 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
3188 definition.
3189 * config/mips/mips.opt (march=): Use ToLower and Enum.
3190 (mips): Use ToLower, Enum and Var.
3191 (mtune=): Use ToLower and Enum.
3192 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
3193
3194 2011-05-08 Jan Hubicka <jh@suse.cz>
3195
3196 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
3197 Arrange type pairs to be UID ordered.
3198 (gimple_lookup_type_leader): Make inline.
3199
3200 2011-05-09 Nick Clifton <nickc@redhat.com>
3201
3202 PR target/48899
3203 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
3204 PROCESSOR_DEFAULT.
3205
3206 PR target/48897
3207 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
3208 variable 's'.
3209
3210 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
3211
3212 * combine.c (simplify_comparison): Abstract out parts into...
3213 (simplify_compare_const): ... new function.
3214 (try_combine): Generalize parallel arithmetic/compare combining
3215 to call simplify_compare_const() and CANONICALIZE_COMPARE().
3216
3217 2011-05-08 Jan Hubicka <jh@suse.cz>
3218
3219 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
3220 (cgraph_create_virtual_clone): Call hooks once virtual clone
3221 is finished.
3222 * cgraph.h (cgraph_clone_node): Update prototype.
3223 * ipa-cp.c (ipcp_estimate_growth): Use
3224 estimate_ipcp_clone_size_and_time.
3225 * ipa-inline-transform.c (clone_inlined_nodes): Update.
3226 * lto-cgraph.c (input_node): Update.
3227 * ipa-inline.c (recursive_inlining): Update.
3228 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
3229 (evaluate_conditions_for_known_args): Break out from ...
3230 (evaluate_conditions_for_edge): ... here.
3231 (evaluate_conditions_for_ipcp_clone): New function.
3232 (inline_node_duplication_hook): Update clone summary based
3233 on parameter map.
3234 (estimate_callee_size_and_time): Rename to ...
3235 (estimate_node_size_and_time): take NODE instead of EDGE;
3236 take POSSIBLE_TRUTHS as argument.
3237 (estimate_callee_size_and_time): Update.
3238 (estimate_ipcp_clone_size_and_time): New function.
3239 (do_estimate_edge_time): Update.
3240
3241 2011-05-08 Richard Guenther <rguenther@suse.de>
3242
3243 PR middle-end/48908
3244 PR middle-end/48905
3245 * expmed.c (expand_shift_1): Compute adjusted constant shift
3246 amount manually.
3247
3248 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
3249
3250 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
3251
3252 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
3253
3254 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
3255
3256 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
3257
3258 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
3259
3260 2011-05-07 Jan Hubicka <jh@suse.cz>
3261
3262 * ipa-inline-transform.c (inline_call): Account when program size
3263 decreases.
3264 * ipa-inline.c (relative_time_benefit): New function.
3265 (edge_badness): Reorganize to be power 2 based; fix thinko when
3266 computing badness for negative growth; update comments to match
3267 reality; better dumps.
3268
3269 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
3270
3271 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
3272 type to bool and adjust comment.
3273 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
3274 (fold_mathfn_compare): Remove calls to global_bindings_p.
3275 (fold_inf_compare): Likewise.
3276 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
3277 * c-tree.h (global_bindings_p): Adjust prototype.
3278 * c-decl.c (global_bindings_p): Return bool and simplify.
3279
3280 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
3281
3282 PR tree-optimization/48837
3283 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
3284 when accumulator transformation is performed.
3285
3286 2011-05-06 Jan Hubicka <jh@suse.cz>
3287
3288 * i386.h (ix86_tune_indices): Add
3289 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
3290 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
3291 * i386.c (initial_ix86_tune_features): Add
3292 X86_SOFTARE_PREFETCHING_BENEFICIAL.
3293 (software_prefetching_beneficial_p): Remove predicate.
3294 (ix86_option_override_internal): Use new macro.
3295
3296 2011-05-06 Jan Hubicka <jh@suse.cz>
3297
3298 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
3299
3300 2011-05-06 Jan Hubicka <jh@suse.cz>
3301
3302 * cgraph.c (cgraph_add_thunk): Create real function node instead
3303 of alias node; finalize it and mark needed/reachale; arrange visibility
3304 to be right and add it into the corresponding same comdat group list.
3305 (dump_cgraph_node): Dump thunks.
3306 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
3307 cgraph_function_with_gimple_body_p,
3308 cgraph_first_function_with_gimple_body,
3309 cgraph_next_function_with_gimple_body): New functions.
3310 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
3311 New macros.
3312 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
3313 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3314 * cgraphunit.c (cgraph_finalize_function): Only look into possible
3315 devirtualization when optimizing.
3316 (verify_cgraph_node): Verify thunks.
3317 (cgraph_analyze_function): Analyze thunks.
3318 (cgraph_mark_functions_to_output): Output thunks only in combination
3319 with function they are assigned to.
3320 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
3321 alias into normal node.
3322 (assemble_thunks): New functoin.
3323 (cgraph_expand_function): Use it.
3324 * lto-cgraph.c (lto_output_node): Stream thunks.
3325 (input_overwrite_node): Stream in thunks.
3326 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
3327 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
3328 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
3329 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
3330 (inline_analyze_function): Do not care about thunk jump functions.
3331 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
3332 * ipa-prop.c (ipa_prop_write_jump_functions): Use
3333 cgraph_function_with_gimple_body_p.
3334 * passes.c (do_per_function_toporder): Use
3335 cgraph_function_with_gimple_body_p.
3336 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3337 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
3338 (function_called_by_processed_nodes_p): Likewise.
3339
3340 2011-05-06 Joseph Myers <joseph@codesourcery.com>
3341
3342 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
3343 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
3344 entries.
3345 (mabi=): Replace with separate entries for mabi=altivec,
3346 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
3347 mabi=ieeelongdouble and mabi=ibmlongdouble.
3348 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
3349 check for -mabi=spe without SPE ABI support here.
3350 (rs6000_handle_option): Replace OPT_mabi_ handling with
3351 OPT_mabi_altivec and OPT_mabi_spe handling.
3352
3353 2011-05-06 Cary Coutant <ccoutant@google.com>
3354
3355 * dwarf2out.c (contains_subprogram_definition): New function.
3356 (should_move_die_to_comdat): Call it.
3357
3358 2011-05-06 Jeff Law <law@redhat.com>
3359
3360 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
3361 remove_ctrl_stmt_and_useless_edges.
3362 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
3363 (fixup_template_block, thread_single_edge): Likewise.
3364 (mark_threaded_blocks): Use THREAD_TARGET.
3365
3366 2011-05-06 Alan Modra <amodra@gmail.com>
3367
3368 PR target/48900
3369 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
3370 const0_rtx as the arg to the dummy __tls_get_addr libcall.
3371
3372 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
3373
3374 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
3375 constraint modifier to "r".
3376
3377 2011-05-06 Joseph Myers <joseph@codesourcery.com>
3378
3379 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
3380 fall through for OPT_mcmodel_.
3381
3382 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3383
3384 * config/s390/s390.c (s390_asm_trampoline_template): Comment
3385 instruction sizes.
3386 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
3387
3388 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3389
3390 PR target/47930
3391 * config/arm/arm.opt (marm): Document it.
3392 (mthumb): Reject negative variant.
3393
3394 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
3395
3396 PR target/48898
3397 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3398 Fix typo in "ccvt" variable name.
3399
3400 2011-05-06 Tristan Gingold <gingold@adacore.com>
3401
3402 PR target/48895
3403 * config/vms/vms-ar.c (main): Remove cwd variable.
3404
3405 2011-05-06 Jakub Jelinek <jakub@redhat.com>
3406
3407 PR debug/48902
3408 * var-tracking.c (prepare_call_arguments): Move else before #endif.
3409
3410 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
3411
3412 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
3413 * gimplify.c (gimplify_switch_expr): Likewise.
3414 * omp-low.c (expand_omp_sections): Likewise.
3415 * tree-eh.c (lower_try_finally_switch): Likewise.
3416 (lower_eh_dispatch): Likewise.
3417 * tree.h (build_case_label): Declare.
3418 * tree.c (build_case_label): Define.
3419
3420 2011-05-05 Jason Merrill <jason@redhat.com>
3421
3422 PR c++/40975
3423 * tree-inline.c (copy_tree_r): Use copy_statement_list.
3424 (copy_statement_list): Don't recurse.
3425 * stor-layout.c (copy_self_referential_tree_r): Don't allow
3426 STATEMENT_LIST.
3427
3428 2011-05-05 Joseph Myers <joseph@codesourcery.com>
3429
3430 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
3431 through from -mfpu= handling.
3432 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
3433
3434 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
3435
3436 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
3437 POST_MODIFY.
3438
3439 2011-05-05 Steve Ellcey <sje@cup.hp.com>
3440
3441 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
3442 for 11.31.
3443 (hppa[12]*-*-hpux11*): Ditto.
3444 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
3445 * config/ia64/hpux-unix2003.h: New.
3446 * config/pa/pa-hpux1131.opt: New.
3447 * config/pa/pa-hpux1131.h: New.
3448 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
3449 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
3450 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
3451
3452 2011-05-05 Jakub Jelinek <jakub@redhat.com>
3453
3454 PR debug/48853
3455 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
3456 instead of mode as 3rd argument to recursive call.
3457 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
3458 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
3459 VOIDmode.
3460 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
3461 don't give up if mode is Pmode and mem_mode is not VOIDmode.
3462 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
3463 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
3464
3465 2011-05-05 Julian Brown <julian@codesourcery.com>
3466
3467 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
3468 parenthesis in D-register case.
3469
3470 2011-05-05 Joseph Myers <joseph@codesourcery.com>
3471
3472 * opt-functions.awk (var_type_struct): Handle Enum options.
3473 * optc-gen.awk: Don't check range of variables of character type.
3474 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
3475 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
3476 rs6000_sdata_name, rs6000_explicit_options): Remove.
3477 (rs6000_option_override_internal): Check for -malign-power here.
3478 Use global_options_set instead of rs6000_explicit_options.
3479 (rs6000_parse_fpu_option): Remove.
3480 (rs6000_handle_option): Access variables via opts and opts_set
3481 pointers. Use error_at and warning_at. Add fall-through
3482 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
3483 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
3484 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
3485 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
3486 here. Don't use rs6000_parse_fpu_option.
3487 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
3488 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
3489 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
3490 (mrecip=): Use Var.
3491 (mspe): Use Var and Save.
3492 (mtraceback=): Use Enum and Var.
3493 (rs6000_traceback_type): New Enum and EnumValue entries.
3494 (mfloat-gprs=): Use Enum, Var and Save.
3495 (rs6000_float_gprs): New Enum and EnumValue entries.
3496 (mlong-double-): use Var and Save.
3497 (msched-costly-dep=, minsert-sched-nops=): Use Var.
3498 (malign-): Use Enum and Var.
3499 (rs6000_alignment_flags): New Enum and EnumValue entries.
3500 (mfpu=): Use Enum.
3501 (fpu_type_t): New Enum and EnumValue entries.
3502 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3503 global_options_set instead of rs6000_explicit_options.
3504 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3505 global_options_set instead of rs6000_explicit_options.
3506 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3507 global_options_set instead of rs6000_explicit_options.
3508 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3509 global_options_set instead of rs6000_explicit_options.
3510 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
3511 global_options_set instead of rs6000_explicit_options.
3512 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3513 global_options_set instead of rs6000_explicit_options.
3514 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
3515 definition.
3516 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3517 global_options_set instead of rs6000_explicit_options.
3518 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
3519 (rs6000_cmodel): New Enum and EnumValue entries.
3520 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3521 global_options_set instead of rs6000_explicit_options.
3522 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
3523 (mtls-size=): Use Enum and Var.
3524 (rs6000_tls_size): New Enum and EnumValue entries.
3525
3526 2011-05-05 Michael Matz <matz@suse.de>
3527
3528 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
3529 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
3530 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
3531 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
3532 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
3533 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
3534 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
3535 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
3536 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
3537 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
3538 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
3539 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
3540 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
3541 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
3542 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
3543 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
3544
3545 2011-05-05 Richard Guenther <rguenther@suse.de>
3546
3547 * expmed.c (expand_variable_shift): Rename to ...
3548 (expand_shift_1): ... this. Take an expanded shift amount.
3549 For rotates recurse directly not building trees for the shift amount.
3550 (expand_variable_shift): Wrap around expand_shift_1.
3551 (expand_shift): Adjust.
3552
3553 2011-05-05 Jakub Jelinek <jakub@redhat.com>
3554
3555 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
3556
3557 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
3558
3559 * tree.h (get_pending_sizes): Remove prototype.
3560 (put_pending_size): Likewise.
3561 (put_pending_sizes): Likewise.
3562 * stor-layout.c (pending_sizes): Delete.
3563 (get_pending_sizes): Likewise.
3564 (put_pending_size): Likewise.
3565 (put_pending_sizes): Likewise.
3566 (variable_size): Do not call put_pending_size and tidy up.
3567 * function.h (struct function): Remove dont_save_pending_sizes_p.
3568 * lto-streamer-in.c (input_function): Do not stream it.
3569 * lto-streamer-out.c (output_function): Likewise.
3570 * tree-inline.c (initialize_cfun): Do not copy it.
3571 * c-decl.c (store_parm_decls): Do not set it.
3572 * omp-low.c (create_task_copyfn): Likewise.
3573 * tree-optimize.c (tree_rest_of_compilation): Likewise.
3574
3575 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
3576
3577 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
3578 conditions.
3579 (*movdf_internal): Ditto.
3580 (*movdf_internal_nointeger): Ditto.
3581 (*movsf_internal): Ditto.
3582
3583 2011-05-05 Joseph Myers <joseph@codesourcery.com>
3584
3585 * c-decl.c (finish_decl): Don't call get_pending_sizes.
3586 (grokparm): Add parameter expr. Pass it to grokdeclarator.
3587 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
3588 (c_variable_size): Remove.
3589 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
3590 call put_pending_sizes.
3591 (get_parm_info): Add parameter expr. Use it to set
3592 arg_info->pending_sizes.
3593 (store_parm_decls): Use arg_info->pending_sizes instead or calling
3594 get_pending_sizes.
3595 * c-parser.c (c_parser_parms_declarator): Update call to
3596 c_parser_parms_list_declarator.
3597 (c_parser_parms_list_declarator): Take parameter expr. Update
3598 call to push_parm_decl. Update recursive call. Don't call
3599 get_pending_sizes. Update calls to get_parm_info.
3600 (c_parser_objc_method_definition): Update calls to
3601 c_parser_objc_method_decl and objc_start_method_definition.
3602 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
3603 (c_parser_objc_method_decl): Add parameter expr. Update call to
3604 grokparm.
3605 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
3606 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
3607 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
3608
3609 2011-05-05 Michael Hope <michael.hope@linaro.org>
3610
3611 PR pch/45979
3612 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
3613 __ARM_EABI__ hosts.
3614
3615 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3616
3617 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
3618 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
3619 (spu_output_mi_thunk): New function.
3620
3621 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3622
3623 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
3624 targetm.asm_out.print_operand.
3625 * config/sol2.c: Include target.h.
3626
3627 2011-05-04 Jan Hubicka <jh@suse.cz>
3628
3629 * ipa-inline.c (reset_edge_caches): New function.
3630 (update_caller_keys): Add check_inlinablity_for; do not
3631 reset edge caches; remove now unnecesary loop.
3632 (update_callee_keys): Add comments; reset node_growth_cache of callee.
3633 (update_all_callee_keys): Likewise.
3634 (inline_small_functions): Sanity check cache; update code
3635 recomputing it.
3636
3637 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
3638
3639 PR rtl-optimization/47612
3640 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
3641 as the last insn of the sequence to be moved.
3642
3643 2011-05-04 Tobias Burnus <burnus@net-b.de>
3644
3645 PR fortran/48864
3646 * doc/invoke.texi (Ofast): Document that it
3647 enables Fortran's -fno-protect-parens.
3648
3649 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
3650
3651 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
3652
3653 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
3654
3655 * stor-layout.c (variable_size): Do not issue errors.
3656
3657 2011-05-04 Richard Guenther <rguenther@suse.de>
3658
3659 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
3660 for array-ref indices.
3661 (tree_coverage_counter_addr): Likewise.
3662 (build_fn_info_type): Use size_int for index types.
3663 (build_gcov_info): Likewise.
3664
3665 2011-05-04 Richard Guenther <rguenther@suse.de>
3666
3667 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
3668 to build_int_cst.
3669 * c-typeck.c (really_start_incremental_init): Use bitsize_int
3670 for constructor indices.
3671 (push_init_level): Likewise.
3672
3673 2011-05-04 Richard Guenther <rguenther@suse.de>
3674
3675 * explow.c (promote_mode): Move variable declarations before code.
3676
3677 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
3678
3679 * tree.h (build_function_type_array): Declare.
3680 (build_varargs_function_type_array): Declare.
3681 (build_function_type_vec, build_varargs_function_type_vec): Define.
3682 * tree.c (build_function_type_array_1): New function.
3683 (build_function_type_array): New function.
3684 (build_varargs_function_type_array): New function.
3685
3686 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
3687
3688 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
3689 before setting STMT_VINFO_TYPE.
3690
3691 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3692
3693 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
3694 instead of spu_pass_by_reference.
3695
3696 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3697
3698 * calls.c (emit_library_call_value_1): Invoke
3699 promote_function_mode hook on libcall arguments.
3700 * explow.c (promote_function_mode, promote_mode): Handle TYPE
3701 argument being NULL.
3702 * targhooks.c (default_promote_function_mode): Lisewise.
3703 * config/s390/s390.c (s390_promote_function_mode): Likewise.
3704 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
3705
3706 * doc/tm.texi: Document that TYPE argument might be NULL.
3707
3708 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3709
3710 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
3711
3712 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3713
3714 From Bernd Schmidt
3715 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
3716
3717 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3718
3719 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
3720 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
3721 Move ...
3722 * mips-tfile.c: ... here.
3723 Don't include coretypes.h, tm.h, filenames.h.
3724 (saber_stop): Remove definition and all calls.
3725 [__SABER__]: Remove.
3726 (__LINE__): Remove default.
3727 (Size_t, Ptrdiff_t): Remove definitions.
3728 Replace by size_t, ptrdiff_t.
3729 [!MIPS_DEBUGGING_INFO]: Remove.
3730 (SHASH_SIZE, THASH_SIZE): Remove defaults.
3731 (progname): Add const.
3732 (STATIC): Remove.
3733 Replace all uses by static.
3734 (ALIGN_SYMTABLE_OFFSET): Remove default.
3735 * mips-tdump.c: Don't include coretypes.h, tm.h.
3736 Remove !MIPS_IS_STAB guard.
3737 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
3738 $(TM_H), filenames.h dependencies.
3739 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
3740
3741 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3742
3743 From Jie Zhang
3744 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
3745 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3746
3747 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3748
3749 From Bernd Schmidt
3750 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3751 account and save/restore RETS.
3752 (PROFILE_BEFORE_PROLOGUE): Define.
3753 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
3754 the push insn to use predecrement.
3755
3756 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3757
3758 From Jie Zhang
3759 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
3760
3761 2011-05-04 Nick Clifton <nickc@redhat.com>
3762
3763 * config/mn10300/mn10300.c: Include cfgloop.h.
3764 (DUMP): New macro.
3765 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
3766 Lcc or a FLcc insn into the instruction stream.
3767 (mn10300_block_contains_call): New function. Returns true if the
3768 given basic block contains a CALL insn.
3769 (mn10300_loop_contains_call_insn): New function. Returns true if
3770 the given loop contains a CALL insn.
3771 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
3772 to use the SETLB and Lcc or FLcc insns.
3773 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3774 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3775 * config/mn10300/mn10300.opt (msetlb): New option. Used to
3776 disable the SETLB optimization.
3777 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3778 __SETLB__ or __NO_SETLB__.
3779 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3780 (movsf_internal): Handle MDR register.
3781 (cmpsi): Make visible.
3782 (setlb): New pattern.
3783 (Lcc): New pattern.
3784 (FLcc): New pattern.
3785
3786 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
3787
3788 PR target/48860
3789 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3790 for reg<->xmm moves.
3791 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3792 (vec_concatv2di_rex64_sse): Ditto.
3793 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3794 (*vec_extractv2di_1_rex64): Ditto.
3795
3796 Revert:
3797 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3798
3799 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3800 reg<->xmm moves.
3801 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3802
3803 2011-05-04 Richard Guenther <rguenther@suse.de>
3804
3805 * tree.h (int_const_binop): Remove notrunc argument.
3806 * fold-const.c (int_const_binop): Remove notrunc argument. Always
3807 create integer constants that are properly truncated.
3808 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3809 (const_binop): Remove zero notrunc argument to int_const_binop.
3810 (size_binop_loc): Likewise.
3811 (fold_div_compare): Likewise.
3812 (maybe_canonicalize_comparison_1): Likewise.
3813 (fold_comparison): Likewise.
3814 (fold_binary_loc): Likewise.
3815 (multiple_of_p): Likewise.
3816 * expr.c (store_constructor): Likewise.
3817 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3818 (maybe_fold_stmt_addition): Likewise.
3819 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3820 * stor-layout.c (layout_type): Likewise.
3821 * tree-data-ref.c (tree_fold_divides_p): Likewise.
3822 * tree-sra.c (build_ref_for_offset): Likewise.
3823 (build_user_friendly_ref_for_offset): Likewise.
3824 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3825 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3826 * tree-ssa-loop-niter.c (inverse): Likewise.
3827 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3828 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3829 * tree-switch-conversion.c (check_range): Likewise.
3830 (build_constructors): Likewise.
3831 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3832 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3833 (extract_range_from_assert): Likewise.
3834 (vrp_int_const_binop): Likewise.
3835 (extract_range_from_binary_expr): Likewise.
3836 (extract_range_from_unary_expr): Likewise.
3837 (check_array_ref): Likewise.
3838 (find_case_label_range): Likewise.
3839 (simplify_div_or_mod_using_ranges): Likewise.
3840 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3841 comparing case labels for merging.
3842
3843 2011-05-03 Mark Wielaard <mjw@redhat.com>
3844
3845 * dwarf2out.c (debug_str_hash_forced): Removed.
3846 (gen_label_for_indirect_string): Removed.
3847 (get_debug_string_label): Removed.
3848 (AT_string_form): Generate label directly.
3849 (output_indirect_string): Test indirect_string_node for
3850 DW_FORM_strp instead of checking label and refcount.
3851 (prune_indirect_string): Removed.
3852 (prune_unused_types): Don't check debug_str_hash_forced or
3853 call prune_indirect_string.
3854
3855 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
3856
3857 PR other/48093
3858 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3859
3860 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
3861
3862 PR debug/47994
3863 PR debug/47919
3864 * combine.c (try_combine): Skip debug insns at m_split tests.
3865
3866 2011-04-26 Mark Wielaard <mjw@redhat.com>
3867
3868 PR42288
3869 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3870 when info_section_emitted.
3871
3872 2011-05-03 Joseph Myers <joseph@codesourcery.com>
3873
3874 * config/mips/mips-opts.h: New.
3875 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3876 to mips-opts.h.
3877 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3878 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3879 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
3880 via opts pointer.
3881 * config/mips/mips.h (enum mips_code_readable_setting): Move to
3882 mips-opts.h.
3883 (mips_abi, mips_code_readable): Don't declare.
3884 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3885 (mabi=): Use Enum and Var.
3886 (mips_abi): New Enum and EnumValue entries.
3887 (mcode-readable=): Use Enum and Var.
3888 (mips_code_readable_setting): New Enum and EnumValue entries.
3889 (mr10k-cache-barrier=): Use Enum and Var.
3890 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3891
3892 2011-05-03 Jan Hubicka <jh@suse.cz>
3893
3894 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3895 replace hash by pointer map.
3896 (cgraph_node_set_element_def, cgraph_node_set_element,
3897 const_cgraph_node_set_element, varpool_node_set_element_def,
3898 varpool_node_set_element, const_varpool_node_set_element): Remove.
3899 (free_cgraph_node_set, free_varpool_node_set): New function.
3900 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3901 * tree-emutls.c: Free varpool node set.
3902 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3903 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3904 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3905 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3906 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3907 Move here from ipa.c; implement using pointer_map
3908 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3909 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3910 debug_cgraph_node_set, varpool_node_set_new,
3911 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3912 dump_varpool_node_set, debug_varpool_node_set):
3913 Move to ipa-uitls.c.
3914 * passes.c (ipa_write_summaries): Update.
3915
3916 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3917
3918 From Mike Frysinger:
3919 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3920 bf542/bf544/bf547/bf548/bf549.
3921
3922 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
3923
3924 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3925
3926 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3927
3928 From Bernd Schmidt:
3929 * config/bfin/bfin.md (MOVCC): New mode_macro.
3930 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3931 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
3932 comments from generated assembly.
3933
3934 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3935
3936 From Bernd Schmidt
3937 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3938 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3939 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3940 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3941 * config/bfin/lib1funcs.asm (___muldi3): New function.
3942
3943 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3944
3945 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3946 build_function_type_list instead of build_function_type.
3947 Rearrange initialization of `args' to do so.
3948
3949 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3950
3951 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3952 instead of build_function_type.
3953
3954 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3955
3956 * config/rs6000/rs6000.c (spe_init_builtins): Call
3957 build_function_type_list instead of build_function_type.
3958 (paired_init_builtins, altivec_init_builtins): Likewise.
3959 (builtin_function_type): Likewise.
3960
3961 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3962
3963 * config/sh/sh.c (sh_media_init_builtins): Call
3964 build_function_type_list instead of build_function_type.
3965
3966 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3967
3968 * config/sparc/sparc.c (sparc_file_end): Call
3969 build_function_type_list instead of build_function_type.
3970
3971 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3972
3973 * config/alpha/alpha.c (alpha_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/xtensa/xtensa.c (xtensa_init_builtins): Call
3979 build_function_type_list instead of build_function_type.
3980
3981 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3982
3983 * config/iq2000/i2000.c (iq2000_init_builtins): Call
3984 build_function_type_list instead of build_function_type.
3985 Delete `endlink' variable.
3986
3987 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3988
3989 * config/avr/avr.c (avr_init_builtins): Call
3990 build_function_type_list instead of build_function_type.
3991
3992 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3993
3994 * config/picochip/picochip.c (picochip_init_builtins): Call
3995 build_function_type_list instead of build_function_type.
3996 Delete `endlink' variable.
3997
3998 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3999
4000 * config/bfin/bfin.c (bfin_init_builtins): Call
4001 build_function_type_list instead of build_function_type.
4002
4003 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
4004
4005 From Bernd Schmidt
4006 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
4007 that's not CONST_INT. Seemingly redundant check is due to PR39768.
4008
4009 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
4010
4011 From Jie Zhang:
4012 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
4013 libbffastfp overrides libgcc when -mfast-fp.
4014
4015 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
4016
4017 Originally from Bernd Schmidt
4018 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
4019 * config/bfin/bfin.c (override_options): Test it and error if
4020 TARGET_FDPIC.
4021
4022 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
4023
4024 Originally From Bernd Schmidt
4025 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
4026 FD-PIC.
4027
4028 2011-05-03 Jeff Law <law@redhat.com>
4029
4030 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
4031 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
4032 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
4033 than accessing AUX field directly. Free the AUX field before
4034 clearing it.
4035 (thread_block, thread_through_loop_header): Likewise.
4036 (thread_single_edge, mark_threaded_blocks): Likewise.
4037 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
4038 (register_jump_thread): Do not attempt to thread to a NULL edge.
4039
4040 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
4041
4042 * function.c (init_function_start): Call decide_function_section.
4043 * varasm.c (decide_function_section): New function.
4044 (assemble_start_function): When not using
4045 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
4046 or first_function_block_is_cold.
4047 * rtl.h (decide_function_section): Declare.
4048
4049 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
4050 Jakub Jelinek <jakub@redhat.com>
4051
4052 PR target/48774
4053 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
4054 only succeed if req_mode is the same as set_mode.
4055
4056 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
4057
4058 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
4059 * genemit.c (gen_exp): Handle RETURN.
4060 * emit-rtl.c (verify_rtx_sharing): Likewise.
4061 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
4062 * rtl.c (copy_rtx): RETURN is shared.
4063 * rtl.h (enum global_rtl_index): Add GR_RETURN.
4064 (ret_rtx): New.
4065 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
4066 * config/s390/s390.c (s390_emit_epilogue): Likewise.
4067 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
4068 * config/cris/cris.c (cris_expand_return): Likewise.
4069 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
4070 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
4071 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
4072 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
4073 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
4074 Likewise.
4075 * config/v850/v850.c (expand_epilogue): Likewise.
4076 * config/bfin/bfin.c (bfin_expand_call): Likewise.
4077 * config/arm/arm.md (epilogue): Likewise.
4078 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
4079 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
4080 variable to ret_reg.
4081
4082 2011-05-03 Richard Guenther <rguenther@suse.de>
4083
4084 PR lto/48846
4085 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
4086 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
4087 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4088
4089 2011-05-03 Richard Guenther <rguenther@suse.de>
4090
4091 * c-decl.c (grokdeclarator): Instead of looking at
4092 TREE_OVERFLOW check if the constant fits in the index type.
4093
4094 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
4095
4096 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
4097 (vec_store_lanes<mode><mode>): Likewise.
4098
4099 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
4100
4101 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
4102 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
4103 convert_optab_index values.
4104 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
4105 * genopinit.c (optabs): Initialize the new optabs.
4106 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
4107 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
4108 (expand_STORE_LANES): New functions.
4109 * tree.h (build_array_type_nelts): Declare.
4110 * tree.c (build_array_type_nelts): New function.
4111 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
4112 (vect_model_load_cost): Likewise.
4113 (vect_store_lanes_supported, vect_load_lanes_supported)
4114 (vect_record_strided_load_vectors): Declare.
4115 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
4116 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
4117 (vect_transform_strided_load): Split out statement recording into...
4118 (vect_record_strided_load_vectors): ...this new function.
4119 * tree-vect-stmts.c (create_vector_array, read_vector_array)
4120 (write_vector_array, create_array_ref): New functions.
4121 (vect_model_store_cost): Add store_lanes_p argument.
4122 (vect_model_load_cost): Add load_lanes_p argument.
4123 (vectorizable_store): Try to use store-lanes functions for
4124 interleaved stores.
4125 (vectorizable_load): Likewise load-lanes and loads.
4126 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
4127 to vect_model_store_cost.
4128 (vect_build_slp_tree): Likewise vect_model_load_cost.
4129
4130 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
4131
4132 * hooks.h (hook_bool_mode_uhwi_false): Declare.
4133 * hooks.c (hook_bool_mode_uhwi_false): New function.
4134 * target.def (array_mode_supported_p): New hook.
4135 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
4136 * doc/tm.texi: Regenerate.
4137 * stor-layout.c (mode_for_array): New function.
4138 (layout_type): Use it.
4139 * config/arm/arm.c (arm_array_mode_supported_p): New function.
4140 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
4141
4142 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
4143
4144 PR target/48723
4145 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
4146 for -fstack-check if the size to allocate is negative.
4147
4148 2011-05-02 Lawrence Crowl <crowl@google.com>
4149
4150 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
4151 (timevar_cond_start): New for starting a timer only when it is not
4152 already running.
4153 (timevar_cond_stop): New for stopping a timer when it was not already
4154 running.
4155
4156 * timevar.c (timevar_stop): Enable start/stop timers to start again.
4157 (timevar_cond_start): New as above.
4158 (timevar_cond_stop): New as above.
4159
4160 * timevar.def: Add start/stop timers for compiler phases,
4161 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
4162 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
4163 and TV_PHASE_FINALIZE.
4164 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
4165 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
4166 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
4167 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
4168 Make unused TV_OVERLOAD into a start/stop timer.
4169
4170 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
4171 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
4172 to indicate that they are start/stop timers.
4173
4174 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
4175 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
4176 Move initialization to do_compile.
4177 (do_compile): Add initialization from above.
4178 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
4179
4180 * c-decl.c (c_write_global_declarations): Add start/stop of
4181 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
4182
4183 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
4184 or TV_PARSE_INLINE, as appropriate.
4185 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
4186 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
4187
4188 2011-05-02 Jason Merrill <jason@redhat.com>
4189
4190 PR c++/40975
4191 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
4192
4193 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
4194
4195 PR c/35445
4196 * c-decl.c (finish_decl): Only create a composite if the types are
4197 compatible.
4198
4199 2011-05-02 Joseph Myers <joseph@codesourcery.com>
4200
4201 * config/fr30/fr30-protos.h (Mmode): Don't define.
4202 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
4203 definition where used.
4204 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
4205 define. Expand definitions where used.
4206 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
4207 Expand definitions where used.
4208 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
4209 rx_function_arg, rx_function_arg_advance,
4210 rx_function_arg_boundary): Expand definitions of those macros.
4211 * config/v850/v850-protos.h (Mmode): Don't define. Expand
4212 definition where used.
4213
4214 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
4215
4216 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
4217 reg<->xmm moves.
4218 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
4219 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
4220 with *movv2sf_internal_rex64_avx.
4221 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
4222 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
4223 Use %v prefix in insn mnemonic to handle TARGET_AVX.
4224 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
4225 "vex" in "prefix" attribute calculation.
4226 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
4227
4228 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
4229
4230 PR target/47951
4231 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
4232 inputs match the output.
4233
4234 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
4235
4236 PR target/47955
4237 * config/m68k/m68k.c (m68k_expand_prologue): Set
4238 current_function_static_stack_size.
4239
4240 2011-05-02 Jan Hubicka <jh@suse.cz>
4241
4242 * lto-streamer.c (lto_streamer_cache_insert_1,
4243 lto_streamer_cache_lookup, lto_streamer_cache_create,
4244 lto_streamer_cache_delete): Use pointer map instead of hashtable.
4245 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
4246
4247 2011-05-02 Joseph Myers <joseph@codesourcery.com>
4248
4249 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
4250 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
4251 config/m68k/t-opts: New files.
4252 * config/m68k/m68k-tables.opt: New file (generated).
4253 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
4254 extra_options and m68k/t-opts to tmake_file.
4255 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
4256 (all_isas): Initialize using m68k-isas.def.
4257 (all_microarchs): Initialize using m68k-microarchs.def.
4258 (m68k_find_selection): Remove.
4259 (m68k_handle_option): Don't assert that global structures are in
4260 use. Use error_at. Access variables via opts pointer. Don't
4261 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
4262 directly for -m68020-40 and -m68020-60.
4263 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
4264 m68k_tune_entry here.
4265 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
4266 to m68k-opts.h.
4267 (m68k_library_id_string): Remove declaration.
4268 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
4269 (m68k_library_id_string): New Variable.
4270 (march=, mcpu=, mtune=): Use Enum and Var.
4271
4272 2011-05-02 Richard Guenther <rguenther@suse.de>
4273
4274 * varasm.c (output_constructor_regular_field): Compute zero-based
4275 index with double-ints. Make sure to ICE instead of producing
4276 wrong code.
4277 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
4278 in asserts. Properly use a signed type.
4279
4280 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
4281
4282 * config/i386/sse.md (V): New mode iterator.
4283 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
4284 TARGET_SSE2.
4285 (V_256): Rename from AVX256MODE.
4286 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
4287 condition to all users.
4288 (VF1): Ditto.
4289 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
4290 condition to all users.
4291 (VF_128): Make V4SF mode unconditional.
4292 (VF_256): Rename from AVX256MODEF2P.
4293 (VI4F_128): Rename from SSEMODE4S.
4294 (VI8F_128): Rename from SSEMODE2D.
4295 (VI4F_256): Rename from AVX256MODE8P.
4296 (VI8F_256): Rename from AVX256MODE4P.
4297 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
4298 (ssescalarmodesuffix): Remove SF and DF modes.
4299 (SSEMODE124): Remove.
4300 (SSEMODE1248): Ditto.
4301 (SSEMODEF2P): Ditto.
4302 (AVXMODEF2P): Ditto.
4303 (AVXMODEFDP): Ditto.
4304 (AVXMODEFSP): Ditto.
4305 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
4306 unconditional.
4307 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
4308 unconditional.
4309 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
4310 xop_pcmov_<mode>256. Use V mode iterator.
4311
4312 Adjust RTX patterns globally for renamed mode attributes.
4313
4314 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4315
4316 * haifa-sched.c (sched_emit_insn): Emit insn before first
4317 non-scheduled insn. Inform back-end about new insn. Add
4318 new insn to scheduled_insns list.
4319
4320 2011-05-02 Richard Guenther <rguenther@suse.de>
4321
4322 PR tree-optimization/48822
4323 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
4324 (process_scc): Indicate which iteration we start.
4325
4326 2011-05-02 Jan Hubicka <jh@suse.cz>
4327
4328 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
4329 (lto_section_overrun): New.
4330 * lto-section-out.c (append_block): Rename to ...
4331 (lto_append_block): ... this one; export.
4332 (lto_output_1_stream): Move lto lto-streamer.h
4333 (lto_output_data_stream): Update.
4334 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
4335 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
4336 functions.
4337
4338 2011-05-02 Richard Guenther <rguenther@suse.de>
4339
4340 * tree.c (tree_code_counts): New global array.
4341 (record_node_allocation_statistics): Count individual tree codes.
4342 (dump_tree_statistics): Dump individual code stats.
4343
4344 2011-05-01 Jan Hubicka <jh@suse.cz>
4345
4346 * ipa-inline.c (caller_growth_limits): Fix thinko when
4347 looking for largest stack frame.
4348 * ipa-inline.h (dump_inline_summary): Declare.
4349 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
4350 on stack usage.
4351 (dump_inline_summary): Export.
4352 (debug_inline_summary): Declare as DEBUG_FUNCTION.
4353
4354 2011-05-01 Anatoly Sokolov <aesok@post.ru>
4355
4356 * reginfo.c (memory_move_cost): Change rclass argument type form
4357 'enum reg_class' to reg_class_t.
4358 * reload.h (memory_move_cost): Update prototype.
4359 * postreload.c reload_cse_simplify_set): Change type dclass var to
4360 reg_class_t.
4361 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
4362 Update prototype.
4363 (ira_allocate_and_set_costs): Change aclass argument type form
4364 'enum reg_class' to reg_class_t.
4365 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
4366 Change aclass argument type to reg_class_t.
4367 (update_conflict_hard_reg_costs): Change type aclass and pref vars
4368 to reg_class_t.
4369 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
4370 memory_move_cost call.
4371
4372 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
4373 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
4374 Change type tmp var to reg_class_t.
4375
4376 2011-04-30 Jan Hubicka <jh@suse.cz>
4377
4378 * ipa-inline.c (can_inline_edge_p): Disregard limits when
4379 inlining into function with flatten attribute.
4380 (want_inline_small_function_p): Be more realistic about inlining
4381 cold calls where callee size grows.
4382
4383 2011-04-30 Jan Hubicka <jh@suse.cz>
4384
4385 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
4386 flags.
4387
4388 2011-04-30 Anatoly Sokolov <aesok@post.ru>
4389
4390 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4391 PRINT_OPERAND_PUNCT_VALID_P): Remove.
4392 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
4393 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
4394 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4395 (print_operand): Rename to...
4396 (sparc_print_operand): ...this. Make static. Adjust
4397 sparc_print_operand function call.
4398 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
4399 functions.
4400
4401 2011-04-30 Jan Hubicka <jh@suse.cz>
4402
4403 PR middle-end/48752
4404 * ipa-inline.c (early_inliner): Disable when doing late
4405 addition of function.
4406
4407 2011-04-30 Jakub Jelinek <jakub@redhat.com>
4408
4409 * dwarf2out.c (get_address_mode): New inline.
4410 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
4411 if not dwarf_strict emit
4412 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
4413 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
4414 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
4415 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
4416 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
4417 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
4418 mem_loc_descriptor callers.
4419 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
4420 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
4421 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
4422 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
4423 (base_types): New variable.
4424 (get_base_type_offset, calc_base_type_die_sizes,
4425 base_type_for_mode, mark_base_types, base_type_cmp,
4426 move_marked_base_types): New functions.
4427 (calc_die_sizes): Assert that die_offset is 0 or equal to
4428 next_die_offset.
4429 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
4430 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
4431 callers. If not dwarf_strict, call mem_loc_descriptor even for
4432 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
4433 (gen_subprogram_die): Don't give up on call site parameters
4434 with non-integral or large integral modes. Adjust
4435 mem_loc_descriptor callers.
4436 (prune_unused_types): Call prune_unused_types_mark on base_types
4437 vector entries.
4438 (resolve_addr): Call mark_base_types.
4439 (dwarf2out_finish): Call move_marked_base_types.
4440
4441 PR tree-optimization/48809
4442 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
4443 type.
4444 (gen_inbound_check): Don't compute index_expr - range_min in utype
4445 again, instead reuse SSA_NAME initialized in build_arrays.
4446 Remove two useless gsi_for_stmt calls.
4447
4448 2011-04-29 Jeff Law <law@redhat.com>
4449
4450 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
4451
4452 2011-04-29 Martin Jambor <mjambor@suse.cz>
4453
4454 * cgraph.h (cgraph_postorder): Remove declaration.
4455 * ipa-utils.h (ipa_free_postorder_info): Declare.
4456 (ipa_reverse_postorder): Likewise.
4457 * cgraphunit.c: Include ipa-utils.h.
4458 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
4459 * ipa-inline.c: Include ipa-utils.h.
4460 (ipa_inline): Update call to ipa_reverse_postorder.
4461 * ipa-pure-const.c (propagate_pure_const): Update call to
4462 ipa_reduced_postorder and ipa_print_order. Call
4463 ipa_free_postorder_info to clean up.
4464 (propagate_nothrow): Likewise.
4465 * ipa-reference.c (propagate): Removed a useless call to
4466 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
4467 and ipa_print_order. Call ipa_free_postorder_info to clean up.
4468 * ipa.c: Include ipa-utils.h.
4469 (ipa_profile): Update call to ipa_reverse_postorder.
4470 (cgraph_postorder): Moved to...
4471 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
4472 (ipa_utils_print_order): Renamed to ipa_print_order.
4473 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
4474 comments.
4475 (ipa_free_postorder_info): New function.
4476 * passes.c: Include ipa-utils.h.
4477 (do_per_function_toporder): Update call to ipa_reverse_postorder.
4478 (ipa_write_summaries): Likewise.
4479 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
4480 (cgraphunit.o): Likewise.
4481 (ipa.o): Likewise.
4482 (ipa-inline.o): Likewise.
4483
4484 2011-04-29 Jan Hubicka <jh@suse.cz>
4485
4486 * gcc.dg/tree-ssa/inline-10.c: New testcase.
4487 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
4488 * ipa-inline.h (clause_t): Turn into unsigned int.
4489 * ipa-inline-analysis.c (add_clause): Do more simplification.
4490 (and_predicates): Shortcut more cases.
4491 (predicates_equal_p): Move forward; check that clauses are properly
4492 ordered.
4493 (or_predicates): Shortcut more cases.
4494 (edge_execution_predicate): Rewrite as...
4495 (set_cond_stmt_execution_predicate): ... this function; handle
4496 __builtin_constant_p.
4497 (set_switch_stmt_execution_predicate): New .
4498 (compute_bb_predicates): New.
4499 (will_be_nonconstant_predicate): Update TODO.
4500 (estimate_function_body_sizes): Use compute_bb_predicates
4501 and free them later, always try to estimate if stmt is constant.
4502 (estimate_time_after_inlining, estimate_size_after_inlining):
4503 Gracefully handle optimized out edges.
4504 (read_predicate): Fix off by one error.
4505
4506 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
4507
4508 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
4509
4510 2011-04-27 Xinliang David Li <davidxl@google.com>
4511
4512 * tree-profile.c (init_ic_make_global_vars): Set
4513 tls attribute on ic vars.
4514 * coverage.c (coverage_end_function): Initialize
4515 function_list with zero.
4516
4517 2011-04-29 Richard Guenther <rguenther@suse.de>
4518
4519 * builtins.c (fold_builtin_classify_type): Use integer_type_node
4520 for the type of the result.
4521 (fold_builtin_isascii): Likewise.
4522 (fold_builtin_toascii): Use integer_type_node where appropriate.
4523 (fold_builtin_logb): Likewise.
4524 (fold_builtin_frexp): Likewise.
4525 (fold_builtin_strstr): Likewise.
4526 (fold_builtin_strpbrk): Likewise.
4527 (fold_builtin_fputs): Likewise.
4528 (fold_builtin_sprintf): Likewise.
4529 (fold_builtin_snprintf): Likewise.
4530 (fold_builtin_printf): Likewise.
4531 (do_mpfr_remquo): Use a proper type for the assigned constant.
4532 (do_mpfr_lgamma_r): Likewise.
4533 * dwarf2out.c (resolve_one_addr): Use size_int.
4534 * except.c (init_eh): Likewise.
4535 (assign_filter_values): Use integer_type_node for filter values.
4536 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
4537 indices.
4538 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
4539 for EH region numbers.
4540 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
4541 for the shift amount.
4542
4543 2011-04-29 Richard Guenther <rguenther@suse.de>
4544
4545 * expr.h (expand_shift): Rename to ...
4546 (expand_variable_shift): ... this.
4547 (expand_shift): Take a constant shift amount.
4548 * expmed.c (expand_shift): Rename to ...
4549 (expand_variable_shift): ... this.
4550 (expand_shift): New wrapper around expand_variable_shift.
4551 * expr.c (convert_move, emit_group_load_1, emit_group_store,
4552 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
4553 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
4554 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
4555 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
4556 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
4557 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
4558 emit_store_flag_1, emit_store_flag): Likewise.
4559 * builtins.c (expand_builtin_signbit): Likewise.
4560 * calls.c (load_register_parameters): Likewise.
4561 * function.c (assign_parm_setup_block): Likewise.
4562 * lower-subreg.c (resolve_shift_zext): Likewise.
4563 * optabs.c (widen_bswap, expand_abs_nojump,
4564 expand_one_cmpl_abs_nojump, expand_float): Likewise.
4565 * spu/spu.c (spu_expand_extv): Likewise.
4566 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4567
4568 2011-04-29 Richard Guenther <rguenther@suse.de>
4569
4570 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
4571 for the remapped region number.
4572 * predict.c (build_predict_expr): Use integer_type_node for the
4573 predict kind.
4574 * fold-const.c (fold_binary_loc): Use integer_type_node for
4575 the shift amount. Use a proper type for the PLUS_EXPR operand.
4576
4577 2011-04-29 Michael Matz <matz@suse.de>
4578
4579 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
4580 other trees that just builtins.
4581 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
4582
4583 2011-04-29 Richard Guenther <rguenther@suse.de>
4584
4585 * tree-nested.c (get_trampoline_type): Use size_int.
4586 (get_nl_goto_field): Likewise.
4587 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
4588 for all indexes.
4589 (lower_eh_constructs_2): Likewise.
4590 (lower_resx): Likewise.
4591 (lower_eh_dispatch): Likewise.
4592 * tree-mudflap.c (mf_build_string): Use size_int.
4593 (mudflap_register_call): Use integer_type_node for the flag.
4594 (mudflap_enqueue_constant): Use size_int.
4595 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
4596 instead of rebuilding it.
4597
4598 2011-04-29 Richard Guenther <rguenther@suse.de>
4599
4600 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
4601 Handle OBJ_TYPE_REF.
4602 (find_func_aliases_for_call): Use it more consistently.
4603
4604 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
4605
4606 * haifa-sched.c (last_nondebug_scheduled_insn): New.
4607 (rank_for_schedule): Use it.
4608 (schedule_block): Set it.
4609
4610 2011-04-28 David Li <davidxl@google.com>
4611
4612 * tree.c (crc32_string): Use crc32_byte.
4613 (crc32_byte): New function.
4614 * tree.h (crc32_byte): New function.
4615 * gcov.c (read_graph_file): Handle new cfg_cksum.
4616 (read_count_file): Ditto.
4617 * profile.c (instrument_values): Ditto.
4618 (get_exec_counts): Ditto.
4619 (read_profile_edge_counts): Ditto.
4620 (compute_branch_probabilities): Ditto.
4621 (compute_value_histograms): Ditto.
4622 (branch_prob): Ditto.
4623 (end_branch_prob): Ditto.
4624 * coverage.c (read_counts_file): Ditto.
4625 (get_coverage_counts): Ditto.
4626 (tree_coverage_counter_addr): Ditto.
4627 (coverage_checksum_string): Ditto.
4628 (coverage_begin_output): Ditto.
4629 (coverage_end_function): Ditto.
4630 (build_fn_info_type): Ditto.
4631 (build_fn_info_value): Ditto.
4632 * libgcov.c (gcov_exit): Ditto.
4633 * gcov-dump.c (tag_function): Ditto.
4634 (compute_checksum): Remove.
4635
4636 2011-04-29 Alan Modra <amodra@gmail.com>
4637
4638 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4639 unspec plus offset. Tidy macho code.
4640
4641 2011-04-29 Martin Jambor <mjambor@suse.cz>
4642
4643 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
4644 node instead of a decl. Update all callers.
4645 * cgraph.h: Update declaration.
4646
4647 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
4648
4649 PR tree-optimization/48765
4650 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
4651 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
4652 to indicate if loop aware SLP is being used. Scan the statements
4653 and update the vectorization factor according to the type of
4654 vectorization before statement analysis.
4655 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
4656 pass it to vect_analyze_loop_operations.
4657 (vectorizable_reduction): Set number of copies to 1 in case of pure
4658 SLP statement.
4659 * tree-vect-stmts.c (vectorizable_conversion,
4660 vectorizable_assignment, vectorizable_shift,
4661 vectorizable_operation, vectorizable_type_demotion,
4662 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
4663 Likewise.
4664 (vectorizable_condition): Move the check that it is not SLP
4665 vectorization before the number of copies check.
4666 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
4667 to vectorize the loop using SLP.
4668
4669 2011-04-28 Jakub Jelinek <jakub@redhat.com>
4670
4671 PR middle-end/48597
4672 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
4673 inline asm.
4674
4675 2011-04-28 Joseph Myers <joseph@codesourcery.com>
4676
4677 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
4678 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
4679 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
4680 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
4681 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
4682 linux*.h headers.
4683 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
4684 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4685 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4686 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4687 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4688 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
4689 REG_NAME.
4690 * config/i386/linux.h (REG_NAME): Don't define.
4691 * config/i386/linux64.h (REG_NAME): Don't define.
4692 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
4693 Undefine before defining.
4694
4695 2011-04-28 Jan Hubicka <jh@suse.cz>
4696
4697 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
4698 nonconstant_names array.
4699 (estimate_function_body_sizes): Build nonconstant_names array; handle
4700 BUILT_IN_CONSTANT_P.
4701
4702 2011-04-28 Richard Guenther <rguenther@suse.de>
4703
4704 PR bootstrap/48804
4705 Revert
4706 2011-04-28 Richard Guenther <rguenther@suse.de>
4707
4708 * tree-ssa-structalias.c (solve_constraints): Build succ graph
4709 as late as possible.
4710
4711 2011-04-28 Richard Guenther <rguenther@suse.de>
4712
4713 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
4714 (debug_constraint): Do it here.
4715 (dump_constraints): And here.
4716 (rewrite_constraints): And here.
4717 (dump_constraint_edge): Remove.
4718 (dump_constraint_graph): Rewrite to produce DOT output.
4719 (solve_constraints): Build succ graph as late as possible.
4720 Dump constraint graphs before and after solving.
4721
4722 2011-04-28 Richard Guenther <rguenther@suse.de>
4723
4724 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4725 New function split out from ...
4726 (find_func_aliases): ... here. Call it.
4727 (find_func_aliases_for_call): Likewise.
4728
4729 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
4730
4731 * internal-fn.h (internal_fn_name_array): Declare.
4732 (internal_fn_flags_array): Likewise.
4733
4734 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
4735
4736 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
4737 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
4738 Move from sse.md.
4739 (ssemodefsuffix): Remove.
4740 (ssevecmodesuffix): New mode attribute.
4741 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
4742 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4743 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4744 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4745 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
4746 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
4747 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
4748 ssemodesuffix mode attribute.
4749 (float splitters): Use ssevecmodesuffix mode attribute.
4750 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
4751 (sseinsmode): Rename from avxvecmode.
4752 (avxsizesuffix): Rename from avxmodesuffix.
4753 (sseintvecmode): Rename from avxpermvecmode.
4754 (ssedoublevecmode): Rename from ssedoublesizemode.
4755 (ssehalfvecmode): Rename from avxhalfvecmode.
4756 (ssescalarmode): Rename from avxscalarmode.
4757 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
4758 templates for ssemodesuffix mode attribute.
4759 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
4760 mode attribute.
4761
4762 Adjust RTX patterns globally for renamed mode attributes.
4763
4764 2011-04-27 Jan Hubcika <jh@suse.cz>
4765
4766 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
4767 * ipa-inline-analysis.c: Include alloc-pool.h.
4768 (edge_predicate_pool): New.
4769 (trye_predicate_p): New function
4770 (false_predicate_p): New function.
4771 (add_clause): Sanity check that false clauses are "optimized";
4772 never add clauses to predicate that is already known to be false.
4773 (and_predicate): Use flase_predicate_p.
4774 (evaulate_predicate): Rename to ...
4775 (evaluate_predicate): ... this one; update all callers; assert
4776 that false is not listed among possible truths.
4777 (dump_predicate): Use true_predicate_p.
4778 (account_size_time): Use false_predicate_p.
4779 (evaulate_conditions_for_edge): Rename to ...
4780 (evaluate_conditions_for_edge) ... this one.
4781 (edge_set_predicate): New function.
4782 (inline_edge_duplication_hook): Duplicate edge predicates.
4783 (inline_edge_removal_hook): Free edge predicates.
4784 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4785 (dump_inline_summary): Update.
4786 (estimate_function_body_sizes): Set edge predicates.
4787 (estimate_calls_size_and_time): Handle predicates.
4788 (estimate_callee_size_and_time): Update.
4789 (remap_predicate): Add toplev_predicate; update comment.
4790 (remap_edge_predicates): New function.
4791 (inline_merge_summary): Compute toplev predicate; update.
4792 (read_predicate): New function.
4793 (read_inline_edge_summary): Use it.
4794 (inline_read_section): Likewise.
4795 (write_predicate): New function.
4796 (write_inline_edge_summary): Use it.
4797 (inline_write_summary): Likewise.
4798 (inline_free_summary): Free alloc pool and edge summary vec.
4799
4800 2011-04-27 Richard Guenther <rguenther@suse.de>
4801
4802 * tree-ssa-structalias.c (changed_count): Remove.
4803 (changed): Use a bitmap.
4804 (unify_nodes): Adjust.
4805 (do_sd_constraint): Likewise.
4806 (do_ds_constraint): Likewise.
4807 (do_complex_constraint): Likewise.
4808 (solve_graph): Likewise.
4809
4810 2011-04-27 Jan Hubicka <jh@suse.cz>
4811
4812 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4813
4814 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
4815
4816 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4817 (avx_vperm2f128_*_operand): Ditto.
4818 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4819 Use avx_vpermilp_parallel in insn condition.
4820 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4821 Use avx_vperm2f128_parallel in insn condition.
4822
4823 2011-04-27 Richard Guenther <rguenther@suse.de>
4824
4825 * Makefile.in (tree-ssa-structalias.o): Remove
4826 gt-tree-ssa-structalias.h dependency.
4827 (GTFILES): Remove tree-ssa-structalias.c.
4828 * tree.c (allocate_decl_uid): New function.
4829 (make_node_stat): Use it.
4830 (copy_node_stat): Likewise.
4831 * tree.h (allocate_decl_uid): Declare.
4832 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4833 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4834 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4835 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4836 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4837 (struct heapvar_map): Likewise.
4838 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4839 heapvar_insert): Likewise.
4840 (make_heapvar_for): Rename to ...
4841 (make_heapvar): ... this. Simplify.
4842 (fake_var_decl_obstack): New global var.
4843 (build_fake_var_decl): New function.
4844 (make_constraint_from_heapvar): Adjust.
4845 (handle_lhs_call): Likewise.
4846 (create_function_info_for): Likewise.
4847 (intra_create_variable_infos): Likewise.
4848 (init_alias_vars): Allocate fake_var_decl_obstack.
4849 (init_alias_heapvars, delete_alias_heapvars): Remove.
4850 (compute_points_to_sets): Do not call init_alias_heapvars.
4851 (ipa_pta_execute): Likewise.
4852 (delete_points_to_sets): Free fake_var_decl_obstack.
4853
4854 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4855
4856 * config/spu/divmovti4.c (union qword_UTItype): New data type.
4857 (si_from_UTItype, si_to_UTItype): New functions.
4858 (__udivmodti4): Use them to implement type-punning.
4859 * config/spu/multi3.c (union qword_TItype): New data type.
4860 (si_from_TItype, si_to_TItype): New functions.
4861 (__multi3): Use them to implement type-punning.
4862
4863 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4864
4865 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4866
4867 2011-04-27 Jan Hubicka <jh@suse.cz>
4868
4869 * ipa-prop.c (function_insertion_hook_holder): New holder.
4870 (ipa_add_new_function): New function.
4871 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4872 Register/deregister holder.
4873
4874 2011-04-27 Richard Guenther <rguenther@suse.de>
4875
4876 PR tree-optimization/48772
4877 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4878
4879 2011-04-27 Richard Guenther <rguenther@suse.de>
4880
4881 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4882 TARGET_MEM_REF handling.
4883
4884 2011-04-27 Nick Clifton <nickc@redhat.com>
4885
4886 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4887 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4888 (REG_CLASS_NAMES): Likewise.
4889 (REG_CLASS_CONTENTS): Likewise.
4890 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4891 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4892 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
4893 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
4894 (EVEN_REGS): New macro. Alias for QUAD_REGS.
4895 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4896 duplicate register classes.
4897 (frv_class_likely_spilled_p): Likewise.
4898 (frv_register_move_cost): Likewise.
4899
4900 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4901 end of the regno_reg_class array.
4902
4903 2011-04-27 Jakub Jelinek <jakub@redhat.com>
4904
4905 PR c/48742
4906 * c-typeck.c (build_binary_op): Don't wrap arguments if
4907 int_operands is true.
4908
4909 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
4910
4911 PR target/48767
4912 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4913 targetm.calls.must_pass_in_stack for void type.
4914
4915 2011-04-26 Jan Hubicka <jh@suse.cz>
4916
4917 * cgraphbuild.c (build_cgraph_edges): Update call
4918 of cgraph_create_edge and cgraph_create_indirect_edge.
4919 * cgraph.c (cgraph_create_edge_including_clones,
4920 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4921 cgraph_update_edges_for_call_stmt_node): Do not take nest
4922 argument; do not initialize call_stmt_size/time.
4923 (dump_cgraph_node): Do not dump nest.
4924 (cgraph_clone_edge): Do not take loop_nest argument;
4925 do not propagate it; do not clone call_stmt_size/time.
4926 (cgraph_clone_node): Likewise.
4927 (cgraph_create_virtual_clone): Update.
4928 * cgraph.h (struct cgraph_edge): Remove
4929 call_stmt_size/call_stmt_time/loop_nest.
4930 (cgraph_create_edge, cgraph_create_indirect_edge,
4931 cgraph_create_edge_including_clones, cgraph_clone_node): Update
4932 prototype.
4933 * tree-emutls.c (gen_emutls_addr): Update.
4934 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4935 loop_nest; handle indirect calls, too.
4936 (clone_inlined_nodes): Do not care about updating inline summaries.
4937 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4938 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4939 stream call_stmt_size/call_stmt_time/loop_nest.
4940 * ipa-inline.c (edge_badness): Update.
4941 (ipa_inline): dump summaries after inlining.
4942 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4943 New.
4944 (inline_edge_summary): New function.
4945 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4946 (inline_edge_removal_hook): Handle edge summaries.
4947 (inline_edge_duplication_hook): New hook.
4948 (inline_summary_alloc): Alloc hooks.
4949 (initialize_growth_caches): Do not register removal hooks.
4950 (free_growth_caches); Do not free removal hook.
4951 (dump_inline_edge_summary): New function.
4952 (dump_inline_summary): Use it.
4953 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4954 (inline_update_callee_summaries): New function.
4955 (inline_merge_summary): Use it.
4956 (do_estimate_edge_time, do_estimate_edge_growth): Update.
4957 (read_inline_edge_summary): New function.
4958 (inline_read_section): Use it.
4959 (write_inline_edge_summary): New function.
4960 (inline_write_summary): Use it.
4961 (inline_free_summary): Free edge new holders.
4962 * tree-inline.c (copy_bb): Update.
4963
4964 2011-04-26 Jason Merrill <jason@redhat.com>
4965
4966 * tree-eh.c (lower_try_finally_switch): Create the label along with
4967 the CASE_LABEL_EXPR.
4968
4969 2011-04-26 David S. Miller <davem@davemloft.net>
4970 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4971
4972 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4973 * configure: Regenerate.
4974
4975 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
4976
4977 PR target/48258
4978 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4979 reduction.
4980 (VEC_reduc): New code iterator and splitters for vector reduction.
4981 (VEC_reduc_name): Ditto.
4982 (VEC_reduc_rtx): Ditto.
4983 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4984 (reduc_<VEC_reduc_name>_v4sf): Ditto.
4985
4986 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4987 support for extracting SF on VSX.
4988
4989 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4990 generating xscvspdp.
4991 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4992 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4993 double add, minimum, maximum vector reduction.
4994 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4995 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4996 optimize double vector reduction.
4997 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4998
4999 2011-04-26 Joseph Myers <joseph@codesourcery.com>
5000
5001 * config/fr30/fr30.h (inhibit_libc): Don't define.
5002 * config/m32r/m32r-protos.h: Correct comment.
5003 * config/v850/v850.h (GHS_default_section_names,
5004 GHS_current_section_names): Use tree, not union tree_node *.
5005
5006 2011-04-26 Xinliang David Li <davidxl@google.com>
5007
5008 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
5009 * c-family/c-opts.c (c_common_handle_option): Set
5010 warn_maybe_uninitialized.
5011 * opts.c (common_handle_option): Ditto.
5012 * common.opt: New option.
5013 * tree-ssa.c (warn_uninit): Add one more parameter.
5014 (warn_uninitialized_var): Pass warning code.
5015 * tree-flow.h: Interface change.
5016
5017 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5018
5019 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
5020 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
5021 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
5022
5023 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5024
5025 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
5026 * config/mips/mips.opt (mmips-tfile): Remove.
5027
5028 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
5029 mips-tdump reference to ...
5030 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
5031 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
5032 reference by Tru64 UNIX.
5033
5034 2011-04-26 Jakub Jelinek <jakub@redhat.com>
5035
5036 PR debug/48768
5037 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
5038 is error_mark_node, set value to NULL.
5039
5040 PR tree-optimization/48734
5041 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
5042 if return value from maybe_fold_*_comparsions isn't something
5043 the code is prepared to handle.
5044
5045 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
5046
5047 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
5048 mode check.
5049 (ext_QIreg_nomode_operands): Remove.
5050 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
5051 (*andsi_1): Ditto.
5052 (*andhi_1): Ditto.
5053
5054 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
5055
5056 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
5057
5058 2011-04-26 Richard Guenther <rguenther@suse.de>
5059
5060 * c-typeck.c (build_unary_op): Do not expand array-refs via
5061 pointer arithmetic. Only adjust qualifiers for function types.
5062
5063 2011-04-26 Richard Guenther <rguenther@suse.de>
5064
5065 PR middle-end/48694
5066 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
5067 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
5068 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
5069 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
5070
5071 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
5072
5073 * doc/extend.texi: Document __underlying_type.
5074
5075 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
5076
5077 * config/rs6000/titan.md (automata_option "progress"): Remove.
5078
5079 2011-04-25 Jeff Law <law@redhat.com>
5080
5081 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
5082
5083 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
5084
5085 * system.h (ENUM_BITFIELD): Remove.
5086
5087 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
5088 Eric Botcazou <ebotcazou@adacore.com>
5089
5090 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
5091 for STORE_FLAG_VALUE==-1 case.
5092
5093 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
5094
5095 PR target/43804
5096 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
5097 LEGITIMATE_PIC_OPERAND_P.
5098
5099 2011-04-24 Jan Hubicka <jh@suse.cz>
5100
5101 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
5102 WPA hack.
5103 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
5104 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
5105 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
5106 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
5107 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
5108 Sanity check predicate length.
5109 (remap_predicate): Likewise; sanity check jump functions.
5110 (inline_read_section, inline_write_summary): Sanity check
5111 predicate length.
5112
5113 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5114
5115 PR other/48748
5116 * doc/extend.texi (Type Traits): Document __is_standard_layout,
5117 __is_literal_type, and __is_trivial; update throughout about
5118 possibly cv-qualified void types.
5119
5120 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
5121
5122 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
5123 testsuite and make it version agnostic.
5124
5125 2011-04-22 Jan Hubicka <jh@suse.cz>
5126
5127 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
5128
5129 2011-04-23 Jakub Jelinek <jakub@redhat.com>
5130
5131 PR c/48685
5132 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
5133 to VOID_TYPE even around MODIFY_EXPR.
5134
5135 2011-04-22 Mike Stump <mikestump@comcast.net>
5136
5137 * gensupport.c (read_md_rtx): Fix typo in comment.
5138 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
5139 comment.
5140
5141 2011-04-22 Jan Hubicka <jh@suse.cz>
5142
5143 * gengtype.c (open_base_files): Add ipa-inline.h include.
5144 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
5145 ipa-prop.c; update all uses.
5146 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
5147 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
5148 merge summary of inlined function into former caller.
5149 * ipa-inline.c (max_benefit): Remove.
5150 (edge_badness): Compensate for removal of benefits.
5151 (update_caller_keys): Use
5152 reset_node_growth_cache/reset_edge_growth_cache.
5153 (update_callee_keys): Likewise.
5154 (update_all_callee_keys): Likewise.
5155 (inline_small_functions): Do not collect max_benefit; do not reset
5156 estimated_growth; call free_growth_caches and initialize_growth_caches.
5157 * ipa-inline.h (struct condition, type clause_t, struct predicate,
5158 struct size_time_entry): New structures.
5159 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
5160 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
5161 and estimated_growth.
5162 (edge_growth_cache_entry): New structure.
5163 (node_growth_cache, edge_growth_cache): New global vars.
5164 (estimate_growth): Turn into inline.
5165 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
5166 initialize_growth_caches, free_growth_caches): Declare.
5167 (estimate_edge_growth): Rewrite.
5168 (estimate_edge_time): Implement as inline cache lookup.
5169 (reset_node_growth_cache, reset_edge_growth_cache): New inline
5170 functions.
5171 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
5172 (NUM_CONDITIONS): New constant.
5173 (predicate_conditions): New enum.
5174 (IS_NOT_CONSTANT): New constant.
5175 (edge_removal_hook_holder): New var.
5176 (node_growth_cache, edge_growth_cache): New global vars.
5177 (true_predicate, single_cond_predicate, false_predicate,
5178 not_inlined_predicate, add_condition, add_clause, and_predicates,
5179 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
5180 dump_clause, dump_predicate, account_size_time,
5181 evaulate_conditions_for_edge): New functions.
5182 (inline_summary_alloc): Move to heap.
5183 (inline_node_removal_hook): Clear condition and entry vectors.
5184 (inline_edge_removal_hook): New function.
5185 (initialize_growth_caches, free_growth_caches): New function.
5186 (dump_inline_summary): Update.
5187 (edge_execution_predicate): New function.
5188 (will_be_nonconstant_predicate): New function.
5189 (estimate_function_body_sizes): Compute BB and constantness predicates.
5190 (compute_inline_parameters): Do not clear estimated_growth.
5191 (estimate_edge_size_and_time): New function.
5192 (estimate_calls_size_and_time): New function.
5193 (estimate_callee_size_and_time): New function.
5194 (remap_predicate): New function.
5195 (inline_merge_summary): New function.
5196 (do_estimate_edge_time): New function based on...
5197 (estimate_edge_time): ... this one.
5198 (do_estimate_edge_growth): New function.
5199 (do_estimate_growth): New function based on....
5200 (estimate_growth): ... this one.
5201 (inline_analyze_function): Analyze after deciding on jump functions.
5202 (inline_read_section): New function.
5203 (inline_read_summary): Use it.
5204 (inline_write_summary): Write all the new data.
5205 * ipa-prop.c (ipa_get_param_decl_index): Export.
5206 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
5207 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
5208 Declare.
5209 (ipa_get_lattice): Move here from ipa-cp.c
5210 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
5211 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
5212 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
5213 cgraph_edge_inlinable_p): Remove.
5214 * cgraphunit.c: Include ipainline.h
5215 (cgraph_process_new_functions): Update call of
5216 compute_inline_parameters.
5217
5218 2011-04-22 Richard Guenther <rguenther@suse.de>
5219
5220 * tree.c (build_int_cst): Properly create canonicalized integer
5221 constants.
5222 (build_int_cst_type): Remove scary comments.
5223
5224 2011-04-22 Xinliang David Li <davidxl@google.com>
5225
5226 * toplev.c (process_options): Enable -Werror=coverage-mismatch
5227 by default when -Wno-error is not specified.
5228 * opts-global.c (decode_options): Remove call to
5229 control_warning_options.
5230
5231 2011-04-22 Jakub Jelinek <jakub@redhat.com>
5232
5233 PR tree-optimization/48717
5234 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
5235 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
5236
5237 2011-04-22 Joseph Myers <joseph@codesourcery.com>
5238
5239 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
5240 definition where used.
5241
5242 2011-04-22 Jakub Jelinek <jakub@redhat.com>
5243
5244 PR c/48716
5245 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
5246 TREE_STATIC variables declared inside of some OpenMP construct.
5247
5248 2011-04-22 Martin Jambor <mjambor@suse.cz>
5249
5250 PR middle-end/48585
5251 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
5252
5253 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
5254
5255 PR c/36750
5256 * c-typeck.c (pop_init_level): Do not warn about initializing
5257 with ` = {0}'.
5258
5259 2011-04-22 Alan Modra <amodra@gmail.com>
5260
5261 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
5262 when returning call_cookie.
5263 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
5264 pointers, to functions with no more vector args than the current
5265 function, and some non-local calls for ABI_V4.
5266 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
5267 sibcall_nonlocal_aix64): Combine to ..
5268 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
5269 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
5270 (sibcall_value_nonlocal_aix<mode>): ..likewise.
5271 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
5272 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
5273 operand.
5274 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
5275 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
5276 sibcall_value_symbolic_64): Delete.
5277
5278 2011-04-21 Xinliang David Li <davidxl@google.com>
5279
5280 * cgraph.h: Remove pid.
5281 * cgraph.c: Remove pid.
5282 * value-prof.c (init_node_map): New function.
5283 (del_node_map): New function.
5284 (find_func_by_funcdef_no): New function.
5285 (gimple_ic_transform): Call new function.
5286 * cgraphunit.c (cgraph_finalize_function): Remove pid.
5287 * function.c (get_last_funcdef_no): New function.
5288 * function.h (get_last_funcdef_no): New function.
5289 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
5290 to libgcov function.
5291 (tree-profiling): Call node map init and delete function.
5292
5293 2011-04-21 Ian Lance Taylor <iant@google.com>
5294
5295 * godump.c (go_format_type): Use exported Go name for anonymous
5296 field name.
5297
5298 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
5299
5300 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
5301 Call builtin_function_type_list instead of builtin_function_type.
5302 (UNARY, BINARY, TRINARY, QUAD): Likewise.
5303
5304 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
5305
5306 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
5307 build_function_type_list instead of build_function_type.
5308 Delete variable `endlink'.
5309
5310 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
5311
5312 * config/s390/s390.c (s390_init_builtins): Call
5313 build_function_type_list instead of build_function_type.
5314
5315 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
5316
5317 * config/ia64/ia64.c (ia64_init_builtins): Call
5318 build_function_type_list instead of builtin_function_type.
5319
5320 2011-04-21 Easwaran Raman <eraman@google.com>
5321
5322 * cfgexpand.c (stack_var): Remove OFFSET...
5323 (add_stack_var): ...and its reference here...
5324 (expand_stack_vars): ...and here.
5325 (stack_var_cmp): Sort by descending order of size.
5326 (partition_stack_vars): Change heuristic.
5327 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
5328 (dump_stack_var_partition): Add newline after each partition.
5329
5330 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
5331 Jeff Law <law@redhat.com>
5332
5333 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
5334 * gengtype.c (matching_file_name_substitute): Likewise.
5335
5336 2011-04-21 Richard Guenther <rguenther@suse.de>
5337
5338 PR lto/48703
5339 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
5340
5341 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
5342
5343 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
5344
5345 2011-04-21 Richard Guenther <rguenther@suse.de>
5346
5347 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
5348 file name.
5349
5350 2011-04-21 Richard Guenther <rguenther@suse.de>
5351
5352 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
5353 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
5354 Use DECL_P, not SSA_VAR_P.
5355 (ptr_derefs_may_alias_p): Likewise.
5356 (ptr_deref_may_alias_ref_p_1): Likewise.
5357 (decl_refs_may_alias_p): Likewise.
5358 (refs_may_alias_p_1): Likewise.
5359 (ref_maybe_used_by_call_p_1): Likewise.
5360 (call_may_clobber_ref_p_1): Likewise.
5361 (indirect_ref_may_alias_decl_p): Assume indirect refrences
5362 are either MEM_REF or TARGET_MEM_REF.
5363 (indirect_refs_may_alias_p): Likewise.
5364 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
5365 for MEM_EXPR of indirect calls.
5366
5367 2011-04-21 Tristan Gingold <gingold@adacore.com>
5368
5369 * vmsdbgout.c (write_srccorr): Compute file length from the string.
5370 (dst_file_info_struct): Remove flen field.
5371 (lookup_filename): Remove code that set flen field.
5372
5373 2011-04-21 Tristan Gingold <gingold@adacore.com>
5374
5375 * config/ia64/ia64.c (ia64_start_function): Add a guard.
5376
5377 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
5378
5379 PR target/48708
5380 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
5381 vec_extract and vec_concat for non-SSE4_1 targets.
5382
5383 2011-04-21 Richard Guenther <rguenther@suse.de>
5384
5385 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
5386 return statements.
5387
5388 2011-04-21 Joseph Myers <joseph@codesourcery.com>
5389
5390 * config/i386/cygming.h (union tree_node, TREE): Don't define or
5391 undefine.
5392 (FILE): Don't undefine.
5393
5394 2011-04-21 Joseph Myers <joseph@codesourcery.com>
5395
5396 * config/alpha/alpha.c (struct machine_function): Use rtx, not
5397 struct rtx_def *.
5398 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
5399 struct rtx_def *.
5400 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
5401 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
5402 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
5403 rtx_def *.
5404 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
5405 definitions where used.
5406 * config/microblaze/microblaze.h (struct microblaze_args): Use
5407 rtx, not struct rtx_def *.
5408 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
5409 rtx_def *.
5410 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
5411 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
5412 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
5413 not struct rtx_def *.
5414 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
5415 struct rtx_def *.
5416 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
5417 rtx_def *.
5418 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
5419
5420 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5421
5422 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
5423 operand_equal_p to compare DR_BASE_ADDRESSes.
5424 (vect_check_interleaving): Likewise.
5425
5426 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5427
5428 PR target/46329
5429 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
5430 for all Neon struct constants.
5431
5432 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5433
5434 * target.def (legitimate_constant_p): New hook.
5435 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
5436 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
5437 * doc/tm.texi: Regenerate.
5438 * hooks.h (hook_bool_mode_rtx_true): Declare.
5439 * hooks.c (hook_bool_mode_rtx_true): Define.
5440 * system.h (LEGITIMATE_CONSTANT_P): Poison.
5441 * calls.c (precompute_register_parameters): Replace uses of
5442 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
5443 (emit_library_call_value_1): Likewise.
5444 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
5445 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
5446 * ira-costs.c (scan_one_insn): Likewise.
5447 * recog.c (general_operand, immediate_operand): Likewise.
5448 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
5449 * reload1.c (init_eliminable_invariants): Likewise.
5450
5451 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
5452 mode argument.
5453 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
5454 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
5455 argument.
5456 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5457 * config/alpha/predicates.md (input_operand): Update call to
5458 alpha_legitimate_constant_p.
5459
5460 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
5461 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
5462 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
5463 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5464 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
5465 (arm_legitimate_constant_p): New functions.
5466 (arm_cannot_force_const_mem): Make static.
5467
5468 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
5469
5470 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
5471 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
5472 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
5473 instead of bfin_legitimate_constant_p.
5474 (bfin_legitimate_constant_p): Make static. Add a mode argument.
5475 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5476
5477 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
5478
5479 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
5480
5481 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
5482 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
5483 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5484 (frv_legitimate_constant_p): Make static. Add a mode argument.
5485
5486 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
5487 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
5488 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
5489
5490 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
5491 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
5492 * config/i386/i386.c (legitimate_constant_p): Rename to...
5493 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
5494 argument.
5495 (ix86_cannot_force_const_mem): Update accordingly.
5496 (ix86_legitimate_address_p): Likewise.
5497 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5498 * config/i386/i386.md: Update commentary.
5499
5500 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
5501 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
5502 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5503 (ia64_legitimate_constant_p): Make static. Add a mode argument.
5504
5505 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
5506
5507 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
5508 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
5509 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5510 (lm32_legitimate_constant_p): Make static. Add a mode argument.
5511
5512 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
5513 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
5514 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
5515
5516 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
5517 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5518 (m32r_legitimate_constant_p): New function.
5519
5520 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
5521 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
5522 LEGITIMATE_CONSTANT_P.
5523 (LEGITIMATE_CONSTANT_P): Delete.
5524 * config/m68k/m68k.c (m68k_expand_prologue): Call
5525 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
5526 (m68k_legitimate_constant_p): New function.
5527 * config/m68k/m68k.md: Update comments.
5528
5529 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
5530 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5531 (mcore_legitimate_constant_p): New function.
5532
5533 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
5534 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
5535 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
5536 Add a mode argument.
5537 (mep_legitimate_address): Update accordingly.
5538 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5539
5540 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
5541 Delete.
5542 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
5543 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
5544 static. Check OP's mode for VOIDmode.
5545 (microblaze_legitimate_constant_p): New function.
5546 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5547
5548 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
5549 * config/mips/mips.c (mips_legitimate_constant_p): New function.
5550 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
5551 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5552 * config/mips/predicates.md: Update comments.
5553
5554 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
5555 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
5556 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5557 (mmix_legitimate_constant_p): Make static, return a bool, and take
5558 a mode argument.
5559 (mmix_print_operand_address): Update accordingly.
5560
5561 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
5562 Delete.
5563 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
5564 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
5565 static. Add a mode argument.
5566 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5567
5568 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
5569
5570 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
5571 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5572 (pa_legitimate_constant_p): New function.
5573
5574 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
5575
5576 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
5577 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5578 (pdp11_legitimate_constant_p): New function.
5579
5580 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
5581 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5582 (rs6000_legitimate_constant_p): New function.
5583
5584 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
5585 (rx_legitimate_constant_p): ...this.
5586 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
5587 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
5588 (rx_legitimate_constant_p): ...this.
5589 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5590 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
5591
5592 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
5593 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
5594 * config/s390/s390.c (legitimate_constant_p): Rename to...
5595 (s390_legitimate_constant_p): ...this. Make static, return a bool,
5596 and add a mode argument.
5597 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5598
5599 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
5600
5601 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
5602 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5603 (sh_legitimate_constant_p): New function.
5604
5605 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
5606 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
5607 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5608 (legitimate_constant_p): Rename to...
5609 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
5610 argument.
5611 (constant_address_p): Update accordingly.
5612
5613 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
5614 argument and return a bool.
5615 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
5616 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5617 (spu_legitimate_constant_p): Add a mode argument and return a bool.
5618 (spu_rtx_costs): Update accordingly.
5619 * config/spu/predicates.md (vec_imm_operand): Likewise.
5620
5621 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
5622
5623 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
5624 * config/v850/v850.c (v850_legitimate_constant_p): New function.
5625 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5626
5627 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
5628 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
5629 * config/vax/vax.c (legitimate_constant_p): Likewise.
5630
5631 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
5632 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5633 (xtensa_legitimate_constant_p): New function.
5634
5635 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5636
5637 * target.def (cannot_force_const_mem): Add a mode argument.
5638 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
5639 * doc/tm.texi: Regenerate.
5640 * hooks.h (hook_bool_mode_rtx_false): Declare.
5641 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
5642 (hook_bool_mode_const_rtx_true): Likewise.
5643 (hook_bool_mode_rtx_false): New function.
5644 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
5645 to be non-VOID. Update call to cannot_force_const_mem.
5646 (find_reloads): Update accordingly.
5647 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
5648 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
5649 argument.
5650 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
5651 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
5652 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
5653 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
5654 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
5655 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
5656 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
5657 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5658 (m68k_cannot_force_const_mem): ...this new function.
5659 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
5660 argument.
5661 (mips_const_insns, mips_legitimize_const_move): Update calls.
5662 (mips_secondary_reload_class): Likewise.
5663 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5664 (pa_cannot_force_const_mem): ...this new function.
5665 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
5666 (rs6000_cannot_force_const_mem): ...this new function.
5667 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
5668 argument.
5669 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
5670 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
5671 to...
5672 (xtensa_cannot_force_const_mem): ...this new function.
5673
5674 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5675
5676 * config/mips/mips.c (mips16_build_function_stub): Call
5677 build_function_type_list instead of build_function_type.
5678 (mips16_build_call_stub): Likewise.
5679
5680 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5681
5682 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
5683 instead of build_function_type.
5684
5685 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5686
5687 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
5688 instead of build_function_type.
5689
5690 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
5691
5692 PR target/48678
5693 * config/i386/i386.md (insv): Change operand 0 constraint to
5694 "register_operand". Change operand 1 and 2 constraint to
5695 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
5696 * config/i386/sse.md (sse4_1_pinsrb): Export.
5697 (sse2_pinsrw): Ditto.
5698 (sse4_1_pinsrd): Ditto.
5699 (sse4_1_pinsrq): Ditto.
5700 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
5701 * config/i386/i386.c (ix86_expand_pinsr): New.
5702
5703 2011-04-20 Easwaran Raman <eraman@google.com>
5704
5705 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
5706 containing union type only with -fstrict-aliasing.
5707
5708 2011-04-20 Jim Meyering <meyering@redhat.com>
5709
5710 Remove useless if-before-free tests.
5711 * calls.c (expand_call, save_area): Likewise.
5712 * cfgcleanup.c (try_forward_edges): Likewise.
5713 * collect2.c (collect_execute): Likewise.
5714 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
5715 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
5716 * coverage.c (coverage_checksum_string): Likewise.
5717 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
5718 * cselib.c (cselib_init): Likewise.
5719 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
5720 (df_set_clean_cfg): Likewise.
5721 * function.c (free_after_compilation): Likewise.
5722 * gcc.c (do_spec_1, main): Likewise.
5723 * gcov.c (create_file_names): Likewise.
5724 * gensupport.c (identify_predicable_attribute): Likewise.
5725 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
5726 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
5727 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
5728 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
5729 * ipa-pure-const.c (local_pure_const): Likewise.
5730 * ipa-reference.c (propagate): Likewise.
5731 * ira-costs.c (free_ira_costs): Likewise.
5732 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
5733 * matrix-reorg.c (mat_free): Likewise.
5734 * prefix.c (get_key_value): Likewise.
5735 * profile.c (compute_value_histograms): Likewise.
5736 * reload1.c (free_reg_equiv): Likewise.
5737 * sched-deps.c (free_deps): Likewise.
5738 * sel-sched-ir.c (fence_clear): Likewise.
5739 * sese.c (set_rename, if_region_set_false_region): Likewise.
5740 * tree-data-ref.c (free_rdg): Likewise.
5741 * tree-eh.c (lower_try_finally): Likewise.
5742 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
5743 * tree-ssa-live.c (delete_var_map): Likewise.
5744 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
5745 * tree-ssa-pre.c (phi_trans_add): Likewise.
5746
5747 2011-04-20 Jakub Jelinek <jakub@redhat.com>
5748
5749 PR tree-optimization/48611
5750 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
5751 beyond ERT_MUST_NOT_THROW region.
5752
5753 2011-04-20 Catherine Moore <clm@codesourcery.com>
5754
5755 * config/mips/mips.opt (mfix-24k): New.
5756 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
5757 * config/mips/mips.md (length): Increase by 4 for stores if
5758 fixing 24K errata.
5759 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
5760 all noreorder if fixing 24K errata.
5761 * doc/invoke.texi: Document mfix-24k.
5762
5763 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
5764
5765 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
5766 quad-word modes, reduce to 9-bit index range when above 1016 limit.
5767
5768 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
5769
5770 * config/arm/arm.c (arm_gen_constant): Move movw support ....
5771 (const_ok_for_op): ... to here.
5772
5773 2011-04-20 Kai Tietz <ktietz@redhat.com>
5774
5775 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5776 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5777
5778 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
5779
5780 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5781
5782 2011-04-20 Richard Guenther <rguenther@suse.de>
5783
5784 PR tree-optimization/47892
5785 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5786 are if-convertible.
5787
5788 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
5789
5790 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5791
5792 2011-04-20 Tristan Gingold <gingold@adacore.com>
5793
5794 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5795
5796 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
5797
5798 PR target/18145
5799
5800 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5801 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5802 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5803 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5804 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5805
5806 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5807 New prototype.
5808
5809 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5810 (avr_asm_named_section, avr_asm_output_aligned_common,
5811 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5812 New functions to update...
5813 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5814 (avr_asm_init_sections): Overwrite section callbacks for
5815 data_section, bss_section.
5816 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5817 from here to...
5818 (avr_file_end): ...here.
5819
5820 2011-04-20 Richard Guenther <rguenther@suse.de>
5821
5822 PR middle-end/48695
5823 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5824 objects and types here. Adjust for their offset before comparing.
5825
5826 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5827
5828 * tree-vect-stmts.c (vectorizable_store): Only chain one related
5829 statement per copy.
5830
5831 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5832
5833 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5834 (GIMPLE_H): Include $(INTERNAL_FN_H).
5835 (OBJS-common): Add internal-fn.o.
5836 (internal-fn.o): New rule.
5837 * internal-fn.def: New file.
5838 * internal-fn.h: Likewise.
5839 * internal-fn.c: Likewise.
5840 * gimple.h: Include internal-fn.h.
5841 (GF_CALL_INTERNAL): New gf_mask.
5842 (gimple_statement_call): Put fntype into a union with a new
5843 internal_fn field.
5844 (gimple_build_call_internal): Declare.
5845 (gimple_build_call_internal_vec): Likewise.
5846 (gimple_call_same_target_p): Likewise.
5847 (gimple_call_internal_p): New function.
5848 (gimple_call_internal_fn): Likewise.
5849 (gimple_call_fntype): Return null for internal calls.
5850 (gimple_call_set_fntype): Assert that the function is not internal.
5851 (gimple_call_set_fn): Likewise.
5852 (gimple_call_set_fndecl): Likewise.
5853 (gimple_call_set_internal_fn): New function.
5854 (gimple_call_addr_fndecl): Handle null functions.
5855 (gimple_call_return_type): Likewise null types.
5856 * gimple.c (gimple_build_call_internal_1): New function.
5857 (gimple_build_call_internal): Likewise.
5858 (gimple_build_call_internal_vec): Likewise.
5859 (gimple_call_same_target_p): Likewise.
5860 (gimple_call_flags): Handle calls to internal functions.
5861 (gimple_call_fnspec): New function.
5862 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5863 (gimple_has_side_effects): Handle null functions.
5864 (gimple_rhs_has_side_effects): Likewise.
5865 (gimple_call_copy_skip_args): Handle calls to internal functions.
5866 * cfgexpand.c (expand_call_stmt): Likewise.
5867 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5868 * gimple-fold.c (gimple_fold_call): Handle null functions.
5869 (gimple_fold_stmt_to_constant_1): Don't fold
5870 calls to internal functions.
5871 * gimple-low.c (gimple_check_call_args): Handle calls to internal
5872 functions.
5873 * gimple-pretty-print.c (dump_gimple_call): Likewise.
5874 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5875 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5876 (do_warn_unused_result): Likewise.
5877 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5878 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5879 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5880 the target of a call.
5881 (initialize_hash_element): Update accordingly.
5882 (hashable_expr_equal_p): Use gimple_call_same_target_p.
5883 (iterative_hash_hashable_expr): Handle calls to internal functions.
5884 (print_expr_hash_elt): Likewise.
5885 * tree-ssa-pre.c (can_value_number_call): Likewise.
5886 (eliminate): Handle null functions.
5887 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5888 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5889 (find_func_aliases): Likewise.
5890 * value-prof.c (gimple_ic_transform): Likewise.
5891 (gimple_indirect_call_to_profile): Likewise.
5892 * lto-streamer-in.c (input_gimple_stmt): Likewise.
5893 * lto-streamer-out.c (output_gimple_stmt): Likewise.
5894
5895 2011-04-19 Jan Hubicka <jh@suse.cz>
5896
5897 * ipa-inline-transform.c (save_inline_function_body): Add comments.
5898 * ipa-inline.c (inline_small_functions): Compute summaries first,
5899 populate heap later.
5900
5901 2011-04-19 Jan Hubicka <jh@suse.cz>
5902
5903 * cgraph.h (save_inline_function_body): Remove.
5904 * ipa-inline-transform.c: New file, broke out of...
5905 * ipa-inline.c: ... this one; Update toplevel comment.
5906 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5907 make global.
5908 (update_noncloned_frequencies): Move to ipa-inline-transform.c
5909 (cgraph_mark_inline_edge): Rename to inline_call; move to
5910 ipa-inline-transform.c.
5911 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5912 move to ipa-inline-transform.c
5913 (recursive_inlining, inline_small_functions, flatten_function,
5914 ipa_inline, inline_always_inline_functions,
5915 early_inline_small_functions): Update.
5916 (inline_transform): Move to ipa-inline-transform.c.
5917 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5918 Declare.
5919 * Makefile.in (ipa-inline-transform.o): New file.
5920 * cgraphunit.c (save_inline_function_body): Move to
5921 ipa-inline-transform.c
5922
5923 2011-04-19 DJ Delorie <dj@redhat.com>
5924
5925 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5926 registers if we already know there aren't any.
5927 (m32c_emit_epilogue): Don't emit a barrier here.
5928 (m32c_emit_eh_epilogue): Likewise.
5929 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5930 operands at expand time.
5931 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5932 int" wchar type.
5933 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5934 duplicates. Provide aliases instead.
5935 * config/m32c/prologue.md (eh_return): Emit a barrier here.
5936 (eh_epilogue): Add a "(return)" here as a hint to other parts of
5937 the compiler.
5938
5939 2011-04-19 Anatoly Sokolov <aesok@post.ru>
5940
5941 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5942 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5943 (general_or_i64_p, sparc_register_move_cost): New function.
5944
5945 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5946
5947 * doc/install.texi (Configuration, --enable-threads): Remove mach.
5948 Add lynx, mipssde. Sort table.
5949
5950 2011-04-19 Xinliang David Li <davidxl@google.com>
5951
5952 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5953 not negative.
5954
5955 2011-04-19 Jakub Jelinek <jakub@redhat.com>
5956
5957 PR target/48678
5958 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5959 is a SUBREG with non-MODE_INT mode inside of it.
5960
5961 2011-04-19 Martin Jambor <mjambor@suse.cz>
5962
5963 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5964 also according to actual contants.
5965 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5966 (gimple_fold_call): Use it.
5967 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5968
5969 2011-04-19 Martin Jambor <mjambor@suse.cz>
5970
5971 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5972 non-pointer assignments.
5973
5974 2011-04-19 Martin Jambor <mjambor@suse.cz>
5975
5976 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5977 account anc_offset and otr_type from the indirect edge info.
5978 * ipa-prop.c (get_ancestor_addr_info): New function.
5979 (compute_complex_ancestor_jump_func): Assignment analysis moved to
5980 get_ancestor_addr_info, call it.
5981 (ipa_note_param_call): Do not initialize information about polymorphic
5982 calls, return the indirect call graph edge. Remove the last
5983 parameter, adjust all callers.
5984 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5985 parameters. Initialize polymorphic information in the indirect edge.
5986
5987 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5988
5989 PR lto/48148
5990 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5991 the types if they have different enumeration identifiers.
5992
5993 2011-04-19 Jan Hubicka <jh@suse.cz>
5994
5995 * cgraph.h (cgraph_optimize_for_size_p): Declare.
5996 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5997 * predict.c (cgraph_optimize_for_size_p): Break out from ...
5998 (optimize_function_for_size_p) ... here.
5999
6000 2011-04-19 Richard Guenther <rguenther@suse.de>
6001
6002 PR lto/48207
6003 * tree.c (free_lang_data): Do not reset the decl-assembler-name
6004 langhook.
6005
6006 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
6007
6008 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
6009 if DECL_NO_INLINE_WARNING_P is set on the function.
6010
6011 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
6012
6013 PR fortran/47976
6014 * reload1.c (inc_for_reload): Return void. All callers changed.
6015 (emit_input_reload_insns): Don't try to delete previous output
6016 reloads to a register, or record spill_reg_store for autoincs.
6017
6018 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
6019
6020 * gengtype.h: Updated copyright year.
6021 (struct input_file_st): Add inpisplugin field.
6022 (type_fileloc): New function.
6023 * gengtype.c
6024 (write_typed_struct_alloc_def): Add gcc_assert.
6025 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
6026 (write_typed_alloc_defns): Don't output for plugin files.
6027 (input_file_by_name): Clear inpisplugin field.
6028 (main): Set inpisplugin field for plugin files.
6029
6030 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
6031
6032 * gengtype-state.c (string_eq): New.
6033 (read_state): Use string_eq instead of strcmp when creating the
6034 state_ident_tab.
6035
6036 2011-04-19 Wei Guozhi <carrot@google.com>
6037
6038 PR target/47855
6039 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
6040 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
6041 linkage.
6042 * config/arm/constraints.md (Uu): New constraint.
6043 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
6044
6045 2011-04-19 Tristan Gingold <gingold@adacore.com>
6046
6047 * config.gcc (-*-*-*vms): Added.
6048 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
6049 definitions moved.
6050 * config/vms/vms-ld.c: New file.
6051 * config/vms/vms-ar.c: New file.
6052 * config/vms/t-vmsnative: New file.
6053
6054 2011-04-18 Xinliang David Li <davidxl@google.com>
6055
6056 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
6057
6058 2011-04-18 Jakub Jelinek <jakub@redhat.com>
6059
6060 PR middle-end/48661
6061 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
6062 if TREE_TYPE (v) is non-NULL.
6063
6064 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
6065 gimple_get_virt_mehtod_for_binfo.
6066 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
6067 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
6068 callers.
6069 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
6070
6071 2011-04-18 Michael Matz <matz@suse.de>
6072 Steve Ellcey <sje@cup.hp.com>
6073
6074 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
6075 use its mode as source mode if it isn't VOIDmode.
6076
6077 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
6078
6079 * doc/passes.texi: Fill crossref nodes.
6080
6081 2011-04-18 Jim Meyering <meyering@redhat.com>
6082
6083 Fix doubled-word typos in comments and strings
6084 * config/alpha/vms-unwind.h: s/for for/for/
6085 * config/arm/unwind-arm.h: Likewise.
6086 * config/microblaze/microblaze.c: Likewise.
6087 * config/sh/constraints.md: s/in in/in/
6088 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
6089
6090 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
6091
6092 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
6093 (AVX_FLOAT_MODE_P): Ditto.
6094 (AVX128_VEC_FLOAT_MODE_P): Ditto.
6095 (AVX256_VEC_FLOAT_MODE_P): Ditto.
6096 (AVX_VEC_FLOAT_MODE_P): Ditto.
6097 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
6098 (UNSPEC_MASKSTORE): Ditto.
6099 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
6100 Merge from <sse>_movmsk<ssemodesuffix> and
6101 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
6102 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
6103 iterator.
6104 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
6105 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
6106 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
6107
6108 2011-04-18 Jan Hubicka <jh@suse.cz>
6109
6110 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
6111
6112 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
6113 (want_inline_function_called_once_p): Break out the logic from
6114 ipa_inline.
6115 (edge_badness): Ensure that profile is not misupdated.
6116 (lookup_recursive_calls): Prioritize by call frequencies.
6117 (inline_small_functions): Move program size estimates here;
6118 actually process whole queue even when unit growth has been
6119 met. (to properly compute inline_failed reasons and for the
6120 case unit size decrease.) Revisit comments on recursive inlining.
6121 (ipa_inline): Remove unit summary code; first inline hot calls
6122 of functions called once, cold calls next.
6123 (order, nnodes): Remove unused variables.
6124 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
6125 (GTFILES): Remove ipa-inline.c
6126 * sel-sched.c (fill_insns): Silence uninitialized var warning.
6127
6128 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
6129
6130 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
6131
6132 2011-04-18 Jie Zhang <jie@codesourcery.com>
6133 Richard Earnshaw <rearnsha@arm.com>
6134
6135 * arm.c (neon_builtin_type_bits): Remove.
6136 (typedef enum neon_builtin_mode): New.
6137 (T_MAX): Don't define.
6138 (typedef enum neon_builtin_datum): Remove bits, codes[],
6139 num_vars and base_fcode. Add mode, code and fcode.
6140 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
6141 VAR10): Change accordingly.
6142 (neon_builtin_data[]): Change accordingly
6143 (arm_init_neon_builtins): Change accordingly.
6144 (neon_builtin_compare): Remove.
6145 (locate_neon_builtin_icode): Remove.
6146 (arm_expand_neon_builtin): Change accordingly.
6147
6148 * arm.h (enum arm_builtins): Move to ...
6149 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
6150
6151 * arm.c (arm_builtin_decl): Declare.
6152 (TARGET_BUILTIN_DECL): Define.
6153 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
6154 (arm_builtin_decls[]): New.
6155 (arm_init_neon_builtins): Store builtin declarations in
6156 arm_builtin_decls[].
6157 (arm_init_tls_builtins): Likewise.
6158 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
6159 (arm_builtin_decl): New.
6160
6161 2011-04-18 Richard Guenther <rguenther@suse.de>
6162
6163 * tree.c (upper_bound_in_type): Build properly canonicalized
6164 INTEGER_CSTs.
6165 (lower_bound_in_type): Likewise.
6166
6167 2011-04-18 Richard Guenther <rguenther@suse.de>
6168
6169 * gimple.h (gimple_call_addr_fndecl): New function.
6170 (gimple_call_fndecl): Use it.
6171 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
6172 for direct calls.
6173 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
6174 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
6175
6176 2011-04-18 Richard Guenther <rguenther@suse.de>
6177
6178 PR middle-end/48650
6179 * tree.c (build_string): STRING_CST is now derived from tree_typed.
6180
6181 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
6182
6183 PR lto/48492
6184 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
6185 DECL_IN_CONSTANT_POOL without RTL.
6186
6187 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
6188 Ira Rosen <ira.rosen@linaro.org>
6189
6190 PR target/48252
6191 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
6192 to match neon_vzip/vuzp/vtrn_internal.
6193 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
6194 outputs explicitly dependent on both inputs.
6195 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
6196
6197 2011-04-18 Jakub Jelinek <jakub@redhat.com>
6198
6199 PR tree-optimization/48616
6200 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
6201 whether the shift is by scalar or vector based on whether all SLP
6202 scalar stmts have the same rhs.
6203
6204 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
6205
6206 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
6207 memory operands.
6208
6209 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
6210
6211 PR target/43700
6212 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
6213 registers.
6214
6215 2011-04-17 Jan Hubicka <jh@suse.cz>
6216
6217 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
6218 * cgrpahunit.c (cgraph_finalize_function): Do not set
6219 finalized_by_frontend.
6220 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
6221 finalized_by_frontend.
6222
6223 2011-04-17 Jan Hubicka <jh@suse.cz>
6224
6225 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
6226 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
6227 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
6228 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
6229 method.
6230 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
6231 gimple-fold.c
6232 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
6233
6234 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
6235
6236 PR lto/48538
6237 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
6238 is non-null before accessing it.
6239 (input_cgraph): Remove trailing spaces.
6240
6241 2011-04-17 Revital Eres <revital.eres@linaro.org>
6242
6243 * params.def (sms-min-sc): New param flag.
6244 * modulo-sched.c (sms_schedule): Use it.
6245 * doc/invoke.texi (sms-min-sc): Document it.
6246
6247 2011-04-17 Jan Hubicka <jh@suse.cz>
6248
6249 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
6250 present, also set gimple_call_set_cannot_inline.
6251 * ipa-inline.c: Update toplevel comment.
6252 (MAX_TIME): Remove.
6253 (cgraph_clone_inlined_nodes): Fix linebreaks.
6254 (cgraph_check_inline_limits): Restructure to ...
6255 (caller_growth_limits): ... this one; be more tolerant
6256 on growth in nested inline chains; add explanatory comment;
6257 fix stack accounting thinko introduced by previous patch.
6258 (cgraph_default_inline_p): Remove.
6259 (report_inline_failed_reason): New function.
6260 (can_inline_edge_p): New function.
6261 (can_early_inline_edge_p): New function.
6262 (leaf_node_p): Move upwards in file.
6263 (want_early_inline_function_p): New function.
6264 (want_inline_small_function_p): New function.
6265 (want_inline_self_recursive_call_p): New function.
6266 (cgraph_edge_badness): Rename to ...
6267 (edge_badness) ... this one; fix linebreaks.
6268 (update_edge_key): Update call of edge_baddness; add
6269 detailed dump about queue updates.
6270 (update_caller_keys): Use can_inline_edge_p and
6271 want_inline_small_function_p.
6272 (cgraph_decide_recursive_inlining): Rename to...
6273 (recursive_inlining): Use can_inline_edge_p and
6274 want_inline_self_recursive_call_p; simplify and remove no longer
6275 valid FIXME.
6276 (cgraph_set_inline_failed): Remove.
6277 (add_new_edges_to_heap): Use can_inline_edge_p and
6278 want_inline_small_function_p.
6279 (cgraph_decide_inlining_of_small_functions): Rename to ...
6280 (inline_small_functions): ... this one; cleanup; use
6281 can/want predicates; cleanup debug ouput; work edges till fibheap
6282 is exhausted and do not stop once unit growth is reached; remove
6283 later loop processing remaining edges.
6284 (cgraph_flatten): Rename to ...
6285 (flatten_function): ... this one; use can_inline_edge_p
6286 and can_early_inline_edge_p predicates.
6287 (cgraph_decide_inlining): Rename to ...
6288 (ipa_inline): ... this one; remove unreachable nodes before
6289 inlining functions called once; simplify the pass.
6290 (cgraph_perform_always_inlining): Rename to ...
6291 (inline_always_inline_functions): ... this one; use
6292 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
6293 (cgraph_decide_inlining_incrementally): Rename to ...
6294 (early_inline_small_functions): ... this one; simplify
6295 using new predicates; cleanup; make dumps prettier.
6296 (cgraph_early_inlining): Rename to ...
6297 (early_inliner): newer inline regular functions into always-inlines;
6298 fix updating of call stmt summaries.
6299 (pass_early_inline): Update for new names.
6300 (inline_transform): Fix formating.
6301 (gate_cgraph_decide_inlining): Rename to ...
6302 (pass_ipa_inline): ... this one.
6303 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
6304 * ipa-inline-analysis.c (dump_inline_summary): Update.
6305 (compute_inline_parameters): Do not compute disregard_inline_limits;
6306 look for mismatching arguments.
6307 (estimate_growth): Fix handlig of non-trivial self recursion.
6308 (inline_read_summary): Do not read info->disregard_inline_limits.
6309 (inline_write_summary): Do not write info->disregard_inline_limits.
6310 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
6311 and move all checks into can_inline_edge_p predicate; re-enable code
6312 comparing optimization levels.
6313 (expand_call_inline): Do not test inline_forbidden_into_p.
6314 * Makefile.in (ipa-inline.o): Update arguments.
6315
6316 2011-04-17 Revital Eres <revital.eres@linaro.org>
6317
6318 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
6319
6320 2011-04-17 Revital Eres <revital.eres@linaro.org>
6321
6322 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
6323
6324 2011-04-17 Michael Matz <matz@suse.de>
6325
6326 PR tree-optimization/48622
6327 PR lto/48645
6328 * ipa-inline-analysis.c (inline_read_summary): Read size/time
6329 in same order as they're written.
6330
6331 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6332
6333 * config/pa/predicates.md: Reorganize and simplify predicates.
6334 Eliminate duplicate code checks.
6335 (arith_operand): Rename to arith14_operand
6336 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
6337 * config/pa/pa.md: Use renamed operands.
6338 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
6339 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
6340 arith11_operand, adddi3_operand, indexed_memory_operand,
6341 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
6342 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
6343 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
6344 move_dest_operand, move_src_operand, prefetch_cc_operand,
6345 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
6346 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
6347 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
6348 div_operand, int5_operand, movb_comparison_operator,
6349 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
6350 arith_double_operand, ireg_operand, lhs_lshift_operand,
6351 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
6352 integer_store_memory_operand): Likewise.
6353 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
6354 (integer_store_memory_operand, read_only_operand,
6355 function_label_operand, borx_reg_operand,
6356 non_hard_reg_operand): Likewise.
6357 (eq_neq_comparison_operator): Delete unused operator.
6358 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
6359 function_label_operand.
6360 (emit_move_sequence): Likewise.
6361
6362 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
6363
6364 * config/i386/sse.md (sseunpackmode): New mode attribute.
6365 (ssepackmode): Ditto.
6366 (vec_pack_trunc_<mode>): Macroize expander from
6367 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
6368 (vec_unpacks_lo_<mode>): Macroize expander from
6369 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6370 (vec_unpacks_hi_<mode>): Macroize expander from
6371 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6372 (vec_unpacku_lo_<mode>): Macroize expander from
6373 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6374 (vec_unpacku_hi_<mode>): Macroize expander from
6375 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6376 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
6377 ix86_expand_sse4_unpack.
6378 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
6379
6380 2011-04-16 Jan Hubicka <jh@suse.cz>
6381
6382 * cgraphbuild.c: Include ipa-inline.h.
6383 (reset_inline_failed): Use initialize_inline_failed.
6384 * cgraph.c: Include ipa-inline.h.
6385 (cgraph_create_node_1): Do not initialize estimated_growth.
6386 (initialize_inline_failed): More to ipa-inline-analysis.c
6387 (dump_cgraph_node): Do not dump inline flags.
6388 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
6389 and disregard_inline_limits flags.
6390 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
6391 time, size, estimated_growth.
6392 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
6393 Update.
6394 * cgraphunit.c (cgraph_decide_is_function_needed): Use
6395 DECL_DISREGARD_INLINE_LIMITS.
6396 (cgraph_analyze_function): Do not initialize
6397 node->local.disregard_inline_limits.
6398 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
6399 inlinable, versionable and disregard_inline_limits.
6400 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
6401 cgraph_check_inline_limits, cgraph_default_inline_p,
6402 cgraph_edge_badness, update_caller_keys, update_callee_keys,
6403 add_new_edges_to_heap): Update.
6404 (cgraph_decide_inlining_of_small_function): Update; set
6405 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
6406 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
6407 cgraph_decide_inlining_incrementally): Update.
6408 * ipa-inline.h (inline_summary): Add inlinable, versionable,
6409 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
6410 time, size and estimated_growth parameters.
6411 (estimate_edge_growth): Update.
6412 (initialize_inline_failed): Declare.
6413 * ipa-split.c: Include ipa-inline.h
6414 (execute_split_functions): Update.
6415 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
6416 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
6417 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
6418 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
6419 estimated_growth to INT_MIN.
6420 (inline_node_duplication_hook): Likewise.
6421 (dump_inline_summary): Dump new fields.
6422 (compute_inline_parameters): Update.
6423 (estimate_edge_time, estimate_time_after_inlining,
6424 estimate_size_after_inlining, estimate_growth, inline_read_summary,
6425 inline_write_summary):
6426 (initialize_inline_failed): Move here from cgraph.c.
6427 * tree-sra.c: Include ipa-inline.h.
6428 (ipa_sra_preliminary_function_checks): Update.
6429 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
6430 ipa-inline.h.
6431
6432 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
6433
6434 * config/i386/sse.md (V16): New mode iterator.
6435 (VI1, VI8): Ditto.
6436 (AVXMODEQI, AVXMODEDI): Remove.
6437 (sse2, sse3): New mode attribute.
6438 (mov<mode>): Use V16 mode iterator.
6439 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
6440 (push<mode>1): Use V16 mode iterator.
6441 (movmisalign<mode>): Ditto.
6442 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6443 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
6444 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6445 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
6446 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
6447 avx_movdqu<avxmodesuffix>.
6448 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
6449 *avx_movdqu<avxmodesuffix>.
6450 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
6451 avx_lddqu<avxmodesuffix>.
6452 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
6453 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
6454 avx_movnt<AVXMODEDI:mode>.
6455 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
6456 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
6457
6458 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
6459
6460 PR target/48629
6461 * haifa-sched.c (prune_ready_list, schedule_block): Use
6462 sched_pressure_p rather than flag_sched_pressure.
6463
6464 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
6465
6466 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6467 cgraph_get_node instead of cgraph_get_create_node.
6468
6469 2011-04-15 Jakub Jelinek <jakub@redhat.com>
6470
6471 * cfgexpand.c (expand_debug_expr): Use
6472 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
6473
6474 2011-04-15 Michael Matz <matz@suse.de>
6475
6476 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
6477 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
6478 * function.c (gimplify_parameters): Ditto.
6479 * gimplify.c (gimplify_vla_decl): Ditto.
6480
6481 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
6482 (gimple_call_set_alloca_for_var): New inline function.
6483 (gimple_call_alloca_for_var_p): Ditto.
6484 * gimple.c (gimple_build_call_from_tree): Remember
6485 CALL_ALLOCA_FOR_VAR_P state.
6486 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
6487
6488 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
6489 calls if they were for VLA objects.
6490
6491 2011-04-15 Martin Jambor <mjambor@suse.cz>
6492
6493 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
6494 of ADR_EXPRs.
6495
6496 2011-04-15 Martin Jambor <mjambor@suse.cz>
6497
6498 PR middle-end/48601
6499 * tree-emutls.c (lower_emutls_function_body): Call
6500 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
6501 result is non-NULL.
6502
6503 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
6504
6505 * c-decl.c (detect_field_duplicates): Call
6506 objc_detect_field_duplicates instead of objc_get_interface_ivars.
6507
6508 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
6509
6510 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
6511 * gimple.c (gimple_asm_clobbers_memory_p): Define.
6512 * ipa-pure-const.c (check_stmt): Call it.
6513 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
6514
6515 2011-04-15 Richard Guenther <rguenther@suse.de>
6516
6517 PR tree-optimization/48290
6518 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
6519 Properly decide inhibiting propagation based on the valueized
6520 operand. Do loop-closed SSA form preserving here ...
6521 (init_copy_prop): ... not here.
6522
6523 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
6524
6525 PR target/48612
6526 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
6527 (*ieee_smax<mode>3): Likewise.
6528
6529 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6530
6531 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
6532 Replace match_operand with match_dup for the third operand in
6533 these expanders.
6534
6535 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
6536
6537 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
6538 to track processing of conditionals. Update all callers.
6539 (try_combine, simplify_if_then_else): Update.
6540
6541 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
6542
6543 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
6544 -fsched-pressure.
6545
6546 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
6547
6548 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
6549 instead of match_operand for operand 3.
6550
6551 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
6552
6553 * recog.h (insn_operand_data): Add an "allows_mem" field.
6554 * genoutput.c (output_operand_data): Initialize it.
6555 * optabs.c (maybe_legitimize_operand_same_code): New function.
6556 (maybe_legitimize_operand): Use it when matching the original
6557 op->value.
6558
6559 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
6560
6561 * gimplify.c: Fix issues in comments throughout.
6562 (voidify_wrapper_expr): Fix long line.
6563 (build_stack_save_restore): Likewise.
6564 (gimplify_loop_expr): Likewise.
6565 (gimplify_compound_lval): Likewise.
6566 (gimplify_init_ctor_eval): Likewise.
6567 (gimplify_modify_expr_rhs): Likewise.
6568 (omp_notice_threadprivate_variable): Likewise.
6569
6570 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
6571
6572 * cfgexpand.c (expand_call_stmt): Convert the function type to the
6573 original one if this is not a builtin function.
6574
6575 2011-04-14 Jakub Jelinek <jakub@redhat.com>
6576
6577 PR target/48605
6578 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
6579 offset it as needed based on top 2 bits in operands[3], change
6580 MEM mode to SFmode and mask those 2 bits away from operands[3].
6581
6582 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
6583
6584 * c-parser.c (c_parser_objc_protocol_definition): Updated for
6585 change from objc_declare_protocols() to objc_declare_protocol().
6586
6587 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
6588
6589 * config/i386/sse.md (sse4_1): New mode attribute.
6590 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
6591 avx_blend<ssemodesuffix><avxmodesuffix> and
6592 sse4_1_blend<ssemodesuffix> using VF mode iterator.
6593 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
6594 avx_blendv<ssemodesuffix><avxmodesuffix> and
6595 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
6596 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
6597 avx_dp<ssemodesuffix><avxmodesuffix> and
6598 sse4_1_dp<ssemodesuffix> using VF mode iterator.
6599 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
6600 (sse4_1_packusdw): Merge with *avx_packusdw.
6601 (sse4_1_pblendvb): Merge with *avx_pblendvb.
6602 (sse4_1_pblendw): Merge with *avx_pblendw.
6603 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
6604 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
6605 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
6606 VF mode iterator.
6607 (sse4_1_round<ssescalarmodesuffix>): Merge with
6608 *avx_round<ssescalarmodesuffix>.
6609 (aesenc): Merge with *avx_aesenc.
6610 (aesenclast): Merge with *avx_aesenclast.
6611 (aesdec): Merge with *avx_aesdec.
6612 (aesdeclast): Merge with *avx_aesdeclast.
6613 (pclmulqdq): Merge with *pclmulqdq.
6614 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
6615 New predicate.
6616 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
6617
6618 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
6619
6620 PR middle-end/48608
6621 * cfgexpand.c (get_decl_align_unit): Renamed to ...
6622 (align_local_variable): This. Update DECL_ALIGN.
6623 (add_stack_var): Updated.
6624 (expand_one_stack_var): Likewise.
6625
6626 2011-04-14 Richard Guenther <rguenther@suse.de>
6627
6628 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
6629 Remove.
6630 (dse_initialize_block_local_data, dse_leave_block,
6631 record_voperand_set, get_stmt_uid): Likewise.
6632 (dse_possible_dead_store_p): Allow any kind of killing stmt.
6633 (dse_optimize_stmt): Remove voperand set handling code.
6634 Simplify and improve to handle any kind of killing stmt.
6635 (dse_record_phi): Remove.
6636 (dse_enter_block): Simplify.
6637 (tree_ssa_dse): Likewise.
6638 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
6639
6640 2011-04-14 Jan Hubicka <jh@suse.cz>
6641
6642 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
6643 * cgraph.h (struct inline_summary): Move to ipa-inline.h
6644 (cgraph_local_info): Remove inline_summary.
6645 * ipa-cp.c: Include ipa-inline.h.
6646 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
6647 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
6648 accesor.
6649 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
6650 (input_overwrite_node): Do not set inline summary.
6651 (input_node): Do not stream inline summary.
6652 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
6653 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
6654 growth; we do not have inline parameters computed for that anyway.
6655 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
6656 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
6657 (inline_summary_t): New type and VECtor.
6658 (debug_inline_summary, dump_inline_summaries): Declare.
6659 (inline_summary): Use VOCtor.
6660 (estimate_edge_growth): Kill hack computing call stmt size directly.
6661 * lto-section-in.c (lto_section_name): Add inline section.
6662 * ipa-inline-analysis.c: Include lto-streamer.h
6663 (node_removal_hook_holder, node_duplication_hook_holder): New holders
6664 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
6665 (inline_summary_vec): Define.
6666 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
6667 dump_inline_summaries): New functions.
6668 (estimate_function_body_sizes): Properly compute size/time of outgoing
6669 calls.
6670 (compute_inline_parameters): Alloc inline_summary; do not compute
6671 size/time of incomming calls.
6672 (estimate_edge_time): Avoid missing time summary hack.
6673 (inline_read_summary): Read inline summary info.
6674 (inline_write_summary): Write inline summary info.
6675 (inline_free_summary): Free all hooks and inline summary vector.
6676 * lto-streamer.h: Add LTO_section_inline_summary section.
6677 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
6678 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
6679
6680 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6681
6682 * tree-vectorizer.h (vect_strided_store_supported): Add a
6683 HOST_WIDE_INT argument.
6684 (vect_strided_load_supported): Likewise.
6685 (vect_permute_store_chain): Return void.
6686 (vect_transform_strided_load): Likewise.
6687 (vect_permute_load_chain): Delete.
6688 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
6689 count argument. Check that the count is a power of two.
6690 (vect_strided_load_supported): Likewise.
6691 (vect_permute_store_chain): Return void. Update after above changes.
6692 Assert that the access is supported.
6693 (vect_permute_load_chain): Likewise.
6694 (vect_transform_strided_load): Return void.
6695 * tree-vect-stmts.c (vectorizable_store): Update calls after
6696 above interface changes.
6697 (vectorizable_load): Likewise.
6698 (vect_analyze_stmt): Don't check for strided powers of two here.
6699
6700 2011-04-14 Richard Guenther <rguenther@suse.de>
6701
6702 PR tree-optimization/48590
6703 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6704 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6705 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
6706 BUILT_IN_STACK_SAVE.
6707 * tree-ssa-dce.c (propagate_necessity): Handle
6708 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6709
6710 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
6711
6712 * c-parser.c (c_parser_objc_class_declaration): Updated call to
6713 objc_declare_class.
6714
6715 2011-04-14 Richard Guenther <rguenther@suse.de>
6716
6717 * tree.h (get_object_alignment_1): Declare.
6718 * builtins.c (get_object_alignment_1): Split out worker from ...
6719 (get_object_alignment): ... here.
6720 * fold-const.c (get_pointer_modulus_and_residue): Use
6721 get_object_alignment_1.
6722
6723 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6724
6725 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
6726 type parameter.
6727 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
6728 parameter. Generalise code to handle arrays as well as vectors.
6729 (vect_setup_realignment): Update accordingly.
6730 * tree-vect-stmts.c (vectorizable_store): Likewise.
6731 (vectorizable_load): Likewise.
6732
6733 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6734
6735 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
6736 within the per-copy loop.
6737
6738 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6739
6740 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
6741 in the dump file.
6742
6743 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6744
6745 * doc/options.texi (Negative): Explicitly mention that the
6746 Negative chain must be circular.
6747
6748 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
6749
6750 * function.h (block_chainon): Declare.
6751 * function.c (block_chainon): Define.
6752
6753 2011-04-14 Anatoly Sokolov <aesok@post.ru>
6754 Eric Weddington <eric.weddington@atmel.com>
6755 Georg-Johann Lay <avr@gjlay.de>
6756
6757 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
6758 New Includes
6759 (avr_init_builtins, avr_expand_builtin,
6760 avr_expand_delay_cycles, avr_expand_unop_builtin,
6761 avr_expand_binop_builtin ): New functions.
6762 (avr_builtin_id): New enum
6763 (struct avr_builtin_description): New struct
6764 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
6765 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
6766
6767 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
6768 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
6769 UNSPECV_DELAY_CYCLES): new enumeration values
6770 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6771 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6772 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6773 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6774 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6775 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6776 "fmulsu"): New insns
6777
6778 * config/avr/avr-c.c: fix line endings
6779 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6780 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6781 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6782 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6783 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6784
6785 * doc/extend.texi (AVR Built-in Functions): New node
6786 (Target Builtins): Add documentation of AVR
6787 built-in functions.
6788
6789 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
6790
6791 PR target/44643
6792 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6793 alone. Error if non-const data has attribute progmem.
6794
6795 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6796
6797 * tree.h (struct tree_constructor): Include tree_typed instead of
6798 tree_common.
6799 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6800 TS_TYPED instead of TS_COMMON.
6801
6802 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
6803
6804 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6805 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6806 (sse2_psadbw): Merge with *avx_psadbw.
6807 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6808 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6809 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6810 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6811 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6812 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6813 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6814 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6815 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6816 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6817 (ssse3_palignrti): Merge with *avx_palignrti.
6818
6819 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6820
6821 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6822 * tree-ssanames.c (fini_ssanames): VEC_free it.
6823 (make_ssa_name_fn): Update for VECness of free_ssanames.
6824 (release_ssa_name, release_dead_ssa_names): Likewise.
6825 * tree.h (struct tree_ssa_name): Include tree_typed instead of
6826 tree_common.
6827 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6828 TS_TYPED instead of TS_COMMON.
6829
6830 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6831
6832 * postreload-gcse.c (gcse_after_reload_main): Add calls to
6833 statistics_counter_event.
6834 * tree-ssa-copyrename.c (stats): Define.
6835 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
6836 statistics_counter_event.
6837 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6838 (bswap_stats, widen_mul_stats): Define.
6839 (insert_reciprocals): Increment rdivs_inserted.
6840 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
6841 rfuncs_inserted. Add calls to statistics_counter_event.
6842 (execute_cse_sincos_1): Increment inserted.
6843 (execute_cse_sincos): Zeroize sincos_stats. Add call to
6844 statistics_counter_event.
6845 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
6846 of bswap_stats. Add calls to statistics_counter_event.
6847 (convert_mult_to_widen): Increment widen_mults_inserted.
6848 (convert_plusminus_to_widen): Increment maccs_inserted.
6849 (convert_mult_to_fma): Increment fmas_inserted.
6850 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
6851 calls to statistics_counter_event.
6852
6853 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
6854
6855 PR rtl-optimization/48455
6856 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6857 `temp_costs->mem_cost'.
6858
6859 2011-04-13 Jan Hubicka <jh@suse.cz>
6860
6861 * ipa-inline.h: New file.
6862 * ipa-inline-analysis.c: New file. Broken out of ...
6863 * ipa-inline.c: ... this file; update toplevel comment;
6864 include ipa-inline.h
6865 (inline_summary): Move to ipa-inline.h
6866 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6867 ipa-inline-analysis.c.
6868 (cgraph_estimate_time_after_inlining): Rename to
6869 estiamte_time_after_inlining; move to ipa-inline-analysis.c
6870 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6871 to estimate_edge_growth.
6872 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6873 rename to estimate_size_after_inlining.
6874 (cgraph_mark_inline_edge): Update for new naming convention.
6875 (cgraph_check_inline_limits): Likewise.
6876 (cgraph_edge_badness): Likewise.
6877 (cgraph_decide_recursive_inlining): Likewise.
6878 (cgraph_decide_inlining_of_small_functions): Likewise.
6879 (cgraph_decide_inlining_incrementally): Likewise.
6880 (cgraph_estimate_growth): Rename to estimate_growth; move to
6881 ipa-inline-analysis.c.
6882 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6883 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6884 (compute_inline_parameters): Likewise.
6885 (compute_inline_parameters_for_current): Likewise.
6886 (pass_inline_parameters): Likewise.
6887 (inline_indirect_intraprocedural_analysis): Likewise.
6888 (analyze_function): Rename to inline_analyze_function; likewise.
6889 (add_new_function): Move to ipa-inline-analysis.c.
6890 (inline_generate_summary): Likewise.
6891 (inline_read_summary): Likewise.
6892 (inline_write_summary): Likewise.
6893 * Makefile.in (ipa-inline-analysis.c): New file.
6894
6895 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6896
6897 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6898 * configure: Regenerate.
6899
6900 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6901
6902 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6903 instead of tree_common.
6904 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6905 Likewise.
6906 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6907 TS_TYPED rather than TS_COMMON.
6908 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6909
6910 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
6911
6912 PR target/45263
6913 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6914 r20 around calls of __tablejump_elpm__
6915
6916 2011-04-13 Jakub Jelinek <jakub@redhat.com>
6917
6918 PR middle-end/48591
6919 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6920 NULL.
6921 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6922
6923 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
6924
6925 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6926 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6927 (cfi_vec): New typedef.
6928 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6929 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6930 (cie_cfi_vec): New static variable.
6931 (cie_cfi_head): Delete.
6932 (add_cfi): Accept a cfi_vec * as first argument. All callers and
6933 declaration changed. Use vector rather than list operations.
6934 (new_cfi): Don't initialize the dw_cfi_next field.
6935 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6936 rather than list operations.
6937 (lookup_cfa): Use vector rather than list operations.
6938 (output_cfis): New argument upto. Accept a cfi_vec rather than
6939 a dw_cfi_ref list head as argument. All callers changed.
6940 Iterate over the vector using upto as a maximum index.
6941 (output_all_cfis): New static function.
6942 (output_fde): Use vector rather than list operations. Use the
6943 new upto argument for output_cfis rather than manipulating a
6944 list.
6945 (dwarf2out_begin_prologue): Change initializations to match
6946 new struct members.
6947 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6948 from the vector length rather than searching for the end of a list.
6949 Use output_all_cfis.
6950 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6951
6952 2011-04-13 Nick Clifton <nickc@redhat.com>
6953
6954 * config/rx/rx.md (movmemsi): Do not use this pattern when
6955 volatile pointers are involved.
6956
6957 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
6958
6959 * config/i386/sse.md (pinsrbits): Remove.
6960 (sse2_packsswb): Merge with *avx_packsswb.
6961 (sse2_packssdw): Merge with *avx_packssdw.
6962 (sse2_packuswb): Merge with *avx_packuswb.
6963 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6964 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6965 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6966 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6967 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6968 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6969 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6970 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6971 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6972 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6973 (sse2_loadld): Merge with *avx_loadld.
6974 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6975 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6976 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6977 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6978 (vec_concatv2di): Merge with *vec_concatv2di_avx.
6979
6980 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
6981
6982 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6983 calling TREE_CHAIN.
6984 * print-tree.c (print_node): Likewise.
6985 * tree-inline.c (copy_tree_r): Likewise.
6986 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6987 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6988 instead of TS_COMMON.
6989 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6990 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6991 (copy_node_stat): Zero TREE_CHAIN only if necessary.
6992 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6993 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6994 ...and these...
6995 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6996 * tree.h: ...here.
6997 (TREE_CHAIN): Check for a TS_COMMON structure.
6998 (TREE_TYPE): Check for a TS_TYPED structure.
6999
7000 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
7001
7002 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
7003 cgraph_get_create_node instead of cgraph_node.
7004
7005 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
7006
7007 * c-parser.c (c_parser_initelt): Updated call to
7008 objc_build_message_expr.
7009 (c_parser_postfix_expression): Likewise.
7010
7011 2011-04-12 Kai Tietz <ktietz@redhat.com>
7012
7013 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
7014 MASK_MS_BITFIELD_LAYOUT bit.
7015
7016 2011-04-12 Jakub Jelinek <jakub@redhat.com>
7017
7018 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
7019 assert it is always true.
7020 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
7021 moves.
7022
7023 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
7024
7025 * c-parser.c (c_lex_one_token): Rewritten conditional used when
7026 compiling Objective-C to be more efficient.
7027
7028 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
7029
7030 * opts-common.c (decode_cmdline_options_to_array): Remove variable
7031 argv_copied.
7032
7033 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
7034
7035 * recog.h, genoutput.c, optabs.c: Revert last patch.
7036
7037 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7038
7039 PR target/48090
7040 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
7041
7042 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
7043
7044 * recog.h (insn_operand_data): Add an "allows_mem" field.
7045 * genoutput.c (output_operand_data): Initialize it.
7046 * optabs.c (maybe_legitimize_operand_same_code): New function.
7047 (maybe_legitimize_operand): Use it when matching the original
7048 op->value.
7049
7050 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
7051
7052 * genpreds.c (process_define_predicate): Move most processing
7053 to gensupport.c. Continue to validate the expression.
7054 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
7055 (process_define_predicate): Move processing to gensupport.c.
7056 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
7057 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
7058 (compute_predicate_codes): Moved from genrecog.c. Add lineno
7059 argument.
7060 (valid_predicate_name_p): New function, split out from old
7061 genpreds.c:process_define_predicate.
7062 (process_define_predicate): New function, combining code from
7063 old genpreds.c and genrecog.c functions.
7064 (process_rtx): Call it for DEFINE_PREDICATE and
7065 DEFINE_SPECIAL_PREDICATE.
7066
7067 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
7068
7069 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
7070 size of a '%A' memory reference.
7071 (T_DREG, T_QREG): New neon_builtin_type_bits.
7072 (arm_init_neon_builtins): Assert that the load and store operands
7073 are neon_struct_operands.
7074 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
7075 (NEON_ARG_MEMORY): New builtin_arg.
7076 (neon_dereference_pointer): New function.
7077 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
7078 Handle NEON_ARG_MEMORY.
7079 (arm_expand_neon_builtin): Update after above interface changes.
7080 Use NEON_ARG_MEMORY for loads and stores.
7081 * config/arm/predicates.md (neon_struct_operand): New predicate.
7082 * config/arm/iterators.md (V_two_elem): Tweak formatting.
7083 (V_three_elem): Use BLKmode for accesses that have no associated mode.
7084 (V_four_elem): Tweak formatting.
7085 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
7086 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
7087 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
7088 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
7089 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
7090 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
7091 (neon_vst4<mode>): Replace pointer operand with a memory operand.
7092 Use %A in the output template.
7093 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
7094 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
7095 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
7096 the width of the memory access. Remove post-increment.
7097 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
7098
7099 2011-04-12 Nick Clifton <nickc@redhat.com>
7100
7101 * config/v850/v850.c (expand_prologue): Do not use the CALLT
7102 instruction for interrupt handlers if the target is the basic V850
7103 architecture.
7104 (expand_epilogue): Likewise.
7105
7106 2011-04-12 Jakub Jelinek <jakub@redhat.com>
7107
7108 PR rtl-optimization/48549
7109 * combine.c (propagate_for_debug): Also stop after BB_END of
7110 this_basic_block. Process LAST and just stop processing after it.
7111 (combine_instructions): If last_combined_insn has been deleted,
7112 set last_combined_insn to its PREV_INSN.
7113
7114 2011-04-12 Richard Guenther <rguenther@suse.de>
7115
7116 PR tree-optimization/46076
7117 * gimple.h (struct gimple_statement_call): Add fntype field.
7118 (gimple_call_fntype): Adjust.
7119 (gimple_call_set_fntype): New function.
7120 * gimple.c (gimple_build_call_1): Set the call function type.
7121 * gimplify.c (gimplify_call_expr): Preserve the function
7122 type the frontend used for the call.
7123 (gimplify_modify_expr): Likewise.
7124 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
7125 function type.
7126 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
7127 function type.
7128 * tree-ssa.c (useless_type_conversion_p): Function pointer
7129 conversions are useless.
7130
7131 2011-04-12 Martin Jambor <mjambor@suse.cz>
7132
7133 * cgraph.h (cgraph_node): Remove function declaration.
7134 (cgraph_create_node): Declare.
7135 (cgraph_get_create_node): Likewise.
7136 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
7137 Updated all callers.
7138 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
7139 the decl does not already exist. Call cgraph_get_create_node instead
7140 of cgraph_node.
7141 (cgraph_get_create_node): New function.
7142 (cgraph_same_body_alias): Update comment.
7143 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
7144 assert it does not return NULL.
7145 (cgraph_update_edges_for_call_stmt): Likewise.
7146 (cgraph_clone_edge): Likewise.
7147 (cgraph_create_virtual_clone): Likewise.
7148 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
7149 instead of cgraph_node.
7150 (cgraph_add_new_function): Call cgraph_create_node or
7151 cgraph_get_create_node instead of cgraph_node.
7152 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
7153 instead of cgraph_node.
7154 (record_eh_tables): Likewise.
7155 (mark_address): Likewise.
7156 (mark_load): Likewise.
7157 (build_cgraph_edges): Call cgraph_get_create_node instead
7158 of cgraph_node.
7159 (rebuild_cgraph_edges): Likewise.
7160 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
7161 instead of cgraph_node.
7162 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
7163 cgraph_node.
7164 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
7165 cgraph_create_node instead of cgraph_node.
7166 * c-decl.c (finish_function): Call cgraph_get_create_node instead
7167 of cgraph_node.
7168 * lto-cgraph.c (input_node): Likewise.
7169 * lto-streamer-in.c (input_function): Likewise.
7170 * varasm.c (mark_decl_referenced): Likewise.
7171 (assemble_alias): Likewise.
7172
7173 2011-04-12 Martin Jambor <mjambor@suse.cz>
7174
7175 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
7176 instead of cgraph_node and assert it does not return NULL.
7177 * lto-streamer-in.c (lto_read_body): Likewise.
7178 * omp-low.c (new_omp_context): Likewise.
7179 (create_task_copyfn): Likewise.
7180 * tree-emutls.c (lower_emutls_function_body): Likewise.
7181 * matrix-reorg.c (transform_allocation_sites): Likewise.
7182
7183 2011-04-12 Jakub Jelinek <jakub@redhat.com>
7184
7185 PR c/48552
7186 * c-typeck.c (build_asm_expr): Error out on attempts to use
7187 void type outputs or inputs for constraints that allow reg or
7188 don't allow memory.
7189
7190 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
7191 Richard Earnshaw <rearnsha@arm.com>
7192
7193 PR target/48250
7194 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
7195 to use sign-magnitude offsets. Reject unsupported unaligned
7196 cases. Add detailed description in comments.
7197 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
7198 condition from TARGET_32BIT to TARGET_ARM.
7199
7200 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
7201
7202 * tree.h (struct typed_tree): New.
7203 (struct tree_common): Include it instead of tree_base.
7204 (TREE_TYPE): Update for new location of type field.
7205 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
7206 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
7207 (union tree_node): Add typed field.
7208 * treestruct.def (TS_TYPED): New.
7209 * lto-streamer.c (check_handled_ts_structures): Handle it.
7210 * tree.c (MARK_TS_TYPED): New macro.
7211 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
7212
7213 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
7214
7215 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
7216 (force_nonfallthru): Do not alter the loop nest if no basic block
7217 was created.
7218
7219 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
7220
7221 * config/i386/sse.md (VI): New mode iterator.
7222 (SSEMODEI): Remove.
7223 (AVX256MODEI): Ditto.
7224 (AVXMODEF4P): Ditto.
7225 (avxvecpsmode): Ditto.
7226 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
7227 (sse2_andnot<mode>3): New expander.
7228 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
7229 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
7230 (<any_logic:code><mode>3): Use VI mode iterator.
7231 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
7232 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
7233 (*andnottf3): Handle AVX three-operand constraints.
7234 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
7235
7236 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7237 Robert Millan <rmh@gnu.org>
7238
7239 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
7240 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
7241 GNU_USER_DYNAMIC_LINKER64): Define.
7242 (REG_NAME): Don't undefine.
7243 (MD_UNWIND_SUPPORT): Undefine.
7244 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
7245 (REG_NAME): Don't undefine.
7246 (MD_UNWIND_SUPPORT): Undefine.
7247 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
7248
7249 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7250
7251 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
7252 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
7253
7254 2011-04-11 Xinliang David Li <davidxl@google.com>
7255
7256 * value-profile.c (check_ic_target): New function.
7257 (gimple_ic_transform): Sanity check indirect call target.
7258 * gimple-low.c (gimple_check_call_args): Interface change.
7259 (gimple_check_call_matching_types): New function.
7260 * tree-inline.c (tree_can_inline_p): Call new function.
7261
7262 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
7263
7264 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
7265 tree-pretty-print.h & realmpfr.h.
7266
7267 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
7268
7269 PR middle-end/48464
7270 * ira.c (setup_pressure_classes): Fix typo in loop condition.
7271 (setup_allocno_and_important_classes): Ditto.
7272
7273 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7274
7275 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
7276 GNU_USER_DYNAMIC_LINKER.
7277 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
7278 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7279 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
7280 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7281 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7282 GNU_USER_TARGET_OS_CPP_BUILTINS.
7283 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
7284 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7285 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7286 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7287 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
7288 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7289 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7290 GNU_USER_TARGET_OS_CPP_BUILTINS.
7291 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7292 GNU_USER_DYNAMIC_LINKER.
7293 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7294 GNU_USER_TARGET_OS_CPP_BUILTINS.
7295 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
7296 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7297 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
7298 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7299 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
7300 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
7301 GNU_USER_DYNAMIC_LINKER64): Remove.
7302 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
7303 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7304 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7305 GNU_USER_DYNAMIC_LINKER.
7306 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7307 GNU_USER_TARGET_OS_CPP_BUILTINS.
7308 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7309 GNU_USER_TARGET_OS_CPP_BUILTINS.
7310 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
7311 to GNU_USER_TARGET_OS_CPP_BUILTINS.
7312 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7313 GNU_USER_TARGET_OS_CPP_BUILTINS.
7314 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
7315 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
7316 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
7317 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
7318 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7319 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7320 GNU_USER_DYNAMIC_LINKER.
7321 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7322 GNU_USER_TARGET_OS_CPP_BUILTINS.
7323 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
7324 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7325 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7326 GNU_USER_DYNAMIC_LINKER.
7327 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7328 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7329 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
7330 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7331 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7332 GNU_USER_DYNAMIC_LINKER.
7333 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
7334 GNU_USER_DYNAMIC_LINKERN32.
7335 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
7336 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
7337 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
7338 GNU_USER_DYNAMIC_LINKER32.
7339 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
7340 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7341 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7342 GNU_USER_DYNAMIC_LINKER.
7343 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7344 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7345 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
7346 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7347 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7348 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
7349 GNU_USER_DYNAMIC_LINKER32.
7350 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
7351 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
7352 GNU_USER_DYNAMIC_LINKER.
7353 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
7354 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7355 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
7356 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
7357 GNU_USER_DYNAMIC_LINKER64.
7358 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
7359 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7360 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7361 GNU_USER_DYNAMIC_LINKER.
7362 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
7363 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7364 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7365 GNU_USER_DYNAMIC_LINKER.
7366 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
7367 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7368 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
7369 GNU_USER_DYNAMIC_LINKER32.
7370 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
7371 GNU_USER_DYNAMIC_LINKER64.
7372 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
7373 GNU_USER_DYNAMIC_LINKER64.
7374 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
7375 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7376 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
7377 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7378 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7379
7380 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7381
7382 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
7383 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
7384 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
7385 GNU_USER_DYNAMIC_LINKER.
7386 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
7387 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
7388 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
7389 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
7390 GNU_USER_DYNAMIC_LINKER64.
7391 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
7392 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
7393 GNU_USER_LINK_EMULATION.
7394 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
7395 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
7396 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
7397 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
7398 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
7399 CPP_SPEC, CC1_SPEC): Remove.
7400 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
7401 (GNU_USER_DYNAMIC_LINKER): Define.
7402 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
7403 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
7404 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
7405 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
7406 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
7407 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
7408 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
7409 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
7410 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
7411 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
7412 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
7413 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
7414 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
7415 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
7416 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
7417 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
7418 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7419 GNU_USER_DYNAMIC_LINKER.
7420 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7421 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
7422 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7423 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
7424 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7425 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
7426 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
7427 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
7428 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
7429 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
7430
7431 2011-04-11 Kai Tietz <ktietz@redhat.com>
7432
7433 PR target/9601
7434 PR target/11772
7435 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
7436 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
7437 comment.
7438 (ix86_is_msabi_thiscall): Removed.
7439 (ix86_is_type_thiscall): Likewise.
7440 (ix86_get_callcvt): New function.
7441 (ix86_comp_type_attributes): Simplify check.
7442 (ix86_function_regparm): Use ix86_get_callcvt for calling
7443 convention attribute checks.
7444 (ix86_return_pops_args): Likewise.
7445 (ix86_static_chain): Likewise.
7446 (x86_this_parameter): Likewise.
7447 (x86_output_mi_thunk): Likewise.
7448 (ix86_function_type_abi): Optimize check for types without attributes.
7449 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
7450 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
7451 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
7452 by flag-values.
7453 (IX86_BASE_CALLCVT): Helper macro.
7454 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
7455 Use ix86_get_callcvt for calling convention attribute checks and avoid
7456 symbol-decoration for stdcall in TARGET_RTD case.
7457 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
7458 Likewise.
7459 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
7460 for declaration.
7461
7462 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
7463
7464 * config/i386/sse.md (VI_128): New mode iterator.
7465 (VI12_128): Rename from SSEMODE12.
7466 (VI14_128): Rename from SSEMODE14.
7467 (VI124_128): New mode iterator.
7468 (VI24_128): Rename from SSEMODE248.
7469 (VI248_128): Rename from SSEMODE248.
7470 (SSEMODE124C8): Remove.
7471 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7472 (*sse2_<plusminus_insn><mode>3): Merge with
7473 *avx_<plusminus_insn><mode>3.
7474 (*mulv8hi3): Merge with *avx_mulv8hi3.
7475 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
7476 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
7477 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
7478 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
7479 (ashr<mode>3): Merge with *avx_ashr<mode>3.
7480 (lshr<mode>3): Merge with *avx_lshr<mode>3.
7481 (ashl<mode>3): Merge with *avx_ashl<mode>3.
7482 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
7483 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
7484 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7485 (*<smaxmin:code>v8hi3): Ditto.
7486 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
7487 (*<smaxmin:code>v16qi3): Ditto.
7488 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
7489 (*sse2_eq<mode>3): Ditto.
7490 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
7491 (*sse2_gt<mode>3): Ditto.
7492 (vcondv2di): Split out of vcond<mode>.
7493 (vconduv2di): Split out of vcondu<mode>.
7494
7495 2011-04-11 Richard Guenther <rguenther@suse.de>
7496
7497 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
7498 before calling tree_low_cst.
7499
7500 2011-04-11 Richard Guenther <rguenther@suse.de>
7501
7502 * stor-layout.c (layout_type): Compute all array index size operations
7503 in the original type.
7504 (initialize_sizetypes): Add comment.
7505 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
7506
7507 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7508
7509 * common.opt (Tbss=, Tdata=, Ttext=): New options.
7510
7511 2011-04-11 Martin Jambor <mjambor@suse.cz>
7512
7513 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
7514 of cgraph_node, handle NULL return value.
7515 (cgraph_global_info): Likewise.
7516 (cgraph_rtl_info): Likewise.
7517 * tree-inline.c (estimate_num_insns): Likewise.
7518 * gimplify.c (unshare_body): Likewise.
7519 (unvisit_body): Likewise.
7520 (gimplify_body): Likewise.
7521 * predict.c (optimize_function_for_size_p): Likewise.
7522 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7523 (call_may_clobber_ref_p_1): Likewise.
7524 * varasm.c (function_section_1): Likewise.
7525 (assemble_start_function): Likewise.
7526
7527 2011-04-11 Martin Jambor <mjambor@suse.cz>
7528
7529 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
7530 of cgraph_node.
7531 * final.c (rest_of_clean_state): Likewise.
7532 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
7533 * passes.c (pass_init_dump_file): Likewise.
7534 (execute_all_ipa_transforms): Likewise.
7535 (function_called_by_processed_nodes_p): Likewise.
7536 * predict.c (maybe_hot_frequency_p): Likewise.
7537 (probably_never_executed_bb_p): Likewise.
7538 (compute_function_frequency): Likewise.
7539 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
7540 (unnest_nesting_tree_1): Likewise.
7541 (lower_nested_functions): Likewise.
7542 * tree-optimize.c (execute_fixup_cfg): Likewise.
7543 (tree_rest_of_compilation): Likewise.
7544 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
7545 * tree-sra.c (ipa_early_sra): Likewise.
7546 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
7547 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
7548 * ipa.c (record_cdtor_fn): Likewise.
7549 * ipa-inline.c (cgraph_early_inlining): Likewise.
7550 (compute_inline_parameters_for_current): Likewise.
7551 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
7552 * ipa-pure-const.c (local_pure_const): Likewise.
7553 * ipa-split.c (split_function): Likewise.
7554 (execute_split_functions): Likewise.
7555 * cgraphbuild.c (build_cgraph_edges): Likewise.
7556 (rebuild_cgraph_edges): Likewise.
7557 (cgraph_rebuild_references): Likewise.
7558 (remove_cgraph_callee_edges): Likewise.
7559 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
7560 (verify_cgraph_node): Likewise.
7561 (cgraph_analyze_functions): Likewise.
7562 (cgraph_preserve_function_body_p): Likewise.
7563 (save_inline_function_body): Likewise.
7564 (save_inline_function_body): Likewise.
7565 * tree-inline.c (copy_bb): Likewise.
7566 (optimize_inline_calls): Likewise.
7567
7568 2011-04-11 Martin Jambor <mjambor@suse.cz>
7569
7570 PR tree-optimization/48195
7571 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
7572 ipa_check_create_edge_args.
7573 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
7574 ipa_check_create_edge_args.
7575 * ipa-inline.c (inline_generate_summary): Do not call
7576 ipa_check_create_node_params and ipa_check_create_edge_args.
7577 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
7578 ipa_check_create_edge_args.
7579
7580 2011-04-09 Anatoly Sokolov <aesok@post.ru>
7581
7582 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
7583 instead of loop.
7584 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
7585 * function.c (record_hard_reg_sets): Likewise.
7586 * ira.c (compute_regs_asm_clobbered): Likewise.
7587 * sched-deps.c (sched_analyze_1): Likewise.
7588 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
7589
7590 2011-04-09 Xinliang David Li <davidxl@google.com>
7591
7592 PR tree-optimization/PR48484
7593 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
7594 has_valid_pred lazily
7595
7596 2011-04-09 Duncan Sands <baldrick@free.fr>
7597
7598 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
7599
7600 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
7601
7602 * combine.c (combine_validate_cost): Adjust comments. Set registered
7603 cost of I0 to zero at the end, if any.
7604
7605 2011-04-08 Xinliang David Li <davidxl@google.com>
7606
7607 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
7608 to insane profile data.
7609
7610 2011-04-08 Xinliang David Li <davidxl@google.com>
7611
7612 * ipa-cp.c (ipcp_update_profiling): Correct
7613 negative scale factor due to insane profile data.
7614
7615 2011-04-08 Xinliang David Li <davidxl@google.com>
7616
7617 * final.c (dump_basic_block_info): New function.
7618 (final): Dump basic block.
7619 (final_scan_insn): Remove old dump.
7620
7621 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
7622
7623 PR target/47829
7624 * config.gcc (i386-*-freebsd): Disable unwind table generation for
7625 crtbegin/crtend.
7626
7627 2011-04-08 Michael Matz <matz@suse.de>
7628
7629 PR middle-end/48389
7630 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
7631 functions.
7632 (rebuild_jump_labels): Call rebuild_jump_labels_1.
7633 * rtl.h (rebuild_jump_labels_chain): Declare.
7634 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
7635 insns inserted on edges.
7636
7637 2011-04-08 Joseph Myers <joseph@codesourcery.com>
7638
7639 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
7640 * config/arm/arm-arches.def: New.
7641 * config/arm/arm-opts.h: New.
7642 * config/arm/genopt.sh: New.
7643 * config/arm/arm-tables.opt: New (generated).
7644 * config/arm/arm.c (arm_handle_option, arm_target_help,
7645 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
7646 (all_architectures): Get most table contents from arm-arches.def.
7647 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
7648 arm_selected_tune here.
7649 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
7650 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
7651 (march=, mcpu=, mtune=): Use Enum and Var.
7652 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
7653 (arm.o): Update dependencies.
7654
7655 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
7656
7657 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
7658 of header_file.
7659 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
7660 (write_typed_alloc_defns): Likewise.
7661 (main): Calls write_typed_alloc_defns with output_header.
7662
7663 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
7664
7665 PR inline-asm/48435
7666 * ira-color.c (setup_profitable_hard_regs): Add comments.
7667 Don't take prohibited hard regs into account.
7668 (setup_conflict_profitable_regs): Rename to
7669 get_conflict_profitable_regs.
7670 (check_hard_reg_p): Check prohibited hard regs.
7671
7672 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
7673
7674 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
7675 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
7676 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
7677
7678 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7679
7680 PR target/48366
7681 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
7682 move from floating point to shift amount register.
7683 (emit_move_sequence): Remove secondary reload support for floating
7684 point to shift amount amount register copies.
7685 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
7686 amount register copies.
7687 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
7688 register, return false if mode isn't a scalar integer mode.
7689 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
7690
7691 2011-04-08 Richard Guenther <rguenther@suse.de>
7692
7693 * gimple.c (gimple_call_flags): Remove kludge.
7694
7695 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7696
7697 * sel-sched.c (sel_region_init): Move call to
7698 sel_setup_region_sched_flags after setup_current_loop_nest.
7699
7700 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
7701
7702 PR rtl-optimization/48272
7703 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
7704 init_insn_reg_pressure_info. Adjust a caller.
7705 * sched-int.h (init_insn_reg_pressure_info): Declare.
7706 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
7707 when sched-pressure is enabled.
7708
7709 2011-04-08 Richard Guenther <rguenther@suse.de>
7710
7711 * gimple.c (gimple_set_modified): Do not queue calls to
7712 MODIFIED_NORETURN_CALLS here ...
7713 * tree-ssa-operands.c (update_stmt_operands): ... but here.
7714
7715 2011-04-08 Richard Guenther <rguenther@suse.de>
7716
7717 PR lto/48467
7718 * toplev.c (lang_dependent_init): Do not open asm_out_file
7719 in WPA mode, nor perform debug machinery initialization.
7720 (finalize): Do not unlink asm_out_file in WPA mode.
7721
7722 2011-04-08 Richard Guenther <rguenther@suse.de>
7723
7724 * gimple.h (gimple_call_fntype): New function.
7725 (gimple_call_return_type): Use it.
7726 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
7727 * gimple-low.c (gimple_check_call_args): Likewise.
7728 * gimple.c (gimple_call_flags): Likewise.
7729 (gimple_call_arg_flags): Likewise.
7730 (gimple_call_return_flags): Likewise.
7731 * tree-cfg.c (verify_gimple_call): Likewise.
7732 (do_warn_unused_result): Likewise.
7733 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7734 * value-prof.c (gimple_ic_transform): Fix fndecl check.
7735
7736 2011-04-08 Dmitry Melnik <dm@ispras.ru>
7737
7738 PR rtl-optimization/48235
7739 * sel-sched.c (code_motion_process_successors): Recompute the last
7740 insn in basic block if control flow changed.
7741 (code_motion_path_driver): Ditto. Recompute the first insn as well.
7742 Update condition for ilist_remove.
7743
7744 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7745
7746 PR rtl-optimization/48302
7747 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
7748 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
7749 it to record added preheader blocks.
7750 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
7751 on to sel_add_loop_preheaders.
7752 (sel_region_init): Move call to setup_current_loop_nest after
7753 sel_init_bbs.
7754
7755 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7756
7757 PR target/48273
7758 * cfgloop.h (loop_has_exit_edges): New helper.
7759 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
7760 non-clonable.
7761 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
7762 that have no exit edges.
7763
7764 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7765
7766 PR rtl-optimization/48442
7767 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
7768 all callers. Adjust assert.
7769
7770 2011-04-08 Jakub Jelinek <jakub@redhat.com>
7771
7772 PR tree-optimization/48377
7773 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7774 is_packed to true even for types with smaller TYPE_ALIGN than
7775 TYPE_SIZE.
7776
7777 2011-04-08 Richard Guenther <rguenther@suse.de>
7778
7779 PR bootstrap/48513
7780 * doc/tm.texi: Re-generate.
7781
7782 2011-04-08 Wei Guozhi <carrot@google.com>
7783
7784 PR target/47855
7785 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7786 * config/arm/arm.c (arm_attr_length_push_multi): New function.
7787 * config/arm/arm.md (*push_multi): Change the length computation to
7788 call a C function.
7789
7790 2011-04-08 Anatoly Sokolov <aesok@post.ru>
7791
7792 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7793 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7794 * doc/tm.texi: Regenerate.
7795 * system.h (ASM_OUTPUT_BSS): Poison.
7796 * varasm.c (asm_output_bss): Remove function.
7797 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7798
7799 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7800 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7801 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7802 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7803 Likewise.
7804 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7805 Likewise.
7806 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7807 Likewise.
7808 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7809
7810 2011-04-07 Joseph Myers <joseph@codesourcery.com>
7811
7812 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7813 EnumValue lines.
7814
7815 2011-04-07 Joseph Myers <joseph@codesourcery.com>
7816
7817 * config/m68k/m68k.c (m68k_handle_option): Don't handle
7818 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7819 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7820 OPT_mcpu32.
7821 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7822 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7823 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7824 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7825 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7826 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7827 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7828 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7829 options. Don't map other m68k options manually. Don't handle
7830 old-style options as canonical.
7831 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7832 * doc/install.texi (m68k-*-*): Document binutils version requirement.
7833
7834 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
7835
7836 * basic-block.h (force_nonfallthru): Move to...
7837 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7838 (force_nonfallthru): ...here.
7839 * cfghooks.c (force_nonfallthru): New function.
7840 * cfgrtl.c (force_nonfallthru): Rename into...
7841 (rtl_force_nonfallthru): ...this.
7842 (commit_one_edge_insertion): Do not set AUX field.
7843 (commit_edge_insertions): Do not discover new basic blocks.
7844 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7845 (cfg_layout_rtl_cfg_hooks): Likewise.
7846 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7847 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
7848 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7849
7850 2011-04-07 Anatoly Sokolov <aesok@post.ru>
7851
7852 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7853 Remove macros.
7854
7855 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
7856
7857 * config/i386/sse.md: Update copyright year.
7858 (avxcvtvecmode): Remove.
7859 (sse_movhlps): Merge with *avx_movhlps.
7860 (sse_movlhps): Merge with *avx_movlhps.
7861 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7862 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7863 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7864 (sse_loadhps): Merge with *avx_loadhps.
7865 (sse_storelps): Merge with *avx_storelps.
7866 (sse_loadlps): Merge with *avx_loadlps.
7867 (sse_movss): Merge with *avx_movss.
7868 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7869 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7870 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7871 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7872 (vec_set<mode>_0): Ditto.
7873 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7874 (sse4_1_insertps): Merge with *avx_insertps.
7875 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7876 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7877 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7878 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7879 (sse2_storehpd): Merge with *avx_storehpd.
7880 (sse2_loadhpd): Merge with *avx_loadhpd.
7881 (sse2_loadlpd): Merge with *avx_loadlpd.
7882 (sse2_movsd): Merge with *avx_movsd.
7883 (*vec_concatv2df): Merge with *vec_concatv2df.
7884
7885 2011-04-07 Jakub Jelinek <jakub@redhat.com>
7886
7887 PR debug/48343
7888 * combine.c (combine_instructions): Add last_combined_insn,
7889 update it if insn is after it, pass it to all try_combine calls.
7890 (try_combine): Add last_combined_insn parameter, pass it instead of
7891 i3 to propagate_for_debug.
7892
7893 2011-04-07 Nick Clifton <nickc@redhat.com>
7894
7895 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7896 to handle MDR <-> data register transfers.
7897 (movhi_internal): Likewise.
7898
7899 2011-04-07 Alan Modra <amodra@gmail.com>
7900
7901 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7902 previous stack info.
7903
7904 2011-04-07 Tom de Vries <tom@codesourcery.com>
7905
7906 PR target/43920
7907 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
7908 flow_find_cross_jump. Swap variables to implement backward replacement.
7909 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7910
7911 2011-04-07 Tom de Vries <tom@codesourcery.com>
7912
7913 PR target/43920
7914 * cfgcleanup.c (walk_to_nondebug_insn): New function.
7915 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
7916 and bb2.
7917 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7918 src1 or src2. Redirect edges to the last basic block. Update
7919 frequency and count on multiple basic blocks in case of fallthru.
7920
7921 2011-04-07 Tom de Vries <tom@codesourcery.com>
7922
7923 PR target/43920
7924 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7925 function.
7926 (old_insns_match_p): Change return type. Replace return false/true
7927 with return dir_none/dir_both. Use can_replace_by.
7928 (flow_find_cross_jump): Add dir_p parameter. Init replacement
7929 direction from dir_p. Register replacement direction in dir, last_dir
7930 and afterlast_dir. Handle new return type of old_insns_match_p using
7931 merge_dir. Return replacement direction in dir_p.
7932 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7933 return type of old_insns_match_p.
7934 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7935 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7936 flow_find_cross_jump.
7937 * basic-block.h (enum replace_direction): New type.
7938 (flow_find_cross_jump): Add parameter to declaration.
7939
7940 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
7941
7942 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7943 (AVXMODEDCVTPS2DQ): Ditto.
7944 (VEC_FLOAT_MODE): Ditto.
7945 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
7946 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7947 (<any_logic:code><mode>3): Use VF mode iterator.
7948 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7949 Use VF mode iterator.
7950 (copysign<mode>3): Use VF mode iterator.
7951 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
7952 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7953 (*<any_logic:code><MODEF:mode>3): Merge with
7954 *avx_<any_logic:code><MODEF:mode>3.
7955 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7956 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7957 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7958 (avx_cvtdq2ps<avxmodesuffix>): Remove.
7959 (sse2_cvtdq2ps): Use %v modifier.
7960 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7961 (avx_cvtps2dq<avxmodesuffix>): Remove.
7962 (sse2_cvtps2dq): Use %v modifier.
7963 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7964 (avx_cvttps2dq<avxmodesuffix>): Remove.
7965 (sse2_cvttps2dq): Use %v modifier.
7966 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7967 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7968 (sse2_cvtsd2siq): Fix insn template.
7969 (sse2_cvtsd2siq_2): Ditto.
7970 (sse2_cvttsd2siq): Ditto.
7971 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7972 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7973
7974 2011-04-06 Joseph Myers <joseph@codesourcery.com>
7975
7976 * gcov-io.c: Use GCC Runtime Library Exception.
7977
7978 2011-04-06 Jakub Jelinek <jakub@redhat.com>
7979
7980 PR debug/48466
7981 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7982 as base_reg whatever register reg has been eliminated to, instead
7983 of hardcoding STACK_POINTER_REGNUM.
7984
7985 2011-04-06 Joseph Myers <joseph@codesourcery.com>
7986
7987 * doc/tm.texi.in: Document C target hooks as separate from general
7988 target hooks.
7989 * doc/tm.texi: Regenerate.
7990 * genhooks.c (struct hook_desc): Add docname field.
7991 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
7992 docname field.
7993 (hook_array): Include c-target.def.
7994 (emit_documentation): Use docname field in output.
7995 (emit_init_macros): Take docname argument. Only emit definitions
7996 for hooks matching docname.
7997 (main): Expect additional arguments in all cases. Pass argument
7998 to emit_init_macros.
7999 * target.def: Move initial macro definitions and comments to
8000 target-hooks-macros.h.
8001 (gcc_targetcm): Move to c-family/c-target.def.
8002 * target.h (targetcm): Move declaration to c-family/c-target.h.
8003 * targhooks.c (default_handle_c_option): Move to
8004 c-family/c-opts.c.
8005 * targhooks.h (default_handle_c_option): Move declaration to
8006 c-family/c-common.h.
8007 * target-hooks-macros.h: New file.
8008 * config.gcc (target_has_targetcm): Define and use to add to
8009 c_target_objs and cxx_target_objs.
8010 * config/default-c.c: New file.
8011 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
8012 of target.h and target-def.h.
8013 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
8014 (darwin_objc_construct_string, darwin_cfstring_ref_p,
8015 darwin_check_cfstring_format_arg): Make static.
8016 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
8017 TARGET_STRING_OBJECT_REF_TYPE_P,
8018 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
8019 * config/darwin-protos.h (darwin_objc_construct_string,
8020 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
8021 declare.
8022 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
8023 TARGET_STRING_OBJECT_REF_TYPE_P,
8024 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
8025 * config/t-darwin (darwin-c.o): Update dependencies.
8026 * system.h (TARGET_HAS_TARGETCM): Poison.
8027 * Makefile.in (TARGET_H): Update.
8028 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
8029 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
8030 (default-c.o): New target.
8031 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
8032 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
8033 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
8034 c-target.def.
8035 (build/genhooks.o): Update dependencies.
8036
8037 2011-04-06 Richard Guenther <rguenther@suse.de>
8038
8039 * ipa-inline.c (enum inlining_mode): Remove.
8040 (cgraph_flatten): Use some other token.
8041 (cgraph_edge_early_inlinable_p): New function, split out from ...
8042 (cgraph_perform_always_inlining): New function, split out from ...
8043 (cgraph_decide_inlining_incrementally): ... here.
8044 (cgraph_mark_inline_edge): Adjust.
8045 (cgraph_early_inlining): Re-structure.
8046 (pass_early_inline): Require SSA form.
8047
8048 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
8049 Julian Brown <julian@codesourcery.com>
8050 Mark Shinwell <shinwell@codesourcery.com>
8051
8052 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
8053 LO_REGS only for Thumb-1.
8054 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
8055 be used in short instructions when optimising for size on Thumb-2.
8056
8057 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
8058
8059 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
8060 associated with user returns to be preserved.
8061
8062 2011-04-06 Tristan Gingold <gingold@adacore.com>
8063
8064 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
8065 symbol_queue_size, DBXOUT_DECR_NESTING,
8066 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
8067 if XCOFF_DEBUGGING_INFO.
8068
8069 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
8070
8071 * config/i386/i386.md (attribute isa): New.
8072 (attribute enabled): New.
8073 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
8074 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
8075 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
8076 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
8077 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
8078 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8079 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
8080 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
8081
8082 * config/i386/sse.md (VF): New mode iterator.
8083 (VF1): Ditto.
8084 (VF2): Ditto.
8085 (VF_128): Ditto.
8086 (SSEMODEF4): Remove.
8087 (attribute sse): Handle V8SF and V4DF modes.
8088 (<absneg:code><mode>2): Use VF mode iterator.
8089 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
8090 mode iterator.
8091 (<plusminus_insn><mode>3): Use VF mode iterator.
8092 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
8093 Use VF mode iterator.
8094 (<sse>_vm<plusminus_insn><mode>3): Merge with
8095 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
8096 (mul<mode>3): Use VF mode iterator.
8097 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
8098 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
8099 mode iterator.
8100 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
8101 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
8102 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
8103 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
8104 mode iterator.
8105 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
8106 Use VF1 mode iterator.
8107 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
8108 (sqrt<VF2:mode>2): New expander.
8109 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
8110 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
8111 and sqrtv2df2. Use VF mode iterator.
8112 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
8113 mode iterator.
8114 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
8115 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
8116 Use VF1 mode iterator.
8117 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
8118 (<smaxmin:code><mode>3): Use VF mode iterator.
8119 (*<smaxmin:code><mode>3_finite): Merge with
8120 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
8121 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8122 (<sse>_vm<smaxmin:code><mode>2): Merge with
8123 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
8124 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
8125 mode iterator.
8126 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
8127 mode iterator.
8128 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
8129 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
8130 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
8131 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
8132 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
8133 VF mode iterator.
8134 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
8135 Use VF_128 mode iterator.
8136 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
8137 mode iterator.
8138 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
8139 VF_128 mode iterator.
8140 (vcond<mode>): Use VF mode iterator.
8141 * config/i386/predicates.md (sse_comparison_operator): Merge with
8142 avx_comparison_float_operator. Do not declare as special_predicate.
8143 * config/i386/i386.c (struct builtin_description): Update for renamed
8144 compare patterns.
8145 (ix86_expand_args_builtin): Ditto.
8146 (ix86_expand_sse_compare_mask): Ditto.
8147
8148 2011-04-06 Richard Guenther <rguenther@suse.de>
8149
8150 * tree-inline.c (estimate_num_insns): For calls simply account
8151 for all passed arguments and a used return value.
8152
8153 2011-04-06 Richard Guenther <rguenther@suse.de>
8154
8155 PR tree-optimization/47663
8156 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
8157 call_stmt_time fields.
8158 (cgraph_edge_inlinable_p): Declare.
8159 (cgraph_edge_recursive_p): New inline function.
8160 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
8161 (cgraph_clone_edge): Copy it.
8162 * ipa-inline.c (cgraph_estimate_edge_time): New function.
8163 Account for call stmt time.
8164 (cgraph_estimate_time_after_inlining): Take edge argument.
8165 (cgraph_estimate_edge_growth): Account call stmt size.
8166 (cgraph_estimate_size_after_inlining): Take edge argument.
8167 (cgraph_mark_inline_edge): Adjust.
8168 (cgraph_check_inline_limits): Likewise.
8169 (cgraph_recursive_inlining_p): Remove.
8170 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
8171 (cgraph_decide_recursive_inlining): Take edge argument and
8172 adjust.
8173 (cgraph_decide_inlining_of_small_functions): Do not avoid
8174 diags for recursive inlining here.
8175 (cgraph_flatten): Adjust.
8176 (cgraph_decide_inlining_incrementally): Likewise.
8177 (estimate_function_body_sizes): Remove call cost handling.
8178 (compute_inline_parameters): Initialize caller edge call costs.
8179 (cgraph_estimate_edge_growth): New function.
8180 (cgraph_estimate_growth): Use it.
8181 (cgraph_edge_badness): Likewise.
8182 (cgraph_check_inline_limits): Take an edge argument.
8183 (cgraph_decide_inlining_of_small_functions): Adjust.
8184 (cgraph_decide_inlining): Likewise.
8185 * tree-inline.c (estimate_num_insns): Only account for call
8186 return value if it is used.
8187 (expand_call_inline): Avoid diagnostics on recursive inline
8188 functions here.
8189 * lto-cgraph.c (lto_output_edge): Output edge call costs.
8190 (input_edge): Input edge call costs.
8191
8192 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8193
8194 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
8195
8196 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
8197
8198 * doc/invoke.texi (Spec Files): Fix typo.
8199
8200 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
8201
8202 * profile.c (branch_prob): Move declaration of local variable. Remove
8203 obsolete ??? comment. Expand the location explicitly instead of using
8204 the LOCATION_FILE and LOCATION_LINE macros.
8205
8206 2011-04-06 Wei Guozhi <carrot@google.com>
8207
8208 PR target/47855
8209 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
8210 (arm_cond_branch): Likewise.
8211 (arm_cond_branch_reversed): Likewise.
8212 (arm_jump): Likewise.
8213 (push_multi): Likewise.
8214 * config/arm/constraints.md (Py): New constraint.
8215
8216 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8217
8218 PR bootstrap/48471
8219 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
8220 Move these...
8221 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
8222 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
8223 #ifdef DBX_DEBUGGING_INFO.
8224
8225 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
8226
8227 PR bootstrap/48403
8228 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
8229 if old and new states differ.
8230
8231 2011-04-05 Joseph Myers <joseph@codesourcery.com>
8232
8233 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
8234 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
8235 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
8236 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
8237 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
8238 mcfv4e): Use Alias.
8239 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
8240 ColdFire options to -mcpu= options.
8241
8242 2011-04-05 Jeff Law <law@redhat.com>
8243
8244 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
8245 check if BB is a successor of LOOP->header and return
8246 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
8247
8248 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
8249
8250 * cprop.c (struct reg_use): Remove.
8251 (reg_use_table): Make an array of RTX.
8252 (find_used_regs, constprop_register, local_cprop_pass,
8253 bypass_block): Simplify users of reg_use_table.
8254 (cprop_insn): Likewise. Iterate if copy propagation succeeded
8255 on one of the uses found by find_used_regs.
8256
8257 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8258
8259 PR bootstrap/48469
8260 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
8261 declaration.
8262
8263 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8264
8265 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
8266 as an rtx.
8267 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
8268
8269 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
8270
8271 PR middle-end/48441
8272 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
8273
8274 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8275
8276 * combine.c: Include obstack.h.
8277 (struct insn_link): Define.
8278 (uid_log_links): Adjust type.
8279 (FOR_EACH_LOG_LINK): New macro.
8280 (insn_link_obstack): Declare.
8281 (alloc_insn_link): Define.
8282 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
8283 type of link variables.
8284 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
8285 (try_combine, record_promoted_values, distribute_notes): Likewise.
8286 (distribute_links): Likewise. Tweak prototype.
8287 (clear_log_links): Delete.
8288 (adjust_for_new_dest): Call alloc_insn_link.
8289 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
8290
8291 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8292
8293 * gcse.c (modify_mem_list): Convert to an array of VECs.
8294 (canon_modify_mem_list, compute_transp): Tweak formatting.
8295 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
8296 (load_killed_in_block_p): Likewise.
8297 (record_last_mem_set_info): Likewise.
8298 (clear_modify_mem_tables): Likewise.
8299
8300 2011-04-05 Tom de Vries <tom@codesourcery.com>
8301
8302 PR middle-end/48461
8303 * function.c (emit_use_return_register_into_block): Only define if
8304 HAVE_return.
8305
8306 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
8307
8308 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
8309
8310 2011-04-05 Joseph Myers <joseph@codesourcery.com>
8311
8312 * config/rx/rx-opts.h: New.
8313 * config/rx/rx.c (rx_cpu_type): Remove.
8314 (rx_handle_option): Don't assert that global structures are in
8315 use. Access variables via opts pointer. Defer most handling of
8316 OPT_mint_register_. Use error_at.
8317 (rx_option_override): Handle deferred OPT_mint_register_ here.
8318 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
8319 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
8320 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
8321 (rx_cpu_types): New Enum and EnumValue entries.
8322 (mint-register=): Use Defer and use Var accordingly.
8323
8324 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8325
8326 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
8327 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
8328 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
8329 Move these...
8330 (debug_free_queue, debug_nesting, symbol_queue_index):
8331 ...and these...
8332 * dbxout.c: ...to here. Make static.
8333
8334 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8335
8336 * gcse.c (modify_pair): Define. Define a VEC of it.
8337 (canon_modify_mem_list): Convert to an array of VECs.
8338 (free_insn_expr_list_list): Delete.
8339 (clear_modify_mem_tables): Call VEC_free instead.
8340 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
8341 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
8342 (canon_list_insert, compute_transp): Likewise.
8343
8344 2011-04-05 Tom de Vries <tom@codesourcery.com>
8345
8346 PR target/43920
8347 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
8348 for size.
8349
8350 2011-04-05 Tom de Vries <tom@codesourcery.com>
8351
8352 PR target/43920
8353 * function.c (emit_use_return_register_into_block): New function.
8354 (thread_prologue_and_epilogue_insns): Use
8355 emit_use_return_register_into_block.
8356
8357 2011-04-05 Tom de Vries <tom@codesourcery.com>
8358
8359 PR target/43920
8360 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
8361 insn.
8362
8363 2011-04-05 Tom de Vries <tom@codesourcery.com>
8364
8365 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
8366
8367 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
8368
8369 * config/arm/arm.md (define_constants for unspec): Replace with
8370 define_c_enum.
8371 (define_constants for unspecv): Replace with define_c_enum.
8372 * config/arm/neon.md (define_constants for unspec): Replace with
8373 define_c_enum.
8374
8375 2011-04-04 Richard Henderson <rth@redhat.com>
8376
8377 PR bootstrap/48400
8378 * dwarf2out.c (output_line_info): Always emit line info from
8379 at least one section.
8380 (dwarf2out_init): Create text_section_line_info here ...
8381 (set_cur_line_info_table): ... not here.
8382
8383 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
8384
8385 PR target/48380
8386 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
8387 not called.
8388
8389 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
8390
8391 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
8392
8393 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
8394 (expr_equiv_p): Remove.
8395 (insert_set_in_table): Look at <dest, src> pair instead of expr.
8396 (hash_scan_set): Update call to insert_set_in_table.
8397 (dump_hash_table): Dump <dest, src> pair.
8398 (lookup_set): Simplify. Lookup <dest, src> pair.
8399 (compute_transp): Remove, fold heavily simplified code into...
8400 (compute_local_properties): ...here. Expect COMP and TRANSP
8401 unconditionally.
8402 (find_avail_set): Take set directly from struct expr.
8403 (find_bypass-set): Likewise.
8404 (bypass_block): Likewise.
8405 (cprop_insn): Likewise. Remove redundant INSN_P test.
8406
8407 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
8408 checks on form of COND from find_implicit_sets to here.
8409 (find_implicit_sets): Cleanup control flow. Split critical edges
8410 if it exposes implicit sets. Allocate/resize implicit_sets as
8411 necessary.
8412 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
8413 changed something. Run df_analyze after find_implicit_sets if any
8414 edges were split. Do not allocate implicit_sets here.
8415
8416 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
8417 (gcse_obstack): Renamed to cprop_obstack.
8418 (GNEW, GNEWVEC, GNEWVAR): Remove.
8419 (gmalloc): Remove.
8420 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
8421 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
8422 (gcse_alloc): Likewise, and rename to cprop_alloc.
8423 (alloc_gcse_men, free_gcse_mem): Remove.
8424 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
8425 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
8426 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
8427
8428 * cprop.c (oprs_not_set_p): Remove.
8429 (mark_set, mark_clobber): Remove.
8430 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
8431 (reg_not_set_p): New function.
8432 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
8433 (cprop_insn): Likewise.
8434 (cprop_jump): Use FOR_EACH_EDGE.
8435
8436 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
8437
8438 PR bootstrap/48403
8439 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
8440 (rank_for_schedule): Use scheduled_insns vector instead of
8441 last_scheduled_insn.
8442 (ok_for_early_queue_removal): Likewise.
8443 (queue_to_ready): Search forward in nonscheduled_insns_begin if
8444 we have a dbg_cnt.
8445 (choose_ready): Likewise.
8446 (commit_schedule): Use VEC_iterate.
8447 (schedule_block): Initialize nonscheduled_insns_begin. If we have
8448 a dbg_cnt, use it and ensure the first insn is in the ready list.
8449 (haifa_sched_init): Allocate scheduled_insns.
8450 (sched_extend_ready_list): Don't allocate it; reserve space.
8451 (haifa_sched_finish): Free it.
8452
8453 2011-04-04 Joseph Myers <joseph@codesourcery.com>
8454
8455 * optc-gen.awk: Always remove type from Variable entry before
8456 recording in var_seen.
8457
8458 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
8459
8460 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
8461 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
8462 call to tidy_fallthru_edges.
8463
8464 2011-04-04 Joseph Myers <joseph@codesourcery.com>
8465
8466 * doc/options.texi (ToLower): Document.
8467 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
8468 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
8469 * opts.h (cl_option): Add cl_tolower field.
8470 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
8471 arguments with lowercase strings.
8472 * config/rx/rx.opt (mcpu=): Add ToLower.
8473 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
8474 argument.
8475
8476 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
8477
8478 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
8479
8480 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
8481
8482 * config/vax/vax.c: Include reload.h.
8483
8484 2011-04-04 Anatoly Sokolov <aesok@post.ru>
8485
8486 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
8487 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8488 (sparc_preferred_reload_class): New function.
8489
8490 2011-04-04 Jakub Jelinek <jakub@redhat.com>
8491
8492 PR debug/48401
8493 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8494 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
8495
8496 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
8497
8498 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
8499 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
8500
8501 2011-04-03 Anatoly Sokolov <aesok@post.ru>
8502
8503 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
8504 (ASM_OUTPUT_ALIGNED_BSS): Define.
8505
8506 2011-04-03 Michael Matz <matz@suse.de>
8507
8508 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
8509 and next_slot members.
8510 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
8511 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
8512 (lto_streamer_cache_append): Declare.
8513 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
8514 unsigned index, remove offset parameter, ensure that we append
8515 or update existing entries.
8516 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
8517 parameter, update next_slot for append.
8518 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
8519 parameter.
8520 (lto_streamer_cache_insert_at): Likewise.
8521 (lto_streamer_cache_append): New function.
8522 (lto_streamer_cache_lookup): Use unsigned index.
8523 (lto_streamer_cache_get): Likewise.
8524 (lto_record_common_node): Don't test tree_node_can_be_shared.
8525 (preload_common_node): Adjust call to lto_streamer_cache_insert.
8526 (lto_streamer_cache_delete): Don't free offsets member.
8527 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
8528 (lto_output_string_with_length): Use lto_output_data_stream.
8529 (lto_output_tree_header): Remove ix parameter, don't write it.
8530 (lto_output_builtin_tree): Likewise.
8531 (lto_write_tree): Adjust callers to above, don't track and write
8532 offset, write unsigned index.
8533 (output_unreferenced_globals): Don't emit all global vars.
8534 (write_global_references): Use unsigned indices.
8535 (lto_output_decl_state_refs): Likewise.
8536 (write_symbol): Likewise.
8537 * lto-streamer-in.c (lto_input_chain): Move earlier.
8538 (input_function): Use unsigned index.
8539 (input_alias_pairs): Don't read and then ignore all global vars.
8540 (lto_materialize_tree): Remove ix_p parameter, don't read index,
8541 don't pass it back, use lto_streamer_cache_append.
8542 (lto_register_var_decl_in_symtab): Use unsigned index.
8543 (lto_register_function_decl_in_symtab): Likewise.
8544 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
8545 index.
8546 (lto_get_builtin_tree): Don't read index, use
8547 lto_streamer_cache_append.
8548 (lto_read_tree): Adjust call to lto_materialize_tree.
8549
8550 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
8551 don't use function calls in arguments to MIN.
8552
8553 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
8554 twice.
8555
8556 * gimple.c (gimple_type_leader_entry): Mark deletable.
8557
8558 2011-04-03 Alan Modra <amodra@gmail.com>
8559
8560 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
8561
8562 2011-04-03 Michael Matz <matz@suse.de>
8563
8564 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
8565 an integer.
8566 * tree.h (tree_decl_non_common.vindex): Adjust comment.
8567
8568 2011-04-03 Michael Matz <matz@suse.de>
8569
8570 * cgraphbuild.c (record_reference): Canonicalize constructor values.
8571 * gimple-fold.c (canonicalize_constructor_val): Accept being called
8572 without function context.
8573 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
8574 current_function_decl and cfun.
8575
8576 2011-04-03 Michael Matz <matz@suse.de>
8577
8578 * tree.c (decl_init_priority_insert): Don't create entry for
8579 default priority.
8580 (decl_fini_priority_insert): Ditto.
8581 (fields_compatible_p, find_compatible_field): Remove.
8582 * tree.h (fields_compatible_p, find_compatible_field): Remove.
8583 * gimple.c (gimple_compare_field_offset): Adjust block comment.
8584
8585 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
8586
8587 * combine.c (try_combine): Remove useless local variable.
8588
8589 2011-04-03 Richard Guenther <rguenther@suse.de>
8590 Ira Rosen <ira.rosen@linaro.org>
8591
8592 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
8593 non-variable offsets and compare the remaining bases of the two
8594 accesses instead of looking for exact same data-ref.
8595
8596 2011-04-02 Kai Tietz <ktietz@redhat.com>
8597
8598 PR target/48416
8599 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
8600
8601 * i386.c (ix86_is_msabi_thiscall): New helper function.
8602 (ix86_is_type_thiscall): New helper function.
8603 (ix86_comp_type_attributes): Handle thiscall for method-functions
8604 special.
8605 (init_cumulative_args): Likewise.
8606 (find_drap_reg): Likewise.
8607 (ix86_static_chain): Likewise.
8608 (x86_this_parameter): Likewise.
8609 (x86_output_mi_thunk): Likewise.
8610
8611 2011-04-01 Olivier Hainque <hainque@adacore.com>
8612 Nicolas Setton <setton@adacore.com>
8613 Eric Botcazou <ebotcazou@adacore.com>
8614
8615 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
8616 (add_gnat_descriptive_type_attribute): New function.
8617 (gen_array_type_die): Call it.
8618 (gen_enumeration_type_die): Likewise.
8619 (gen_struct_or_union_type_die): Likewise.
8620 (modified_type_die): Likewise.
8621 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
8622 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
8623 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
8624
8625 2011-04-01 Jakub Jelinek <jakub@redhat.com>
8626
8627 PR bootstrap/48148
8628 * dwarf2out.c (resolve_addr): Don't call force_decl_die
8629 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
8630
8631 Revert:
8632 2011-03-17 Richard Guenther <rguenther@suse.de>
8633
8634 PR bootstrap/48148
8635 * lto-cgraph.c (input_overwrite_node): Clear the abstract
8636 origin for decls in other ltrans units.
8637 (input_varpool_node): Likewise.
8638
8639 2011-04-01 Jakub Jelinek <jakub@redhat.com>
8640
8641 PR middle-end/48335
8642 * expr.c (expand_assignment): Handle all possibilities
8643 if TO_RTX is CONCAT.
8644 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
8645 (store_split_bit_field): If SUBREG_REG (op0) or
8646 op0 itself has smaller mode than word, return it
8647 for offset 0 and const0_rtx for out-of-bounds stores.
8648 If word is const0_rtx, skip it.
8649
8650 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
8651
8652 * config/h8300/h8300.c (print_operand_address): Rename to...
8653 (h8300_print_operand_address): ...this. Make static. Adjust comments.
8654 Call h8300_print_operand and h8300_print_operand_address instead of
8655 print_operand and print_operand_address. Declare.
8656 (print_operand): Renake to...
8657 (h8300_print_operand): ...this. Make static. Adjust comments.
8658 Call h8300_print_operand instead of print_operand. Declare.
8659 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
8660 (h8300_register_move_cost): Likewise.
8661 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
8662 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
8663 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
8664 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
8665 * config/h8300/h8300-protos.h (print_operand): Delete.
8666 (print_operand_address): Delete.
8667
8668 2011-04-01 Richard Henderson <rth@redhat.com>
8669
8670 PR 48400
8671 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
8672 in strict mode before dwarf4. Re-order tests to early out
8673 before switching sections.
8674
8675 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
8676
8677 * config/h8300/constraints.md: New file.
8678 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
8679 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
8680 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
8681 * config/h8300/predicates.md (bit_operand): Likewise.
8682 (incdec_operand): Use satisfies_constraint_M and
8683 satisfies_constraint_O. Don't use C code block.
8684 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
8685 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
8686 (compute_mov_length): Use satisfies_constraint_G.
8687 (fix_bit_operand): Use satisfies_constraint_U.
8688 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
8689 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
8690 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
8691 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
8692 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
8693 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
8694 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8695 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
8696 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
8697 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
8698 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
8699 (EXTRA_MEMORY_CONSTRAINT): Delete.
8700
8701 2011-04-01 Andrew Pinski <pinskia@gmail.com>
8702 Michael Meissner <meissner@linux.vnet.ibm.com>
8703
8704 PR target/48262
8705 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
8706 operands, as per the specifications.
8707
8708 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
8709 (vec_extract_evenv4sf): Ditto.
8710 (vec_extract_evenv8hi): Ditto.
8711 (vec_extract_evenv16qi): Ditto.
8712 (vec_extract_oddv4si): Ditto.
8713
8714 2011-03-31 Mark Wielaard <mjw@redhat.com>
8715
8716 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
8717 high_pc attribute if the CU has no associated code. Only output
8718 DW_AT_entry_pc for CU if not generating strict dwarf and
8719 dwarf_version < 4.
8720
8721 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
8722
8723 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
8724 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
8725 out of ...
8726 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
8727 * final.c (final_start_function): Call the new function rather
8728 than using a NULL argument for dwarf2out_frame_debug.
8729
8730 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
8731 that contains the prologue.
8732
8733 * haifa-sched.c (queue_insn): New arg REASON. All callers
8734 changed. Print it in debugging output.
8735
8736 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
8737
8738 * sched-ebb.c (begin_schedule_ready): Remove second argument.
8739 Split most of the code into...
8740 (begin_move_insn): ... here. New function.
8741 (ebb_sched_info): Add a pointer to it.
8742 * haifa-sched.c (scheduled_insns): New static variable.
8743 (sched_extend_ready_list): Allocate it.
8744 (schedule_block): Use it to record the order of scheduled insns.
8745 Perform RTL changes to move insns only after all scheduling
8746 decisions have been made.
8747 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
8748 begin_move_insn field.
8749 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
8750 * sched-int.h (struct haifa_sched_info): Remove second argument
8751 from begin_schedule_ready hook. Add new member begin_move_insn.
8752 * sched-rgn.c (begin_schedule_ready): Remove second argument.
8753 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
8754
8755 * haifa-sched.c (prune_ready_list): New function, broken out of
8756 schedule_block.
8757 (schedule_block): Use it.
8758
8759 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8760
8761 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
8762
8763 2011-04-01 Kai Tietz <ktietz@redhat.com>
8764
8765 * config.gcc (*-*-mingw*): Allow as option the
8766 posix threading model.
8767 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
8768 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
8769 definition.
8770 (CPP_SPEC): Add pthread/no-pthread handling.
8771 (LIB_SPEC): Likewise.
8772 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8773 (LIB_SPEC): Likewise.
8774 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8775 flag to pass -pthread option for shared libgcc build.
8776 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8777 for shared libgcc build.
8778 * config/i386/t-mingw-pthread: New file.
8779 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8780 New define to enable use of library pthread by default.
8781 * config/i386/mingw.opt (pthread): New driver option.
8782 (no-pthread): New driver option.
8783 * config/i386/cygming.opt: Make sure trailing empty line is retained.
8784 * config/i386/mingw-w64.opt: Likewise.
8785
8786 2011-04-01 Gary Funck <gary@intrepid.com>
8787
8788 * c-decl.c (grokdeclarator): Fix formatting.
8789
8790 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8791
8792 * expr.c (emit_block_move_via_movmem): Use n_generator_args
8793 instead of n_operands.
8794 (set_storage_via_setmem): Likewise.
8795 * optabs.c (maybe_gen_insn): Likewise.
8796 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8797 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8798 (mips_expand_builtin_direct): Likewise.
8799 * config/spu/spu.c (expand_builtin_args): Likewise.
8800
8801 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8802
8803 * recog.h (insn_data_d): Add n_generator_args.
8804 * genoutput.c (data): Likewise.
8805 (output_insn_data): Print it.
8806 (max_opno, num_dups): Delete.
8807 (scan_operands): Just fill in "d->operand[...]".
8808 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8809
8810 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8811
8812 * gensupport.h (pattern_stats): New structure.
8813 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8814 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8815 (max_operand_1, max_operand_vec): Delete.
8816 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8817
8818 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
8819
8820 * emit-rtl.c (emit_pattern_after_setloc): New function.
8821 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8822 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8823 (emit_pattern_after): New function.
8824 (emit_insn_after, emit_jump_insn_after): Call it.
8825 (emit_call_insn_after, emit_debug_insn_after): Likewise.
8826 (emit_pattern_before_setloc): New function.
8827 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8828 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8829 Likewise.
8830 (emit_pattern_before): New function.
8831 (emit_insn_before, emit_jump_insn_before): Call it.
8832 (emit_call_insn_before, emit_debug_insn_before): Likewise.
8833
8834 2011-03-31 Richard Henderson <rth@redhat.com>
8835
8836 * dwarf2out.c (dw_separate_line_info_ref): Remove.
8837 (dw_separate_line_info_entry): Remove.
8838 (enum dw_line_info_opcode): New.
8839 (dw_line_info_entry): Use it.
8840 (dw_line_info_table, dw_line_info_table_p): New.
8841 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8842 (line_info_table, line_info_label_num): Remove.
8843 (line_info_table_in_use): Remove.
8844 (separate_line_info_table): Remove.
8845 (separate_line_info_table_allocated): Remove.
8846 (separate_line_info_table_in_use): Remove.
8847 (LINE_INFO_TABLE_INCREMENT): Remove.
8848 (line_info_label_num): New.
8849 (cur_line_info_table): New.
8850 (text_section_line_info, cold_text_section_line_info): New.
8851 (separate_line_info): New.
8852 (SEPARATE_LINE_CODE_LABEL): Remove.
8853 (print_dwarf_line_table): Remove.
8854 (debug_dwarf): Don't dump it.
8855 (output_one_line_info_table): New.
8856 (output_line_info): Use it.
8857 (new_line_info_table): New.
8858 (set_cur_line_info_table): New.
8859 (dwarf2out_switch_text_section): Use it.
8860 (dwarf2out_begin_function): Likewise.
8861 (push_dw_line_info_entry): New.
8862 (dwarf2out_source_line): Rewrite for new line info tables.
8863 (dwarf2out_init): Remove dead initailizations.
8864
8865 2011-03-31 Joseph Myers <joseph@codesourcery.com>
8866
8867 * opts.h (cl_option): Add comments to fields. Add bit-fields for
8868 various flags.
8869 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8870 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8871 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8872 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8873 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8874 * opt-functions.awk (flag_init, switch_bit_fields): New.
8875 (switch_flags): Don't handle flags moved to bit-fields. Don't
8876 generate CL_MISSING_OK or CL_SAVE.
8877 * optc-gen.awk: Update to generate bit-field output as well as
8878 flags field.
8879 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8880 bit-field instead of CL_REJECT_DRIVER flag.
8881 * opts-common.c (generate_canonical_option,
8882 decode_cmdline_option): Use bit-fields instead of CL_* flags.
8883 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8884 instead of CL_REJECT_NEGATIVE flag.
8885 * toplev.c (print_switch_values): Use cl_report bit-field instead
8886 of CL_REPORT flag.
8887
8888 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
8889
8890 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8891 a zero minimum index only if it is redundant.
8892
8893 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
8894
8895 PR rtl-optimization/48381
8896 * ira-color.c (assign_hard_reg): Use hard reg set intersection
8897 instead of ira_class_hard_reg_index for calculating conflicting
8898 hard registers.
8899
8900 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
8901
8902 * cprop.c: Clean up hash table building.
8903 (reg_avail_info): Remove.
8904 (oprs_available_p): Remove.
8905 (record_last_reg_set_info): Remove.
8906 (record_last_set_info): Remove.
8907 (reg_available_p): New function.
8908 (gcse_constant_p): Do not treat unfolded conditions as constants.
8909 (make_set_regs_unavailable): New function.
8910 (hash_scan_set): Simplify with new reg_available_p.
8911 (compute_hash_table_work): Traverse insns stream only once.
8912 Do not compute reg_avail_info. Traverse insns in reverse order.
8913 Record implicit sets after recording explicit sets from the block.
8914
8915 2011-03-31 Michael Matz <matz@suse.de>
8916
8917 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8918
8919 2011-03-31 Anatoly Sokolov <aesok@post.ru>
8920
8921 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8922 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8923 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8924 (h8300_mode_dependent_address_p): New function.
8925 (h8300_get_index): Make static.
8926
8927 2011-03-31 Jeff Law <law@redhat.com>
8928
8929 * reload1.c (elimination_effects): Fix typo in recent change.
8930
8931 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8932 typo potentially leading to null pointer dereference.
8933
8934 * caller-save.c (new_saved_hard_reg): Eliminate return value.
8935 (setup_save_areas): Corresponding changes to avoid useless
8936 assignments.
8937
8938 * jump.c (reversed_comparison_code_parts): Avoid successive return
8939 statements when REVERSE_CONDITION is defined.
8940
8941 * expr.c (expand_assignment): Avoid useless assignments.
8942 (expand_expr_real_1): Likewise.
8943 (expand_expr_real_2): Avoid useless statements.
8944
8945 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8946
8947 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8948
8949 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8950 statements.
8951
8952 * stmt.c (expand_expr_stmt): Avoid useless assignment.
8953
8954 2011-03-31 Joseph Myers <joseph@codesourcery.com>
8955
8956 PR target/47109
8957 * doc/tm.texi.in (TARGET_VERSION): Remove.
8958 * doc/tm.texi: Regenerate.
8959 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8960 * collect2.c (main): Don't use TARGET_VERSION.
8961 * mips-tdump.c (main): Don't use TARGET_VERSION.
8962 * mips-tfile.c (main): Don't use TARGET_VERSION.
8963 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8964 * config/rs6000/vxworksae.h: Remove.
8965 * config/alpha/alpha.h (TARGET_VERSION): Remove.
8966 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8967 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8968 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8969 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8970 * config/arm/arm.h (TARGET_VERSION): Remove.
8971 * config/arm/coff.h (TARGET_VERSION): Remove.
8972 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8973 * config/arm/elf.h (TARGET_VERSION): Remove.
8974 * config/arm/freebsd.h (TARGET_VERSION): Remove.
8975 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8976 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8977 * config/arm/pe.h (TARGET_VERSION): Remove.
8978 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8979 * config/arm/semi.h (TARGET_VERSION): Remove.
8980 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8981 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8982 * config/arm/vxworks.h (TARGET_VERSION): Remove.
8983 * config/avr/avr.h (TARGET_VERSION): Remove.
8984 * config/bfin/bfin.h (TARGET_VERSION): Remove.
8985 * config/fr30/fr30.h (TARGET_VERSION): Remove.
8986 * config/frv/frv.h (TARGET_VERSION): Remove.
8987 * config/h8300/h8300.h (TARGET_VERSION): Remove.
8988 * config/i386/cygwin.h (TARGET_VERSION): Remove.
8989 * config/i386/darwin.h (TARGET_VERSION): Remove.
8990 * config/i386/darwin64.h (TARGET_VERSION): Remove.
8991 * config/i386/djgpp.h (TARGET_VERSION): Remove.
8992 * config/i386/freebsd.h (TARGET_VERSION): Remove.
8993 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8994 * config/i386/gnu.h (TARGET_VERSION): Remove.
8995 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8996 * config/i386/i386elf.h (TARGET_VERSION): Remove.
8997 * config/i386/linux.h (TARGET_VERSION): Remove.
8998 * config/i386/linux64.h (TARGET_VERSION): Remove.
8999 * config/i386/lynx.h (TARGET_VERSION): Remove.
9000 * config/i386/mingw32.h (TARGET_VERSION): Remove.
9001 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
9002 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
9003 * config/i386/netware.h (TARGET_VERSION): Remove.
9004 * config/i386/nto.h (TARGET_VERSION): Remove.
9005 * config/i386/openbsd.h (TARGET_VERSION): Remove.
9006 * config/i386/vxworks.h (TARGET_VERSION): Remove.
9007 * config/ia64/elf.h (TARGET_VERSION): Remove.
9008 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
9009 * config/ia64/hpux.h (TARGET_VERSION): Remove.
9010 * config/ia64/linux.h (TARGET_VERSION): Remove.
9011 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
9012 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
9013 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
9014 * config/lm32/lm32.h (TARGET_VERSION): Remove.
9015 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
9016 * config/m32c/m32c.h (TARGET_VERSION): Remove.
9017 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
9018 * config/m32r/m32r.h (TARGET_VERSION): Remove.
9019 * config/m68k/linux.h (TARGET_VERSION): Remove.
9020 * config/m68k/m68k.h (TARGET_VERSION): Remove.
9021 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
9022 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
9023 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
9024 * config/mep/mep.h (TARGET_VERSION): Remove.
9025 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
9026 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
9027 * config/mips/iris6.h (MACHINE_TYPE): Remove.
9028 * config/mips/linux.h (TARGET_VERSION): Remove.
9029 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
9030 * config/mips/vxworks.h (TARGET_VERSION): Remove.
9031 * config/mmix/mmix.h (TARGET_VERSION): Remove.
9032 * config/mn10300/linux.h (TARGET_VERSION): Remove.
9033 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
9034 * config/pa/pa.h (TARGET_VERSION): Remove.
9035 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
9036 * config/picochip/picochip.h (TARGET_VERSION): Remove.
9037 * config/rs6000/aix.h (TARGET_VERSION): Remove.
9038 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
9039 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
9040 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
9041 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
9042 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
9043 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
9044 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
9045 * config/rs6000/linux.h (TARGET_VERSION): Remove.
9046 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
9047 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
9048 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
9049 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
9050 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
9051 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
9052 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
9053 * config/s390/linux.h (TARGET_VERSION): Remove.
9054 * config/s390/s390.h (TARGET_VERSION): Remove.
9055 * config/s390/tpf.h (TARGET_VERSION): Remove.
9056 * config/score/score.h (TARGET_VERSION): Remove.
9057 * config/sh/linux.h (TARGET_VERSION): Remove.
9058 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
9059 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
9060 * config/sh/sh.h (TARGET_VERSION): Remove.
9061 * config/sh/sh64.h (TARGET_VERSION): Remove.
9062 * config/sh/superh.h (TARGET_VERSION): Remove.
9063 * config/sh/vxworks.h (TARGET_VERSION): Remove.
9064 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
9065 * config/sparc/linux.h (TARGET_VERSION): Remove.
9066 * config/sparc/linux64.h (TARGET_VERSION): Remove.
9067 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
9068 TARGET_NAME32, TARGET_NAME): Remove.
9069 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
9070 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
9071 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
9072 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
9073 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
9074 * config/spu/spu.h (TARGET_VERSION): Remove.
9075 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
9076 * config/v850/v850.h (TARGET_VERSION): Remove.
9077 * config/vax/linux.h (TARGET_VERSION): Remove.
9078 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
9079 * config/xtensa/elf.h (TARGET_VERSION): Remove.
9080 * config/xtensa/linux.h (TARGET_VERSION): Remove.
9081
9082 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
9083
9084 PR target/48142
9085 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
9086 frame-related from frame-unrelated adjustments to the stack pointer.
9087
9088 2011-03-31 Jakub Jelinek <jakub@redhat.com>
9089
9090 * common.opt (fdebug-types-section): Move earlier.
9091 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
9092
9093 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
9094
9095 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
9096 var.
9097
9098 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
9099
9100 * tree.h (CASE_CHAIN): Define.
9101 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
9102 (gimple_redirect_edge_and_branch): Likewise.
9103
9104 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
9105
9106 PR middle-end/48367
9107 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
9108 calculation.
9109
9110 2011-03-30 Jeff Law <law@redhat.com>
9111
9112 * PR bootstrap/48371
9113 * reload1.c (reload): Fix botch in last change.
9114
9115 * reload.h (struct reload): Fix typo introduced in last change.
9116
9117 2011-03-30 Joseph Myers <joseph@codesourcery.com>
9118
9119 * config/arm/arm.opt (mhard-float, msoft-float): Mark
9120 Undocumented. Remove help text.
9121 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
9122 -mhard-float.
9123
9124 2011-03-30 Joseph Myers <joseph@codesourcery.com>
9125
9126 * doc/options.texi (NegativeAlias): Document.
9127 (Alias): Mention NegativeAlias.
9128 * opt-functions.awk: Handle NegativeAlias.
9129 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
9130 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
9131 * opts.h (CL_NEGATIVE_ALIAS): Define.
9132 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
9133 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
9134 OPT_mspe_.
9135 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
9136 Alias entries.
9137 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9138 mno-spe and mno-isel instead of mspe=no and -misel=no.
9139
9140 2011-03-29 Mark Wielaard <mjw@redhat.com>
9141
9142 * common.opt (fdebug-types-section): New flag.
9143 * doc/invoke.texi: Document new -fno-debug-types-section flag.
9144 * dwarf2out.c (use_debug_types): New define.
9145 (struct die_struct): Mark die_id with GTY desc use_debug_types.
9146 (print_die): Guard output of type unit signatures using
9147 use_debug_types.
9148 (build_abbrev_table): Replace assert of dwarf_version >= 4
9149 with assert on use_debug_types.
9150 (size_of_die): Likewise.
9151 (unmark_dies): Likewise.
9152 (value_format): Decide AT_ref_external form on use_debug_types.
9153 (output_die): Replace dwarf_version version check guard with
9154 use_debug_types where appropriate.
9155 (modified_type_die): Likewise.
9156 (gen_reference_type_die): Likewise.
9157 (dwarf2out_start_source_file): Likewise.
9158 (dwarf2out_end_source_file): Likewise.
9159 (prune_unused_types_walk_attribs): Likewise.
9160 (dwarf2out_finish): Likewise.
9161
9162 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
9163
9164 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
9165
9166 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
9167
9168 PR rtl-optimization/48332
9169 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
9170 mode of input operand N and modeN to its actual mode.
9171
9172 2011-03-30 Jeff Law <law@redhat.com>
9173
9174 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
9175 define accessor macro.
9176 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
9177 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
9178 (reg_equiv_init): Likewise.
9179 (reg_equivs_size): New variable.
9180 (reg_equiv_init_size): Remove.
9181 (allocate_initial_values): Move prototype to here from....
9182 * integrate.h (allocate_initial_values): Remove prototype.
9183 * integrate.c: Include reload.h.
9184 (allocate_initial_values): Corresponding changes.
9185 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
9186 (fix_reg_equiv_init, no_equiv): Corresponding changes.
9187 (update_equiv_regs): Corresponding changes.
9188 (ira): Corresponding changes.
9189 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
9190 (push_secondary_reload): Corresponding changes.
9191 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
9192 (make_memloc, find_reloads_address): Corresponding changes.
9193 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
9194 (find_reloads_address_1): Corresponding changes.
9195 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
9196 (refers_to_regno_for_reload_p): Corresponding changes.
9197 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
9198 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
9199 * reload1.c: Include ggc.h.
9200 (grow_reg_equivs): New function.
9201 (replace_pseudos_in, reload): Corresponding changes.
9202 (calculate_needs_all_insns, alter_regs): Corresponding changes.
9203 (eliminate_regs_1, elimination_effects): Corresponding changes.
9204 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
9205 (delete_output_reload): Likewise.
9206 * caller-save.c (mark_referenced_regs): Corresponding changes.
9207 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
9208 * frv/predicates.md (frv_load_operand): Corresponding changes.
9209 * microblaze/microblaze.c (double_memory_operand): Corresponding
9210 changes.
9211 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
9212 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
9213 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
9214 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
9215 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
9216 changes.
9217 * pa/pa.c (emit_move_sequence): Corresponding changes.
9218 * vax/vax.c (nonindexed_address_p): Corresponding changes.
9219
9220 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
9221
9222 PR target/47551
9223 * config/arm/arm.c (coproc_secondary_reload_class): Handle
9224 structure modes. Don't check neon_vector_mem_operand for
9225 vector or structure modes.
9226
9227 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
9228 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9229
9230 PR target/43590
9231 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
9232 operand 1 and reshuffle the operands to match.
9233 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
9234
9235 2011-03-30 Christian Schüler <cschueler@gmx.de>
9236
9237 PR driver/48208
9238 * config/c.opt (F): Added 'Driver' to -F option.
9239
9240 PR driver/48260
9241 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
9242 handler function.
9243 * config/darwin.opt: Added '-arch' option.
9244
9245 2011-03-30 Nick Clifton <nickc@redhat.com>
9246
9247 * config/rx/rx.md: Add peepholes and patterns to combine
9248 extending loads and simple arithmetic instructions.
9249 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
9250 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
9251 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
9252 modes to use pre-decrement and post-increment addressing.
9253 (rx_is_restricted_memory_address): Add range checking of REG+INT
9254 addresses.
9255 (rx_print_operand): Add support for %Q. Fix handling of %Q.
9256 (rx_memory_move_cost): Adjust cost of stores.
9257 (rx_adjust_insn_length): New function.
9258
9259 2011-03-30 Jakub Jelinek <jakub@redhat.com>
9260
9261 PR c/48305
9262 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9263 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
9264 matching arg00/arg01 types.
9265
9266 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
9267
9268 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
9269 last_location to UNKNOWN_LOCATION.
9270
9271 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
9272
9273 PR target/48349
9274 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
9275 FLOAT_SSE_REGS.
9276
9277 2011-03-30 Joseph Myers <joseph@codesourcery.com>
9278 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9279
9280 PR bootstrap/48337
9281 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
9282 Init(PROCESSOR_V7).
9283 (sparc_cpu): Likewise.
9284 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
9285 PROCESSOR_V7.
9286
9287 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
9288
9289 PR target/48336
9290 PR middle-end/48342
9291 PR rtl-optimization/48345
9292 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
9293 hard regs for given mode from profitable regs when doing secondary
9294 allocation.
9295
9296 2011-03-29 Jeff Law <law@redhat.com>
9297
9298 PR bootstrap/48327
9299 * tree-ssa-threadupdate.c (struct redirection_data): Remove
9300 do_not_duplicate field.
9301 (lookup_redirection_data): Corresponding changes.
9302 (create_duplicates): Always create a template block.
9303 (redirect_edges): Remove code which reused the original block
9304 when it was going to become unreachable code.
9305 (thread_block): Don't set do_not_duplicate field.
9306
9307 2011-03-29 Joseph Myers <joseph@codesourcery.com>
9308
9309 * lto-opts.c (register_user_option_p, lto_register_user_option):
9310 Make type argument unsigned.
9311 * lto-streamer.h (lto_register_user_option): Make type argument
9312 unsigned.
9313 * opth-gen.awk: Make CL_* macros unsigned.
9314 * opts-common.c (find_opt): Make lang_mask argument unsigned.
9315 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
9316 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
9317 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
9318 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
9319 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
9320 (find_opt): Make lang_mask argument unsigned.
9321
9322 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
9323
9324 PR rtl-optimization/48331
9325 PR rtl-optimization/48334
9326 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
9327 for any used algorithm.
9328
9329 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
9330
9331 * ira-conflicts.c (build_object_conflicts): Add unused attribute
9332 to parent_max.
9333
9334 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
9335
9336 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
9337 (alpha_option_override): Don't set alpha_sr_alias_set.
9338 (emit_frame_store_1): Use gen_frame_mem rather than calling
9339 set_mem_alias_set.
9340 (alpha_expand_epilogue): Ditto.
9341
9342 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
9343
9344 PR tree-optimization/48290
9345 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
9346 vectorization, check that relevant phis in the basic block after
9347 the inner loop are really inner loop's exit phis.
9348
9349 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
9350
9351 PR debug/48190
9352 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
9353 (cached_dw_loc_list_def): New structure.
9354 (cached_dw_loc_list): New typedef.
9355 (cached_dw_loc_list_table): New variable.
9356 (cached_dw_loc_list_table_hash): New function.
9357 (cached_dw_loc_list_table_eq): Likewise.
9358 (add_location_or_const_value_attribute): Take a bool cache_p.
9359 Cache the list when the parameter is true.
9360 (gen_formal_parameter_die): Update caller.
9361 (gen_variable_die): Likewise.
9362 (dwarf2out_finish): Likewise.
9363 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
9364 while generating debug info for the decl.
9365 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
9366 (dwarf2out_init): Initialize cached_dw_loc_list_table.
9367 (resolve_addr): Cache the result of resolving a chain of
9368 location lists.
9369
9370 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
9371
9372 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
9373 conflict object hard regset nodes have intersecting hard reg sets.
9374
9375 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
9376 after regstat_init_n_sets_and_refs.
9377
9378 * ira.c: Add more comments at the top.
9379 (setup_stack_reg_pressure_class, setup_pressure_classes):
9380 Add comments how we compute the register pressure classes.
9381 (setup_allocno_and_important_classes): Add more comments.
9382 (setup_class_translate_array, reorder_important_classes)
9383 (setup_reg_class_relations): Add comments.
9384
9385 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
9386 start of the file.
9387
9388 * ira-color.c: Add 2011 to the Copyright line.
9389 (assign_hard_reg): Add more comments.
9390 (improve_allocation): Ditto.
9391
9392 * ira-costs.c: Add 2011 to the Copyright line.
9393 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
9394 comments.
9395 (setup_regno_cost_classes_by_mode): Ditto.
9396
9397 Initial patches from ira-improv branch:
9398
9399 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
9400
9401 * ira-build.c (ira_create_object): Remove initialization of
9402 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
9403 (ira_create_allocno): Remove initialization of
9404 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
9405 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
9406 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
9407 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
9408 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
9409 Initialize ALLOCNO_ADD_DATA.
9410 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
9411 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
9412 ALLOCNO_REG.
9413 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
9414 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
9415
9416 * ira.c (ira_reallocate): Remove.
9417 (setup_pressure_classes): Call
9418 ira_init_register_move_cost_if_necessary. Use
9419 ira_register_move_cost instead of ira_get_register_move_cost.
9420 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
9421 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
9422
9423 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
9424 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
9425 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
9426 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
9427 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
9428 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
9429 Fix formatting.
9430 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
9431 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9432 (struct allocno_color_data): New.
9433 (allocno_color_data_t): New typedef.
9434 (allocno_color_data): New definition.
9435 (ALLOCNO_COLOR_DATA): New macro.
9436 (struct object_color_data): New.
9437 (object_color_data_t): New typedef.
9438 (object_color_data): New definition.
9439 (OBJECT_COLOR_DATA): New macro.
9440 (update_copy_costs, calculate_allocno_spill_cost): Call
9441 ira_init_register_move_cost_if_necessary. Use
9442 ira_register_move_cost instead of ira_get_register_move_cost.
9443 (move_spill_restore, update_curr_costs): Ditto.
9444 (allocno_spill_priority): Make it inline.
9445 (color_pass): Allocate and free allocno_color_dat and object_color_data.
9446 (struct coalesce_data, coalesce_data_t): New.
9447 (allocno_coalesce_data): New definition.
9448 (ALLOCNO_COALESCE_DATA): New macro.
9449 (merge_allocnos, coalesced_allocno_conflict_p): Use
9450 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
9451 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
9452 (coalesce_allocnos): Ditto.
9453 (setup_coalesced_allocno_costs_and_nums): Ditto.
9454 (collect_spilled_coalesced_allocnos): Ditto.
9455 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
9456 (setup_slot_coalesced_allocno_live_ranges): Ditto.
9457 (coalesce_spill_slots): Ditto.
9458 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
9459 free allocno_coalesce_data.
9460
9461 * ira-conflicts.c: Fix formatting.
9462 (process_regs_for_copy): Call
9463 ira_init_register_move_cost_if_necessary. Use
9464 ira_register_move_cost instead of ira_get_register_move_cost.
9465 (build_object_conflicts): Optimize.
9466
9467 * ira-costs.c (record_reg_classes): Optimize. Call
9468 ira_init_register_move_cost_if_necessary. Use
9469 ira_register_move_cost, ira_may_move_in_cost, and
9470 ira_may_move_out_cost instead of ira_get_register_move_cost and
9471 ira_get_may_move_cost.
9472 (record_address_regs): Ditto.
9473 (scan_one_insn): Optimize.
9474 (find_costs_and_classes): Optimize.
9475 (process_bb_node_for_hard_reg_moves): Call
9476 ira_init_register_move_cost_if_necessary. Use
9477 ira_register_move_cost instead of ira_get_register_move_cost.
9478
9479 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
9480 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
9481 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
9482 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
9483 definitions.
9484 (ira_initiate_emit_data, ira_finish_emit_data)
9485 (create_new_allocno): New functions.
9486 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
9487 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
9488 Use ira_register_move_cost instead of ira_get_register_move_cost.
9489
9490 * ira-int.h: Fix some comments.
9491 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
9492 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9493 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
9494 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
9495 add_data.
9496 (struct ira_allocno): Make mode and aclass a bitfield. Move other
9497 bitfield after mode. Make hard_regno a short int. Make
9498 hard_regno short. Remove first_coalesced_allocno and
9499 next_coalesced_allocno. Move mem_optimized_dest_p,
9500 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
9501 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
9502 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
9503 temp, colorable_p. Add new member add_data.
9504 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
9505 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
9506 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
9507 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
9508 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
9509 (ALLOCNO_ADD_DATA): New macro.
9510 (ira_emit_data_t): New typedef.
9511 (struct ira_emit_data): New. Move mem_optimized_dest_p,
9512 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
9513 from struct ira_allocno.
9514 (ALLOCNO_EMIT_DATA): New macro.
9515 (ira_allocno_emit_data, allocno_emit_reg): New.
9516 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
9517 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
9518 (OBJECT_ADD_DATA): New macro.
9519 (ira_reallocate): Remove.
9520 (ira_initiate_emit_data, ira_finish_emit_data): New.
9521 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
9522 (ira_init_register_move_cost_if_necessary): New.
9523 (ira_object_conflict_iter_next): Merge into
9524 ira_object_conflict_iter_cond.
9525 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
9526
9527 * ira-live.c (process_single_reg_class_operands): Call
9528 ira_init_register_move_cost_if_necessary. Use
9529 ira_register_move_cost instead of ira_get_register_move_cost.
9530
9531 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
9532
9533 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
9534
9535 * ira-costs.c: Fix formatting.
9536 (cost_classes, cost_classes_num): Remove.
9537 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
9538 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
9539 (cost_classes_del, cost_classes_htab): New.
9540 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
9541 (initiate_regno_cost_classes, setup_cost_classes): New.
9542 (setup_regno_cost_classes_by_aclass): New.
9543 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
9544 (record_reg_classes): Use regno_cost_classes instead of
9545 cost_classes. Move checking opposite operand up.
9546 (record_address_regs): Use regno_cost_classes
9547 instead of cost_classes.
9548 (scan_one_insn): Ditto. Use always general register.
9549 (print_allocno_costs): Use regno_cost_classes instead of
9550 cost_classes.
9551 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
9552 (find_costs_and_classes): Set up cost classes for each registers.
9553 Use also their mode for this. Use regno_cost_classes instead of
9554 cost_classes.
9555 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
9556 cost_classes.
9557 (free_ira_costs, ira_init_costs): Don't use cost_classes.
9558 (ira_costs, ira_set_pseudo_classes): Call
9559 initiate_regno_cost_classes and finish_regno_cost_classes.
9560
9561 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
9562
9563 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
9564
9565 * target.def (ira_cover_classes): Remove.
9566
9567 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
9568
9569 * doc/tm.texi.in: Ditto.
9570
9571 * ira-conflicts.c: Remove mentioning cover classes from the file.
9572 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
9573 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
9574
9575 * targhooks.c (default_ira_cover_classes): Remove.
9576
9577 * targhooks.h (default_ira_cover_classes): Ditto.
9578
9579 * haifa-sched.c: Remove mentioning cover classes from the file.
9580 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
9581 ira_pressure_classes and ira_pressure_classes_num instead of
9582 ira_reg_class_cover_size and ira_reg_class_cover. Use
9583 sched_regno_pressure_class instead of sched_regno_cover_class.
9584 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
9585 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9586
9587 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
9588 classes from the file.
9589 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
9590 (struct object_hard_regs, struct object_hard_regs_node): New.
9591 (struct ira_object): New members profitable_hard_regs,
9592 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
9593 (struct ira_allocno): Rename cover_class to aclass. Rename
9594 cover_class_cost and updated_cover_class_cost to class_cost and
9595 updated_class_cost. Remove splay_removed_p and
9596 left_conflict_size. Add new members colorable_p.
9597 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
9598 (ALLOCNO_COLORABLE_P): New macro.
9599 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
9600 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
9601 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
9602 (OBJECT_...): Rename parameter C to O.
9603 (OBJECT_PROFITABLE_HARD_REGS): New macro.
9604 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
9605 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
9606 (struct target_ira_int): New members x_ira_max_memory_move_cost,
9607 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
9608 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
9609 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
9610 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
9611 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
9612 x_ira_reg_class_subunion.
9613 (ira_max_memory_move_cost, ira_max_register_move_cost)
9614 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
9615 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
9616 (ira_important_class_nums, ira_reg_class_superunion): New macros.
9617 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
9618 (ira_reg_class_union): Rename to ira_reg_class_subunion.
9619 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9620 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9621 (ira_tune_allocno_costs_and_cover_classes): Rename to
9622 ira_tune_allocno_costs.
9623 (ira_debug_hard_regs_forest): New.
9624 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
9625 (ira_object_conflict_iter_next): Fix comments.
9626 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
9627 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
9628 cover_class to aclass.
9629 (ira_allocate_and_accumulate_costs): Ditto.
9630 (ira_allocate_and_set_or_copy_costs): Ditto.
9631
9632 * opts.c (decode_options): Remove ira_cover_class check.
9633
9634 * ira-color.c: Remove mentioning cover classes from the file. Use
9635 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
9636 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
9637 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
9638 (splay-tree.h): Remove include.
9639 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
9640 before copy_freq_compare_func.
9641 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
9642 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
9643 New definitions.
9644 (hard_regs_roots, hard_regs_node_vec): Ditto.
9645 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
9646 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
9647 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
9648 (create_new_object_hard_regs_node): Ditto.
9649 (add_new_object_hard_regs_node_to_forest): Ditto.
9650 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
9651 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
9652 Ditto.
9653 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
9654 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
9655 (remove_unused_object_hard_regs_nodes): Ditto.
9656 (enumerate_object_hard_regs_nodes): Ditto.
9657 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
9658 (object_hard_regs_subnode_t): Ditto.
9659 (struct object_hard_regs_subnode): Ditto.
9660 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
9661 (setup_object_hard_regs_subnode_index): Ditto.
9662 (get_object_hard_regs_subnodes_num): Ditto.
9663 (form_object_hard_regs_nodes_forest): Ditto.
9664 (finish_object_hard_regs_nodes_tree): Ditto.
9665 (finish_object_hard_regs_nodes_forest): Ditto.
9666 (allocnos_have_intersected_live_ranges_p): Rename to
9667 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
9668 (pseudos_have_intersected_live_ranges_p): Rename to
9669 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
9670 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
9671 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
9672 (update_copy_costs): Remove assert. Skip cost update if the hard
9673 reg does not belong the class.
9674 (assign_hard_reg): Process only profitable hard regs.
9675 (uncolorable_allocnos_num): Make it scalar.
9676 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
9677 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
9678 and ira_reg_class_max_nregs.
9679 (bucket_allocno_compare_func): Check frequency first.
9680 (sort_bucket): Add compare function as a parameter.
9681 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
9682 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
9683 (push_allocno_to_stack): Rewrite for checking new allocno
9684 colorability.
9685 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
9686 (push_only_colorable): Pass new parameter to sort_bucket.
9687 (push_allocno_to_spill): Remove.
9688 (allocno_spill_priority_compare): Make it inline and rewrite.
9689 (splay_tree_allocate, splay_tree_free): Remove.
9690 (allocno_spill_sort_compare): New function.
9691 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
9692 build and use splay tree. Choose first allocno in uncolorable
9693 allocno bucket to spill. Remove setting spill cost.
9694 (all_conflicting_hard_regs): Remove.
9695 (setup_allocno_available_regs_num): Check only profitable hard
9696 regs. Print info about hard regs nodes.
9697 (setup_allocno_left_conflicts_size): Remove.
9698 (put_allocno_into_bucket): Don't call
9699 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
9700 (improve_allocation): New.
9701 (color_allocnos): Call setup_profitable_hard_regs,
9702 form_object_hard_regs_nodes_forest, improve_allocation,
9703 finish_object_hard_regs_nodes_forest. Setup spill cost.
9704 (print_loop_title): Use pressure classes.
9705 (color_allocnso): Ditto.
9706 (do_coloring): Remove allocation and freeing splay_tree_node_pool
9707 and allocnos_for_spilling.
9708 (ira_sort_regnos_for_alter_reg): Don't setup members
9709 {first,next}_coalesced_allocno.
9710 (color): Remove allocating and freeing removed_splay_allocno_vec.
9711 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
9712 prohibited_class_mode_regs.
9713
9714 * ira-lives.c: Remove mentioning cover classes from the file. Fix
9715 formatting.
9716 (update_allocno_pressure_excess_length): Use pressure classes.
9717 (inc_register_pressure, dec_register_pressure): Check for pressure
9718 class.
9719 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
9720 pressure class. Use ira_reg_class_nregs instead of
9721 ira_reg_class_max_nregs.
9722 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
9723 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
9724 (single_reg_class): Use ira_reg_class_nregs instead of
9725 ira_reg_class_max_nregs.
9726 (process_bb_node_lives): Use pressure classes.
9727
9728 * ira-emit.c: Remove mentioning cover classes from the file. Use
9729 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
9730 (change_loop): Use pressure classes.
9731 (modify_move_list): Call ira_set_allocno_class instead of
9732 ira_set_allocno_cover_class.
9733
9734 * ira-build.c: Remove mentioning cover classes from the file. Use
9735 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
9736 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
9737 ALLOCNO_UPDATED_CLASS_COST instead of
9738 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
9739 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
9740 (ira_create_allocno): Remove initialization of
9741 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
9742 ALLOCNO_COLORABLE_P.
9743 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9744 Update conflict regs for the objects.
9745 (create_cap_allocno): Remove assert. Don't propagate
9746 ALLOCNO_AVAILABLE_REGS_NUM.
9747 (ira_free_allocno_costs): New function.
9748 (finish_allocno): Change a part of code into call of
9749 ira_free_allocno_costs.
9750 (low_pressure_loop_node_p): Use pressure classes.
9751 (object_range_compare_func): Don't compare classes.
9752 (setup_min_max_conflict_allocno_ids): Ditto.
9753
9754 * loop-invariant.c: Remove mentioning cover classes from the file.
9755 Use ira_pressure_classes and ira_pressure_classes_num instead of
9756 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
9757 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
9758 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9759 Use reg_allocno_class instead of reg_cover_class.
9760 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
9761 STACK_REG_COVER_CLASS.
9762 (get_regno_cover_class): Rename to get_regno_pressure_class.
9763 (move_loop_invariants): Initialize and finalize regstat.
9764
9765 * ira.c: Remove mentioning cover classes from the file. Add
9766 comments about coloring without cover classes. Use ALLOCNO_CLASS
9767 instead of ALLOCNO_COVER_CLASS. Fix formatting.
9768 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
9769 setup_class_subset_and_memory_move_costs.
9770 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9771 (setup_cover_and_important_classes): Rename to
9772 setup_allocno_and_important_classes.
9773 (setup_class_translate_array): New.
9774 (setup_class_translate): Call it for allocno and pressure classes.
9775 (cover_class_order): Rename to allocno_class_order.
9776 (comp_reg_classes_func): Use ira_allocno_class_translate instead
9777 of ira_class_translate.
9778 (reorder_important_classes): Set up ira_important_class_nums.
9779 (setup_reg_class_relations): Set up ira_reg_class_superunion.
9780 (print_class_cover): Rename to print_classes. Add parameter.
9781 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9782 Print pressure classes too.
9783 (find_reg_class_closure): Rename to find_reg_classes. Don't call
9784 setup_reg_subclasses.
9785 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9786 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9787 (setup_prohibited_class_mode_regs): Use
9788 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9789 (clarify_prohibited_class_mode_regs): New function.
9790 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9791 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9792 (ira_init_once): Initialize them.
9793 (free_register_move_costs): Process them.
9794 (ira_init): Move calls of find_reg_classes and
9795 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9796 Call clarify_prohibited_class_mode_regs.
9797 (ira_no_alloc_reg): Remove.
9798 (too_high_register_pressure_p): Use pressure classes.
9799
9800 * sched-deps.c: Remove mentioning cover classes from the file.
9801 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
9802 ira_pressure_classes and ira_pressure_classes_num instead of
9803 ira_reg_class_cover_size and ira_reg_class_cover.
9804 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9805 sched_regno_pressure_class instead of sched_regno_cover_class.
9806 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
9807 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9808
9809 * ira.h: Add 2010 to Copyright.
9810 (ira_no_alloc_reg): Remove external.
9811 (struct target_ira): Rename x_ira_hard_regno_cover_class,
9812 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9813 x_ira_class_translate to x_ira_hard_regno_allocno_class,
9814 x_ira_allocno_classes_num, x_ira_allocno_classes, and
9815 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
9816 x_ira_pressure_classes, x_ira_pressure_class_translate, and
9817 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
9818 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
9819 x_ira_no_alloc_regs.
9820 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9821 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9822 ira_allocno_classes_num and ira_allocno_classes.
9823 (ira_class_translate): Rename to ira_allocno_class_translate.
9824 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9825 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9826 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9827 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9828 (ira_no_alloc_regs): New.
9829
9830 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
9831 classes from the file. Use ALLOCNO_CLASS instead of
9832 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
9833 ALLOCNO_COVER_CLASS_COST.
9834 (regno_cover_class): Rename to regno_aclass.
9835 (record_reg_classes): Use ira_reg_class_subunion instead of
9836 ira_reg_class_union.
9837 (record_address_regs): Check overflow.
9838 (scan_one_insn): Ditto.
9839 (print_allocno_costs): Print total mem cost fore regional allocation.
9840 (print_pseudo_costs): Use REG_N_REFS.
9841 (find_costs_and_classes): Use classes intersected with them on the
9842 1st pass. Check overflow. Use ira_reg_class_subunion instead of
9843 ira_reg_class_union. Use ira_allocno_class_translate and
9844 regno_aclass instead of ira_class_translate and regno_cover_class.
9845 Modify code for finding regno_aclass. Setup preferred classes for
9846 the next pass.
9847 (setup_allocno_cover_class_and_costs): Rename to
9848 setup_allocno_class_and_costs. Use regno_aclass instead of
9849 regno_cover_class. Use ira_set_allocno_class instead of
9850 ira_set_allocno_cover_class.
9851 (init_costs, finish_costs): Use regno_aclass instead of
9852 regno_cover_class.
9853 (ira_costs): Use setup_allocno_class_and_costs instead of
9854 setup_allocno_cover_class_and_costs.
9855 (ira_tune_allocno_costs_and_cover_classes): Rename to
9856 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
9857 by processing objects. Use ira_reg_class_max_nregs instead of
9858 ira_reg_class_nregs.
9859
9860 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9861
9862 * sched-int.h: Remove mentioning cover classes from the file.
9863 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9864
9865 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
9866 classes from the file.
9867 (struct reg_pref): Rename coverclass into allocnoclass.
9868 (reg_cover_class): Rename to reg_allocno_class.
9869
9870 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9871
9872 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9873
9874 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9875
9876 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9877
9878 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9879
9880 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9881
9882 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9883
9884 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9885
9886 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9887
9888 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9889
9890 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9891 (i386_ira_cover_classes): Ditto.
9892
9893 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9894
9895 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9896
9897 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9898
9899 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9900
9901 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9902
9903 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9904
9905 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9906 (mips_ira_cover_classes): Ditto.
9907
9908 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9909
9910 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9911
9912 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9913
9914 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9915
9916 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9917
9918 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9919 (IRA_COVER_CLASSES_VSX): Ditto.
9920
9921 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9922 (rs6000_ira_cover_classes): Ditto.
9923
9924 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9925
9926 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9927
9928 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9929
9930 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9931
9932 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9933
9934 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9935
9936 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9937
9938 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9939
9940 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9941
9942 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9943
9944 2011-03-29 Jakub Jelinek <jakub@redhat.com>
9945
9946 PR debug/48253
9947 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9948 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9949 dw_fde_unlikely_section_end_label, cold_in_std_section,
9950 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9951 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9952 fields.
9953 (output_fde): Use dw_fde_second_{begin,end} if second is
9954 true, otherwise dw_fde_{begin,end}.
9955 (output_call_frame_info): Test dw_fde_second_begin != NULL
9956 instead of dw_fde_switched_sections.
9957 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9958 fields, initialize new fields. Initialize in_std_section
9959 unconditionally from the first partition.
9960 (dwarf2out_end_epilogue): Don't override dw_fde_end when
9961 dw_fde_second_begin is non-NULL.
9962 (dwarf2out_switch_text_section): Stop initializing removed
9963 dw_fde_struct fields, initialize new fields, initialize
9964 also dw_fde_end here. Set dw_fde_switch_cfi even when
9965 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
9966 (struct var_loc_list_def): Add last_before_switch field.
9967 (arange_table, arange_table_allocated, arange_table_in_use,
9968 ARANGE_TABLE_INCREMENT, add_arange): Removed.
9969 (size_of_aranges): Count !in_std_section and !second_in_std_section
9970 hunks in fdes, instead of looking at arange_table_in_use.
9971 (output_aranges): Add aranges_length argument, don't call
9972 size_of_aranges here. Instead of using aranges_table*
9973 emit ranges for fdes when !in_std_section resp.
9974 !second_in_std_section.
9975 (dw_loc_list): Break ranges crossing section switch.
9976 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
9977 use dw_fde_second_end instead of dw_fde_end as end of last range.
9978 (gen_subprogram_die): Don't call add_arange. Use
9979 dw_fde_{begin,end} for first partition and if switched
9980 section dw_fde_second_{begin,end} for the second.
9981 (var_location_switch_text_section_1,
9982 var_location_switch_text_section): New functions.
9983 (dwarf2out_begin_function): Initialize cold_text_section even
9984 when function_section () isn't text_section.
9985 (prune_unused_types): Don't walk arange_table.
9986 (dwarf2out_finish): Don't needlessly test
9987 flag_reorder_blocks_and_partition when testing cold_text_section_used.
9988 If info_section_emitted, call size_of_aranges and if it indicates
9989 non-empty .debug_aranges, call output_aranges with the computed
9990 size. Stop using removed dw_fde_struct fields, use
9991 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9992 for second.
9993
9994 PR debug/48203
9995 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9996 create ENTRY_VALUE if incoming or address of incoming's MEM
9997 is a hard REG.
9998 * dwarf2out.c (mem_loc_descriptor): Don't emit
9999 DW_OP_GNU_entry_value of DW_OP_fbreg.
10000 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
10001 on ENTRY_VALUE is able to find the canonical parameter VALUE.
10002 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
10003 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
10004 ENTRY_VALUE_EXPs.
10005 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
10006 is a REG_P or MEM_P with REG_P address, compute hash directly
10007 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
10008 (preserve_only_constants): Don't clear VALUES forwaring
10009 ENTRY_VALUE to some other VALUE.
10010
10011 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
10012
10013 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
10014 instead of GEN_INT.
10015
10016 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
10017
10018 * cfgexpand.c (expand_gimple_cond): Always set the source location and
10019 block before expanding the statement.
10020 (expand_gimple_stmt_1): Likewise. Set them here...
10021 (expand_gimple_stmt): ...and not here. Tidy.
10022 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
10023 unknown.
10024
10025 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
10026
10027 * Makefile.in: New rule for cprop.o.
10028 * gcse.c: Move constant/copy propagation to cprop.c.
10029 (compute_local_properties): Only handle expression tables.
10030 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
10031 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
10032 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
10033 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
10034 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
10035 compute_cprop_data, find_used_regs, try_replace_reg,
10036 find_avail_set, cprop_jump, constprop_register, cprop_insn,
10037 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
10038 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
10039 find_bypass_set, reg_killed_on_edge, bypass_block,
10040 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
10041 execute_rtl_cprop, pass_rtl_cprop): Move to...
10042 * cprop.c: ...here. New file, constant/copy propagation for RTL
10043 moved from gcse.c to here with minor cleanups in duplicated code.
10044
10045 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
10046
10047 * config/i386/i386.c (flag_opts): Fix a typo in
10048 -mavx256-split-unaligned-store.
10049
10050 2011-03-28 Anatoly Sokolov <aesok@post.ru>
10051
10052 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
10053 LIBCALL_VALUE): Remove macros.
10054 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10055 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10056 (h8300_function_value, h8300_libcall_value,
10057 h8300_function_value_regno_p): New functions.
10058
10059 2011-03-28 Anatoly Sokolov <aesok@post.ru>
10060
10061 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
10062
10063 2011-03-28 Jeff Law <law@redhat.com>
10064
10065 * tree-ssa-threadupdate.c (redirect_edges): Call
10066 create_edge_and_update_destination_phis as needed.
10067 (create_edge_and_update_destination_phis): Accept new BB argument.
10068 All callers updated.
10069 (thread_block): Do not update the profile when threading around
10070 intermediate blocks.
10071 (thread_single_edge): Likewise.
10072 (determine_bb_domination_status): If BB is not a successor of the
10073 loop header, return NONDOMINATING.
10074 (register_jump_thread): Note when we register a jump thread around
10075 an intermediate block.
10076 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
10077 (thread_across_edge): Use it.
10078
10079 2011-03-28 Tristan Gingold <gingold@adacore.com>
10080
10081 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
10082 when for_return is 2.
10083
10084 2011-03-28 Jeff Law <law@redhat.com>
10085
10086 * var-tracking.c (canonicalize_values_mark): Delete unused
10087 lhs assignment.
10088 (canonicalize_values_star, set_variable_part): Likewise.
10089 (clobber_variable_part, delete_variable_part): Likewise.
10090
10091 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
10092
10093 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
10094
10095 2011-03-28 Martin Jambor <mjambor@suse.cz>
10096
10097 * tree-inline.c (expand_call_inline): Do not check that destination
10098 node is analyzed.
10099 (optimize_inline_calls): Assert that destination node is analyzed.
10100 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
10101 not call tree_lowering_passes.
10102 * cgraph.h (cgraph_analyze_function): Declare.
10103 * cgraphunit.c (cgraph_analyze_function): Make public.
10104
10105 2011-03-28 Joseph Myers <joseph@codesourcery.com>
10106
10107 * config/sparc/sparc-opts.h: New.
10108 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
10109 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
10110 (sparc_option_override): Store processor_type enumeration rather
10111 than string in cpu_default. Remove name and enumeration from
10112 cpu_table. Directly default -mcpu then default -mtune from -mcpu
10113 without using sparc_select. Use target_flags_explicit instead of
10114 fpu_option_set.
10115 * config/sparc/sparc.h (enum processor_type): Move to
10116 sparc-opts.h.
10117 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
10118 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
10119 HeaderInclude entry.
10120 (mcpu=, mtune=): Use Var and Enum.
10121 (sparc_processor_type): New Enum and EnumValue entries.
10122
10123 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10124 Iain Sandoe <iains@gcc.gnu.org>
10125
10126 PR target/48245
10127 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
10128
10129 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
10130
10131 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
10132 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
10133 Insert new statements at it in lieu of STMT.
10134 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
10135 * tree-vect-stmts.c (vectorizable_store): Likewise.
10136 (vectorizable_load): Likewise.
10137
10138 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
10139
10140 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
10141 (divtf3): Ditto.
10142 (multf3): Ditto.
10143 (subtf3): Ditto.
10144
10145 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
10146
10147 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
10148 unaligned 256bit load/store.
10149 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
10150 (*avx_movdqu<avxmodesuffix>): Likewise.
10151
10152 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10153
10154 PR target/48288
10155 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
10156 * config/pa/pa.md (iordi3): Use new predicate in expander.
10157 (iorsi3): Likewise.
10158
10159 2011-03-27 Anatoly Sokolov <aesok@post.ru>
10160
10161 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
10162 FUNCTION_VALUE_REGNO_P): Remove macros.
10163 * config/mips/mips-protos.h (mips_function_value): Remove.
10164 * config/mips/mips.c (mips_function_value): Rename to...
10165 (mips_function_value_1): ... this. Make static. Handle receiving
10166 the function type in 'fn_decl_or_type' argument.
10167 (mips_function_value, mips_libcall_value,
10168 mips_function_value_regno_p): New function.
10169 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10170 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10171
10172 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
10173
10174 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
10175 and -mavx256-split-unaligned-store.
10176 (ix86_option_override_internal): Split 32-byte AVX unaligned
10177 load/store by default.
10178 (ix86_avx256_split_vector_move_misalign): New.
10179 (ix86_expand_vector_move_misalign): Use it.
10180
10181 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
10182 -mavx256-split-unaligned-store.
10183
10184 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
10185 256bit load/store. Generate unaligned store on misaligned memory
10186 operand.
10187 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
10188 256bit load/store.
10189 (*avx_movdqu<avxmodesuffix>): Likewise.
10190
10191 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
10192 -mavx256-split-unaligned-store.
10193
10194 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
10195
10196 PR target/38598
10197 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
10198 Update commentary.
10199
10200 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
10201
10202 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
10203 opno arguments with an expand_operand. Use create_input_operand.
10204 (mips_prepare_builtin_target): Delete.
10205 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
10206 functions.
10207 (mips_expand_builtin_direct): Use create_output_operand and
10208 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
10209 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
10210 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
10211
10212 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
10213
10214 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
10215 function.
10216 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10217
10218 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
10219
10220 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
10221 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
10222 basic blocks and call commit_edge_insertions directly.
10223 (fixup_abnormal_edges): Move from here to...
10224 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
10225 on the edges and return whether some have actually been inserted.
10226 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
10227 compensation code.
10228
10229 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
10230
10231 PR rtl-optimization/48144
10232 * sel-sched-ir.c (merge_history_vect): Factor out from ...
10233 (merge_expr_data): ... here.
10234 (av_set_intersect): Rename to av_set_code_motion_filter.
10235 Update all callers. Call merge_history_vect when an expression
10236 is found in both sets.
10237 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
10238
10239 2011-03-26 Alan Modra <amodra@gmail.com>
10240
10241 * config/rs6000/predicates.md (word_offset_memref_op): Handle
10242 cmodel medium addresses.
10243 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
10244 64-bit gpr loads and stores.
10245 (rs6000_secondary_reload_ppc64): New function.
10246 * config/rs6000/rs6000-protos.h: Declare it.
10247 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
10248
10249 2011-03-26 Alan Modra <amodra@gmail.com>
10250
10251 PR target/47487
10252 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
10253 GNU Go in traceback table.
10254
10255 2011-03-25 Richard Henderson <rth@redhat.com>
10256
10257 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
10258 if there are exactly 6 operands.
10259 (set_storage_via_setmem): Similarly.
10260
10261 2011-03-25 Kai Tietz <ktietz@redhat.com>
10262
10263 * collect2.c (write_c_file_stat): Handle backslash
10264 as right-hand directory separator.
10265 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
10266 checking just for slash.
10267 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
10268 instead of checking for trailing slash.
10269 * gcc.c (record_temp_file): Use filename_cmp instead
10270 of strcmp.
10271 (do_spec_1): Likewise.
10272 (replace_outfile_spec_function): Likewise.
10273 (is_directory): Use filename_ncmp instead of strncmp.
10274 (print_multilib_info): Likewise.
10275 * gcov.c (find_source): Use filename_cmp instead
10276 instead of strcmp.
10277 (make_gcov_file_name): Fix order of slash/backslash
10278 checks.
10279 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
10280 (add_standard_paths): Likewise.
10281 * mips-tfile.c (saber_stop): Handle backslash.
10282 * prefix.c (update_path): Use filename_ncmp instead of
10283 strncmp.
10284 * profile.c (output_location): Use filename_cmp instead
10285 of strcmp.
10286 * read-md.c (handle_toplevel_file): Handle backslash.
10287 * tlink.c (frob_extension): Likewise.
10288 * tree-cfg.c (same_line_p): Use filename_cmp instead of
10289 strcmp.
10290 * tree-dump.c (dequeue_and_dump): Handle backslash.
10291 * tree.c (get_file_function_name): Likewise.
10292 * gengtype.c (read_input_list): Likewise.
10293 (get_file_realbasename): Likewise.
10294 (get_output_file_with_visibility): Use filename_cmp
10295 instead of strcmp.
10296
10297 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
10298
10299 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
10300 case to VFPv1.
10301
10302 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
10303
10304 * fold-const.c (expr_location_or): New function.
10305 (fold_truth_not_expr): Call it.
10306
10307 2011-03-25 Jeff Law <law@redhat.com>
10308
10309 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
10310 va_end.
10311 * c-family/c-common.c (def_fn_type): Likewise.
10312 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
10313 * emit-rtl.c (gen_rtvec): Likewise.
10314 * lto/lto-lang.c (def_fn_type): Likewise.
10315
10316 2011-03-25 Richard Guenther <rguenther@suse.de>
10317
10318 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
10319 also generate copies.
10320 (fini_copy_prop): Handle constant values properly.
10321
10322 2011-03-25 Jakub Jelinek <jakub@redhat.com>
10323
10324 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
10325 mode size instead of bitsize with DWARF2_ADDR_SIZE.
10326 (hash_loc_operands, compare_loc_operands): Handle
10327 DW_OP_GNU_entry_value.
10328
10329 2011-03-25 Kai Tietz <ktietz@redhat.com>
10330
10331 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
10332 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
10333 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
10334 comment and use macro TARGET_64BIT_MS_ABI instead.
10335 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
10336 and change default behavior for 32-bit MS_ABI.
10337 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
10338 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
10339 32-bit, too.
10340 (ix86_cfun_abi): Likewise.
10341 (ix86_maybe_switch_abi): Adjust comment.
10342 (init_cumulative_args): Check for bit-ness in MS_ABI case.
10343 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
10344 instead of checking for SYSV_ABI.
10345 (ix86_nsaved_sseregs): Likewise.
10346 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
10347 to 16 bytes.
10348 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
10349 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
10350 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
10351 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
10352 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
10353
10354 2011-03-25 Richard Guenther <rguenther@suse.de>
10355
10356 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
10357 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
10358 (verify_gimple): Remove.
10359 * tree-cfg.c (verify_gimple_call): Merge verification
10360 from verify_stmts.
10361 (verify_gimple_phi): Merge verification from verify_stmts.
10362 (verify_gimple_label): New function.
10363 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
10364 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
10365 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
10366 (verify_stmts): Rename to verify_gimple_in_cfg.
10367 (verify_gimple_in_cfg): New function.
10368 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
10369 * tree-ssa.c (verify_ssa): Likewise.
10370 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
10371
10372 2011-03-25 Richard Guenther <rguenther@suse.de>
10373
10374 * passes.c (init_optimization_passes): Add FRE pass after
10375 early SRA.
10376
10377 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
10378 Andrew Stubbs <ams@codesourcery.com>
10379
10380 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
10381 for Cortex-A8.
10382 (arm_movdi_vfp_cortexa8): New pattern.
10383 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
10384 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
10385 instructions when tuning for Cortex-A8. Set attribute "arch".
10386 * config/arm/arm.md: Move include arm-tune.md up a bit.
10387 (define_attr "arch"): Add "onlya8" and "nota8" values.
10388 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
10389
10390 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
10391
10392 PR bootstrap/48282
10393 Revert:
10394 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10395
10396 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10397 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
10398 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10399 * passes.c (init_optimization_passes): Move
10400 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10401
10402 2011-03-25 Kai Tietz <ktietz@redhat.com>
10403
10404 * c-typeck.c (comptypes_internal): Replace target
10405 hook call of comp_type_attributes by version in tree.c file.
10406 * gimple.c (gimple_types_compatible_p_1): Likewise.
10407 * tree-ssa.c (useless_type_conversion_p): Likewise.
10408 * tree.c (build_type_attribute_qual_variant): Likewise.
10409 (attribute_value_equal): New static helper function.
10410 (comp_type_attributes): New function.
10411 (merge_attributes): Use attribute_value_equal for comparison.
10412 (attribute_list_contained): Likewise.
10413 * tree.h (comp_type_attributes): New prototype.
10414
10415 2011-03-25 Richard Guenther <rguenther@suse.de>
10416
10417 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
10418 of complex types at -O0.
10419 (verify_gimple_assign_binary): Likewise.
10420 (verify_gimple_assign_ternary): Likewise.
10421
10422 2011-03-24 Mark Wielaard <mjw@redhat.com>
10423
10424 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
10425 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
10426
10427 2011-03-24 Mark Wielaard <mjw@redhat.com>
10428
10429 PR debug/48041
10430 * dwarf2out.c (output_abbrev_section): Only write table when
10431 abbrev_die_table_in_use > 1.
10432
10433 2011-02-24 Richard Henderson <rth@redhat.com>
10434
10435 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
10436 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
10437 (alpha_expand_unaligned_load_words): Use extql.
10438 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
10439 (emit_insxl): Handle all modes for consistency.
10440
10441 2011-02-24 Richard Henderson <rth@redhat.com>
10442
10443 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
10444 (alpha_expand_unaligned_load): Likewise.
10445 (alpha_expand_unaligned_store): Likewise.
10446 (alpha_expand_unaligned_load_words): Likewise.
10447 (alpha_expand_unaligned_store_words): Likewise.
10448 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
10449 (alpha_split_lock_test_and_set_12): Likewise.
10450 (print_operand, alpha_fold_builtin_extxx): Likewise.
10451 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
10452 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
10453 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
10454 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
10455 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
10456 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
10457 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
10458 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
10459 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
10460 (extwl, extll, extql): Similarly.
10461 (inswh, inslh, insqh): Similarly.
10462 (mskbl, mskwl, mskll, mskql): Similarly.
10463 (mskwh, msklh, mskqh): Similarly.
10464
10465 2011-02-24 Richard Henderson <rth@redhat.com>
10466
10467 * config/alpha/alpha.md (attribute isa): Add er, ner.
10468 (attribute enabled): Handle them.
10469 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
10470
10471 2011-02-24 Richard Henderson <rth@redhat.com>
10472
10473 * config/alpha/alpha.md (attribute isa): Add vms.
10474 (attribute enabled): Handle it.
10475 (*movsf): Merge *movsf_{nofix,fix,nofp}.
10476 (*movdf): Merge *movdf_{nofix,fix,nofp}.
10477 (*movtf): Rename from *movtf_internal for consistency.
10478 (*movsi): Merge with *movsi_nt_vms.
10479 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
10480 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
10481 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
10482 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
10483
10484 2011-02-24 Richard Henderson <rth@redhat.com>
10485
10486 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
10487 (extendqisi2, extendhisi2): Likewise.
10488 (extendqidi2): Simplify BWX/non-BWX expansions.
10489 (extendhidi2): Similarly.
10490
10491 2011-02-24 Richard Henderson <rth@redhat.com>
10492
10493 * config/alpha/alpha.md (attribute isa): New.
10494 (attribute enabled): New.
10495 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
10496 (zero_extendqisi2, zero_extendqidi2): Similarly.
10497 (zero_extendhisi2, zero_extendhidi2): Similarly.
10498 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
10499
10500 2011-02-24 Richard Henderson <rth@redhat.com>
10501
10502 * config/alpha/predicates.md (input_operand): Revert last change;
10503 update comment to mention 32-bit VMS rather than Windows.
10504
10505 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10506
10507 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10508 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
10509 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10510 * passes.c (init_optimization_passes): Move
10511 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10512
10513 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10514
10515 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
10516
10517 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
10518
10519 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
10520 correctly.
10521
10522 2011-03-24 Jakub Jelinek <jakub@redhat.com>
10523
10524 PR debug/48204
10525 * simplify-rtx.c (simplify_const_unary_operation): Call
10526 real_convert when changing mode class with FLOAT_EXTEND.
10527
10528 2011-03-24 Nick Clifton <nickc@redhat.com>
10529
10530 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
10531 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10532 * config/rx/rx.c (rx_option_override): Set align_jumps,
10533 align_loops and align_labels if not set by the user.
10534 (rx_align_for_label): New function.
10535 (rx_max_skip_for_label): New function.
10536 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
10537 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
10538 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
10539 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
10540 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
10541
10542 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10543
10544 PR rtl-optimization/48263
10545 * optabs.c (expand_binop_directly): Reinstate convert_modes code
10546 and original commutative_p handling. Use maybe_gen_insn.
10547
10548 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10549
10550 * reload.c (find_reloads_subreg_address): Add address_reloaded
10551 parameter and return true there if the full address has been
10552 reloaded.
10553 (find_reloads_toplev): Pass address_reloaded flag.
10554 (find_reloads_address_1): Don't use address_reloaded parameter.
10555
10556 2011-03-24 Jeff Law <law@redhat.com>
10557
10558 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
10559 unused variable "ann".
10560 (remove_unused_locals): Likewise.
10561
10562 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
10563 statement.
10564
10565 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
10566 after it is freed.
10567
10568 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10569
10570 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
10571 for invalid symbolic addresses.
10572 (s390_secondary_reload): Don't use s390_check_symref_alignment for
10573 larl operands.
10574
10575 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10576
10577 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
10578 the argument in calls to fold_truth_not_expr.
10579
10580 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10581
10582 * tree.c (record_node_allocation_statistics): New function.
10583 (make_node_stat, copy_node_stat, build_string): Call it.
10584 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
10585 (build1_stat, build_omp_clause): Likewise.
10586
10587 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10588
10589 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
10590 last commit.
10591
10592 2011-03-24 Richard Guenther <rguenther@suse.de>
10593
10594 PR tree-optimization/48271
10595 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
10596 blocks that still exist.
10597
10598 2011-03-24 Richard Guenther <rguenther@suse.de>
10599
10600 PR tree-optimization/48270
10601 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
10602 not free datarefs before ddrs.
10603
10604 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10605
10606 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
10607 from the address built for a reference with variable offset.
10608
10609 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
10610
10611 PR target/48237
10612 * config/i386/i386.md (*movdf_internal_rex64): Do not split
10613 alternatives that can be handled with movq or movabsq insn.
10614 (*movdf_internal): Disable for !TARGET_64BIT.
10615 (*movdf_internal_nointeger): Ditto.
10616 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
10617
10618 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10619
10620 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10621 (FUNCTION_ARG_ADVANCE): Likewise.
10622 * tm.texi.in: Change references to them to hook references.
10623 * tm.texi: Regenerate.
10624 * targhooks.c (default_function_arg): Eliminate check for target macro.
10625 (default_function_incoming_arg): Likewise.
10626 (default_function_arg_advance): Likewise.
10627 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10628 (function_arg_advance): Likewise.
10629 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10630
10631 2011-03-24 Richard Guenther <rguenther@suse.de>
10632
10633 PR middle-end/48269
10634 * tree-object-size.c (addr_object_size): Do not double-account
10635 for MEM_REF offsets.
10636
10637 2011-03-24 Diego Novillo <dnovillo@google.com>
10638
10639 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
10640 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
10641 (lto_input_data_block): Move from lto-opts.c. Make extern.
10642 Update all users.
10643 (lto_input_string): Rename from input_string. Make extern.
10644 Update all users.
10645 * lto-streamer-out.c (lto_output_string_with_length): Rename from
10646 output_string_with_length.
10647 Output 0 to indicate a non-NULL string. Update all callers to
10648 not emit 0.
10649 (lto_output_string): Rename from output_string. Make extern.
10650 Update all users.
10651 (lto_output_decl_state_streams): Make extern.
10652 (lto_output_decl_state_refs): Make extern.
10653 * lto-streamer.h (lto_input_string): Declare.
10654 (lto_input_data_block): Declare.
10655 (lto_output_string): Declare.
10656 (lto_output_string_with_length): Declare.
10657 (lto_output_decl_state_streams): Declare.
10658 (lto_output_decl_state_refs): Declare.
10659
10660 2011-03-24 Richard Guenther <rguenther@suse.de>
10661
10662 PR tree-optimization/46562
10663 * tree.c (build_invariant_address): New function.
10664 * tree.h (build_invariant_address): Declare.
10665 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
10666 a renamed function moved ...
10667 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
10668 Take valueization callback parameter.
10669 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
10670 * gimple-fold.h: New file.
10671 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
10672 (ccp_fold, fold_const_aggregate_ref,
10673 fold_ctor_reference, fold_nonarray_ctor_reference,
10674 fold_array_ctor_reference, fold_string_cst_ctor_reference,
10675 get_base_constructor): Move ...
10676 * gimple-fold.c: ... here.
10677 (gimple_fold_stmt_to_constant_1): New function
10678 split out from ccp_fold. Take a valueization callback parameter.
10679 Valueize all operands.
10680 (gimple_fold_stmt_to_constant): New wrapper function.
10681 (fold_const_aggregate_ref_1): New function split out from
10682 fold_const_aggregate_ref. Take a valueization callback parameter.
10683 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
10684 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
10685 invariant POINTER_PLUS_EXPRs to invariant form.
10686 (vn_valueize): New function.
10687 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
10688 * tree-vrp.c (vrp_valueize): New function.
10689 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
10690 to fold statements to constants.
10691 * tree-ssa-pre.c (eliminate): Properly guard propagation of
10692 function declarations.
10693 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
10694 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
10695
10696 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10697
10698 * config/h8300/predicates.md (jump_address_operand): Fix register
10699 mode check.
10700
10701 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
10702
10703 * doc/invoke.texi (max-stores-to-sink): Document.
10704 * params.h (MAX_STORES_TO_SINK): Define.
10705 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
10706 if either vectorization or if-conversion is disabled.
10707 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
10708 tree-vect-data-refs.c vect_equal_offsets.
10709 (dr_equal_offsets_p): New function.
10710 (find_data_references_in_bb): Remove static.
10711 * tree-data-ref.h (find_data_references_in_bb): Declare.
10712 (dr_equal_offsets_p): Likewise.
10713 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
10714 (vect_drs_dependent_in_basic_block): Update calls to
10715 vect_equal_offsets.
10716 (vect_check_interleaving): Likewise.
10717 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
10718 (cond_if_else_store_replacement): Rename to...
10719 (cond_if_else_store_replacement_1): ... this. Change arguments and
10720 documentation.
10721 (cond_if_else_store_replacement): New function.
10722 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
10723 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
10724
10725 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
10726
10727 PR target/46934
10728 * config/arm/arm.md (casesi): Use the gen_int_mode() function
10729 to subtract lower bound instead of GEN_INT().
10730
10731 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
10732
10733 PR other/48179
10734 PR other/48221
10735 PR other/48234
10736 * doc/extend.texi (Alignment): Move section to match order in TOC.
10737 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
10738 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
10739
10740 2011-03-23 Jeff Law <law@redhat.com>
10741
10742 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
10743 before removing the edge.
10744
10745 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
10746 it may have been freed by redirect_branch_edge or
10747 redirect_edge_succ_nodup.
10748
10749 2011-03-23 Richard Guenther <rguenther@suse.de>
10750
10751 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
10752 (check_va_list_escapes): Likewise.
10753 (check_all_va_list_escapes): Likewise.
10754
10755 2011-03-23 Richard Guenther <rguenther@suse.de>
10756
10757 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
10758 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
10759 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
10760 (alias.o): Likewise.
10761 (ipa-type-escape.o): Remove.
10762 (ipa-struct-reorg.o): Likewise.
10763 (GTFILES): Remove ipa-struct-reorg.c.
10764 * alias.c: Do not include ipa-type-escape.h.
10765 * tree-ssa-alias.c: Likewise.
10766 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
10767 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
10768 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
10769 and ipa-type-escape passes.
10770 * tree-pass.h (pass_ipa_type_escape): Remove.
10771 (pass_ipa_struct_reorg): Likewise.
10772 * ipa-struct-reorg.h: Remove.
10773 * ipa-struct-reorg.c: Likewise.
10774 * ipa-type-escape.h: Likewise.
10775 * ipa-type-escape.c: Likewise.
10776 * doc/invoke.texi (-fipa-struct-reorg): Remove.
10777 (--param struct-reorg-cold-struct-ratio): Likewise.
10778 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10779 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10780 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10781
10782 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10783
10784 * config/s390/2084.md: Enable all insn reservations also for z9_ec
10785 cpu attribute value.
10786 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10787 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10788 * config/s390/s390.c (processor_flags_table): New constant array.
10789 (s390_handle_arch_option): Remove.
10790 (s390_handle_option): Remove s390_handle_arch_option invocations
10791 and OPT_mwarn_framesize_ handling.
10792 (s390_option_override): Remove s390_handle_arch_option invocation.
10793 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10794 warnings.
10795 * config/s390/s390.md (cpu attribute): Add z9_ec value.
10796 * config/s390/s390.opt (s390_tune, s390_arch)
10797 (march=): Replace s390_arch_option enum and values with
10798 processor_type. Set variable name to s390_arch. Set
10799 initialization value.
10800 (mtune=): Replace s390_arch_option with processor_type. Set
10801 variable name to s390_tune. Set initialization value.
10802
10803 2011-03-23 Julian Brown <julian@codesourcery.com>
10804
10805 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10806 accesses which are not naturally aligned.
10807
10808 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10809
10810 PR target/47553
10811 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10812
10813 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10814
10815 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10816 parameter from "int" to "enum insn_code".
10817 (expand_operand_type): New enum.
10818 (expand_operand): New structure.
10819 (create_expand_operand): New function.
10820 (create_fixed_operand, create_output_operand): Likewise
10821 (create_input_operand, create_convert_operand_to): Likewise.
10822 (create_convert_operand_from, create_address_operand): Likewise.
10823 (create_integer_operand): Likewise.
10824 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10825 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10826 (expand_insn, expand_jump_insn): Likewise.
10827 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10828 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10829 (expand_movstr, expand_builtin___clear_cache): Likewise.
10830 (expand_builtin_lock_release): Likewise.
10831 * explow.c (allocate_dynamic_stack_space): Likewise.
10832 (probe_stack_range): Likewise. Allow check_stack to FAIL,
10833 and use the default handling in that case.
10834 * expmed.c (check_predicate_volatile_ok): Delete.
10835 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10836 (emit_cstore): Likewise.
10837 * expr.c (emit_block_move_via_movmem): Likewise.
10838 (set_storage_via_setmem, expand_assignment): Likewise.
10839 (emit_storent_insn, try_casesi): Likewise.
10840 (emit_single_push_insn): Likewise. Allow the expansion to fail.
10841 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10842 (expand_vec_shift_expr, expand_binop_directly): Likewise.
10843 (expand_twoval_unop, expand_twoval_binop): Likewise.
10844 (expand_unop_direct, emit_indirect_jump): Likewise.
10845 (emit_conditional_move, vector_compare_rtx): Likewise.
10846 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10847 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10848 (expand_sync_lock_test_and_set): Likewise.
10849 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
10850 (emit_unop_insn): Likewise.
10851 (expand_copysign_absneg): Change icode to an insn_code.
10852 (create_convert_operand_from_type): New function.
10853 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10854 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10855 (expand_insn, expand_jump_insn): Likewise.
10856 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10857 than const_int_operand for operand 2.
10858
10859 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10860
10861 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10862 if possible.
10863
10864 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10865
10866 * emit-rtl.c (emit_pattern_before_noloc): New function.
10867 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10868 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10869 (emit_pattern_after_noloc): New function.
10870 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10871 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10872
10873 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10874
10875 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10876 (__ffsDI2): Likewise.
10877
10878 2011-03-22 Richard Henderson <rth@redhat.com>
10879
10880 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10881 of !TARGET_ABI_OPEN_VMS.
10882 (alpha_trampoline_init, alpha_start_function): Likewise.
10883 (alpha_expand_epilogue, alpha_file_start): Likewise.
10884 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10885 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10886 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10887 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10888 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10889
10890 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10891
10892 * config/s390/s390-opts.h: New.
10893 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10894 s390_arch_flags, s390_warn_framesize, s390_stack_size,
10895 s390_stack_guard): Remove.
10896 (s390_handle_arch_option): Return void. Take enum
10897 s390_arch_option value instead of string and searching array.
10898 (s390_handle_option): Don't assert that global structures are in
10899 use. Access variables via opts pointer. Use error_at. Don't use
10900 sscanf for -mstack-guard= or -mstack-size=. Update call to
10901 s390_handle_arch_option.
10902 (s390_option_override): Update call to s390_handle_arch_option.
10903 (s390_emit_prologue): Use %d format for s390_stack_size in
10904 diagnostic. Use %wd for HOST_WIDE_INT.
10905 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10906 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10907 * config/s390/s390.opt (config/s390/s390-opts.h): New
10908 HeaderInclude entry.
10909 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10910 s390_arch_flags, s390_warn_framesize): New Variable entries.
10911 (s390_arch_option): New Enum and EnumValue entries.
10912 (march=): Use Enum instead of Var.
10913 (mstack-guard=, mstack-size=): Use UInteger and Var.
10914 (mtune=): Use Enum.
10915
10916 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10917
10918 * config/score/score.c (score_handle_option): Don't assert that
10919 global structures are in use. Access target_flags via opts
10920 pointer. Use value of -march= option to determine target_flags
10921 settings.
10922 * config/score/score.opt (march=): Use Enum.
10923 (score_arch): New Enum and EnumValue entries.
10924
10925 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10926
10927 * config/mep/mep.c (option_mtiny_specified): Remove.
10928 (mep_option_override): Move register handling for -mivc2 from
10929 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
10930 instead of option_mtiny_specified.
10931 (mep_handle_option): Access target_flags via opts pointer. Don't
10932 assert that global structures are in use. Defer part of -mivc2
10933 handling and move it to mep_option_override.
10934 * config/mep/mep.opt (IVC2): New Mask entry.
10935 (mivc2): Use Var and Defer instead of Mask.
10936
10937 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10938
10939 * config/v850/v850-opts.h: New.
10940 * config/v850/v850.c (small_memory): Replace with
10941 small_memory_physical_max array. Make that array static const.
10942 (v850_handle_memory_option): Take integer value of argument. Take
10943 gcc_options pointer, option text and location. Return void.
10944 Update for changes to small memory structures.
10945 (v850_handle_option): Access target_flags via opts pointer. Don't
10946 assert that global structures are in use. Update calls to
10947 v850_handle_memory_option.
10948 (v850_encode_data_area): Update references to small memory settings.
10949 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10950 (enum small_memory_type): Move to v850-opts.h.
10951 * config/v850/v850.opt (config/v850/v850-opts.h): New
10952 HeaderInclude entry.
10953 (small_memory_max): New Variable entry.
10954 (msda): Replace by pair of options msda= and msda-. Use UInteger.
10955 (mtda, mzda): Likewise.
10956
10957 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10958
10959 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10960 pointer. Don't assert that global structures are in use.
10961
10962 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10963
10964 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10965 via opts pointer. Don't assert that global structures are in use.
10966
10967 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10968
10969 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10970 (munix=93): Use Var.
10971 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10972 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10973 * config/pa/pa-opts.h: New.
10974 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10975 (pa_handle_option): Don't assert that global structures are in
10976 use. Access target_flags via opts pointer. Don't handle
10977 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10978 OPT_munix_98 here.
10979 (pa_option_override): Handle deferred OPT_mfixed_range_.
10980
10981 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10982
10983 * config/mn10300/mn10300-opts.h: New.
10984 * config/mn10300/mn10300.c (mn10300_processor,
10985 mn10300_tune_string): Remove.
10986 (mn10300_handle_option): Don't assert that global structures are
10987 in use. Access mn10300_processor via opts pointer. Don't handle
10988 OPT_mtune_ here.
10989 * config/mn10300/mn10300.h (enum processor_type): Move to
10990 mn10300-opts.h.
10991 (mn10300_processor): Remove.
10992 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10993 HeaderInclude entry.
10994 (mn10300_processor): New Variable entry.
10995 (mtune=): Use Var.
10996
10997 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10998
10999 * config/microblaze/microblaze.c: Don't include opts.h.
11000 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
11001 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
11002 (mno-clearbss): Use Var and Warn.
11003
11004 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11005
11006 * config/m32r/m32r-opts.h: New.
11007 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
11008 (m32r_handle_option): Don't assert that global structures are in
11009 use. Access target_flags and m32r_cache_flush_func via opts
11010 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
11011 OPT_mno_flush_trap here.
11012 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
11013 include of m32r-opts.h.
11014 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
11015 HeaderInclude entry.
11016 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
11017 (mmodel=): Use Enum and Var.
11018 (m32r_model): New Enum and EnumValue entries.
11019 (mno-flush-trap): Use Var.
11020 (msdata=): Use Enum and Var.
11021 (m32r_sdata): New Enum and EnumValue entries.
11022
11023 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11024
11025 * config/m32c/m32c.c: Don't include opts.h.
11026 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
11027 m32c_handle_option): Remove.
11028 (m32c_option_override): Check global_options_set.x_target_memregs
11029 instead of target_memregs_set.
11030 * config/m32c/m32c.h (target_memregs): Remove.
11031 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
11032 variable.
11033
11034 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11035
11036 * config/iq2000/iq2000-opts.h: New.
11037 * config/iq2000/iq2000.c: Don't include opts.h.
11038 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
11039 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
11040 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
11041 HeaderInclude entry.
11042 (iq2000_tune): New Variable entry.
11043 (march=): Add comment. Use Enum.
11044 (iq2000_arch): New Enum and EnumValue entries.
11045 (mcpu=): Use Enum and Var.
11046 (iq2000_tune): New Enum and EnumValue entries.
11047
11048 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11049
11050 * config/ia64/ia64-opts.h: New.
11051 * config/ia64/ia64.c (ia64_tune): Remove.
11052 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
11053 here. Use error_at.
11054 (ia64_option_override): Handle deferred OPT_mfixed_range_.
11055 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
11056 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
11057 HeaderInclude entry.
11058 (ia64_tune): New Variable entry.
11059 (mfixed-range=): Use Defer and Var.
11060 (mtune=): Use Enum and Var.
11061 (ia64_tune): New Enum and EnumValue entries.
11062
11063 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11064
11065 * config/frv/frv-opts.h: New.
11066 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
11067 frv-opts.h.
11068 (frv_cpu_type): Remove.
11069 * config/frv/frv.c: Don't include opts.h.
11070 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
11071 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
11072 (frv_cpu_type): New Variable entry.
11073 (frv_cpu): New Enum and EnumValue entries.
11074
11075 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11076
11077 * config/cris/cris.c (cris_handle_option): Access target_flags via
11078 opts pointer. Don't assert that global structures are in use.
11079 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
11080 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
11081
11082 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11083
11084 * config/bfin/bfin-opts.h: New.
11085 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
11086 bfin_si_revision, bfin_workarounds): Remove.
11087 (bfin_cpus): Make static const.
11088 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
11089 not bfin_lib_id_given.
11090 (bfin_handle_option): Don't set bfin_lib_id_given. Access
11091 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
11092 pointer. Use error_at. Don't assert that global structures are in use.
11093 * config/bfin/bfin.h: Include bfin-opts.h.
11094 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
11095 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
11096 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
11097 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
11098 entries.
11099
11100 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11101
11102 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
11103 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
11104 or -msoft-float here.
11105 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
11106 -msoft-float and -mhard-float.
11107 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
11108 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
11109 msoft-float.
11110 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
11111 -msoft-float.
11112 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
11113 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
11114 not mhard-float.
11115 (LIBGCC_SPEC): Don't handle -msoft-float.
11116 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
11117 -mhard-float.
11118 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
11119 msoft-float.
11120 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
11121 -mfloat-abi=*, not -msoft-float and -mhard-float.
11122 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
11123 -msoft-float.
11124 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
11125 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
11126 mhard-float and msoft-float.
11127 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
11128 mfloat-abi=soft in comments, not mhard-float and msoft-float.
11129 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
11130 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
11131 mhard-float.
11132 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
11133 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
11134 msoft-float.
11135 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
11136 not mhard-float.
11137 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
11138 not msoft-float.
11139
11140 2011-03-22 Richard Henderson <rth@redhat.com>
11141
11142 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
11143 TARGET_ABI_WINDOWS_NT.
11144 (alpha_output_function_end_prologue): Likewise.
11145 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
11146 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11147 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
11148 (trap, *movsi_nt_vms): Likewise.
11149 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
11150 (*tablejump_osf_nt_internal): Remove.
11151 * config/alpha/predicates.md (input_operand): Only test Pmode.
11152
11153 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11154
11155 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
11156 via opts pointer. Use error_at. Don't assert that global
11157 structures are in use.
11158
11159 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11160
11161 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
11162 (ix86_handle_option): Access ix86_isa_flags and
11163 ix86_isa_flags_explicit via opts pointer. Don't assert that
11164 global structures are in use.
11165 (ix86_function_specific_save, ix86_function_specific_restore):
11166 Update ix86_isa_flags_explicit field name.
11167 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
11168 (ix86_isa_flags_explicit): Rename TargetSave entry to
11169 x_ix86_isa_flags_explicit.
11170
11171 2011-03-22 Richard Henderson <rth@redhat.com>
11172
11173 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
11174 (alpha_option_override, direct_return): Likewise.
11175 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
11176 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
11177 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
11178 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
11179 (alpha_expand_epilogue, alpha_end_function): Likewise.
11180 (alpha_init_libfuncs): Likewise.
11181 (struct machine_function): Remove unicosmk members.
11182 (print_operand) ['t']: Remove.
11183 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
11184 unicosmk_output_module_name, unicosmk_output_common,
11185 current_section_align, unicosmk_output_text_section_asm_op,
11186 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
11187 unicosmk_section_type_flags, unicosmk_unique_section,
11188 unicosmk_asm_named_section, unicosmk_insert_attributes,
11189 unicosmk_output_align, unicosmk_defer_case_vector,
11190 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
11191 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
11192 unicosmk_output_ssib, unicosmk_add_call_info_word,
11193 unicosmk_extern_head, unicosmk_output_default_externs,
11194 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
11195 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
11196 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
11197 * config/alpha/alpha-protos.h: Update.
11198 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
11199 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
11200 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
11201 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
11202 (*mulsi_se, mulvsi3): Likewise.
11203 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
11204 (*divmodsi_internal, call, call_value, realign): Likewise.
11205 (moddi3, umoddi3): Likewise; remove duplicate expander.
11206 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
11207 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
11208 (*movdi_nofix): Remove r/U alternative.
11209 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
11210 * config/alpha/constraints.md ("U"): Remove.
11211 * config/alpha/predicates.md (call_operand"): Don't test
11212 TARGET_ABI_UNICOSMK.
11213
11214 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11215
11216 * target.def (handle_option): Take gcc_options and
11217 cl_decoded_option pointers and location_t.
11218 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
11219 * doc/tm.texi: Regenerate.
11220 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
11221 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
11222 * lto-opts.c (lto_reissue_options): Generate option structure for
11223 targetm.handle_option call.
11224 * opts.c (target_handle_option): Update call to
11225 targetm.handle_option. Remove assertions about values now passed
11226 down to hook.
11227 * targhooks.c (default_target_handle_option): New.
11228 * targhooks.h (default_target_handle_option): Declare.
11229 * config/alpha/alpha.c: Include opts.h.
11230 (alpha_handle_option): Update to new hook interface.
11231 * config/arm/arm.c: Include opts.h.
11232 (arm_handle_option): Update to new hook interface.
11233 * config/arm/t-arm (arm.o): Update dependencies.
11234 * config/bfin/bfin.c: Include opts.h.
11235 (bfin_handle_option): Update to new hook interface.
11236 * config/cris/cris.c: Include opts.h.
11237 (cris_handle_option): Update to new hook interface.
11238 * config/frv/frv.c: Include opts.h.
11239 (frv_handle_option): Update to new hook interface.
11240 * config/i386/i386.c: Include opts.h.
11241 (ix86_handle_option): Update to new hook interface.
11242 (ix86_valid_target_attribute_inner_p): Generate option structure
11243 for call to ix86_handle_option.
11244 * config/i386/t-i386 (i386.o): Update dependencies.
11245 * config/ia64/ia64.c: Include opts.h.
11246 (ia64_handle_option): Update to new hook interface.
11247 * config/ia64/t-ia64 (ia64.o): Update dependencies.
11248 * config/iq2000/iq2000.c: Include opts.h.
11249 (iq2000_handle_option): Update to new hook interface.
11250 * config/m32c/m32c.c: Include opts.h.
11251 (m32c_handle_option): Update to new hook interface.
11252 * config/m32r/m32r.c: Include opts.h.
11253 (m32r_handle_option): Update to new hook interface.
11254 * config/m68k/m68k.c: Include opts.h.
11255 (m68k_handle_option): Update to new hook interface.
11256 * config/mep/mep.c: Include opts.h.
11257 (mep_handle_option): Update to new hook interface.
11258 * config/microblaze/microblaze.c: Include opts.h.
11259 (microblaze_handle_option): Update to new hook interface.
11260 * config/mips/mips.c: Include opts.h.
11261 (mips_handle_option): Update to new hook interface.
11262 * config/mn10300/mn10300.c: Include opts.h.
11263 (mn10300_handle_option): Update to new hook interface.
11264 * config/pa/pa.c: Include opts.h.
11265 (pa_handle_option): Update to new hook interface.
11266 * config/pdp11/pdp11.c: Include opts.h.
11267 (pdp11_handle_option): Update to new hook interface.
11268 * config/rs6000/rs6000.c: Include opts.h.
11269 (rs6000_handle_option): Update to new hook interface.
11270 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
11271 * config/rx/rx.c: Include opts.h.
11272 (rx_handle_option): Update to new hook interface.
11273 * config/s390/s390.c: Include opts.h.
11274 (s390_handle_option): Update to new hook interface.
11275 * config/score/score.c: Include opts.h.
11276 (score_handle_option): Update to new hook interface.
11277 * config/sh/sh.c: Include opts.h.
11278 (sh_handle_option): Update to new hook interface.
11279 * config/sparc/sparc.c: Include opts.h.
11280 (sparc_handle_option): Update to new hook interface.
11281 * config/v850/v850.c: Include opts.h.
11282 (v850_handle_option): Update to new hook interface.
11283
11284 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11285
11286 * gcc.c (driver_unknown_option_callback): Only permit and save
11287 unknown -Wno- options.
11288 (driver_wrong_lang_callback): Save options directly instead of via
11289 driver_unknown_option_callback.
11290
11291 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
11292
11293 * combine.c (simplify_set): Try harder to find the best CC mode when
11294 simplifying a nested COMPARE on the RHS.
11295
11296 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11297
11298 * config/alpha/gnu.h: Remove.
11299 * config/arc: Remove directory.
11300 * config/arm/netbsd.h: Remove.
11301 * config/arm/t-pe: Remove.
11302 * config/crx: Remove directory.
11303 * config/i386/netbsd.h: Remove.
11304 * config/m68hc11: Remove directory.
11305 * config/m68k/uclinux-oldabi.h: Remove.
11306 * config/mcore/mcore-pe.h: Remove.
11307 * config/mcore/t-mcore-pe: Remove.
11308 * config/netbsd-aout.h: Remove.
11309 * config/rs6000/gnu.h: Remove.
11310 * config/sh/sh-symbian.h: Remove.
11311 * config/sh/symbian-base.c: Remove.
11312 * config/sh/symbian-c.c: Remove.
11313 * config/sh/symbian-cxx.c: Remove.
11314 * config/sh/symbian-post.h: Remove.
11315 * config/sh/symbian-pre.h: Remove.
11316 * config/sh/t-symbian: Remove.
11317 * config/svr3.h: Remove.
11318 * config/vax/netbsd.h: Remove.
11319 * config.build: Don't handle i[34567]86-*-pe.
11320 * config.gcc: Remove handling of deprecations for most deprecated
11321 targets.
11322 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
11323 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
11324 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
11325 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
11326 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
11327 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
11328 Remove cases.
11329 * config.host: Don't handle i[34567]86-*-pe.
11330 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
11331 (ASM_SPEC32): Don't handle -mcall-gnu.
11332 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
11333 -mcall-gnu.
11334 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
11335 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
11336 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
11337 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
11338 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
11339 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
11340 conditional on SYMBIAN.
11341 * configure.ac: Don't handle powerpc*-*-gnu*.
11342 * configure: Regenerate.
11343 * doc/extend.texi (interrupt attribute): Don't mention CRX.
11344 * doc/install-old.texi (m6811, m6812): Don't mention.
11345 * doc/install.texi (arc-*-elf*): Don't document multilib option.
11346 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
11347 (m68k-uclinuxoldabi): Don't mention.
11348 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
11349 Remove.
11350 (-mcall-gnu): Remove.
11351 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
11352 families): Remove constraint documentation.
11353
11354 2011-03-22 Marius Strobl <marius@FreeBSD.org>
11355
11356 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
11357 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
11358 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
11359
11360 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11361
11362 PR target/48226
11363 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
11364 vector when peeking at the next token for vector, don't expand the
11365 keywords.
11366
11367 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
11368
11369 * config/avr/avr-protos.h (expand_epilogue): Change prototype
11370 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
11371 * config/avr/avr.c (init_cumulative_args)
11372 (avr_function_arg_advance): Use it.
11373 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
11374 sibcall epilogues.
11375 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
11376 (avr_function_ok_for_sibcall): ...this new function.
11377 (avr_lookup_function_attribute1): New static Function.
11378 (avr_naked_function_p, interrupt_function_p)
11379 (signal_function_p, avr_OS_task_function_p)
11380 (avr_OS_main_function_p): Use it.
11381 * config/avr/avr.md ("sibcall", "sibcall_value")
11382 ("sibcall_epilogue"): New expander.
11383 ("*call_insn", "*call_value_insn"): New insn.
11384 ("call_insn", "call_value_insn"): Remove
11385 ("call", "call_value", "epilogue"): Change expander to handle
11386 sibling calls.
11387
11388 2011-03-21 Nick Clifton <nickc@redhat.com>
11389
11390 * doc/invoke.texi (Overall Options): Move closing brace to end of
11391 options list.
11392 (Optimization Options): Add missing @gol.
11393 (Directory Options): Likewise.
11394 (i386 and x86-64 Options): Likewise.
11395 (RS6000 and PowerPC Options): Likewise.
11396 (i386 and x86-64 Windows Options): Likewise.
11397 (V850 Options): Add text missing from descriptions.
11398
11399 2011-03-22 Richard Henderson <rth@redhat.com>
11400
11401 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
11402 (avr_incoming_return_addr_rtx): New.
11403 (emit_push_byte): New.
11404 (expand_prologue): Use it. Remove incorrect dwarf annotation for
11405 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
11406 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
11407 (emit_pop_byte): New.
11408 (expand_epilogue): Use it. Pop frame pointer by bytes.
11409 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
11410 (INCOMING_RETURN_ADDR_RTX): New.
11411 (INCOMING_FRAME_SP_OFFSET): New.
11412 (ARG_POINTER_CFA_OFFSET): New.
11413 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
11414 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
11415 (pophi): Remove.
11416
11417 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
11418
11419 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
11420
11421 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
11422 (FUNCTION_ARG_ADVANCE): Likewise.
11423 * tm.texi.in: Change references to them to hook references.
11424 * tm.texi: Regenerate.
11425 * targhooks.c (default_function_arg): Eliminate check for target
11426 macro.
11427 (default_function_incoming_arg): Likewise.
11428 (default_function_arg_advance): Likewise.
11429 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
11430 (function_arg_advance): Likewise.
11431 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
11432
11433 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
11434
11435 * tree.c (build_call_1): New function.
11436 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
11437
11438 2011-03-22 Richard Guenther <rguenther@suse.de>
11439
11440 PR tree-optimization/48228
11441 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
11442 for single-arg PHIs.
11443
11444 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
11445
11446 PR rtl-optimization/48143
11447 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
11448 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
11449 sse2_cvtps2pd): Likewise.
11450
11451 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11452
11453 * recog.c (canonicalize_change_group): Use validate_unshare_change.
11454
11455 2011-03-22 Richard Guenther <rguenther@suse.de>
11456
11457 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
11458 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
11459 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
11460 and REALIGN_LOAD_EXPR.
11461 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
11462 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
11463 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
11464 DOT_PROD_EXPR case ...
11465 (expand_expr_real_2): ... here.
11466 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
11467 and REALIGN_LOAD_EXPR.
11468 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
11469 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
11470 (vect_create_epilog_for_reduction): Likewise.
11471 (vectorizable_reduction): Likewise.
11472 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
11473 * tree-vect-stmts.c (vectorizable_load): Likewise.
11474
11475 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
11476
11477 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
11478
11479 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11480
11481 * config/s390/s390.c (s390_delegitimize_address): Fix offset
11482 handling for PLTOFF/GOTOFF.
11483
11484 2011-03-22 Nick Clifton <nickc@redhat.com>
11485
11486 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
11487 trailing backslash from the end of the macro definition.
11488
11489 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11490
11491 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
11492 and PLT unspecs.
11493
11494 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
11495
11496 * expr.h (prepare_operand): Move to...
11497 * optabs.h (prepare_operand): ...here and change the insn code
11498 parameter from "int" to "enum insn_code".
11499 (insn_operand_matches): Declare.
11500 * expr.c (init_expr_target): Use insn_operand_matches.
11501 (compress_float_constant): Likewise.
11502 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
11503 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
11504 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
11505 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
11506 Likewise.
11507 (gen_cond_trap): Likewise.
11508 (prepare_operand): Likewise. Change icode to an insn_code.
11509 (insn_operand_matches): New function.
11510 * reload.c (find_reloads_address_1): Use insn_operand_matches.
11511 * reload1.c (gen_reload): Likewise.
11512 * targhooks.c (default_secondary_reload): Likewise.
11513
11514 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
11515
11516 * config/alpha/alpha.md (unspec): New define_c_enum.
11517 (unspecv): Ditto.
11518
11519 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
11520
11521 PR debug/48214
11522 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
11523 between a call and its CALL_ARG_LOCATION note.
11524
11525 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
11526
11527 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
11528
11529 2011-03-21 Jakub Jelinek <jakub@redhat.com>
11530
11531 PR c/42544
11532 PR c/48197
11533 * c-common.c (shorten_compare): If primopN is first sign-extended
11534 to opN and then zero-extended to result type, set primopN to opN.
11535
11536 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
11537
11538 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
11539 for barrier handlers.
11540
11541 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11542
11543 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
11544 UNSPEC constants to be in the unspec enumeration, and redefine
11545 all UNSPECV constants to be in the unspecv enumeration, so that
11546 dumps print which unspec/unspec_volatile this is.
11547 * config/rs6000/vector.md (UNSPEC_*): Ditto.
11548 * config/rs6000/paired.md (UNSPEC_*): Ditto.
11549 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
11550 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
11551 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
11552
11553 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
11554 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
11555 UNSPECV_LWSYNC, since these are used as unspec_volatile.
11556 * config/rs6000/sync.md (isync, lwsync): Ditto.
11557
11558 2011-03-21 Richard Guenther <rguenther@suse.de>
11559
11560 * params.def (lto-min-partition): Fix typo.
11561
11562 2011-03-21 Richard Guenther <rguenther@suse.de>
11563
11564 PR c/47939
11565 * c-decl.c (grokdeclarator): Drop to the main variant only
11566 for array types. Drop flag_gen_aux_info check.
11567
11568 2011-03-21 Richard Guenther <rguenther@suse.de>
11569
11570 PR translation/47911
11571 * params.def (lto-partitions): Fix typo.
11572 (lto-min-partition): Fix wording.
11573
11574 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
11575
11576 * config/rs6000/t-freebsd: Remove duplication from file.
11577
11578 2011-03-21 Richard Guenther <rguenther@suse.de>
11579
11580 PR middle-end/47661
11581 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
11582
11583 2011-03-21 Richard Guenther <rguenther@suse.de>
11584
11585 PR lto/48210
11586 * params.def (lto-partitions): Require at least 1 partition.
11587
11588 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11589
11590 * gthr-solaris.h: Remove.
11591 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
11592 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
11593 (LIB_SPEC): Likewise.
11594 * config/sol2.opt (threads): Remove.
11595 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
11596 (sparc*-*-solaris2*): Likewise.
11597 * configure.ac (enable_threads): Enable solaris support.
11598 * configure: Regenerate.
11599 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
11600 * doc/install.texi (Configuration, --enable-threads=lib): Remove
11601 solaris.
11602
11603 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11604
11605 * config.gcc: Obsolete *-*-solaris2.8*.
11606 * doc/install.texi (Specific, *-*-solaris2*): Document it.
11607
11608 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11609
11610 PR bootstrap/48135
11611 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
11612 reference. Solaris 8 perl works.
11613
11614 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11615
11616 PR bootstrap/48135
11617 * doc/install.texi (Prerequisites): Move jar etc. up.
11618 Explain support library version requirements.
11619
11620 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11621
11622 PR bootstrap/48135
11623 * doc/install.texi (Prerequisites): Move Perl to build
11624 requirements. Always necessary on Solaris 2 with Sun ld.
11625
11626 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11627
11628 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
11629 binutils 2.21.
11630 (Specific, i?86-*-solaris2.[89]): Likewise.
11631 (Specific, i?86-*-solaris2.10): Likewise.
11632 (Specific, mips-sgi-irix6): Likewise.
11633 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
11634 Update for binutils 2.21.
11635
11636 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11637
11638 * configure.ac (gcc_cv_lto_plugin): Fix typo.
11639 Allow -fuse-linker-plugin for non-default plugin linker.
11640 * configure: Regenerate.
11641
11642 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
11643
11644 PR bootstrap/48167
11645 * gengtype.c (files_rules): Added rule for cp/parser.h.
11646
11647 2011-03-21 Jakub Jelinek <jakub@redhat.com>
11648
11649 PR target/48213
11650 * config/s390/s390.c (s390_delegitimize_address): Don't call
11651 lowpart_subreg if orig_x has BLKmode.
11652
11653 2011-03-21 Kai Tietz <ktietz@redhat.com>
11654
11655 PR target/12171
11656 * doc/plugins.texi: Adjust documentation for plugin register_callback.
11657 * tree.h (attribute_spec): Add new member affects_type_identity.
11658 * attribs.c (empty_attribute_table): Adjust attribute_spec
11659 initializers.
11660 * config/alpha/alpha.c: Likewise.
11661 * config/arc/arc.c: Likewise.
11662 * config/arm/arm.c: Likewise.
11663 * config/avr/avr.c: Likewise.
11664 * config/bfin/bfin.c: Likewise.
11665 * config/crx/crx.c: Likewise.
11666 * config/darwin.h: Likewise.
11667 * config/h8300/h8300.c: Likewise.
11668 * config/i386/cygming.h: Likewise.
11669 * config/i386/i386.c: Likewise.
11670 * config/ia64/ia64.c: Likewise.
11671 * config/m32c/m32c.c: Likewise.
11672 * config/m32r/m32r.c: Likewise.
11673 * config/m68hc11/m68hc11.c: Likewise.
11674 * config/m68k/m68k.c: Likewise.
11675 * config/mcore/mcore.c: Likewise.
11676 * config/mep/mep.c: Likewise.
11677 * config/microblaze/microblaze.c: Likewise.
11678 * config/mips/mips.c: Likewise.
11679 * config/rs6000/rs6000.c: Likewise.
11680 * config/rx/rx.c: Likewise.
11681 * config/sh/sh.c: Likewise.
11682 * config/sol2.h: Likewise.
11683 * config/sparc/sparc.c: Likewise.
11684 * config/spu/spu.c: Likewise.
11685 * config/stormy16/stormy16.c: Likewise.
11686 * config/v850/v850.c: Likewise.
11687
11688 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
11689
11690 * simplify-rtx.c (simplify_binary_operation_1): Handle
11691 (xor (and A B) C) case when B and C are both constants.
11692
11693 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
11694
11695 * tree-dfa.c (add_referenced_var): Fix typo in comment.
11696
11697 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
11698
11699 PR bootstrap/48168
11700 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
11701
11702 2011-03-20 Jakub Jelinek <jakub@redhat.com>
11703
11704 PR rtl-optimization/48156
11705 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
11706 assume df and df_lr are not NULL.
11707
11708 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11709
11710 PR debug/48023
11711 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
11712 between a call and its CALL_ARG_LOCATION note.
11713
11714 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
11715
11716 PR debug/48178
11717 * config/sh/sh.c (find_barrier): Don't emit a constant pool
11718 between a call and its corresponding CALL_ARG_LOCATION note.
11719
11720 2011-03-19 Anatoly Sokolov <aesok@post.ru>
11721
11722 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
11723 instead of loop. Use HARD_REGISTER_NUM_P predicate.
11724 * haifa-sched.c (setup_ref_regs): Ditto.
11725 * caller-save.c (add_used_regs_1): Ditto.
11726 * dse.c (look_for_hardregs): Ditto.
11727 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
11728 * sched-rgn.c (check_live_1): Ditto.
11729
11730 2011-03-18 Joseph Myers <joseph@codesourcery.com>
11731
11732 * c-decl.c (diagnose_mismatched_decls): Give an error for
11733 redefining a typedef with variably modified type.
11734
11735 2011-03-18 Joseph Myers <joseph@codesourcery.com>
11736
11737 * c-decl.c (grokfield): Don't allow typedefs for structures or
11738 unions with no tag by default.
11739 * doc/extend.texi (Unnamed Fields): Update.
11740
11741 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
11742
11743 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11744 Rewrite using indirect functions.
11745 (lwp_slwpcb): Ditto.
11746 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
11747 (avx_vinsertf128<mode>): Ditto.
11748
11749 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11750
11751 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
11752 unspecs.
11753
11754 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11755
11756 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
11757 splitting between a call and its corresponding CALL_ARG_LOCATION note.
11758
11759 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
11760
11761 PR rtl-optimization/48170
11762 * gcse.c (hoist_code): Remove bogus asserts.
11763
11764 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
11765
11766 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
11767 computation for prologue/epilogue.
11768
11769 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11770
11771 * Makefile.in (check-consistency): Remove.
11772
11773 2011-03-18 Jakub Jelinek <jakub@redhat.com>
11774
11775 PR debug/48176
11776 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11777 arange_table_in_use is 0, but either text_section_used or
11778 cold_text_section_used is true. Don't call it if
11779 !info_section_emitted.
11780
11781 2011-03-18 Anatoly Sokolov <aesok@post.ru>
11782
11783 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11784 FUNCTION_VALUE_REGNO_P): Remove.
11785 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11786 Remove.
11787 * config/avr/avr.c (avr_ret_register): Make static inline.
11788 (avr_function_value_regno_p): New function.
11789 (avr_libcall_value): Make static. Add 'func' argument.
11790 (avr_function_value): Make static. Rename 'func' argument to
11791 'fn_decl_or_type', forward it to avr_libcall_value. Call
11792 avr_ret_register function instead of RET_REGISTER macro.
11793 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11794
11795 2011-03-18 Jason Merrill <jason@redhat.com>
11796
11797 PR c++/23372
11798 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11799
11800 2011-03-18 Richard Guenther <rguenther@suse.de>
11801
11802 * doc/install.texi (--enable-gold): Remove.
11803 (--with-plugin-ld): Document.
11804 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11805
11806 2011-03-18 Andrew Pinski <pinskia@gmail.com>
11807
11808 PR middle-end/47790
11809 * expr.c (optimize_bitfield_assignment_op): Revamp to work
11810 again after expansion changes.
11811
11812 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
11813
11814 * combine.c (try_combine): Do simplification only call of
11815 subst() on i2 even when i1 is present. Update comments.
11816
11817 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
11818
11819 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11820 and UNSPEC_PCREL_SYMOFF.
11821
11822 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11823
11824 * config/s390/s390.md: Use define_c_enum for the unspec constant
11825 definitions.
11826
11827 2011-03-18 Richard Henderson <rth@redhat.com>
11828 Jakub Jelinek <jakub@redhat.com>
11829
11830 PR bootstrap/48161
11831 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11832 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11833
11834 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11835
11836 PR middle-end/47725
11837 * combine.c (cant_combine_insn_p): Don't check zero/sign
11838 extended hard registers.
11839
11840 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11841
11842 PR middle-end/47725
11843 * combine.c (cant_combine_insn_p): Check zero/sign extended
11844 hard registers.
11845
11846 2011-03-17 Anatoly Sokolov <aesok@post.ru>
11847
11848 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11849 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11850 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11851 Change return type to bool.
11852 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11853
11854 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11855
11856 PR debug/48163
11857 * var-tracking.c (prepare_call_arguments): If CALL target
11858 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11859 pc instead of looking it up using cselib_lookup and use
11860 Pmode for it if x has VOIDmode.
11861 * dwarf2out.c (gen_subprogram_die): If also both first and
11862 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11863
11864 PR debug/48163
11865 * function.c (assign_parms): For data.passed_pointer parms
11866 use MEM of data.entry_parm instead of data.entry_parm itself
11867 as DECL_INCOMING_RTL.
11868 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11869 also when passed and declared mode is the same, DECL_RTL
11870 is a MEM with pseudo as address and DECL_INCOMING_RTL is
11871 a MEM too.
11872
11873 2011-03-16 Jeff Law <law@redhat.com>
11874
11875 PR rtl-optimization/37273
11876 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11877 handle them like argument loads from stack slots. Do not double
11878 count memory for memory constants and argument loads from stack slots.
11879
11880 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11881
11882 PR debug/48160
11883 * var-tracking.c (prepare_call_arguments): Check SUBREG.
11884
11885 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11886
11887 PR target/48171
11888 * config/i386/i386.opt: Add Save to -mavx and -mfma.
11889
11890 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11891
11892 PR bootstrap/48153
11893 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11894 if dwarf_strict.
11895 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11896 Clear call_arg_locations and call_arg_loc_last always.
11897
11898 PR middle-end/48152
11899 * var-tracking.c (prepare_call_arguments): If argument needs to be
11900 passed by reference, adjust argtype and mode.
11901
11902 2011-03-17 Richard Guenther <rguenther@suse.de>
11903
11904 PR middle-end/48134
11905 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11906 a value make sure to fold the statement.
11907
11908 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
11909
11910 PR target/43872
11911 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11912 return condition with !cfun->calls_alloca.
11913
11914 2011-03-17 Richard Guenther <rguenther@suse.de>
11915
11916 PR bootstrap/48148
11917 * lto-cgraph.c (input_overwrite_node): Clear the abstract
11918 origin for decls in other ltrans units.
11919 (input_varpool_node): Likewise.
11920
11921 2011-03-17 Richard Guenther <rguenther@suse.de>
11922
11923 PR middle-end/48165
11924 * tree-object-size.c (compute_object_offset): Properly return
11925 the offset operand of MEM_REFs as sizetype.
11926
11927 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11928
11929 PR rtl-optimization/48141
11930 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11931 * dse.c: Include params.h.
11932 (active_local_stores_len): New variable.
11933 (add_wild_read, dse_step1): Clear it when setting active_local_stores
11934 to NULL.
11935 (record_store, check_mem_read_rtx): Decrease it when removing
11936 from the chain.
11937 (scan_insn): Likewise. Increase it when adding to chain, if it
11938 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11939 set active_local_stores to NULL before the addition.
11940 * Makefile.in (dse.o): Depend on $(PARAMS_H).
11941
11942 PR rtl-optimization/48141
11943 * dse.c (record_store): If no positions are needed in an insn
11944 that cannot be deleted, at least unchain it from active_local_stores.
11945
11946 2011-03-16 Dodji Seketeli <dodji@redhat.com>
11947
11948 PR debug/47510
11949 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11950 (lookup_type_die_strip_naming_typedef): ... here.
11951 (get_context_die): Use it.
11952 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11953 the anonymous struct named by the naming typedef.
11954
11955 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
11956
11957 PR target/48154
11958 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11959 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11960
11961 2011-03-16 Jeff Law <law@redhat.com>
11962
11963 * tree-vrp.c (identify_jump_threads): Slightly simplify type
11964 check for operands of conditional. Allow type to be a pointer.
11965
11966 2011-03-16 Richard Guenther <rguenther@suse.de>
11967
11968 PR tree-optimization/48149
11969 * fold-const.c (fold_binary_loc): Fold
11970 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11971
11972 2011-03-16 Richard Guenther <rguenther@suse.de>
11973
11974 PR tree-optimization/26134
11975 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11976 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11977 (non_rewritable_mem_ref_base): Handle complex type component
11978 accesses, constrain offsets for vector and complex extracts
11979 more properly.
11980
11981 2011-03-16 Richard Guenther <rguenther@suse.de>
11982
11983 PR tree-optimization/48146
11984 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11985 operands avoiding the need for renaming.
11986
11987 2011-03-16 Richard Guenther <rguenther@suse.de>
11988
11989 * gimple-fold.c (maybe_fold_reference): Open-code relevant
11990 constant folding. Move MEM_REF canonicalization first.
11991 Rely on fold_const_aggregate_ref for initializer folding.
11992 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11993
11994 2011-03-16 Jakub Jelinek <jakub@redhat.com>
11995
11996 PR middle-end/48136
11997 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11998 arg0/arg1 or their arguments are always fold converted to matching
11999 types.
12000
12001 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
12002 to nargs.
12003
12004 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12005
12006 PR lto/46944
12007 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
12008 Handle in-tree gold.
12009 (ld_vers): Extract binutils version for gold.
12010 (gcc_cv_ld_hidden): Handle gold here.
12011 (gcc_cv_lto_plugin): Determine level of linker plugin support.
12012 * configure: Regenerate.
12013 * config.in: Regenerate.
12014 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
12015 -fuse-linker-plugin otherwise.
12016 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
12017 (LINK_COMMAND_SPEC): Use it.
12018 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
12019
12020 2011-03-16 Jakub Jelinek <jakub@redhat.com>
12021
12022 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
12023 * calls.c: Remove debug.h include.
12024 (emit_call_1): Don't call virtual_call_token debug hook.
12025 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
12026 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
12027 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
12028 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
12029 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
12030 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
12031 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
12032 dwarf2out_virtual_call): Remove.
12033 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
12034 copy_call_info and virtual_call hooks.
12035 (dwarf2out_init): Don't initialize vcall_insn_table,
12036 debug_dcall_section and debug_vcall_section.
12037 (prune_unused_types): Don't mark nodes from dcall_table.
12038 (dwarf2out_finish): Don't output dcall or vcall tables.
12039 * final.c (final_scan_insn): Don't call direct_call or
12040 virtual_call debug hooks.
12041 * debug.h (struct gcc_debug_hooks): Remove direct_call,
12042 virtual_call_token, copy_call_info and virtual_call hooks.
12043 (debug_nothing_uid): Remove prototype.
12044 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
12045 copy_call_info and virtual_call hooks.
12046 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12047 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
12048 * debug.c (do_nothing_debug_hooks): Likewise.
12049 (debug_nothing_uid): Remove.
12050 * doc/invoke.texi (-fenable-icf-debug): Remove.
12051 * common.opt (-fenable-icf-debug): Likewise.
12052
12053 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
12054 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
12055 call's MEM. Handle functions returning aggregate through a hidden
12056 first pointer. For virtual calls add clobbered pc to call arguments
12057 chain.
12058 * dwarf2out.c (gen_subprogram_die): Emit
12059 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
12060 can't be emitted.
12061
12062 PR debug/45882
12063 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
12064 * rtl.h (ENTRY_VALUE_EXP): Define.
12065 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
12066 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12067 * print-rtl.c (print_rtx): Likewise.
12068 * gengtype.c (adjust_field_rtx_def): Likewise.
12069 * var-tracking.c (vt_add_function_parameter): Adjust
12070 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
12071 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
12072 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
12073 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
12074 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
12075
12076 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
12077 Call var_location debug hook even on CALL_INSNs.
12078 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
12079 * rtl.def (ENTRY_VALUE): New.
12080 * dwarf2out.c: Include cfglayout.h.
12081 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
12082 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
12083 (struct call_arg_loc_node): New type.
12084 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
12085 tail_call_site_count): New variables.
12086 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
12087 DW_TAG_GNU_call_site_parameter.
12088 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
12089 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
12090 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
12091 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
12092 and DW_AT_GNU_all_source_call_sites.
12093 (mem_loc_descriptor): Handle ENTRY_VALUE.
12094 (add_src_coords_attributes): Don't add enything if
12095 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
12096 (dwarf2out_abstract_function): Save and clear call_arg_location,
12097 call_site_count and tail_call_site_count around dwarf2out_decl call.
12098 (gen_call_site_die): New function.
12099 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
12100 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
12101 (dwarf2out_function_decl): Clear call_arg_locations,
12102 call_arg_loc_last, set call_site_count and tail_call_site_count
12103 to -1 and free block_map.
12104 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
12105 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
12106 followed by any real instructions.
12107 (dwarf2out_begin_function): Set call_site_count and
12108 tail_call_site_count to 0.
12109 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
12110 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
12111 attempt to force a DIE for it and worst case remove the attribute.
12112 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
12113 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
12114 the decl itself.
12115 * var-tracking.c: Include tm_p.h.
12116 (vt_stack_adjustments): For calls call note_register_arguments.
12117 (argument_reg_set): New variable.
12118 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
12119 ensure the VALUE is resolved.
12120 (call_arguments): New variable.
12121 (prepare_call_arguments): New function.
12122 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
12123 (struct expand_loc_callback_data): Add ignore_cur_loc field.
12124 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
12125 always use the best expression.
12126 (vt_expand_loc): Add ignore_cur_loc argument.
12127 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
12128 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
12129 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
12130 note for all calls.
12131 (vt_add_function_parameter): Use cselib_lookup_from_insn.
12132 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
12133 argument. Don't call cselib_preserve_only_values and
12134 cselib_reset_table.
12135 (note_register_arguments): New function.
12136 (vt_initialize): Compute argument_reg_set. Call
12137 vt_add_function_parameters before processing basic blocks instead of
12138 afterwards. For calls call prepare_call_arguments before calling
12139 cselib_process_insn.
12140 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
12141 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
12142 (var-tracking.o): Depend on $(TM_P_H).
12143 * cfglayout.h (insn_scope): New prototype.
12144 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
12145 * cfglayout.c (insn_scope): No longer static.
12146 * insn-notes.def (CALL_ARG_LOCATION): New.
12147 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
12148 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
12149 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
12150 nothing for DECL_EXTERNAL BLOCK_VARS.
12151
12152 2011-03-16 Alan Modra <amodra@gmail.com>
12153
12154 PR target/45844
12155 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
12156 create invalid offset address for vsx splat insn.
12157 * config/rs6000/predicates.md (splat_input_operand): New.
12158 * config/rs6000/vsx.md (vsx_splat_*): Use it.
12159
12160 2011-03-15 Xinliang David Li <davidxl@google.com>
12161
12162 PR c/47837
12163 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
12164 (normalize_preds): New function.
12165 (is_use_properly_guarded): Normalize def predicates.
12166
12167 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12168
12169 PR target/46788
12170 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
12171 in the output template.
12172
12173 2011-03-15 Richard Guenther <rguenther@suse.de>
12174
12175 PR middle-end/47650
12176 * tree-pretty-print.c (dump_function_declaration): Properly
12177 dump unprototyped and varargs function types.
12178
12179 2011-03-15 Richard Guenther <rguenther@suse.de>
12180
12181 PR tree-optimization/13954
12182 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
12183 and friends.
12184
12185 2011-03-15 Richard Guenther <rguenther@suse.de>
12186
12187 PR tree-optimization/48037
12188 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
12189 selects into BIT_FIELD_REFs.
12190 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
12191 vector select.
12192
12193 2011-03-15 Jakub Jelinek <jakub@redhat.com>
12194
12195 PR tree-optimization/48129
12196 * builtins.c (fold_builtin_snprintf): Convert to type of
12197 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
12198 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
12199
12200 2011-03-15 Richard Guenther <rguenther@suse.de>
12201
12202 PR tree-optimization/41490
12203 * tree-ssa-dce.c (propagate_necessity): Handle returns without
12204 value but with VUSE.
12205 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
12206 return statements.
12207 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
12208 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
12209 * tree-tailcall.c (find_tail_calls): Ignore returns.
12210
12211 2011-03-15 Richard Guenther <rguenther@suse.de>
12212
12213 PR middle-end/48031
12214 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
12215 or variable-indexed array accesses when in gimple form.
12216
12217 2011-03-15 Richard Guenther <rguenther@suse.de>
12218
12219 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
12220
12221 2011-03-15 Alan Modra <amodra@gmail.com>
12222
12223 PR target/48032
12224 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
12225 presume symbol_refs without a symbol_ref_decl are suitably
12226 aligned, nor other trees we may see here. Handle anchor symbols.
12227 (legitimate_constant_pool_address_p): Comment. Add mode param.
12228 Check cmodel=medium addresses. Adjust all calls.
12229 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
12230 creating cmodel=medium optimized access to locals.
12231 * config/rs6000/constraints.md (R): Pass QImode to
12232 legitimate_constant_pool_address_p.
12233 * config/rs6000/predicates.md (input_operand): Pass mode to
12234 legitimate_constant_pool_address_p.
12235 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
12236 Update prototype.
12237
12238 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12239
12240 PR target/48053
12241 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
12242 64-bit constants being loaded into registers other than GPRs such
12243 as loading 0 into a VSX register.
12244
12245 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12246
12247 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
12248
12249 2011-03-14 Jakub Jelinek <jakub@redhat.com>
12250
12251 PR middle-end/47917
12252 * builtins.c (fold_builtin_snprintf): New function.
12253 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
12254 (fold_builtin_4): Likewise.
12255
12256 PR middle-end/38878
12257 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
12258 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
12259 and C - X == X also strip nops from +/-/p+ operand.
12260 When optimizing -X == C, fold C to arg0's type.
12261
12262 PR debug/47946
12263 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
12264 emit it as add_AT_int instead of add_AT_unsigned.
12265
12266 2011-03-14 Tom Tromey <tromey@redhat.com>
12267
12268 * unwind-dw2.c: Include sys/sdt.h if it exists.
12269 (_Unwind_DebugHook): Use STAP_PROBE2.
12270 * config.in, configure: Rebuild.
12271 * configure.ac: Check for sys/sdt.h.
12272
12273 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
12274
12275 * config/i386/i386.md (ROUND_FLOOR): New constant.
12276 (ROUND_CEIL): Ditto.
12277 (ROUND_TRUNC): Ditto.
12278 (ROUND_MXCSR): Ditto.
12279 (ROUND_NO_EXC): Ditto.
12280 (rint<mode>2): Use new defines instead of numerical constants.
12281 (floor<mode>2): Ditto.
12282 (ceil<mode>2): Ditto.
12283 (btrunc<mode>2): Ditto.
12284 * config/i386/i386-builtin-types.def: Define ROUND function type
12285 aliases.
12286 * config/i386/i386.c (enum ix86_builtins): Add
12287 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
12288 (struct builtin_description): Add
12289 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
12290 (ix86_expand_sse_round): New static function.
12291 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
12292 function types.
12293 (ix86_builtin_vectorized_function): Handle
12294 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
12295
12296 2011-03-14 Tom Tromey <tromey@redhat.com>
12297
12298 * c-parser.c (c_parser_asm_string_literal): Clear
12299 warn_overlength_strings.
12300
12301 2011-03-14 Tom Tromey <tromey@redhat.com>
12302
12303 * c-parser.c (disable_extension_diagnostics): Save
12304 warn_overlength_strings.
12305 (restore_extension_diagnostics): Restore warn_overlength_strings.
12306
12307 2011-03-14 Jakub Jelinek <jakub@redhat.com>
12308
12309 * BASE-VER: Change to 4.7.0.
12310
12311 2011-03-14 Richard Guenther <rguenther@suse.de>
12312
12313 PR middle-end/48098
12314 * tree.c (build_vector_from_val): Adjust assert to requirements
12315 and reality.
12316
12317 2011-03-14 Jakub Jelinek <jakub@redhat.com>
12318
12319 PR bootstrap/48102
12320 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
12321
12322 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
12323
12324 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
12325 terms of target_flags_explicit. Adjust copyright year.
12326
12327 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
12328 * config/rs6000/t-freebsd: New file. Add override for
12329 LIB2FUNCS_EXTRA.
12330
12331 2011-03-13 Chris Demetriou <cgd@google.com>
12332
12333 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
12334 (-fno-diagnostics-show-option): this, to reflect current default.
12335 (-Werror=): Update text about -fno-diagnostics-show-option.
12336
12337 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
12338
12339 PR target/48053
12340 * config/rs6000/predicates.md (easy_vector_constant_add_self,
12341 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
12342 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
12343 mode is not V2DImode or V2DFmode.
12344 (vspltis_constant): Do not handle V2DImode and V2DFmode.
12345 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
12346 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
12347 registers to 0.
12348 (movdi_internal64): Likewise.
12349
12350 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
12351
12352 PR tree-optimization/47127
12353 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
12354 parameter.
12355 (set_cloog_options): Same.
12356 (scop_to_clast): Same.
12357 (print_clast_stmt): Do not call cloog_state_malloc and
12358 cloog_state_free.
12359 (print_generated_program): Same.
12360 (gloog): Same.
12361 * graphite-clast-to-gimple.h (cloog_state): Declared.
12362 (scop_to_clast): Adjust declaration.
12363 * graphite.c (cloog_state): Defined here.
12364 (graphite_initialize): Call cloog_state_malloc.
12365 (graphite_finalize): Call cloog_state_free.
12366
12367 2011-03-11 Jason Merrill <jason@redhat.com>
12368
12369 * attribs.c (lookup_attribute_spec): Take const_tree.
12370 * tree.h: Adjust.
12371
12372 2011-03-11 Joseph Myers <joseph@codesourcery.com>
12373
12374 * config/sparc/sparc.c (sparc_option_override): Use
12375 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
12376
12377 2011-03-11 Richard Guenther <rguenther@suse.de>
12378
12379 PR tree-optimization/48067
12380 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
12381 multiplication result will be only used once on the target
12382 stmt.
12383
12384 2011-03-11 Richard Guenther <rguenther@suse.de>
12385
12386 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
12387
12388 2011-03-11 Richard Guenther <rguenther@suse.de>
12389
12390 PR lto/48073
12391 * tree.c (find_decls_types_r): Do not walk types only reachable
12392 from IDENTIFIER_NODEs.
12393
12394 2011-03-11 Jakub Jelinek <jakub@redhat.com>
12395
12396 PR middle-end/48044
12397 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
12398 all vnode->force_output nodes as needed.
12399
12400 2011-03-11 Jason Merrill <jason@redhat.com>
12401
12402 PR c++/48069
12403 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
12404 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
12405
12406 2011-03-11 Martin Jambor <mjambor@suse.cz>
12407
12408 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
12409 cgraph_node.
12410
12411 2011-03-11 Jakub Jelinek <jakub@redhat.com>
12412
12413 PR tree-optimization/48063
12414 * ipa-inline.c (cgraph_decide_inlining): Don't try to
12415 inline functions called once if !tree_can_inline_p (node->callers).
12416
12417 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
12418
12419 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
12420 extra_objs.
12421 * config/score/score3.c: Delete.
12422 * config/score/score3.h: Delete.
12423 * config/score/mul-div.S: Delete.
12424 * config/score/sfp-machine.h: Add new file.
12425 * config/score/constraints.md: Add new file.
12426 * config/score/t-score-softfp: Add new file.
12427 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
12428 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
12429 (score7_extra_constraint): Delete.
12430 (score7_option_override): Remove unused code.
12431 * config/score/score.c: Remove score3 and score5 define and code.
12432 * config/score/score.h: Remove score3 and score5 define and code.
12433 * config/score/score.md: Remove score3 template and unusual insn.
12434 * config/score/score.opt: Remove score3 and score5 options.
12435
12436 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12437
12438 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
12439 when _HPUX_SOURCE is defined.
12440 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
12441
12442 2011-03-10 Jason Merrill <jason@redhat.com>
12443
12444 PR c++/48029
12445 * stor-layout.c (layout_type): Don't set structural equality
12446 on arrays of incomplete type.
12447 * tree.c (type_hash_eq): Handle comparing them properly.
12448
12449 2011-03-10 Jakub Jelinek <jakub@redhat.com>
12450
12451 PR debug/48043
12452 * config/s390/s390.c (s390_delegitimize_address): Make sure the
12453 result mode matches original rtl mode.
12454
12455 2011-03-10 Nick Clifton <nickc@redhat.com>
12456
12457 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
12458 (andsi3, andsi3_flags): Fix timings for three operand alternative.
12459
12460 2011-03-09 Jakub Jelinek <jakub@redhat.com>
12461
12462 PR rtl-optimization/47866
12463 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
12464 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
12465 if target wasn't scalar.
12466 * function.c (assign_stack_temp_for_type): Assert that neither
12467 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
12468 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
12469 macro.
12470 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
12471
12472 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12473
12474 * config/s390/s390-protos.h (s390_label_align): New prototype.
12475 * config/s390/s390.c (s390_label_align): New function.
12476 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
12477
12478 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
12479
12480 PR target/47755
12481 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
12482 V2DI/V2DF constants. Only all 0's or all 1's are easy.
12483 (output_vec_const_move): Ditto.
12484
12485 2011-03-08 Anatoly Sokolov <aesok@post.ru>
12486
12487 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
12488 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
12489 * config/mips/mips.c (mips_preferred_reload_class): Make static.
12490 Change 'rclass' argument and result type to reg_class_t.
12491 (TARGET_PREFERRED_RELOAD_CLASS): Define.
12492
12493 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
12494
12495 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12496 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
12497 (TARGET_MEMORY_MOVE_COST): Define.
12498 (avr_register_move_cost, avr_memory_move_cost): New Functions.
12499
12500 2011-03-08 Jakub Jelinek <jakub@redhat.com>
12501
12502 PR debug/47881
12503 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
12504 removed anything.
12505
12506 PR tree-optimization/48022
12507 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
12508 for EQ/NE_EXPR.
12509
12510 2011-03-07 Jakub Jelinek <jakub@redhat.com>
12511
12512 PR debug/47991
12513 * var-tracking.c (find_use_val): Return NULL for
12514 cui->sets && cui->store_p BLKmode MEMs.
12515
12516 2011-03-07 Anatoly Sokolov <aesok@post.ru>
12517
12518 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
12519 Remove.
12520 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
12521 xstormy16_print_operand_address): Remove.
12522 * config/stormy16/stormy16.c (xstormy16_print_operand,
12523 xstormy16_print_operand_address): Make static.
12524 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12525
12526 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
12527
12528 PR target/47862
12529 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12530 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
12531 before definition.
12532
12533 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
12534
12535 PR bootstrap/48000
12536 * cfgloopmanip.c (fix_bb_placements): Return immediately
12537 if FROM is BASE_LOOP's header.
12538
12539 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
12540
12541 * gimplify.c (gimplify_function_tree): Fix building calls
12542 to __builtin_return_address.
12543
12544 2011-03-07 Alan Modra <amodra@gmail.com>
12545
12546 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
12547 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
12548 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
12549 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
12550 return_mode args.
12551 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
12552 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
12553 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
12554 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
12555 * config/rs6000/rs6000.c
12556 (rs6000_elf_end_indicate_exec_stack): Rename to..
12557 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
12558 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
12559 (rs6000_file_start): ..here.
12560 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
12561 file scope variables.
12562 (call_ABI_of_interest): New function.
12563 (init_cumulative_args): Set above vars when function return value
12564 is a float, vector, or small struct.
12565 (rs6000_function_arg_advance_1): Likewise for function args.
12566 (rs6000_va_start): Set rs6000_passes_float if variable arg function
12567 references float args.
12568
12569 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
12570
12571 * doc/cfg.texi: Remove "See" before @ref.
12572 * doc/invoke.texi: Likewise.
12573
12574 2011-03-05 Jason Merrill <jason@redhat.com>
12575
12576 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
12577
12578 2011-03-05 Anthony Green <green@moxielogic.com>
12579
12580 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
12581
12582 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
12583
12584 PR rtl-optimization/47899
12585 * cfgloopmanip.c (fix_bb_placements): Fix first argument
12586 to flow_loop_nested_p when moving the loop upward.
12587
12588 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
12589
12590 PR target/47719
12591 * arm.md (movhi_insn_arch4): Accept any immediate constant.
12592
12593 2011-03-05 Jakub Jelinek <jakub@redhat.com>
12594
12595 PR tree-optimization/47967
12596 * ipa-cp.c (build_const_val): Return NULL instead of creating
12597 VIEW_CONVERT_EXPR for mismatching sizes.
12598 (ipcp_create_replace_map): Return NULL if build_const_val failed.
12599 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
12600 give up on versioning.
12601
12602 2011-03-05 Alan Modra <amodra@gmail.com>
12603
12604 PR target/47986
12605 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12606 full cmodel medium/large lo_sum + high addresses.
12607
12608 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12609
12610 * config/s390/s390.c (s390_decompose_address): Reject non-literal
12611 pool references in UNSPEC_LTREL_OFFSET.
12612
12613 2011-03-04 Jan Hubicka <jh@suse.cz>
12614
12615 PR lto/47497
12616 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
12617 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
12618 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
12619 Add node pointers.
12620 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
12621 cgraph_add_thunk): Add node pointers.
12622 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
12623 associated to right node.
12624 (input_node): Update use of cgraph_same_body_alias
12625 and cgraph_add_thunk.
12626
12627 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
12628
12629 * config/i386/i386.opt (mprefer-avx128): New flag.
12630 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
12631 modes when the flag -mprefer-avx128 is on.
12632
12633 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
12634
12635 * dwarf2out.c (compare_loc_operands): Fix address handling.
12636
12637 2011-03-04 Alan Modra <amodra@gmail.com>
12638
12639 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
12640
12641 2011-03-04 Richard Guenther <rguenther@suse.de>
12642
12643 PR middle-end/47968
12644 * expmed.c (extract_bit_field_1): Prefer vector modes that
12645 vec_extract patterns can handle.
12646
12647 2011-03-04 Richard Guenther <rguenther@suse.de>
12648
12649 PR middle-end/47975
12650 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
12651
12652 2011-03-04 Richard Henderson <rth@redhat.com>
12653
12654 * explow.c (emit_stack_save): Remove 'after' parameter.
12655 (emit_stack_restore): Likewise.
12656 * expr.h: Update to match.
12657 * builtins.c, calls.c, stmt.c: Likewise.
12658 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
12659 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
12660 * function.c (expand_function_end): Insert the emit_stack_save
12661 sequence before parm_birth_insn instead of after.
12662
12663 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
12664
12665 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
12666 (ssse3_pmaddubsw128): Ditto.
12667 (ssse3_pmaddubsw): Ditto.
12668
12669 2011-03-03 Steve Ellcey <sje@cup.hp.com>
12670
12671 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
12672
12673 2011-03-03 Jakub Jelinek <jakub@redhat.com>
12674
12675 PR c/47963
12676 * gimplify.c (omp_add_variable): Only call omp_notice_variable
12677 on TYPE_SIZE_UNIT if it is a DECL.
12678
12679 PR debug/47283
12680 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
12681 first operand is not is_gimple_mem_ref_addr, try to fold it.
12682 If the operand still isn't is_gimple_mem_ref_addr, clear
12683 MEM_EXPR on op0.
12684
12685 2011-03-03 Richard Guenther <rguenther@suse.de>
12686
12687 PR middle-end/47283
12688 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
12689 match comment.
12690 (refs_may_alias_p_1): For release branches return true if
12691 we are confused by our input.
12692
12693 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12694
12695 * config/s390/s390.c (s390_function_value): Rename to ...
12696 (s390_function_and_libcall_value): ... this.
12697 (s390_function_value): New function.
12698 (s390_libcall_value): New function.
12699 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
12700 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
12701 target macro definitions.
12702 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
12703
12704 2011-03-02 Joseph Myers <joseph@codesourcery.com>
12705
12706 * config/i386/freebsd64.h (CC1_SPEC): Define.
12707 * config/i386/linux64.h (CC1_SPEC): Define.
12708 * config/i386/x86-64.h (CC1_SPEC): Don't define.
12709
12710 2011-03-02 Anatoly Sokolov <aesok@post.ru>
12711
12712 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12713 Remove.
12714 * config/stormy16/stormy16.c: Include reload.h.
12715 (xstormy16_memory_move_cost): New function.
12716 (TARGET_MEMORY_MOVE_COST): Define.
12717
12718 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
12719
12720 PR rtl-optimization/47925
12721 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
12722 with side effects. Remove the more-specific check for volatile asms.
12723
12724 2011-03-02 Alan Modra <amodra@gmail.com>
12725
12726 PR target/47935
12727 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
12728 toc relative addresses for valid offsets.
12729
12730 2011-03-01 Richard Guenther <rguenther@suse.de>
12731
12732 PR tree-optimization/47890
12733 * tree-vect-loop.c (get_initial_def_for_induction): Set
12734 related stmt properly.
12735
12736 2011-03-01 Richard Guenther <rguenther@suse.de>
12737
12738 PR lto/47924
12739 * lto-streamer.c (lto_record_common_node): Also register
12740 the canonical type.
12741
12742 2011-03-01 Richard Guenther <rguenther@suse.de>
12743
12744 PR lto/46911
12745 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12746 Do not stream DECL_ABSTRACT_ORIGIN.
12747 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12748 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12749 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12750 Do not stream DECL_ABSTRACT_ORIGIN.
12751 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12752 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12753
12754 2011-02-28 Anatoly Sokolov <aesok@post.ru>
12755
12756 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
12757 FUNCTION_VALUE_REGNO_P): Remove.
12758 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
12759 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
12760 Add 'outgoing' argument.
12761 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
12762 function.
12763 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12764 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12765
12766 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
12767
12768 PR debug/28047
12769 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12770 (lookup_filename): Likewise.
12771 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
12772
12773 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
12774 Jakub Jelinek <jakub@redhat.com>
12775
12776 PR middle-end/47893
12777 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12778 (assign_stack_local_1): Change last argument type to int.
12779 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12780 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
12781 don't record padding space into frame_space_list nor use those areas.
12782 (assign_stack_local): Adjust caller.
12783 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12784 of assign_stack_local, pass 0 as last argument.
12785 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12786 callers.
12787
12788 2011-02-28 Jakub Jelinek <jakub@redhat.com>
12789
12790 PR debug/47283
12791 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12792 Use target address_mode and pointer_mode hooks instead of hardcoded
12793 Pmode and ptr_mode. Handle some simple cases of extending if
12794 POINTERS_EXTEND_UNSIGNED < 0.
12795 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12796 Call convert_debug_memory_address.
12797 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12798 convert_debug_memory_address.
12799
12800 PR middle-end/46790
12801 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12802 * configure: Regenerated.
12803 * config.in: Regenerated.
12804 * varasm.c (default_function_section): Return NULL
12805 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12806
12807 2011-02-28 Martin Jambor <mjambor@suse.cz>
12808
12809 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12810 the description to match the printed values.
12811
12812 2011-02-28 Richard Guenther <rguenther@suse.de>
12813
12814 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12815 of the copied scope tree.
12816
12817 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12818
12819 * doc/extend.texi (Function Attributes): Avoid deeply (and
12820 wrongly) nested tables.
12821
12822 2011-02-27 Jakub Jelinek <jakub@redhat.com>
12823
12824 PR middle-end/47903
12825 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12826 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12827 r isn't op0 nor op1.
12828
12829 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
12830
12831 * config/avr/avr.md: Remove magic comment for emacs.
12832
12833 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
12834
12835 PR target/45261
12836 * config/avr/avr.c (avr_option_override): Use error on bad options.
12837 (avr_help): New function.
12838 (TARGET_HELP): Define.
12839
12840 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
12841
12842 PR target/42240
12843 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12844 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12845
12846 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
12847
12848 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12849 (ARM Options): Ditto.
12850 (i386 and x86-64 Options): Ditto.
12851 (RX Options): Ditto.
12852 (SPARC Options): Ditto.
12853
12854 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
12855
12856 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12857 FreeBSD 6 and later. Generally use cpu generic.
12858
12859 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
12860
12861 * doc/cpp.texi: Update copyright years.
12862
12863 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
12864
12865 PR target/46898
12866 * config/lm32/lm32.md (ashrsi3): Added needed variable.
12867
12868 2011-02-25 Jon Beniston <jon@beniston.com>
12869
12870 PR target/46898
12871 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12872 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12873 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12874 (lm32_block_move_inline): Add type cast to remove warning.
12875 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12876 (gen_int_relational): Move declarations to start of function.
12877
12878 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
12879
12880 PR tree-optimization/45470
12881 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12882 can throw internally only.
12883 * tree-vect-stmts.c (vectorizable_call): Likewise.
12884
12885 2011-02-24 Anatoly Sokolov <aesok@post.ru>
12886
12887 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12888 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12889 * config/stormy16/stormy16-protos.h
12890 (xstormy16_preferred_reload_class): Remove.
12891 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12892 static. Change 'rclass' argument and return type to reg_class_t.
12893 (TARGET_PREFERRED_RELOAD_CLASS,
12894 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12895
12896 2011-02-24 Richard Guenther <rguenther@suse.de>
12897
12898 * lto-streamer-in.c (input_bb): Do not find referenced vars
12899 in debug statements.
12900
12901 2011-02-23 Jason Merrill <jason@redhat.com>
12902
12903 * common.opt (fabi-version): Document v5 and v6.
12904
12905 2011-02-23 Richard Guenther <rguenther@suse.de>
12906
12907 PR tree-optimization/47849
12908 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12909
12910 2011-02-23 Jie Zhang <jie@codesourcery.com>
12911
12912 * opts-common.c (decode_cmdline_option): Print empty string
12913 argument as "" in decoded->orig_option_with_args_text.
12914 * gcc.c (execute): Print empty string argument as ""
12915 in the verbose output.
12916 (do_spec_1): Keep empty string argument.
12917
12918 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
12919
12920 * config.gcc: Declare score-* and crx-* obsolete.
12921
12922 2011-02-23 Jie Zhang <jie@codesourcery.com>
12923
12924 PR rtl-optimization/47763
12925 * web.c (web_main): Ignore naked clobber when replacing register.
12926
12927 2011-02-22 Anatoly Sokolov <aesok@post.ru>
12928
12929 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12930 Remove.
12931
12932 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
12933
12934 PR doc/47848
12935 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12936
12937 2011-02-22 Mike Stump <mikestump@comcast.net>
12938
12939 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12940 assembler.
12941 * configure: Regenerate.
12942
12943 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
12944
12945 PR rtl-optimization/46002
12946 * ira-color.c (update_copy_costs): Change class intersection
12947 test to reg_class_contents[] test of 'hard_regno'.
12948
12949 2011-02-21 Joseph Myers <joseph@codesourcery.com>
12950
12951 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12952 than Driver option.
12953 * config/hpux11.opt (mt): Likewise.
12954 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12955 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12956 * config/vax/elf.opt (mno-asm-pic): Likewise.
12957 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12958
12959 2011-02-21 Mike Stump <mikestump@comcast.net>
12960
12961 PR target/47822
12962 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12963 tree so we can get save the type.
12964 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12965 for CFString instead of trying to use past the end of the builtins.
12966 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12967 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12968 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12969 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12970 Rename to darwin_builtin_cfstring.
12971 (darwin_init_cfstring_builtins): Return the built type.
12972
12973 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
12974
12975 PR target/47840
12976 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12977 (_mm256_insert_epi64): Use _mm_insert_epi64.
12978
12979 2011-02-21 Anatoly Sokolov <aesok@post.ru>
12980
12981 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12982 * config/stormy16/stormy16-protos.h
12983 (xstormy16_mode_dependent_address_p): Remove.
12984 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12985 Make static. Change return type to bool. Change argument type to
12986 const_rtx. Remove dead code.
12987 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12988
12989 2011-02-21 Richard Guenther <rguenther@suse.de>
12990
12991 PR lto/47820
12992 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12993 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12994 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12995 TUs context.
12996 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12997 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12998
12999 2011-02-20 Richard Guenther <rguenther@suse.de>
13000
13001 PR lto/47822
13002 * tree.c (free_lang_data_in_decl): Clean builtins from
13003 the TU decl BLOCK_VARS.
13004
13005 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
13006
13007 PR debug/47620
13008 PR debug/47630
13009 * haifa-sched.c (fix_tick_ready): Skip tick computation
13010 for debug insns.
13011
13012 2011-02-19 Richard Guenther <rguenther@suse.de>
13013
13014 PR lto/47647
13015 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
13016 Remove lazy BLOCK_VARS streaming.
13017 (lto_input_ts_block_tree_pointers): Likewise.
13018 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
13019
13020 2011-02-19 Joseph Myers <joseph@codesourcery.com>
13021
13022 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
13023
13024 2011-02-19 Joseph Myers <joseph@codesourcery.com>
13025
13026 * config/i386/biarch32.h, config/i386/mach.h,
13027 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
13028
13029 2011-02-19 Jakub Jelinek <jakub@redhat.com>
13030
13031 PR target/47800
13032 * config/i386/i386.md (peephole2 for shift and plus): Use
13033 operands[1] original mode in the first insn.
13034
13035 2011-02-18 Mike Stump <mikestump@comcast.net>
13036
13037 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
13038
13039 2011-02-18 Jan Hubicka <jh@suse.cz>
13040
13041 PR middle-end/47788
13042 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
13043 to zero when the function is not inlinable at all.
13044
13045 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13046
13047 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
13048 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13049 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
13050 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
13051 * config/pa/t-pa64: Likewise.
13052 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
13053
13054 2011-02-18 Jakub Jelinek <jakub@redhat.com>
13055
13056 PR driver/47787
13057 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
13058
13059 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13060
13061 PR target/47792
13062 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
13063
13064 2011-02-18 Anatoly Sokolov <aesok@post.ru>
13065
13066 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
13067 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
13068 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
13069 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
13070 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
13071 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
13072 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
13073 m32r_load_postinc_p, m32r_store_preinc_predec_p,
13074 m32r_legitimate_address_p): New functions.
13075 * config/m32r/constraints.md (constraint "S"): Don't use
13076 STORE_PREINC_PREDEC_P.
13077 (constraint "U"): Don't use LOAD_POSTINC_P.
13078
13079 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
13080
13081 PR rtl-optimization/46178
13082 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
13083 compute ira_hard_regno_cover_class[].
13084
13085 2011-02-18 Richard Guenther <rguenther@suse.de>
13086
13087 PR lto/47798
13088 * lto-streamer.h (lto_global_var_decls): Declare.
13089 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
13090 statics for global var processing.
13091
13092 2011-02-18 Richard Guenther <rguenther@suse.de>
13093
13094 PR tree-optimization/47737
13095 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
13096 edge dominance check.
13097
13098 2011-02-18 Jakub Jelinek <jakub@redhat.com>
13099
13100 PR debug/47780
13101 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
13102 avoid invalid rtx sharing.
13103
13104 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
13105
13106 * doc/cpp.texi (Obsolete Features): Add background on the
13107 origin of assertions.
13108
13109 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
13110
13111 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
13112 objc_abi == 2.
13113 * config/darwin.c (output_objc_section_asm_op): Added support for
13114 ABI v1 and v2.
13115 (is_objc_metadata): New.
13116 (darwin_objc2_section): New.
13117 (darwin_objc1_section): New.
13118 (machopic_select_section): Added support for ABI v1 and v2.
13119 (darwin_emit_objc_zeroed): New.
13120 (darwin_output_aligned_bss): Detect objc metadata and treat it
13121 appropriately.
13122 (darwin_asm_output_aligned_decl_common): Same.
13123 (darwin_asm_output_aligned_decl_local): Same.
13124 * config/darwin-sections.def: Updated for ABI v1 and v2.
13125 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
13126 compiling Objective-C code for the NeXT runtime, default to using
13127 ABI version 0 for 32-bit, and version 2 for 64-bit.
13128
13129 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13130
13131 * common.opt (optimize_fast): New Variable.
13132 * opts.c (default_options_optimization): Use opts->x_optimize_fast
13133 instead of local variable ofast.
13134
13135 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
13136
13137 * doc/invoke.texi (fobjc-abi-version): Documented.
13138 (fobjc-nilcheck): Documented.
13139 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
13140 version.
13141
13142 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13143
13144 PR driver/47390
13145 * common.opt (export-dynamic): New Driver option.
13146 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
13147
13148 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13149
13150 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
13151
13152 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
13153 Jan Hubicka <jh@suse.cz>
13154
13155 PR debug/47106
13156 PR debug/47402
13157 * cfgexpand.c (account_used_vars_for_block): Remove.
13158 (estimated_stack_frame_size): Use referenced vars.
13159 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
13160 that were referenced in the original function. Test src_fn
13161 rather than cfun. Drop redundant get_var_ann.
13162 (setup_one_parameter): Drop redundant get_var_ann.
13163 (declare_return_variable): Likewise.
13164 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
13165 (copy_arguments_for_versioning): Drop redundant get_var_ann.
13166 * ipa-inline.c (compute_inline_parameters): Do not compute
13167 disregard_inline_limits here.
13168 (compute_inlinable_for_current, pass_inlinable): New.
13169 (pass_inline_parameters): Require PROP_referenced_vars.
13170 * cgraphunit.c (cgraph_process_new_functions): Don't run
13171 compute_inline_parameters explicitly unless function is in SSA form.
13172 (cgraph_analyze_function): Set .disregard_inline_limits.
13173 * tree-sra.c (convert_callers): Compute inliner parameters
13174 only for functions already in SSA form.
13175
13176 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13177
13178 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
13179 -mlittle-endian-data.
13180
13181 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13182
13183 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
13184 -mno-fpu, not -fpu and -no-fpu.
13185 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
13186 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
13187
13188 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
13189
13190 PR target/43653
13191 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
13192 input reload with PLUS RTX.
13193
13194 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13195
13196 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
13197 of InverseVar(MDMX).
13198
13199 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13200
13201 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
13202 --m4-340.
13203
13204 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13205
13206 * config/mn10300/mn10300.opt (mno-crt0): New.
13207
13208 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13209
13210 * config/m68k/uclinux.opt (static-libc): New Driver option.
13211
13212 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13213
13214 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
13215
13216 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13217
13218 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
13219 %{muser-extend-enabled}.
13220
13221 2011-02-16 Richard Guenther <rguenther@suse.de>
13222
13223 PR tree-optimization/47738
13224 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
13225 the TODO from tree_predictive_commoning.
13226
13227 2011-02-15 Jeff Law <law@redhat.com>
13228
13229 Revert
13230 2011-01-25 Jeff Law <law@redhat.com>
13231
13232 PR rtl-optimization/37273
13233 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13234 handle them like argument loads from stack slots. Do not double
13235 count memory for memory constants and argument loads from stack slots.
13236
13237 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
13238
13239 PR middle-end/47725
13240 * combine.c (cant_combine_insn_p): Revert the last change.
13241
13242 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
13243
13244 PR target/47755
13245 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
13246 mode for vector constants. Remove code that checks for TImode.
13247
13248 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
13249
13250 PR debug/47106
13251 PR debug/47402
13252 * cgraph.h (compute_inline_parameters): Return void.
13253 * ipa-inline.c (compute_inline_parameters): Adjust.
13254
13255 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
13256
13257 PR debug/47106
13258 PR debug/47402
13259 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
13260 rather than decl.
13261 * cfgexpand.c (estimated_stack_frame_size): Likewise.
13262 * ipa-inline.c (compute_inline_parameters): Adjust.
13263
13264 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
13265
13266 PR debug/47106
13267 PR debug/47402
13268 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
13269 Adjust all users. Pass FN to...
13270 * tree-flow-inline.h (first_referenced_var): ... this. Add
13271 fn argument.
13272 * ipa-struct-reorg.c: Adjust.
13273 * tree-dfa.c: Adjust.
13274 * tree-into-ssa.c: Adjust.
13275 * tree-sra.c: Adjust.
13276 * tree-ssa-alias.c: Adjust.
13277 * tree-ssa-live.c: Adjust.
13278 * tree-ssa.c: Adjust.
13279 * tree-ssanames.c: Adjust.
13280 * tree-tailcall.c: Adjust.
13281
13282 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
13283
13284 PR debug/47106
13285 PR debug/47402
13286 * tree-flow.h (referenced_var_lookup): Add fn parameter.
13287 Adjust all callers.
13288 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
13289 * tree-flow-inline.h: Adjust.
13290 * gimple-pretty-print.c: Adjust.
13291 * tree-into-ssa.c: Adjust.
13292 * tree-ssa.c: Adjust.
13293 * cfgexpand.c: Adjust.
13294
13295 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
13296
13297 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
13298 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13299 (EXTRA_CONSTRAINT): Delete.
13300 * config/iq2000/constraints.md: New file.
13301 * config/iq2000/iq2000.md: Include it.
13302 (define_insn ""): Delete.
13303 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
13304 unsupported constraint letters from patterns.
13305 (call_value, call_value_internal1): Likewise.
13306 (call_value_multiple_internal1): Likewise.
13307
13308 2011-02-15 Nick Clifton <nickc@redhat.com>
13309
13310 * config/mn10300/mn10300.c: Include tm-constrs.h.
13311 (struct liw_data): New data structure describing an LIW candidate
13312 instruction.
13313 (extract_bundle): Use struct liw_data. Allow small integer
13314 operands for some instructions.
13315 (check_liw_constraints): Use struct liw_data. Remove swapped
13316 parameter. Add comments describing the checks. Fix bug when
13317 assigning the source of liw1 to the source of liw2.
13318 (liw_candidate): Delete. Code moved into extract_bundle.
13319 (mn10300_bundle_liw): Use struct liw_data. Check constraints
13320 before swapping.
13321 * config/mn10300/predicates.md (liw_operand): New predicate.
13322 Allows registers and small integer constants.
13323 * config/mn10300/constraints.md (O): New constraint. Accetps
13324 integers in the range -8 to +7 inclusive.
13325 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
13326 for moving a small integer into a register. Give this alternative
13327 LIW attributes.
13328 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
13329 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
13330 using the J,K,L and M constraints,
13331 (liw): Remove SI mode on second operands to allow for HI and QI
13332 mode values.
13333 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
13334 instruction.
13335
13336 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
13337
13338 PR middle-end/47725
13339 * combine.c (cant_combine_insn_p): Check zero/sign extended
13340 hard registers.
13341
13342 2011-02-15 Richard Guenther <rguenther@suse.de>
13343
13344 PR tree-optimization/47743
13345 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
13346 for a non-type-compatible VN lookup bail out.
13347
13348 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
13349
13350 * config/fr30/constraints.md: New file.
13351 * config/fr30/fr30.md: Include it.
13352 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
13353 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13354 (EXTRA_CONSTRAINT): Delete.
13355
13356 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
13357
13358 * config/frv/constraints.md: New file.
13359 * config/frv/predicates.md: Include it.
13360 * config/frv/frv.c (reg_class_from_letter): Delete.
13361 (frv_option_override): Don't initialize it.
13362 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
13363 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
13364 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
13365 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
13366 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
13367 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13368 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
13369 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
13370 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
13371 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
13372 (REG_CLASS_FROM_CONSTRAINT): Delete.
13373
13374 2011-02-15 Jakub Jelinek <jakub@redhat.com>
13375
13376 PR middle-end/47581
13377 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
13378 if frame size is 0 in a leaf function.
13379
13380 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13381
13382 PR pch/14940
13383 * config/alpha/host-osf.c: New file.
13384 * config/alpha/x-osf: New file.
13385 * config.host (alpha*-dec-osf*): Use it.
13386
13387 2011-02-14 Anatoly Sokolov <aesok@post.ru>
13388
13389 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13390 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
13391 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
13392 (rx_mode_dependent_address_p): ...this. Make static. Change argument
13393 type to const_rtx.
13394 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13395
13396 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
13397
13398 * config/stormy16/constraints.md: New file.
13399 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
13400 Use satisfies_constraint_Q and satisfies_constraint_R.
13401 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
13402 Delete.
13403 (xstormy16_legitiamte_address_p): Declare.
13404 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
13405 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13406 (EXTRA_CONSTRAINT): Delete.
13407 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
13408 Un-staticize.
13409 (xstormy16_extra_constraint_p): Delete.
13410
13411 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
13412
13413 PR tree-optimization/46494
13414 * loop-unroll.c (split_edge_and_insert): Adjust comment.
13415 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
13416 (pass_rtl_loop_done): Add TODO_verify_flow.
13417 * fwprop.c (pass_rtl_fwprop): Likewise.
13418 * modulo-sched.c (pass_sms): Likewise.
13419 * tree-ssa-dom.c (pass_dominator): Likewise.
13420 * tree-ssa-loop-ch.c (pass_ch): Likewise.
13421 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
13422 (pass_tree_loop_done): Likewise.
13423 * tree-ssa-pre.c (execute_pre): Likewise.
13424 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
13425 * tree-ssa-sink.c (pass_sink_code): Likewise.
13426 * tree-vrp.c (pass_vrp): Likewise.
13427
13428 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
13429
13430 * config/v850/constraints.md: New file.
13431 * config/v850/v850.md: Include it.
13432 * config/v850/predicates.md (reg_or_0_operand): Use
13433 satisfies_constraint_G.
13434 (special_symbolref_operand): Use satisfies_constraint_K.
13435 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
13436 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13437 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
13438 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
13439 (EXTRA_CONSTRAINT): Delete.
13440 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
13441 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
13442 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
13443
13444 2011-02-14 Anatoly Sokolov <aesok@post.ru>
13445
13446 PR target/47696
13447 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
13448 description.
13449
13450 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
13451
13452 * config/mcore/constraints.md: New file.
13453 * config/mcore/mcore.md: Include it.
13454 * config/mcore/mcore.c (reg_class_from_letter): Delete.
13455 * config/mcore/mcore.h (reg_class_from_letter): Delete.
13456 (REG_CLASS_FROM_LETTER): Delete.
13457 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
13458 insn_const_int_ok_for_constraint.
13459 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
13460 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
13461 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13462 (EXTRA_CONSTRAINT): Delete.
13463
13464 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13465
13466 PR ada/41929
13467 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
13468 (IS_SIGHANDLER): Define.
13469 (sparc64_is_sighandler): New function, split off from
13470 sparc64_fallback_frame_state.
13471 (sparc_is_sighandler): New function, split off from
13472 sparc_fallback_frame_state.
13473 (sparc64_fallback_frame_state): Merge with ...
13474 (sparc_fallback_frame_state): ... this into ...
13475 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
13476 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
13477 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
13478 stack instead of hardcoded offsets.
13479
13480 2011-02-14 Andriy Gapon <avg@freebsd.org>
13481
13482 PR target/45808
13483 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
13484
13485 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13486
13487 * configure: Regenerate.
13488
13489 2011-02-12 Joseph Myers <joseph@codesourcery.com>
13490
13491 PR driver/45731
13492 * gcc.c (asm_options): Correct spec matching --target-help.
13493
13494 2011-02-12 Martin Jambor <mjambor@suse.cz>
13495
13496 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
13497 to gimple call error.
13498
13499 2011-02-12 Mike Stump <mikestump@comcast.net>
13500
13501 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
13502 comments in backslash regions.
13503
13504 2011-02-12 Mike Stump <mikestump@comcast.net>
13505 Jakub Jelinek <jakub@redhat.com>
13506 Iain Sandoe <iains@gcc.gnu.org>
13507
13508 PR target/47324
13509 * dwarf2out.c (output_cfa_loc): When required, apply the
13510 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
13511 (output_loc_sequence): Likewise.
13512 (output_loc_operands_raw): Likewise.
13513 (output_loc_sequence_raw): Likewise.
13514 (output_cfa_loc): Likewise.
13515 (output_loc_list): Suppress register number adjustment when
13516 calling output_loc_sequence()
13517 (output_die): Likewise.
13518
13519 2011-02-12 Anatoly Sokolov <aesok@post.ru>
13520
13521 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13522 Remove macros.
13523 * config/xtensa/xtensa.c (xtensa_register_move_cost,
13524 xtensa_memory_move_cost): New functions.
13525 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
13526
13527 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
13528
13529 PR lto/47225
13530 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
13531 in the current directory.
13532 * configure: Rebuilt.
13533
13534 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
13535
13536 * config/darwin.c (darwin_override_options): Add a hunk missed
13537 from the commit of r168571. Trim comment line lengths and
13538 correct indents of the preceding block.
13539
13540 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
13541
13542 * gcc.c (driver_handle_option): Concatenate the argument to -F with
13543 the switch.
13544
13545 2011-02-11 Joseph Myers <joseph@codesourcery.com>
13546
13547 * common.opt (nostartfiles): New Driver option.
13548
13549 2011-02-11 Xinliang David Li <davidxl@google.com>
13550
13551 PR tree-optimization/47707
13552 * tree-chrec.c (convert_affine_scev): Keep type precision.
13553
13554 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
13555
13556 PR tree-optimization/47420
13557 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
13558
13559 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
13560
13561 PR rtl-optimization/47614
13562 * rtl.h (check_for_inc_dec): Declare.
13563 * dse.c (check_for_inc_dec): Externalize...
13564 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
13565 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
13566
13567 2011-02-11 Joseph Myers <joseph@codesourcery.com>
13568
13569 PR driver/47678
13570 * gcc.c (main): Do not compile inputs if there were errors in
13571 option handling.
13572 * opts-common.c (read_cmdline_option): Check for wrong language
13573 after other error checks.
13574
13575 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
13576
13577 * cgraph.c: Fix comment typos.
13578 * cgraph.h: Likewise.
13579 * cgraphunit.c: Likewise.
13580 * ipa-cp.c: Likewise.
13581 * ipa-inline.c: Likewise.
13582 * ipa-prop.c: Likewise.
13583 * ipa-pure-const.c: Likewise.
13584 * ipa-ref.c: Likewise.
13585 * ipa-reference.c: Likewise.
13586
13587 2011-02-11 Jakub Jelinek <jakub@redhat.com>
13588
13589 PR debug/47684
13590 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
13591
13592 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13593
13594 PR testsuite/47400
13595 * doc/sourcebuild.texi (Require Support): Document
13596 dg-require-ascii-locale.
13597
13598 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
13599
13600 * doc/lto.texi (Write summary): Fix missing parentheses.
13601
13602 2011-02-10 DJ Delorie <dj@redhat.com>
13603
13604 * config/m32c/m32c.c (m32c_option_override): Disable
13605 -fcombine-stack-adjustments until flag value tracking and compare
13606 optimization can be rewritten.
13607
13608 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
13609
13610 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
13611 PROCESSOR_POWER7.
13612 (PROCESSOR_DEFAULT64): Likewise.
13613
13614 2011-02-10 Richard Henderson <rth@redhat.com>
13615
13616 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
13617 change from 2011-02-03.
13618 * config/rx/rx.c (flags_from_code): Likewise.
13619 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
13620 is valid, n/pz otherwise.
13621 (rx_select_cc_mode): Return CCmode if Y is not zero.
13622
13623 2011-02-10 Richard Guenther <rguenther@suse.de>
13624
13625 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
13626
13627 2011-02-10 Richard Guenther <rguenther@suse.de>
13628
13629 PR tree-optimization/47677
13630 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
13631
13632 2011-02-10 Jakub Jelinek <jakub@redhat.com>
13633
13634 PR target/47665
13635 * combine.c (make_compound_operation): Only change shifts into
13636 multiplication for SCALAR_INT_MODE_P.
13637
13638 2011-02-10 Jie Zhang <jie@codesourcery.com>
13639
13640 PR testsuite/47622
13641 Revert
13642 2011-02-05 Jie Zhang <jie@codesourcery.com>
13643 PR debug/42631
13644 * web.c (entry_register): Don't clobber the number of the
13645 first uninitialized reference in used[].
13646
13647 2011-02-09 Richard Guenther <rguenther@suse.de>
13648
13649 PR tree-optimization/47664
13650 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
13651 all edges again.
13652
13653 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
13654
13655 PR target/46481
13656 PR target/47032
13657 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
13658 PROCESSOR_POWER7.
13659 (PROCESSOR_DEFAULT64): Same.
13660 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
13661
13662 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13663
13664 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
13665
13666 2011-02-09 Martin Jambor <mjambor@suse.cz>
13667
13668 PR middle-end/45505
13669 * tree-sra.c (struct access): New flags grp_scalar_read and
13670 grp_scalar_write. Changed description of assignment read and write
13671 flags.
13672 (dump_access): Dump new flags, reorder all of them.
13673 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
13674 to detect multiple scalar reads.
13675 (analyze_access_subtree): Use the new scalar read write flags instead
13676 of the old flags. Adjusted comments.
13677
13678 2011-02-08 DJ Delorie <dj@redhat.com>
13679
13680 PR target/47548
13681 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
13682 patterns.
13683
13684 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13685
13686 * config/m68k/uclinux.opt: New.
13687 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
13688
13689 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13690
13691 * config/cris/elf.opt (sim): New Driver option.
13692
13693 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13694
13695 * config/xtensa/elf.opt: New.
13696 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
13697
13698 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13699
13700 * config/vax/elf.opt: New.
13701 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
13702
13703 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13704
13705 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
13706
13707 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13708
13709 * config/gnu-user.opt: New.
13710 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
13711 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
13712 *-*-uclinux*): Use gnu-user.opt.
13713
13714 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
13715
13716 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
13717 * config/i386/gnu.h (CPP_SPEC): Likewise.
13718
13719 2011-02-08 Ian Lance Taylor <iant@google.com>
13720
13721 * common.opt (fcx-limited-range): Add SetByCombined flag.
13722 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
13723 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
13724 (fassociative-math, freciprocal-math): Likewise.
13725 (funsafe-math-optimizations): Likewise.
13726 * opth-gen.awk: Handle SetByCombined.
13727 * optc-gen.awk: Likewise.
13728 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
13729 (set_unsafe_math_optimizations_flags): Likewise.
13730 * doc/options.texi (Option properties): Document SetByCombined.
13731
13732 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13733
13734 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
13735 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
13736 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
13737 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
13738 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
13739
13740 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
13741
13742 PR tree-optimization/46834
13743 PR tree-optimization/46994
13744 PR tree-optimization/46995
13745 * graphite-sese-to-poly.c (used_outside_reduction): New.
13746 (detect_commutative_reduction): Call used_outside_reduction.
13747 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
13748 translate_scalar_reduction_to_array only when at least one
13749 loop-phi/close-phi tuple has been detected.
13750
13751 2011-02-08 Richard Guenther <rguenther@suse.de>
13752
13753 PR middle-end/47639
13754 * tree-vect-generic.c (expand_vector_operations_1): Update
13755 stmts here ...
13756 (expand_vector_operations): ... not here. Cleanup EH info
13757 and the CFG if required.
13758
13759 2011-02-08 Richard Guenther <rguenther@suse.de>
13760
13761 PR tree-optimization/47641
13762 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
13763 require type compatibility.
13764
13765 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13766
13767 * gimple-low.c (lower_function_body): Don't remove the location of
13768 the return statement here.
13769 (lower_gimple_return): Do it here instead but only if the return
13770 statement is actually used twice.
13771
13772 2011-02-08 Richard Guenther <rguenther@suse.de>
13773
13774 PR tree-optimization/47632
13775 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13776 unused up_to_stmt parameter, return whether cfg-cleanup is
13777 necessary, remove EH info properly.
13778 (forward_propagate_into_gimple_cond): Adjust caller.
13779 (forward_propagate_into_cond): Likewise.
13780 (forward_propagate_comparison): Likewise.
13781 (tree_ssa_forward_propagate_single_use_vars): Make
13782 forward_propagate_comparison case similar to the two others.
13783
13784 2011-02-08 Nick Clifton <nickc@redhat.com>
13785
13786 * config/mn10300/mn10300.opt (mliw): New command line option.
13787 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13788 (liw_bundling): New automaton.
13789 (liw): New attribute.
13790 (liw_op): New attribute.
13791 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13792 (movsi_internal): Add LIW attributes.
13793 (andsi3): Likewise.
13794 (iorsi3): Likewise.
13795 (xorsi3): Likewise.
13796 (addsi3): Separate register and immediate alternatives.
13797 Add LIW attributes.
13798 (subsi3): Likewise.
13799 (cmpsi): Likewise.
13800 (aslsi3): Likewise.
13801 (lshrsi3): Likewise.
13802 (ashrsi3): Likewise.
13803 (liw): New pattern.
13804 * config/mn10300/mn10300.c (liw_op_names): New
13805 (mn10300_print_operand): Handle 'W' operand descriptor.
13806 (extract_bundle): New function.
13807 (check_liw_constraints): New function.
13808 (liw_candidate): New function.
13809 (mn10300_bundle_liw): New function.
13810 (mn10300_reorg): New function.
13811 (TARGET_MACHINE_DEPENDENT_REORG): Define.
13812 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13813 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13814 __LIW__ or __NO_LIW__.
13815 * doc/invoke.texi: Describe the -mliw command line option.
13816
13817 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13818
13819 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13820 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13821 pthread_mutex_unlock): Remove.
13822 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13823 * config/pa/t-pa64: Likewise.
13824 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13825 shared libc if not linking against libpthread.
13826 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13827
13828 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
13829
13830 PR target/47558
13831 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13832 on 10.6 and later to ensure that we always use the unwinder from
13833 the system. Only add -no_compact_unwind when tarteting darwin
13834 10.6 or later.
13835
13836 2011-02-07 Steve Ellcey <sje@cup.hp.com>
13837
13838 PR target/46997
13839 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13840 (vec_interleave_lowv2sf): Ditto.
13841 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13842 (vec_extract_oddv2sf): Ditto.
13843
13844 2011-02-07 Mike Stump <mikestump@comcast.net>
13845
13846 PR target/42333
13847 Add __ieee_divdc3 entry point.
13848 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13849 entry point.
13850 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13851 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13852 * config/darwin.c (darwin_rename_builtins): Add.
13853 * config/darwin-protos.h (darwin_rename_builtins): Add.
13854
13855 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
13856
13857 PR target/47636
13858 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13859 for the condition.
13860
13861 2011-02-07 Mike Stump <mikestump@comcast.net>
13862
13863 * config/darwin.opt (mmacosx-version-min): Update default OS version.
13864
13865 2011-02-07 Denis Chertykov <chertykov@gmail.com>
13866
13867 PR target/47534
13868 * config/avr/libgcc.S (exit): Move .endfunc
13869
13870 2011-02-07 Richard Guenther <rguenther@suse.de>
13871
13872 PR tree-optimization/47615
13873 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13874 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13875 (run_scc_vn): Initialize it.
13876 (visit_reference_op_load): Use it.
13877 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13878
13879 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13880
13881 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13882 DImode trapping arithmetic libfuncs.
13883
13884 2011-02-07 Richard Guenther <rguenther@suse.de>
13885
13886 PR tree-optimization/47621
13887 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13888 two duplicates ...
13889 (execute_update_addresses_taken): ... here. Make it more
13890 conservative in what we accept.
13891
13892 2011-02-06 Joseph Myers <joseph@codesourcery.com>
13893
13894 * config/sparc/freebsd.h (ASM_SPEC): Define.
13895 * config/sparc/vxworks.h (ASM_SPEC): Define.
13896
13897 2011-02-06 Joseph Myers <joseph@codesourcery.com>
13898
13899 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13900
13901 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
13902
13903 * doc/invoke.texi: Remove reference to compiler internals from
13904 user documentation.
13905
13906 * reg-notes.def: Remove REG_VALUE_PROFILE.
13907 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13908
13909 2011-02-05 Jakub Jelinek <jakub@redhat.com>
13910
13911 PR middle-end/47610
13912 * varasm.c (default_section_type_flags): If decl is NULL,
13913 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13914
13915 2011-02-05 Jie Zhang <jie@codesourcery.com>
13916
13917 PR debug/42631
13918 * web.c (entry_register): Don't clobber the number of the
13919 first uninitialized reference in used[].
13920
13921 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
13922
13923 PR tree-optimization/46194
13924 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13925 (build_classic_dist_vector_1): Do not represent classic distance
13926 vectors when the access functions are variating in different loops.
13927
13928 2011-02-04 Joseph Myers <joseph@codesourcery.com>
13929
13930 * config/mips/iris6.opt: New.
13931 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13932
13933 2011-02-04 Richard Henderson <rth@redhat.com>
13934 Steve Ellcey <sje@cup.hp.com>
13935
13936 PR target/46997
13937 * config/ia64/predicates.md (mux1_brcst_element): New.
13938 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13939 * config/ia64/ia64.c (ia64_unpack_assemble): New.
13940 (ia64_unpack_sign): New.
13941 (ia64_expand_unpack): Rewrite using new routines.
13942 (ia64_expand_widen_sum): Ditto.
13943 (ia64_expand_dot_prod_v8qi): Ditto.
13944 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13945 routines, add endian check.
13946 (pmpy2_even): Rename from pmpy2_r, add endian check.
13947 (pmpy2_odd): Rename from pmpy2_l, add endian check.
13948 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13949 (vec_widen_smult_hi_v4hi): Ditto.
13950 (vec_widen_umult_lo_v4hi): Ditto.
13951 (vec_widen_umult_hi_v4hi): Ditto.
13952 (mulv2si3): Change endian checks.
13953 (sdot_prodv4hi): Rewrite with new calls.
13954 (udot_prodv4hi): New.
13955 (vec_pack_ssat_v4hi): Add endian check.
13956 (vec_pack_usat_v4hi): Ditto.
13957 (vec_pack_ssat_v2si): Ditto.
13958 (max1_even): Rename from max1_r, add endian check.
13959 (max1_odd): Rename from max1_l, add endian check.
13960 (*mux1_rev): Format change.
13961 (*mux1_mix): Ditto.
13962 (*mux1_shuf): Ditto.
13963 (*mux1_alt): Ditto.
13964 (*mux1_brcst_v8qi): Use new predicate.
13965 (vec_extract_evenv8qi): Remove endian check.
13966 (vec_extract_oddv8qi): Ditto.
13967 (vec_interleave_lowv4hi): Format change.
13968 (vec_interleave_highv4hi): Ditto.
13969 (mix2_even): Rename from mix2_r, add endian check.
13970 (mix2_odd): Rename from mux2_l, add endian check.
13971 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13972 (vec_extract_evenodd_helper): Format change.
13973 (vec_extract_evenv4hi): Remove endian check.
13974 (vec_extract_oddv4hi): Remove endian check.
13975 (vec_interleave_lowv2si): Format change.
13976 (vec_interleave_highv2si): Format change.
13977 (vec_initv2si): Remove endian check.
13978 (vecinit_v2si): Add endian check.
13979 (reduc_splus_v2sf): Add endian check.
13980 (reduc_smax_v2sf): Ditto.
13981 (reduc_smin_v2sf): Ditto.
13982 (vec_initv2sf): Remove endian check.
13983 (fpack): Add endian check.
13984 (fswap): Add endian check.
13985 (vec_interleave_highv2sf): Add endian check.
13986 (vec_interleave_lowv2sf): Add endian check.
13987 (fmix_lr): Add endian check.
13988 (vec_setv2sf): Format change.
13989 (*vec_extractv2sf_0_be): Use shift to extract operand.
13990 (*vec_extractv2sf_1_be): New.
13991 (vec_pack_trunc_v4hi): Add endian check.
13992 (vec_pack_trunc_v2si): Format change.
13993
13994 2011-02-04 Jakub Jelinek <jakub@redhat.com>
13995
13996 PR inline-asm/23200
13997 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
13998 do bb, locus and block comparison and disallow loads if it is not set.
13999 (stmt_is_replaceable_p): New function.
14000 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
14001 callers.
14002 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
14003 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
14004 SSA_NAME_DEF_STMT.
14005 * tree-flow.h (stmt_is_replaceable_p): New prototype.
14006
14007 2011-02-04 Joseph Myers <joseph@codesourcery.com>
14008
14009 * config/rs6000/xilinx.opt: New.
14010 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
14011
14012 2011-02-04 Joseph Myers <joseph@codesourcery.com>
14013
14014 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
14015
14016 2011-02-03 Anatoly Sokolov <aesok@post.ru>
14017
14018 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
14019 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
14020 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
14021 secondary_reload_info, xtensa_secondary_reload): Remove.
14022 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
14023 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14024 (xtensa_preferred_reload_class): Make static. Change return and
14025 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
14026 Use CONST_DOUBLE_P predicate.
14027 (xtensa_preferred_output_reload_class): New function.
14028 (xtensa_secondary_reload): Make static.
14029
14030 2011-02-03 Joseph Myers <joseph@codesourcery.com>
14031
14032 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
14033 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
14034 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
14035
14036 2011-02-03 Jakub Jelinek <jakub@redhat.com>
14037
14038 PR middle-end/31490
14039 * output.h (SECTION_RELRO): Define.
14040 (SECTION_MACH_DEP): Adjust.
14041 (get_variable_section): New prototype.
14042 * varpool.c (varpool_finalize_named_section_flags): New function.
14043 (varpool_assemble_pending_decls): Call it.
14044 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
14045 * cgraphunit.c (cgraph_output_in_order): Call
14046 varpool_finalize_named_section_flags.
14047 * varasm.c (get_section): Allow section flags conflicts between
14048 relro and read-only sections if the section hasn't been declared yet.
14049 Set SECTION_OVERRIDE after diagnosing section type conflict.
14050 (get_variable_section): No longer static.
14051 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
14052 readonly sections that need relocations.
14053 (decl_readonly_section_1): New function.
14054 (decl_readonly_section): Use it.
14055
14056 Revert:
14057 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
14058 Steve Ellcey <sje@cup.hp.com>
14059
14060 PR middle-end/31490
14061 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
14062 if section attribute used.
14063
14064 2011-02-03 Jakub Jelinek <jakub@redhat.com>
14065
14066 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
14067 * config/darwin.c (SECTION_NO_ANCHOR): Define.
14068 (darwin_init_sections): Remove assertion.
14069
14070 2011-02-03 Nick Clifton <nickc@redhat.com>
14071
14072 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
14073 lt and ge.
14074 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
14075 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
14076 instead of "n" and "pz".
14077 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
14078 CC_FLAG_S.
14079
14080 2011-02-03 Jakub Jelinek <jakub@redhat.com>
14081
14082 PR target/47312
14083 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
14084 fma, expand FMA_EXPR as fma{,f,l} call.
14085
14086 PR lto/47274
14087 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
14088 copy them into a unsigned char variable and pass address of it to
14089 lto_output_data_stream.
14090
14091 PR target/47564
14092 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
14093 around backend_init_target and lang_dependent_init_target calls.
14094 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
14095 (verify_cgraph_node): Don't call set_cfun here. Use
14096 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
14097 Set error_found for incorrectly represented calls to thunks.
14098
14099 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
14100
14101 PR debug/43092
14102 PR rtl-optimization/43494
14103 * rtl.h (for_each_inc_dec_fn): New type.
14104 (for_each_inc_dec): Declare.
14105 * rtlanal.c (struct for_each_inc_dec_ops): New type.
14106 (for_each_inc_dec_find_inc_dec): New fn.
14107 (for_each_inc_dec_find_mem): New fn.
14108 (for_each_inc_dec): New fn.
14109 * dse.c (struct insn_size): Remove.
14110 (replace_inc_dec, replace_inc_dec_mem): Remove.
14111 (emit_inc_dec_insn_before): New fn.
14112 (check_for_inc_dec): Use it, along with for_each_inc_dec.
14113 (canon_address): Pass mem modes to cselib_lookup.
14114 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
14115 (cselib_lookup_from_insn): Likewise.
14116 (cselib_subst_to_values): Likewise.
14117 * cselib.c (find_slot_memmode): New var.
14118 (cselib_find_slot): New fn. Use it instead of
14119 htab_find_slot_with_hash everywhere.
14120 (entry_and_rtx_equal_p): Use find_slot_memmode.
14121 (autoinc_split): New fn.
14122 (rtx_equal_for_cselib_p): Rename and implement in terms of...
14123 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
14124 Deal with autoinc. Special-case recursion into MEMs.
14125 (cselib_hash_rtx): Likewise.
14126 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
14127 address and MEM modes.
14128 (cselib_subst_to_values): Add memmode, pass it on.
14129 Deal with autoinc.
14130 (cselib_lookup): Add memmode argument, pass it on.
14131 (cselib_lookup_from_insn): Add memmode.
14132 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
14133 (struct cselib_record_autoinc_data): New.
14134 (cselib_record_autoinc_cb): New fn.
14135 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
14136 mode to cselib_lookup. Reset autoinced REGs here instead of...
14137 (cselib_process_insn): ... here.
14138 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
14139 to cselib_lookup.
14140 (add_uses): Likewise, also to cselib_subst_to_values.
14141 (add_stores): Likewise.
14142 * sched-deps.c (add_insn_mem_dependence): Pass mode to
14143 cselib_subst_to_values.
14144 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
14145 * gcse.c (do_local_cprop): Adjusted.
14146 * postreload.c (reload_cse_simplify_set): Adjusted.
14147 (reload_cse_simplify_operands): Adjusted.
14148 * sel-sched-dump (debug_mem_addr_value): Pass mode.
14149
14150 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
14151
14152 PR tree-optimization/45122
14153 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
14154 unsafe assumptions when there's more than one loop exit.
14155
14156 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
14157
14158 PR target/47272
14159 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14160 Document using vector double with the load/store builtins, and
14161 that the load/store builtins always use Altivec instructions.
14162
14163 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
14164 to use altivec memory instructions, even on VSX.
14165 (vector_altivec_store_<mode>): Ditto.
14166
14167 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
14168 function.
14169
14170 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14171 V2DF, V2DI support to load/store overloaded builtins.
14172
14173 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
14174 altivec load/store builtins for V2DF/V2DI types.
14175
14176 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14177 set avoid indexed addresses on power6 if -maltivec.
14178 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
14179 vector_altivec_load/vector_altivec_store builtins.
14180 (altivec_expand_st_builtin): Ditto.
14181 (altivec_expand_builtin): Add VSX memory builtins.
14182 (rs6000_init_builtins): Add V2DI types to internal types.
14183 (altivec_init_builtins): Add support for V2DF/V2DI altivec
14184 load/store builtins.
14185 (rs6000_address_for_altivec): Insure memory address is appropriate
14186 for Altivec.
14187
14188 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
14189 vec_vsx_ld and vec_vsx_st.
14190 (vsx_store_<mode>): Ditto.
14191
14192 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
14193 variables to hold long long types for VSX vector memory builtins.
14194 (RS6000_BTI_unsigned_long_long): Ditto.
14195 (long_long_integer_type_internal_node): Ditti.
14196 (long_long_unsigned_type_internal_node): Ditti.
14197
14198 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
14199 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
14200 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
14201
14202 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
14203 short cuts.
14204 (vec_vsx_st): Ditto.
14205
14206 2011-02-02 Joseph Myers <joseph@codesourcery.com>
14207
14208 * config/pa/pa-hpux10.opt: New.
14209 * config/hpux11.opt (pthread): New Driver option.
14210 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
14211 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
14212
14213 2011-02-02 Joseph Myers <joseph@codesourcery.com>
14214
14215 * config/ia64/vms.opt: New.
14216 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
14217
14218 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
14219
14220 PR target/47580
14221 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
14222 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
14223 generator functions.
14224 (vsx_floatuns<VSi><mode>2): Ditto.
14225 (vsx_fix_trunc<mode><VSi>2): Ditto.
14226 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
14227
14228 2011-02-02 Joseph Myers <joseph@codesourcery.com>
14229
14230 * config/i386/djgpp.opt (posix): New Driver option.
14231
14232 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
14233
14234 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
14235 Move to the unsupported targets list.
14236
14237 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
14238
14239 PR rtl-optimization/47525
14240 * df-scan.c: Update copyright years.
14241 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
14242 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
14243
14244 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14245
14246 * config/i386/sysv4.h (TARGET_VERSION): Remove.
14247 (SUBTARGET_RETURN_IN_MEMORY): Remove.
14248 (ASM_OUTPUT_ASCII): Remove.
14249 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
14250
14251 2011-02-02 Jeff Law <law@redhat.com>
14252
14253 PR middle-end/47543
14254 * reload.c (find_reloads_address): Handle reg+d address where both
14255 components are invalid by reloading the entire address.
14256
14257 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
14258 Richard Guenther <rguenther@suse.de>
14259
14260 PR tree-optimization/40979
14261 PR bootstrap/47044
14262 * passes.c (init_optimization_passes): After LIM call copy_prop
14263 and DCE to clean up.
14264 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
14265
14266 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
14267
14268 PR tree-optimization/47576
14269 PR tree-optimization/47555
14270 * doc/invoke.texi (scev-max-expr-complexity): Documented.
14271 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14272 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
14273 * tree-scalar-evolution.c (follow_ssa_edge): Use
14274 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
14275
14276 2011-02-02 Richard Guenther <rguenther@suse.de>
14277
14278 PR tree-optimization/47566
14279 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
14280
14281 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
14282
14283 PR debug/47106
14284 PR debug/47402
14285 * tree-inline.c (declare_return_variable): Remove unused caller
14286 variable.
14287
14288 PR debug/47106
14289 PR debug/47402
14290 * tree-flow-inline.h (clear_is_used, is_used_p): New.
14291 * cfgexpand.c (account_used_vars_for_block): Use them.
14292 * tree-nrv.c (tree_nrv): Likewise.
14293 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
14294 (dump_scope_block): Likewise.
14295 (remove_unused_locals): Likewise.
14296
14297 PR debug/47106
14298 PR debug/47402
14299 * tree-inline.c (declare_return_variable): Add result decl to
14300 local decls only once.
14301 * gimple-low.c (record_vars_into): Mark newly-created variables
14302 as referenced.
14303
14304 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
14305
14306 PR debug/47498
14307 PR debug/47501
14308 PR debug/45136
14309 PR debug/45130
14310 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14311 debug insns.
14312 (no_real_insns_p, schedule_block, set_priorities): Drop special
14313 treatment of boundary debug insns.
14314 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14315 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
14316 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14317 (BOUNDARY_DEBUG_INSN_P): Likewise.
14318 (SCHEDULE_DEBUG_INSN_P): Likewise.
14319 * sched-rgn.c (init_ready_list): Drop special treatment of
14320 boundary debug insns.
14321 * final.c (rest_of_clean_state): Clear notes' BB.
14322
14323 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14324
14325 * config/openbsd.opt (assert=): New Driver option.
14326
14327 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14328
14329 * config/i386/nto.opt: New.
14330 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
14331
14332 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14333
14334 * config/i386/netware.opt: New.
14335 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
14336
14337 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14338
14339 * config/interix.opt (posix): New Driver option.
14340
14341 2011-02-01 DJ Delorie <dj@redhat.com>
14342
14343 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
14344
14345 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
14346 class for A0/A1.
14347
14348 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
14349
14350 PR tree-optimization/47561
14351 * toplev.c (process_options): Print the Graphite flags. Add
14352 flag_loop_flatten to the list of options requiring Graphite.
14353
14354 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14355
14356 * config/i386/cygming.opt (posix): New Driver option.
14357
14358 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14359
14360 * config/arm/vxworks.opt: New.
14361 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
14362
14363 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14364
14365 * config/alpha/elf.opt: New.
14366 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
14367 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
14368
14369 2011-02-01 Richard Guenther <rguenther@suse.de>
14370
14371 PR tree-optimization/47559
14372 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
14373 store-motion on references that can throw.
14374
14375 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
14376
14377 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
14378 * tree-pass.h (TDF_CSELIB): New macro.
14379 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
14380 cselib_lookup): Check for it rather than for TDF_DETAILS.
14381
14382 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
14383
14384 PR driver/47547
14385 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
14386 is HOST_BIT_BUCKET.
14387
14388 * opts.c (finish_options): Don't add x_aux_base_name if it is
14389 HOST_BIT_BUCKET.
14390
14391 2011-02-01 Richard Guenther <rguenther@suse.de>
14392
14393 PR tree-optimization/47555
14394 Revert
14395 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
14396
14397 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14398
14399 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
14400
14401 PR gcc/46692
14402 * config/lm32/t-lm32: Add multilib for all CPU options.
14403
14404 2011-02-01 Richard Guenther <rguenther@suse.de>
14405
14406 PR tree-optimization/47541
14407 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
14408 sure to have a field at offset zero.
14409
14410 2011-01-31 Joseph Myers <joseph@codesourcery.com>
14411
14412 * config/arc/arc.opt (EB, EL): New Driver options.
14413
14414 2011-01-31 Joseph Myers <joseph@codesourcery.com>
14415
14416 * config/alpha/osf5.opt: New.
14417 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
14418
14419 2011-01-31 Joseph Myers <joseph@codesourcery.com>
14420
14421 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
14422
14423 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
14424
14425 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
14426 -floop-interchange.
14427 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
14428 is an alias of -floop-interchange and that it requires the
14429 Graphite infrastructure.
14430 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
14431 flag_loop_interchange based on the value of flag_tree_loop_linear.
14432
14433 2011-01-31 Jakub Jelinek <jakub@redhat.com>
14434 Richard Guenther <rguenther@suse.de>
14435
14436 PR tree-optimization/47538
14437 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
14438 type instead of r1type, except for comparisons. For right
14439 shifts and comparisons punt if there are mismatches in
14440 sizetype vs. non-sizetype types.
14441
14442 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14443
14444 * doc/sourcebuild.texi (Effective-Target Keywords): Document
14445 avx_runtime.
14446
14447 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14448
14449 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
14450 version number.
14451 * configure: Regenerate.
14452
14453 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14454
14455 * configure.ac (gcc_cv_ld_static_option): Define.
14456 (gcc_cv_ld_dynamic_option): Define.
14457 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
14458 instead.
14459 (HAVE_LD_STATIC_DYNAMIC): Update message.
14460 (LD_STATIC_OPTION): Define.
14461 (LD_DYNAMIC_OPTION): Define.
14462 * configure: Regenerate.
14463 * config.in: Regenerate.
14464 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
14465 HAVE_LD_STATIC_DYNAMIC]: Use them.
14466
14467 2011-01-31 Nick Clifton <nickc@redhat.com>
14468
14469 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
14470 registers inside interrupt handlers if the handler is not a leaf
14471 function.
14472
14473 2011-01-31 Nick Clifton <nickc@redhat.com>
14474
14475 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
14476 reg_renumber returning an INVALID_REGNUM.
14477
14478 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
14479
14480 PR libgcj/44341
14481 * doc/install.texi: Document host options discarded when cross
14482 configuring target libraries.
14483
14484 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
14485
14486 Reverted:
14487 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
14488 PR debug/45136
14489 PR debug/45130
14490 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14491 debug insns.
14492 (no_real_insns_p, schedule_block, set_priorities): Drop special
14493 treatment of boundary debug insns.
14494 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14495 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14496 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14497 (BOUNDARY_DEBUG_INSN_P): Likewise.
14498 (SCHEDULE_DEBUG_INSN_P): Likewise.
14499 * sched-rgn.c (init_ready_list): Drop special treatment of
14500 boundary debug insns.
14501 * final.c (rest_of_clean-state): Clear notes' BB.
14502
14503 2011-01-31 Alan Modra <amodra@gmail.com>
14504
14505 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
14506 toc relative expressions as we do in print_operand_address.
14507
14508 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
14509
14510 * doc/extend.texi: Follow spelling conventions.
14511 * doc/invoke.texi: Fix a typo.
14512
14513 2011-01-30 Joseph Myers <joseph@codesourcery.com>
14514
14515 * config/hpux11.opt: New.
14516 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
14517 ia64*-*-hpux*): Use hpux11.opt.
14518
14519 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
14520
14521 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
14522 to tmake_file.
14523
14524 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14525
14526 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
14527 support sites.
14528
14529 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14530
14531 * doc/install.texi (Binaries): Remove outdated reference for
14532 Motorola 68HC11/68HC12 downloads.
14533
14534 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14535
14536 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
14537 Drepper's paper.
14538
14539 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
14540
14541 PR bootstrap/47147
14542 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
14543 used by NetBSD.
14544
14545 2011-01-28 Ahmad Sharif <asharif@google.com>
14546
14547 * value-prof.c (check_counter): Corrected error message.
14548
14549 2011-01-29 Jie Zhang <jie@codesourcery.com>
14550
14551 * config/arm/arm.c (arm_legitimize_reload_address): New.
14552 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14553 arm_legitimize_reload_address.
14554 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
14555
14556 2011-01-28 Ian Lance Taylor <iant@google.com>
14557
14558 * godump.c (go_define): Ignore macros whose definitions include
14559 two adjacent operands.
14560
14561 2011-01-28 Jakub Jelinek <jakub@redhat.com>
14562
14563 PR target/42894
14564 * varasm.c (force_const_mem): Store copy of x in desc->constant
14565 instead of x itself.
14566 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
14567 itself into REG_EQUAL note.
14568
14569 2011-01-28 Joseph Myers <joseph@codesourcery.com>
14570
14571 * config/freebsd.opt (posix, rdynamic): New Driver options.
14572
14573 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14574
14575 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
14576 -Bstatic/-Bdynamic.
14577 * configure: Regenerate.
14578
14579 2011-01-27 Joseph Myers <joseph@codesourcery.com>
14580
14581 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
14582 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
14583
14584 2011-01-27 Anatoly Sokolov <aesok@post.ru>
14585
14586 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
14587 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
14588 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14589 (s390_preferred_reload_class): Make static. Change return and
14590 'rclass' argument type to reg_class_t.
14591
14592 2011-01-27 Jan Hubicka <jh@suse.cz>
14593
14594 PR middle-end/46949
14595 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
14596 (process_function_and_variable_attributes): Check defined weakrefs.
14597
14598 2011-01-27 Martin Jambor <mjambor@suse.cz>
14599
14600 PR tree-optimization/47228
14601 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
14602 build_ref_for_offset.
14603
14604 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14605
14606 * config/spu/spu-elf.h (ASM_SPEC): Remove.
14607
14608 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
14609
14610 PR rtl-optimization/46856
14611 * postreload.c (reload_combine_recognize_const_pattern): Do not
14612 separate cc0 setter and user on cc0 targets.
14613
14614 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
14615
14616 PR c/43082
14617 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
14618 passed a VOID_TYPE expression, immediately emit an error and
14619 return error_mark_node.
14620
14621 2011-01-26 Jeff Law <law@redhat.com>
14622
14623 PR rtl-optimization/47464
14624 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
14625 rather than may_trap_p as needed.
14626
14627 2011-01-26 DJ Delorie <dj@redhat.com>
14628
14629 PR rtl-optimization/46878
14630 * combine.c (insn_a_feeds_b): Check for the implicit cc0
14631 setter/user dependency as well.
14632
14633 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
14634
14635 PR rtl-optimization/44469
14636 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
14637 after removing trivially dead basic blocks.
14638
14639 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14640
14641 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
14642 * config/frv/frv.h (LINK_SPEC): Likewise.
14643 * config/i386/netware.h (LINK_SPEC): Likewise.
14644 * config/m68k/linux.h (ASM_SPEC): Likewise.
14645 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
14646 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14647 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14648 * config/sparc/linux.h (ASM_SPEC): Likewise.
14649 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14650 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14651
14652 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14653
14654 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
14655 * config/frv/frv.h (ASM_SPEC): Likewise.
14656 * config/m68k/linux.h (ASM_SPEC): Likewise.
14657 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14658 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
14659 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14660 * config/sparc/linux.h (ASM_SPEC): Likewise.
14661 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14662 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14663
14664 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14665
14666 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
14667 * config/frv/frv.h (LINK_SPEC): Likewise.
14668 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14669
14670 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14671
14672 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
14673 * config/frv/frv.h (ASM_SPEC): Likewise.
14674 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
14675 * config/m68k/linux.h (ASM_SPEC): Likewise.
14676 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14677 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
14678 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14679 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
14680 * config/sparc/linux.h (ASM_SPEC): Likewise.
14681 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14682 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14683 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
14684
14685 2011-01-26 Steve Ellcey <sje@cup.hp.com>
14686
14687 PR target/46997
14688 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
14689 (*mux2): Ditto.
14690 (vec_extract_evenodd_help): Ditto.
14691 (vec_extract_evenv4hi): Ditto.
14692 (vec_extract_oddv4hi): Ditto.
14693 (vec_interleave_lowv2si): Ditto.
14694 (vec_interleave_highv2si): Ditto.
14695 (vec_extract_evenv2si): Ditto.
14696 (vec_extract_oddv2si: Ditto.
14697 (vec_pack_trunc_v2si): Ditto.
14698
14699 2011-01-22 Jan Hubicka <jh@suse.cz>
14700
14701 PR target/47237
14702 * cgraph.h (cgraph_local_info): New field can_change_signature.
14703 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
14704 signature can change.
14705 (ipcp_estimate_growth): Call sequence simplify only if calle signature
14706 can change.
14707 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
14708 (cgraph_function_versioning): We can not change signature of functions
14709 that don't allow that.
14710 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
14711 (lto_input_node): Likewise.
14712 * ipa-inline.c (compute_inline_parameters): Compute
14713 local.can_change_signature.
14714 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
14715 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
14716 functions that can not change signature.
14717 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
14718 init_cumulative_args): Do not use local calling conventions
14719 for functions that can not change signature.
14720
14721 2011-01-22 Jan Hubicka <jh@suse.cz>
14722
14723 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
14724
14725 2011-01-26 Richard Guenther <rguenther@suse.de>
14726
14727 PR tree-optimization/47190
14728 * cgraphunit.c (process_common_attributes): New function.
14729 (process_function_and_variable_attributes): Use it.
14730
14731 2011-01-26 Richard Guenther <rguenther@suse.de>
14732
14733 PR lto/47423
14734 * cgraphbuild.c (record_eh_tables): Record reference to personality
14735 function.
14736
14737 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
14738
14739 PR debug/45454
14740 * sel-sched.c (moveup_expr): Don't let debug insns prevent
14741 non-debug insns from moving up.
14742
14743 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14744
14745 PR target/40125
14746 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
14747 t-dlldir{,-x} fragment for build and add it to tmake_file.
14748 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14749 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
14750 * config/i386/t-dlldir: New file.
14751 (SHLIB_DLLDIR): Define.
14752 * config/i386/t-dlldir-x: New file.
14753 (SHLIB_DLLDIR): Define.
14754 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
14755 (SHLIB_INSTALL): Use it.
14756
14757 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
14758
14759 PR target/47246
14760 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
14761 lower bound of the allowed Thumb-2 coprocessor load/store
14762 index range to -256. Add explaining comment.
14763
14764 2011-01-25 Ian Lance Taylor <iant@google.com>
14765
14766 * godump.c (go_define): Improve lexing of macro expansion to only
14767 accept expressions which match Go spec.
14768
14769 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14770
14771 PR c++/43601
14772 * tree.c (handle_dll_attribute): Handle it.
14773 * doc/extend.texi (@item dllexport): Mention it.
14774 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14775
14776 2011-01-25 Ian Lance Taylor <iant@google.com>
14777
14778 PR tree-optimization/26854
14779 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14780 (decl_jump_unsafe): Move higher in file, with no other change.
14781 (bind): Set has_jump_unsafe_decl if appropriate.
14782 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14783 (check_earlier_gotos): Likewise.
14784 (c_check_switch_jump_warnings): Likewise.
14785
14786 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
14787
14788 * doc/invoke.texi (Warning Options): Add missing hyphen.
14789 (-fprofile-dir): Minor grammatical fixes.
14790 (-fbranch-probabilities): Likewise.
14791
14792 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
14793
14794 PR debug/45136
14795 PR debug/45130
14796 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14797 debug insns.
14798 (no_real_insns_p, schedule_block, set_priorities): Drop special
14799 treatment of boundary debug insns.
14800 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14801 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14802 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14803 (BOUNDARY_DEBUG_INSN_P): Likewise.
14804 (SCHEDULE_DEBUG_INSN_P): Likewise.
14805 * sched-rgn.c (init_ready_list): Drop special treatment of
14806 boundary debug insns.
14807 * final.c (rest_of_clean-state): Clear notes' BB.
14808
14809 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14810
14811 * Makefile.in (LAMBDA_H): Removed.
14812 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14813 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14814 lambda-trans.o, and tree-loop-linear.o.
14815 (lto-symtab.o): Remove dependence on LAMBDA_H.
14816 (tree-loop-linear.o): Remove rule.
14817 (lambda-mat.o): Same.
14818 (lambda-trans.o): Same.
14819 (lambda-code.o): Same.
14820 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14821 (tree-vect-slp.o): Same.
14822 * hwint.h (gcd): Moved here.
14823 (least_common_multiple): Same.
14824 * lambda-code.c: Removed.
14825 * lambda-mat.c: Removed.
14826 * lambda-trans.c: Removed.
14827 * lambda.h: Removed.
14828 * tree-loop-linear.c: Removed.
14829 * lto-symtab.c: Do not include lambda.h.
14830 * omega.c (gcd): Removed.
14831 * passes.c (init_optimization_passes): Remove pass_linear_transform.
14832 * tree-data-ref.c (print_lambda_vector): Moved here.
14833 (lambda_vector_copy): Same.
14834 (lambda_matrix_copy): Same.
14835 (lambda_matrix_id): Same.
14836 (lambda_vector_first_nz): Same.
14837 (lambda_matrix_row_add): Same.
14838 (lambda_matrix_row_exchange): Same.
14839 (lambda_vector_mult_const): Same.
14840 (lambda_vector_negate): Same.
14841 (lambda_matrix_row_negate): Same.
14842 (lambda_vector_equal): Same.
14843 (lambda_matrix_right_hermite): Same.
14844 * tree-data-ref.h: Do not include lambda.h.
14845 (lambda_vector): Moved here.
14846 (lambda_matrix): Same.
14847 (dependence_level): Same.
14848 (lambda_transform_legal_p): Removed declaration.
14849 (lambda_collect_parameters): Same.
14850 (lambda_compute_access_matrices): Same.
14851 (lambda_vector_gcd): Same.
14852 (lambda_vector_new): Same.
14853 (lambda_vector_clear): Same.
14854 (lambda_vector_lexico_pos): Same.
14855 (lambda_vector_zerop): Same.
14856 (lambda_matrix_new): Same.
14857 * tree-flow.h (least_common_multiple): Removed declaration.
14858 * tree-parloops.c (lambda_trans_matrix): Moved here.
14859 (LTM_MATRIX): Same.
14860 (LTM_ROWSIZE): Same.
14861 (LTM_COLSIZE): Same.
14862 (LTM_DENOMINATOR): Same.
14863 (lambda_trans_matrix_new): Same.
14864 (lambda_matrix_vector_mult): Same.
14865 (lambda_transform_legal_p): Same.
14866 * tree-pass.h (pass_linear_transform): Removed declaration.
14867 * tree-ssa-loop.c (tree_linear_transform): Removed.
14868 (gate_tree_linear_transform): Removed.
14869 (pass_linear_transform): Removed.
14870 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14871 flag_loop_interchange.
14872
14873 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14874
14875 PR tree-optimization/47265
14876 PR tree-optimization/47443
14877 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14878 if name still has some uses.
14879
14880 2011-01-25 Martin Jambor <mjambor@suse.cz>
14881
14882 PR tree-optimization/47382
14883 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14884 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14885
14886 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
14887
14888 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14889 sjlj_except_unwind_info.
14890
14891 2011-01-25 Richard Guenther <rguenther@suse.de>
14892
14893 PR tree-optimization/47426
14894 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14895 visible functions results escape.
14896
14897 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14898
14899 PR target/45701
14900 * config/arm/arm.c (any_sibcall_uses_r3): New function.
14901 (arm_get_frame_offsets): Use it.
14902
14903 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14904 Jakub Jelinek <jakub@redhat.com>
14905
14906 PR tree-optimization/47271
14907 * tree-if-conv.c (bb_postdominates_preds): New.
14908 (if_convertible_bb_p): Call bb_postdominates_preds.
14909 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14910 (predicate_scalar_phi): Call bb_postdominates_preds.
14911
14912 2011-01-25 Nick Clifton <nickc@redhat.com>
14913
14914 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14915 * config/rx/rx.c (rx_function_value): Likewise.
14916 (rx_promote_function_mode): Likewise.
14917 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14918 in order to make it legitimate.
14919 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14920 make sure that the first operand is the same as the result register.
14921 (addsi3_unspec): Delete.
14922 (subdi3): Do not accept immediate operands.
14923 (subdi3_internal): Likewise.
14924
14925 2011-01-25 Jeff Law <law@redhat.com>
14926
14927 PR rtl-optimization/37273
14928 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14929 handle them like argument loads from stack slots. Do not double
14930 count memory for memory constants and argument loads from stack slots.
14931
14932 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14933
14934 PR tree-optimization/47427
14935 PR tree-optimization/47428
14936 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14937 coalesce if the new root var would be TREE_READONLY.
14938
14939 2011-01-25 Richard Guenther <rguenther@suse.de>
14940
14941 PR middle-end/47414
14942 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14943 correct type for TBAA.
14944
14945 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14946
14947 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14948 (close_phi_written_to_memory): Call for_each_index with
14949 dr_indices_valid_in_loop.
14950
14951 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14952
14953 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14954 when it is initialized.
14955
14956 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14957
14958 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14959 call to graphite_find_data_references_in_stmt.
14960 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14961 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
14962 call to graphite_find_data_references_in_stmt.
14963 (analyze_drs_in_stmts): Same.
14964 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14965 in which the scalar analysis of indices is performed.
14966 (create_data_ref): Same. Update call to dr_analyze_indices.
14967 (find_data_references_in_stmt): Update call to create_data_ref.
14968 (graphite_find_data_references_in_stmt): Same.
14969 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14970 declaration.
14971 (create_data_ref): Same.
14972 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14973 call to create_data_ref.
14974
14975 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14976
14977 * graphite-sese-to-poly.c (build_poly_scop): Move
14978 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14979
14980 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14981
14982 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14983 VAR_DECL, PARM_DECL, and RESULT_DECL.
14984
14985 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14986
14987 * graphite-dependences.c (reduction_dr_1): Allow several reductions
14988 in a reduction PBB.
14989 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14990 that have already been marked as PBB_IS_REDUCTION.
14991
14992 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14993
14994 * graphite-scop-detection.c (same_close_phi_node): New.
14995 (remove_duplicate_close_phi): New.
14996 (make_close_phi_nodes_unique): New.
14997 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14998
14999 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15000
15001 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
15002 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
15003 of both data references to be the same.
15004
15005 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15006
15007 * graphite-dependences.c (build_lexicographical_constraint): Remove
15008 the gdim parameter.
15009 (build_lexicographical_constraint): Adjust call to
15010 ppl_powerset_is_empty.
15011 (dependence_polyhedron): Same.
15012 (graphite_legal_transform_dr): Same.
15013 (graphite_carried_dependence_level_k): Same.
15014 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
15015 parameter.
15016 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
15017
15018 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15019
15020 * graphite-sese-to-poly.c
15021 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
15022 (close_phi_written_to_memory): New.
15023 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
15024 and unshare_expr.
15025
15026 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15027
15028 * doc/install.texi: Update the expected version number of PPL to 0.11.
15029 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
15030 #if PPL_VERSION_MINOR < 11.
15031
15032 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15033
15034 * graphite-dependences.c: Include graphite-cloog-util.h.
15035 (new_poly_ddr): Inlined into dependence_polyhedron.
15036 (free_poly_ddr): Moved close by new_poly_ddr.
15037 (dependence_polyhedron_1): Renamed dependence_polyhedron.
15038 Early return NULL when ppl_powerset_is_empty returns true.
15039 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
15040 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
15041 (graphite_legal_transform_dr): Call new_poly_ddr.
15042 (graphite_carried_dependence_level_k): Same.
15043 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
15044 (dot_transformed_deps_stmt_1): Removed.
15045 (dot_deps_stmt_1): Call dot_deps_stmt_2.
15046 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
15047 (dot_deps_1): Call dot_deps_2.
15048 * Makefile.in (graphite-dependences.o): Add missing dependence on
15049 graphite-cloog-util.h.
15050
15051 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15052
15053 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
15054 (build_lexicographical_constraint): Same.
15055 (dependence_polyhedron_1): Same.
15056 (graphite_legal_transform_dr): Same.
15057 (graphite_carried_dependence_level_k): Same.
15058 * graphite-ppl.c (ppl_powerset_is_empty): New.
15059 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
15060 * tree-data-ref.c (dump_data_reference): Print the basic block index.
15061
15062 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15063
15064 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
15065 the "a followed by b" relation and document it.
15066
15067 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15068
15069 * graphite-dependences.c (build_lexicographical_constraint): Stop the
15070 iteration when the bag of constraints is empty.
15071
15072 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15073
15074 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
15075
15076 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15077
15078 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
15079 nest and two loop depths as parameters.
15080 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
15081 lst_perfect_nestify.
15082
15083 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15084
15085 * graphite-dependences.c (print_pddr): Call
15086 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
15087
15088 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15089
15090 * graphite-ppl.c (debug_gmp_value): New.
15091 * graphite-ppl.h (debug_gmp_value): Declared.
15092
15093 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
15094
15095 * doc/install.texi: Document availability of cloog-0.16.
15096
15097 2011-01-25 Vladimir Kargov <kargov@gmail.com>
15098
15099 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
15100 invalid postdominance info.
15101
15102 2011-01-24 Jan Hubicka <jh@suse.cz>
15103
15104 PR c/21659
15105 * doc/extend.texi (weak pragma): Drop claim that it must
15106 appear before definition.
15107 * varasm.c (merge_weak, declare_weak): Only sanity check
15108 that DECL is not output at a time it is declared weak.
15109
15110 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
15111
15112 * machmode.def: Fixed comments.
15113
15114 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
15115
15116 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
15117
15118 2011-01-24 Paul Koning <ni1d@arrl.net>
15119
15120 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
15121 WORDS_BIG_ENDIAN.
15122
15123 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
15124
15125 PR target/46519
15126 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
15127 (block_info): Add scanned and prev.
15128 (move_or_delete_vzeroupper_2): Return if the basic block
15129 has been scanned and the upper 128bit state is unchanged
15130 from the last scan.
15131 (move_or_delete_vzeroupper_1): Return true if the exit
15132 state is changed.
15133 (move_or_delete_vzeroupper): Visit basic blocks using the
15134 work-list based algorithm based on vt_find_locations in
15135 var-tracking.c.
15136
15137 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
15138
15139 2011-01-24 Nick Clifton <nickc@redhat.com>
15140
15141 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
15142 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
15143 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
15144 then define __v850e1__.
15145 * doc/invoke.texi: Document -mv850es.
15146
15147 2011-01-24 Richard Henderson <rth@redhat.com>
15148
15149 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
15150 compound unordered comparisons.
15151 * config/rx/rx.c (rx_split_fp_compare): Remove.
15152 * config/rx/rx-protos.h: Update.
15153 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
15154 (cbranchsf4): Don't call rx_split_fp_compare.
15155 (*cbranchsf4): Use rx_split_cbranch.
15156 (*cmpsf): Don't accept "i" constraint.
15157 (*conditional_branch): Only valid after reload.
15158 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
15159
15160 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
15161
15162 PR target/47385
15163 * config/rs6000/altivec.md (vector constant splitters): Add
15164 support for creating vector single precision constants if -mvsx is
15165 used and we would create the constant using Altivec primitives.
15166
15167 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
15168 Richard Sandiford <rdsandiford@googlemail.com>
15169
15170 PR rtl-optimization/47166
15171 * reload1.c (emit_reload_insns): Disable the spill_reg_store
15172 mechanism for PRE_MODIFY and POST_MODIFY.
15173 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
15174 reloadreg.
15175
15176 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
15177
15178 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
15179
15180 2011-01-22 Jan Hubicka <jh@suse.cz>
15181
15182 PR lto/47333
15183 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
15184
15185 2011-01-22 Jan Hubicka <jh@suse.cz>
15186
15187 PR tree-optimization/43884
15188 PR lto/44334
15189 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
15190 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
15191
15192 2011-01-22 Anatoly Sokolov <aesok@post.ru>
15193
15194 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15195 * config/s390/s390.c (s390_register_move_cost,
15196 s390_memory_move_cost): New.
15197 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15198
15199 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15200
15201 PR middle-end/47401
15202 * except.c (sjlj_assign_call_site_values): Move setting the
15203 crtl->uses_eh_lsda flag to ...
15204 (sjlj_mark_call_sites): ... here.
15205 (sjlj_emit_function_enter): Support NULL dispatch label.
15206 (sjlj_build_landing_pads): In a function with no landing pads
15207 that still has must-not-throw regions, generate code to register
15208 a personality function with empty LSDA.
15209
15210 2011-01-21 Richard Henderson <rth@redhat.com>
15211
15212 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
15213
15214 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
15215
15216 * compare-elim.c: New file.
15217 * Makefile.in (OBJS-common): Add it.
15218 (compare-elim.o): New.
15219 * common.opt (fcompare-elim): New.
15220 * opts.c (default_options_table): Add OPT_fcompare_elim.
15221 * tree-pass.h (pass_compare_elim_after_reload): New.
15222 * passes.c (init_optimization_passes): Add it.
15223 * recog.h: Protect against re-inclusion.
15224 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
15225 * doc/invoke.texi (-fcompare-elim): Document it.
15226 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
15227 * doc/tm.texi: Rebuild.
15228
15229 2011-01-22 Nick Clifton <nickc@redhat.com>
15230
15231 * config/rx/rx.md (cstoresf4): Pass comparison operator to
15232 rx_split_fp_compare.
15233
15234 2011-01-22 Nick Clifton <nickc@redhat.com>
15235
15236 * config/rx/rx.md (UNSPEC_CONST): New.
15237 (deallocate_and_return): Wrap the amount popped off the stack in
15238 an UNSPEC_CONST in order to stop it being rejected by
15239 -mmax-constant-size.
15240 (pop_and_return): Add a "(return)" rtx.
15241 (call): Drop the immediate operand.
15242 (call_internal): Likewise.
15243 (call_value): Likewise.
15244 (call_value_internal): Likewise.
15245 (sibcall_internal): Likewise.
15246 (sibcall_value_internal): Likewise.
15247 (sibcall): Likewise. Generate an explicit call using
15248 sibcall_internal.
15249 (sibcall_value): Likewise.
15250 (mov<>): FAIL if a constant operand is not legitimate.
15251 (addsi3_unpsec): New pattern.
15252
15253 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15254 (ok_for_max_constant): New function.
15255 (gen_safe_add): New function.
15256 (rx_expand_prologue): Use gen_safe_add.
15257 (rx_expand_epilogue): Likewise.
15258 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
15259 UNSPEC CONSTs.
15260
15261 2011-01-21 Jeff Law <law@redhat.com>
15262
15263 PR tree-optimization/47053
15264 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
15265 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
15266 statements are deleted.
15267 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
15268 is nonempty, then purge dead edges and cleanup the CFG.
15269
15270 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
15271
15272 PR debug/47402
15273 Temporarily revert:
15274 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
15275 PR debug/47106
15276 * tree-dfa.c (create_var_ann): Mark variable as used.
15277
15278 2011-01-21 Jakub Jelinek <jakub@redhat.com>
15279
15280 PR middle-end/45566
15281 * except.c (convert_to_eh_region_ranges): Emit queued no-region
15282 notes from other section in hot/cold partitioning even if
15283 last_action is -3. Increment call_site_base.
15284
15285 PR rtl-optimization/47366
15286 * fwprop.c (forward_propagate_into): Return bool. If
15287 any changes are made, -fnon-call-exceptions is used and
15288 REG_EH_REGION note is present, call purge_dead_edges
15289 and return true if it purged anything.
15290 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
15291 any EH edges were purged.
15292
15293 2011-01-21 Jeff Law <law@redhat.com>
15294
15295 PR rtl-optimization/41619
15296 * caller-save.c (setup_save_areas): Break out code to determine
15297 which hard regs are live across calls by examining the reload chains
15298 so that it is always used.
15299 Eliminate code which checked REG_N_CALLS_CROSSED.
15300
15301 2011-01-21 Jakub Jelinek <jakub@redhat.com>
15302
15303 PR tree-optimization/47355
15304 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
15305 NOP has non-debug uses beyond PHIs in new_bb.
15306
15307 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
15308
15309 PR debug/47106
15310 * cfgexpand.c (account_used_vars_for_block): Only account vars
15311 that are annotated as used.
15312 (estimated_stack_frame_size): Don't set TREE_USED.
15313 * tree-dfa.c (create_var_ann): Mark variable as used.
15314
15315 2011-01-21 Richard Guenther <rguenther@suse.de>
15316
15317 PR middle-end/47395
15318 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
15319
15320 2011-01-21 Richard Guenther <rguenther@suse.de>
15321
15322 PR tree-optimization/47365
15323 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
15324 (vn_reference_lookup_pieces): Adjust.
15325 (vn_reference_lookup): Likewise.
15326 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
15327 (vn_reference_lookup_3): Only look through kills if in
15328 VN_WALKREWRITE mode.
15329 (vn_reference_lookup_pieces): Adjust.
15330 (vn_reference_lookup): Likewise.
15331 (visit_reference_op_load): Likewise.
15332 (visit_reference_op_store): Likewise.
15333 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
15334 (compute_avail): Likewise.
15335 (eliminate): Likewise.
15336
15337 2011-01-21 Jakub Jelinek <jakub@redhat.com>
15338
15339 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
15340 DECL_IGNORED_P non-reg vars if they are used.
15341
15342 PR tree-optimization/47391
15343 * varpool.c (const_value_known_p): Return false if
15344 decl is volatile.
15345
15346 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
15347
15348 PR bootstrap/47215
15349 * config/i386/i386.c (ix86_local_alignment): Handle
15350 case for va_list_type_node is nil.
15351 (ix86_canonical_va_list_type): Likewise.
15352
15353 2011-01-21 Alan Modra <amodra@gmail.com>
15354
15355 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
15356 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
15357
15358 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15359
15360 * config/arm/arm.md (define_attr type): Rename f_load
15361 and f_store to f_fpa_load and f_fpa_store. Update.
15362 (write_conflict): Deal with rename fallout.
15363 (*push_fp_multi): Likewise.
15364 * config/arm/fpa.md (f_load): Use f_fpa_load.
15365 (f_store): Use f_fpa_store.
15366 (*movsf_fpa): Likewise.
15367 (*movdf_fpa): Likewise.
15368 (*movxf_fpa): Likewise.
15369 (*thumb2_movsf_fpa): Likewise.
15370 (*thumb2_movdf_fpa): Likewise.
15371 (*thumb2_movxf_fpa): Likewise.
15372 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
15373 f_loadd and f_stored.
15374 (*thumb2_movdi_vfp): Likewise.
15375 (*thumb2_movsf_vfp): Fix attribute to f_loads.
15376 (*thumb2_movsi_vfp): Likewise.
15377 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
15378 Use f_loads instead of f_load.
15379 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
15380
15381 2011-01-20 Anatoly Sokolov <aesok@post.ru>
15382
15383 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15384 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
15385 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15386 (xtensa_mode_dependent_address_p): New function.
15387 (constantpool_address_p): Make static. Change return type to bool.
15388 Change argument type to const_rtx. Use CONST_INT_P predicate.
15389
15390 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
15391
15392 PR debug/46583
15393 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
15394
15395 2011-01-20 Jakub Jelinek <jakub@redhat.com>
15396
15397 PR debug/47283
15398 * cfgexpand.c (expand_debug_expr): Instead of generating
15399 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
15400 etc. handling.
15401
15402 2011-01-20 Richard Guenther <rguenther@suse.de>
15403
15404 PR middle-end/47370
15405 * tree-inline.c (remap_gimple_op_r): Recurse manually for
15406 the pointer operand of MEM_REFs.
15407
15408 2011-01-20 Jakub Jelinek <jakub@redhat.com>
15409
15410 PR tree-optimization/46130
15411 * ipa-split.c (consider_split): If return_bb contains non-virtual
15412 PHIs other than for retval or if split_function would not adjust it,
15413 refuse to split.
15414
15415 2011-01-20 Richard Guenther <rguenther@suse.de>
15416
15417 PR tree-optimization/47167
15418 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
15419 Revert previous change, only avoid enumeral type changes.
15420
15421 2011-01-19 Mike Stump <mikestump@comcast.net>
15422
15423 * doc/tm.texi.in (BRANCH_COST): Englishify.
15424 * doc/tm.texi (BRANCH_COST): Likewise.
15425
15426 2011-01-19 Dodji Seketeli <dodji@redhat.com>
15427
15428 PR c++/47291
15429 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
15430 (gen_scheduled_generic_parms_dies): New functions.
15431 (gen_struct_or_union_type_die): Schedule template parameters DIEs
15432 generation for the end of CU compilation.
15433 (dwarf2out_finish): Generate template parameters DIEs here.
15434
15435 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
15436
15437 PR debug/46240
15438 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
15439 debug bind stmt on merge edges.
15440
15441 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
15442
15443 PR debug/47079
15444 PR debug/46724
15445 * function.c (instantiate_expr): Instantiate incoming rtl of
15446 implicit arguments, and recurse on VALUE_EXPRs.
15447 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
15448 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
15449
15450 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
15451
15452 * c-parser.c (c_parser_for_statement): Initialize
15453 collection_expression.
15454
15455 2011-01-19 Joseph Myers <joseph@codesourcery.com>
15456
15457 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
15458
15459 2011-01-19 Joseph Myers <joseph@codesourcery.com>
15460
15461 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
15462 (LINK_SHLIB_SPEC): Don't use %(link_path).
15463 (SUBTARGET_EXTRA_SPECS): Remove link_path.
15464
15465 2011-01-19 Joseph Myers <joseph@codesourcery.com>
15466
15467 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
15468 (NO_SHARED_LIB_SUPPORT): Remove.
15469 (LINK_SHLIB_SPEC): Remove one conditional definition.
15470
15471 2011-01-19 Joseph Myers <joseph@codesourcery.com>
15472
15473 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
15474 %{call_shared}.
15475 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
15476 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
15477 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
15478 %{call_shared} and conditionals on these options not being passed.
15479 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
15480 %{call_shared}.
15481
15482 2011-01-19 Jakub Jelinek <jakub@redhat.com>
15483
15484 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
15485 simplify.
15486
15487 * ipa-split.c: Spelling fixes.
15488
15489 2011-01-19 Richard Henderson <rth@redhat.com>
15490
15491 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
15492 (*mulsi3): Likewise.
15493
15494 * longlong.h [__mn10300__] (count_leading_zeros): New.
15495 [__mn10300__] (umul_ppmm, smul_ppmm): New.
15496 [__mn10300__] (add_ssaaaa, subddmmss): New.
15497 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
15498 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
15499
15500 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15501
15502 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
15503
15504 2011-01-19 Richard Henderson <rth@redhat.com>
15505
15506 * config/mn10300/mn10300.md (addsi3_flags): New.
15507 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
15508 (subsi3_flags, subc_internal, subdi3): New.
15509 (subdi3_internal, *subdi3_degenerate): New.
15510 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
15511
15512 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
15513 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
15514 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
15515 * config/mn10300/mn10300-protos.h: Update.
15516 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
15517 (return_ret): Likewise. Rename from return_internal_regs.
15518 (return_internal): Remove.
15519
15520 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
15521 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
15522 (mn10300_legitimate_constant_p): Likewise.
15523 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
15524 (mn10300_frame_size): New.
15525 (mn10300_expand_prologue): Use it.
15526 (mn10300_expand_epilogue): Likewise.
15527 (mn10300_initial_offset): Likewise.
15528 * config/mn10300/mn10300-protos.h: Update.
15529 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
15530 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
15531 (prologue, epilogue, return_internal): Tidy output code.
15532 (mn10300_store_multiple_operation, return): Likewise.
15533 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
15534 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
15535 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
15536 (load_pic, am33_load_pic): New.
15537 (mn10300_load_pic0, mn10300_load_pic1): New.
15538
15539 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
15540 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
15541 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
15542 (cc_flags_for_mode, cc_flags_for_code): New.
15543 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
15544 overflow flag is not valid. Validate that the flags we need
15545 for the comparison are valid.
15546 (mn10300_output_cmp): Remove.
15547 (mn10300_output_add): New.
15548 (mn10300_select_cc_mode): Use cc_flags_for_code.
15549 (mn10300_split_cbranch): New.
15550 (mn10300_match_ccmode): New.
15551 (mn10300_split_and_operand_count): New.
15552 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
15553 to the function.
15554 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
15555 (addsi3): ... here. Use mn10300_output_add.
15556 (*addsi3_flags): New.
15557 (*am33_subsi3, *mn10300_subsi3): Merge...
15558 (subsi3): ... here. Use attribute isa.
15559 (*subsi3_flags): New.
15560 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
15561 when possible.
15562 (*am33_andsi3, *mn10300_andsi3): Merge...
15563 (andsi3): ... here.
15564 (*andsi3_flags): New.
15565 (andsi3 splitters): New.
15566 (*am33_iorsi3, *mn10300_iorsi3): Merge...
15567 (iorsi3): ... here.
15568 (*iorsi3_flags): New.
15569 (*am33_xorsi3, *mn10300_xorsi3): Merge...
15570 (xorsi3): ... here.
15571 (*xorsi3_flags): New.
15572 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
15573 (one_cmplsi2): ... here.
15574 (*one_cmplsi2_flags): New.
15575 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
15576 instead of "dax" in constraints. Use mn10300_split_cbranch.
15577 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
15578 use matching constraints to eliminate a self-comparison.
15579 (*integer_conditional_branch): Rename from integer_conditional_branch.
15580 Use int_mode_flags to match CC_REG.
15581 (*cbranchsi4_btst, *btstsi): New.
15582 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
15583 mn10300_split_cbranch.
15584 (*am33_cmpsf): Rename from am33_cmpsf.
15585 (*float_conditional_branch): Rename from float_conditional_branch.
15586 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
15587 (zero_extendqisi2): ... here.
15588 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
15589 (zero_extendhisi2): ... here.
15590 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
15591 (extendqisi2): ... here.
15592 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
15593 (extendhisi2): ... here.
15594 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
15595 (ashlsi3): ... here.
15596 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
15597 (lshrsi3): ... here.
15598 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
15599 (ashrsi3): ... here.
15600 (consecutive add peephole): Remove.
15601 * config/mn10300/predicates.md (label_ref_operand): New.
15602 (int_mode_flags): New.
15603 (CCZN_comparison_operator): New.
15604
15605 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
15606 (throughput_42_latency_43): New reservation.
15607 (mulsidi3, umulsidi3): New expanders.
15608 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
15609 the MDR register to allocation; separately allocate the low and
15610 high parts of the DImode result.
15611 (umulsidi3_internal): Similarly.
15612 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
15613 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
15614 (udivsi3, umodsi3): Remove.
15615 (udivmodsi4, divmodsi4): New expanders.
15616 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
15617 (*divmodsi4): Simiarly.
15618 (ext_internal): New.
15619
15620 * config/mn10300/constraints.md ("z"): New constraint.
15621 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
15622 (FIXED_REGISTERS): Don't fix MDR.
15623 (CALL_USED_REGSITERS): Reformat nicely.
15624 (REG_ALLOC_ORDER): Add MDR.
15625 (enum regclass): Add MDR_REGS.
15626 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
15627 (IRA_COVER_CLASSES): Add MDR_REGS.
15628 (REGNO_REG_CLASS): Handle MDR_REG.
15629 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
15630 (mn10300_register_move_cost): Likewise.
15631 * config/mn10300/mn10300.md (MDR_REG): New.
15632 (*movsi_internal): Handle moves to/from MDR_REGS.
15633
15634 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
15635 POST_MODIFY.
15636 (mn10300_secondary_reload): Tidy combination reload classes.
15637 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
15638 addresses for AM33. Allow symbolic offsets for reg+imm.
15639 (mn10300_regno_in_class_p): New.
15640 (mn10300_legitimize_reload_address): New.
15641 * config/mn10300/mn10300.h (enum reg_class): Remove
15642 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
15643 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
15644 SP_OR_GENERAL_REGS.
15645 (REG_CLASS_NAMES): Update to match.
15646 (REG_CLASS_CONTENTS): Likewise.
15647 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
15648 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
15649 (REGNO_IN_RANGE_P): Remove.
15650 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
15651 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
15652 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
15653 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
15654 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
15655 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
15656 (REGNO_GENERAL_P): New.
15657 (HAVE_POST_MODIFY_DISP): New.
15658 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
15659 (LEGITIMIZE_RELOAD_ADDRESS): New.
15660 * config/mn10300/mn10300-protos.h: Update.
15661
15662 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
15663 DATA_REGS for AM33 stack-pointer destination.
15664 (mn10300_preferred_output_reload_class): Likewise.
15665 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
15666 into a form appropriate for ...
15667 (TARGET_SECONDARY_RELOAD): New.
15668 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
15669 * config/mn10300/mn10300-protos.h: Update.
15670 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
15671 reload_insi; use the "A" constraint for the scratch; handle AM33
15672 moves of sp to non-address registers.
15673
15674 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
15675 (*movqi_internal): ... here.
15676 (*am33_movhi, *mn10300_movhi): Merge into...
15677 (*movhi_internal): ... here.
15678 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
15679 as the source/destination of moves from/to SP.
15680 (movsf): Only allow for AM33-2.
15681 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
15682 any integer constant constraint. Only allow for AM33-2. Tidy
15683 all of the alternative outputs.
15684 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
15685 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
15686 for MN103.
15687 (udivsi3, umodsi3): New patterns for MN103 only.
15688
15689 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
15690
15691 * doc/tm.texi.in: Spell out that a lack of register class unions
15692 can lead to ICEs.
15693 * doc/tm.texi: Regenerate.
15694
15695 2011-01-19 Jakub Jelinek <jakub@redhat.com>
15696
15697 PR rtl-optimization/47337
15698 * dce.c (check_argument_store): New function.
15699 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
15700
15701 PR tree-optimization/47290
15702 * tree-eh.c (infinite_empty_loop_p): New function.
15703 (cleanup_empty_eh): Use it.
15704
15705 2011-01-18 Steve Ellcey <sje@cup.hp.com>
15706
15707 PR target/46997
15708 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
15709 (a64_expand_widen_sum): Ditto.
15710 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
15711 (vec_extract_evenodd_help): Ditto.
15712 (vec_extract_evenv4hi): Ditto.
15713 (vec_extract_oddv4hi): Ditto.
15714 (vec_extract_evenv2si): Ditto.
15715 (vec_extract_oddv2si): Ditto.
15716 (vec_extract_evenv2sf): Ditto.
15717 (vec_extract_oddv2sf): Ditto.
15718 (vec_pack_trunc_v4hi: Ditto.
15719 (vec_pack_trunc_v2si): Ditto.
15720 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
15721 (vec_interleave_highv8qi): Ditto.
15722 (mix1_r): Ditto.
15723 (vec_extract_oddv8qi): Ditto.
15724 (vec_interleave_lowv4hi): Ditto.
15725 (vec_interleave_highv4hi): Ditto.
15726 (vec_interleave_lowv2si): Ditto.
15727 (vec_interleave_highv2si): Ditto.
15728
15729 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15730
15731 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
15732 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
15733 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
15734 (pa_c_mode_for_suffix): New.
15735 (TARGET_EXPAND_BUILTIN): Define.
15736 (TARGET_C_MODE_FOR_SUFFIX): Define.
15737 (pa_builtins): Define.
15738 (pa_init_builtins): Register __float128 type and init new support
15739 builtins.
15740 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
15741 * config/pa/quadlib.c (_U_Qfcopysign): New.
15742
15743 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
15744
15745 PR middle-end/46894
15746 * explow.c (allocate_dynamic_stack_space): Do not assume more than
15747 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
15748 are defined.
15749
15750 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15751
15752 PR tree-optimization/47179
15753 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
15754 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
15755
15756 2011-01-18 Richard Guenther <rguenther@suse.de>
15757
15758 PR rtl-optimization/47216
15759 * emit-rtl.c: Include tree-flow.h.
15760 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
15761 of replicating it with different semantics.
15762 * Makefile.in (emit-rtl.o): Adjust.
15763
15764 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15765
15766 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
15767 (cortex_a9_dp): Handle neon types correctly.
15768
15769 2011-01-18 Jakub Jelinek <jakub@redhat.com>
15770
15771 PR rtl-optimization/47299
15772 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
15773 subtarget. Use normal multiplication if both operands are constants.
15774 * expmed.c (expand_widening_mult): Don't try to optimize constant
15775 multiplication if op0 has VOIDmode. Convert op1 constant to mode
15776 before using it.
15777
15778 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15779
15780 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
15781 spacing after 'e.g.', typos, comma, hyphenation.
15782
15783 2011-01-17 Richard Henderson <rth@redhat.com>
15784
15785 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15786 (rx_restricted_mem_operand): New.
15787 (rx_shift_operand): Use register_operand.
15788 (rx_source_operand, rx_compare_operand): Likewise.
15789 * config/rx/rx.md (addsi3_flags): New expander.
15790 (adddi3): Rewrite as expander.
15791 (adc_internal, *adc_flags, adddi3_internal): New patterns.
15792 (subsi3_flags): New expander.
15793 (subdi3): Rewrite as expander.
15794 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15795
15796 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15797 (rx_init_builtins): Remove sat builtin.
15798 (rx_expand_builtin): Likewise.
15799 * config/rx/rx.md (ssaddsi3): New.
15800 (*sat): Rename from sat. Represent the CC_REG input.
15801
15802 * config/rx/predicates.md (rshift_operator): New.
15803 * config/rx/rx.c (rx_expand_insv): Remove.
15804 * config/rx/rx-protos.h: Update.
15805 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
15806 operand to the canonical position.
15807 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15808 (*bitclr, *bitclr_in_memory): Similarly.
15809 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15810 (insv): Retain the zero_extract in the expansion.
15811
15812 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15813 (bswaphi2, bitinvert, revw): Likewise.
15814
15815 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15816 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15817 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15818 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15819 (bitset, bitset_in_memory): Likewise.
15820 (bitinvert, bitinvert_in_memory): Likewise.
15821 (bitclr, bitclr_in_memory): Likewise.
15822 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15823 (rx_strend, rx_cmpstrn): Likewise.
15824 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
15825 (bitop peep2 patterns): Remove.
15826
15827 * config/rx/rx.c (rx_match_ccmode): New.
15828 * config/rx/rx-protos.h: Update.
15829 * config/rx/rx.md (abssi2): Clobber, don't set flags.
15830 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15831 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15832 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15833 (fix_truncsfsi2, floatsisf2): Likewise.
15834 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15835 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15836 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15837 (*subsi3_flags, *xorsi3_flags): New.
15838
15839 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15840
15841 * config/rx/rx.c (rx_print_operand): Remove workaround for
15842 unsplit comparison operations.
15843
15844 * config/rx/rx.md (movsicc): Split after reload.
15845 (*movsicc): Merge *movsieq and *movsine via match_operator.
15846 (*stcc): New pattern.
15847
15848 * config/rx/rx.c (rx_float_compare_mode): Remove.
15849 * config/rx/rx.h (rx_float_compare_mode): Remove.
15850 * config/rx/rx.md (cstoresi4): Split after reload.
15851 (*sccc): New pattern.
15852
15853 * config/rx/predicates.md (label_ref_operand): New.
15854 (rx_z_comparison_operator): New.
15855 (rx_zs_comparison_operator): New.
15856 (rx_fp_comparison_operator): New.
15857 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15858 Validate that the flags are set properly for the comparison.
15859 (rx_gen_cond_branch_template): Remove.
15860 (rx_cc_modes_compatible): Remove.
15861 (mode_from_flags): New.
15862 (flags_from_code): Rename from flags_needed_for_conditional.
15863 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15864 (rx_select_cc_mode): Likewise.
15865 (rx_split_fp_compare): New.
15866 (rx_split_cbranch): New.
15867 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15868 (*cbranchsi4): Use match_operator and rx_split_cbranch.
15869 (*cbranchsf4): Similarly.
15870 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
15871 match_operator and rx_split_cbranch.
15872 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15873 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
15874 (*cmpsi): Rename from cmpsi.
15875 (*tstsi): Rename from tstsi.
15876 (*cmpsf): Rename from cmpsf; use CC_Fmode.
15877 (*conditional_branch): Rename from conditional_branch.
15878 (*reveresed_conditional_branch): Remove.
15879 (b<code>): Remove expander.
15880 * config/rx/rx-protos.h: Update.
15881
15882 * config/rx/rx.c (rx_compare_redundant): Remove.
15883 * config/rx/rx.md (cmpsi): Don't use it.
15884 * config/rx/rx-protos.h: Update.
15885
15886 * config/rx/rx-modes.def (CC_F): New mode.
15887 * config/rx/rx.c (rx_select_cc_mode): New.
15888 * config/rx/rx.h (SELECT_CC_MODE): Use it.
15889 * config/rx/rx-protos.h: Update.
15890
15891 2011-01-17 Richard Henderson <rth@redhat.com>
15892
15893 * except.c (dump_eh_tree): Fix stray ; after for statement.
15894
15895 2011-01-17 Richard Guenther <rguenther@suse.de>
15896
15897 PR tree-optimization/47313
15898 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15899 handling before copying the body. Properly deal with
15900 by-reference result in SSA form.
15901
15902 2011-01-17 Ian Lance Taylor <iant@google.com>
15903
15904 PR target/47219
15905 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15906 (struct_value_alias_set): Don't define.
15907 (sparc_option_override): Don't set sparc_sr_alias_set and
15908 struct_value_alias_set.
15909 (save_or_restore_regs): Use gen_frame_mem rather than calling
15910 set_mem_alias_set.
15911 (sparc_struct_value_rtx): Likewise.
15912
15913 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
15914
15915 PR target/47318
15916 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15917 (_mm_maskstore_pd): Likewise.
15918 (_mm_maskload_ps): Likewise.
15919 (_mm_maskstore_ps): Likewise.
15920 (_mm256_maskload_pd): Change mask to __m256i.
15921 (_mm256_maskstore_pd): Likewise.
15922 (_mm256_maskload_ps): Likewise.
15923 (_mm256_maskstore_ps): Likewise.
15924
15925 * config/i386/i386-builtin-types.def: Updated.
15926 (ix86_expand_special_args_builtin): Likewise.
15927
15928 * config/i386/i386.c (bdesc_special_args): Update
15929 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15930 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15931 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15932 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15933
15934 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15935 Use <avxpermvecmode> on mask register.
15936 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15937
15938 2011-01-17 Olivier Hainque <hainque@adacore.com>
15939 Michael Haubenwallner <michael.haubenwallner@salomon.at>
15940 Eric Botcazou <ebotcazou@adacore.com>
15941
15942 PR target/46655
15943 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15944 if <= USHRT_MAX in 32-bit mode.
15945
15946 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15947
15948 * doc/install.texi (Configuration, Specific): Wrap long
15949 lines in examples. Allow line wrapping in long options
15950 and URLs where beneficial for PDF output.
15951
15952 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
15953
15954 * config/mips/mips.c (mips_classify_symbol): Don't return
15955 SYMBOL_PC_RELATIVE for nonlocal labels.
15956
15957 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
15958
15959 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15960
15961 2011-01-15 Jan Hubicka <jh@suse.cz>
15962
15963 PR tree-optimization/47276
15964 * ipa.c (function_and_variable_visibility): Do not try to mark alias
15965 declarations as needed.
15966
15967 2011-01-15 Martin Jambor <mjambor@suse.cz>
15968
15969 * common.opt (fdevirtualize): New flag.
15970 * doc/invoke.texi (Option Summary): Document it.
15971 * opts.c (default_options_table): Add devirtualize flag.
15972 * ipa-prop.c (detect_type_change): Return immediately if
15973 devirtualize flag is not set.
15974 (detect_type_change_ssa): Likewise.
15975 (compute_known_type_jump_func): Likewise.
15976 (ipa_analyze_virtual_call_uses): Likewise.
15977
15978 2011-01-14 Martin Jambor <mjambor@suse.cz>
15979
15980 PR tree-optimization/45934
15981 PR tree-optimization/46302
15982 * ipa-prop.c (type_change_info): New type.
15983 (stmt_may_be_vtbl_ptr_store): New function.
15984 (check_stmt_for_type_change): Likewise.
15985 (detect_type_change): Likewise.
15986 (detect_type_change_ssa): Likewise.
15987 (compute_complex_assign_jump_func): Check for dynamic type change.
15988 (compute_complex_ancestor_jump_func): Likewise.
15989 (compute_known_type_jump_func): Likewise.
15990 (compute_scalar_jump_functions): Likewise.
15991 (ipa_analyze_virtual_call_uses): Likewise.
15992 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15993
15994 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15995
15996 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15997 * config/i386/i386.opt (msse5): New Alias.
15998
15999 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16000
16001 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
16002 * config/sparc/linux64.h (CC1_SPEC): Likewise.
16003 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
16004 * config/sparc/sparc.h (CC1_SPEC): Likewise.
16005
16006 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16007
16008 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
16009 -mcpu options.
16010 * config/sparc/linux64.h (CC1_SPEC): Likewise.
16011 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
16012 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
16013 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
16014 Likewise.
16015 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
16016
16017 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16018
16019 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
16020
16021 2011-01-14 Mike Stump <mikestump@comcast.net>
16022
16023 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
16024 * config/fr30/fr30.md: Likweise
16025 (movsi_push): Likewise.
16026 (movsi_pop): Likewise.
16027 (enter_func): Likewise.
16028 * config/moxie/moxie.md (movsi_push): Likewise.
16029 (movsi_pop): Likewise.
16030
16031 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16032
16033 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
16034 %{no_archive} %{exact_version}.
16035 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
16036 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
16037 %{no_archive} %{exact_version}.
16038 * config/mips/openbsd.h (LINK_SPEC): Likewise.
16039 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
16040 * config/mips/vxworks.h: Likewise.
16041
16042 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16043
16044 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
16045
16046 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16047
16048 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
16049 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
16050
16051 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16052
16053 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
16054 -nodefaultlib.
16055
16056 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16057
16058 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
16059 for mcpu not cpu.
16060 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
16061 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
16062 not cpu.
16063 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
16064 Don't handle -shlib.
16065
16066 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16067
16068 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
16069 (CC1_SPEC): Don't handle -profile.
16070
16071 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16072
16073 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
16074 * config/mips/mips.h (CC1_SPEC): Likewise.
16075
16076 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16077
16078 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
16079 * config/mips/mips.h (CC1_SPEC): Likewise.
16080
16081 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16082
16083 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
16084 * config/m32r/linux.h (LINK_SPEC): Likewise.
16085 * config/mips/linux.h (LINK_SPEC): Likewise.
16086 * config/mips/linux64.h (LINK_SPEC): Likewise.
16087 * config/sparc/linux.h (LINK_SPEC): Likewise.
16088 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
16089 LINK_SPEC): Likewise.
16090 * config/xtensa/linux.h (LINK_SPEC): Likewise.
16091
16092 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16093
16094 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
16095 %{version:-v}.
16096 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
16097
16098 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16099
16100 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
16101 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
16102
16103 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16104
16105 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
16106
16107 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16108
16109 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
16110 supports -Bstatic/-Bdynamic.
16111 * configure: Regenerate.
16112
16113 2011-01-14 Jan Hubicka <jh@suse.cz>
16114 Jack Howarth <howarth@bromo.med.uc.edu>
16115
16116 PR target/46037
16117 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
16118 when checking debug_info_level. Test write_symbols instead of
16119 debug_hooks->var_location when setting flag_var_tracking_uninit.
16120
16121 2011-01-14 Richard Guenther <rguenther@suse.de>
16122
16123 PR tree-optimization/47179
16124 * target.def (ref_may_alias_errno): New target hook.
16125 * targhooks.h (default_ref_may_alias_errno): Declare.
16126 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
16127 (default_ref_may_alias_errno): New function.
16128 * target.h (struct ao_ref_s): Declare.
16129 * tree-ssa-alias.c: Include target.h.
16130 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
16131 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
16132 (targhooks.o): Likewise.
16133 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
16134 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
16135
16136 2011-01-14 Richard Guenther <rguenther@suse.de>
16137
16138 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
16139
16140 2011-01-14 Richard Guenther <rguenther@suse.de>
16141
16142 PR tree-optimization/47280
16143 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
16144 return CFG changes.
16145 (tree_ssa_forward_propagate_single_use_vars): Deal with
16146 CFG changes from associate_plusminus.
16147
16148 2011-01-14 Richard Guenther <rguenther@suse.de>
16149
16150 PR middle-end/47281
16151 Revert
16152 2011-01-11 Richard Guenther <rguenther@suse.de>
16153
16154 PR tree-optimization/46076
16155 * tree-ssa.c (useless_type_conversion_p): Conversions from
16156 unprototyped to empty argument list function types are useless.
16157
16158 2011-01-14 Richard Guenther <rguenther@suse.de>
16159
16160 PR tree-optimization/47286
16161 * tree-ssa-structalias.c (new_var_info): Register variables are global.
16162
16163 2011-01-14 Martin Jambor <mjambor@suse.cz>
16164
16165 PR middle-end/46823
16166 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
16167
16168 2011-01-13 Anatoly Sokolov <aesok@post.ru>
16169
16170 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
16171 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16172 * config/xtensa/xtensa.c (xtensa_libcall_value,
16173 xtensa_function_value_regno_p): New functions.
16174 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16175
16176 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
16177
16178 PR c++/47213
16179 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
16180 PE specific hook.
16181 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
16182 New function prototype.
16183 * config/i386/winnt.c (i386_pe_assemble_visibility):
16184 Warn only if attribute was specified by user.
16185
16186 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
16187
16188 PR target/47251
16189 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
16190 floating point.
16191 (floatunsdidf2_fcfidu): Ditto.
16192
16193 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16194
16195 * config/s390/s390.c (print_operand_address): Replace 'error' with
16196 'output_operand_lossage'.
16197 (print_operand): Likewise.
16198
16199 2011-01-13 Jeff Law <law@redhat.com>
16200
16201 PR rtl-optimization/39077
16202 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
16203 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
16204 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
16205 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
16206 * gcse.c (prune_insertions_deletions): New function.
16207 (compute_pre_data): Use it.
16208
16209 2011-01-13 Dodji Seketeli <dodji@redhat.com>
16210
16211 PR debug/PR46973
16212 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
16213 static function.
16214 (prune_unused_types_mark): Use it.
16215
16216 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
16217
16218 PR rtl-optimization/45352
16219 * sel-sched.c: Update copyright years.
16220 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
16221 in the advancing loop when we have issued issue_rate insns.
16222
16223 2011-01-12 Richard Henderson <rth@redhat.com>
16224
16225 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
16226 (TARGET_MD_ASM_CLOBBERS): New.
16227
16228 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
16229 (TARGET_DELEGITIMIZE_ADDRESS): New.
16230
16231 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
16232 (clzsi2, *bsch): New patterns.
16233
16234 * config/mn10300/mn10300.md (INT): New mode iterator.
16235 (*mov<INT>_clr): New pattern, and peep2 to generate it.
16236
16237 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
16238 flag_split_wide_types.
16239
16240 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
16241 (mn10300_trampoline_init): Rewrite without a template, an immediate
16242 load and a direct branch.
16243 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
16244
16245 2011-01-12 Anatoly Sokolov <aesok@post.ru>
16246
16247 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16248 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
16249 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
16250 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16251
16252 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
16253
16254 PR debug/47209
16255 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
16256 of type.
16257
16258 2011-01-12 Jan Hubicka <jh@suse.cz>
16259
16260 PR driver/47244
16261 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
16262 (PLUGIN_COND_CLOSE): New macro.
16263 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
16264
16265 2011-01-12 Richard Guenther <rguenther@suse.de>
16266
16267 PR lto/47259
16268 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
16269 register variables in a MEM_REF.
16270
16271 2011-01-12 Joseph Myers <joseph@codesourcery.com>
16272
16273 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
16274 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
16275 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
16276 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
16277 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
16278 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
16279 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
16280 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
16281 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
16282 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
16283 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
16284 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
16285 * config/gnu-user.h: New. Copied from linux.h.
16286 (LINUX_TARGET_STARTFILE_SPEC): Rename to
16287 GNU_USER_TARGET_STARTFILE_SPEC.
16288 (LINUX_TARGET_ENDFILE_SPEC): Rename to
16289 GNU_USER_TARGET_ENDFILE_SPEC.
16290 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
16291 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
16292 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
16293 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
16294 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
16295 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
16296 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
16297 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
16298 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
16299 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
16300 * config/arm/linux-eabi.h (CC1_SPEC): Use
16301 GNU_USER_TARGET_CC1_SPEC.
16302 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
16303 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
16304 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
16305 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
16306 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
16307 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
16308 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
16309 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
16310
16311 2011-01-12 Richard Guenther <rguenther@suse.de>
16312
16313 PR other/46946
16314 * doc/invoke.texi (ffast-math): Document it is turned on
16315 with -Ofast.
16316
16317 2011-01-12 Jan Hubicka <jh@suse.cz>
16318
16319 PR tree-optimization/47233
16320 * opts.c (common_handle_option): Disable ipa-reference with profile
16321 feedback.
16322
16323 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
16324
16325 * c-parser.c (c_parser_objc_at_property_declaration): Improved
16326 error message.
16327
16328 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
16329
16330 * c-parser.c (c_lex_one_token): Updated and reindented some
16331 comments. No changes in code.
16332
16333 2011-01-11 Ian Lance Taylor <iant@google.com>
16334
16335 * godump.c (go_output_var): Don't output the variable if there is
16336 already a type with the same name.
16337
16338 2011-01-11 Ian Lance Taylor <iant@google.com>
16339
16340 * godump.c (go_format_type): Don't generate float80.
16341
16342 2011-01-11 Richard Henderson <rth@redhat.com>
16343
16344 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
16345 declaration. Rewrite for both speed and size.
16346 (mn10300_address_cost_1): Remove.
16347 (mn10300_register_move_cost): New.
16348 (mn10300_memory_move_cost): New.
16349 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
16350 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
16351 extensions, shifts, BSWAP, CLZ.
16352 (mn10300_wide_const_load_uses_clr): Remove.
16353 (TARGET_REGISTER_MOVE_COST): New.
16354 (TARGET_MEMORY_MOVE_COST): New.
16355 * config/mn10300/mn10300-protos.h: Update.
16356 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
16357
16358 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
16359 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
16360 * config/mn10300/mn10300-protos.h: Update.
16361 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
16362 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
16363 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
16364 (*test_int_bitfield, *test_byte_bitfield): Remove.
16365 (*bit_test, *subreg_bit_test): Remove.
16366 * config/mn10300/predicates.md (const_8bit_operand): Remove.
16367
16368 * config/mn10300/constraints.md ("c"): Rename from "A".
16369 ("A", "D"): New constraint letters.
16370 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
16371 (fmssf4, fnmasf4, fnmssf4): Likewise.
16372
16373 * config/mn10300/mn10300.md (isa): New attribute.
16374 (enabled): New attribute.
16375
16376 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
16377 (abssf2, negsf2): Define only for hardware fp.
16378 (sqrtsf2): Reformat.
16379 (addsf3, subsf3, mulsf3): Merge expander and insn.
16380
16381 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
16382 (DEBUGGER_AUTO_OFFSET): Remove.
16383 (DEBUGGER_ARG_OFFSET): Remove.
16384
16385 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
16386 Emit register stores with the same offsets as the hardware.
16387 (mn10300_store_multiple_operation): Don't check that the register
16388 save offsets are monotonic.
16389 * config/mn10300/mn10300-protos.h: Update.
16390
16391 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
16392
16393 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
16394 in terms of the value on the stack, not the MDR register.
16395
16396 2011-01-11 Jan Hubicka <jh@suse.cz>
16397
16398 PR lto/45721
16399 PR lto/45375
16400 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
16401 (symbol_alias_set_destroy, symbol_alias_set_contains,
16402 propagate_aliases_backward): Declare.
16403 * lto-streamer-out.c (struct sets): New sturcture.
16404 (trivally_defined_alias): New function.
16405 (output_alias_pair_p): Rewrite.
16406 (output_unreferenced_globals): Fix output of alias pairs.
16407 (produce_symtab): Likewise.
16408 * ipa.c (function_and_variable_visibility): Set weak alias destination
16409 as needed in lto.
16410 * varasm.c (symbol_alias_set_t): Remove.
16411 (symbol_alias_set_destroy): Export.
16412 (propagate_aliases_forward, propagate_aliases_backward): New functions
16413 based on ...
16414 (compute_visible_aliases): ... this one; remove.
16415 (trivially_visible_alias): New
16416 (trivially_defined_alias): New.
16417 (remove_unreachable_alias_pairs): Rewrite.
16418 (finish_aliases_1): Reorganize code checking if alias is defined.
16419 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
16420 in LTO mode.
16421
16422 2011-01-11 Richard Guenther <rguenther@suse.de>
16423
16424 PR tree-optimization/46076
16425 * tree-ssa.c (useless_type_conversion_p): Conversions from
16426 unprototyped to empty argument list function types are useless.
16427
16428 2011-01-11 Richard Guenther <rguenther@suse.de>
16429
16430 PR middle-end/45235
16431 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
16432 volatile MEMs as MEM_READONLY_P.
16433
16434 2011-01-11 Richard Guenther <rguenther@suse.de>
16435
16436 PR tree-optimization/47239
16437 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
16438
16439 2011-01-11 Jeff Law <law@redhat.com>
16440
16441 PR tree-optimization/47086
16442 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
16443 IVs from statements that might throw.
16444
16445 2011-01-10 Jan Hubicka <jh@suse.cz>
16446
16447 PR lto/45375
16448 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
16449
16450 2011-01-10 Jan Hubicka <jh@suse.cz>
16451
16452 PR lto/45375
16453 * profile.c (read_profile_edge_counts): Ignore profile inconistency
16454 when correcting profile.
16455
16456 2011-01-10 Jan Hubicka <jh@suse.cz>
16457
16458 PR lto/46083
16459 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
16460 DECL_FINI_PRIORITY.
16461 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
16462 Restore DECL_FINI_PRIORITY.
16463
16464 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16465
16466 * doc/gimple.texi: Fix quoting of multi-word return values in
16467 @deftypefn statements. Ensure presence of return value. Wrap
16468 overlong @deftypefn lines.
16469 (is_gimple_operand, is_gimple_min_invariant_address): Remove
16470 descriptions of removed functions.
16471 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
16472 of multi-word return value in @deftypefn statement.
16473
16474 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16475
16476 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
16477 (Conditional Expressions, Logical Operators)
16478 (Statement and operand traversals): Do not indent smallexample
16479 code. Fix duplicate function argument in example.
16480
16481 2011-01-10 Jeff Law <law@redhat.com>
16482
16483 PR tree-optimization/47141
16484 * ipa-split.c (split_function): Handle case where we are
16485 returning a value and the return block has a virtual operand phi.
16486
16487 2011-01-10 Jan Hubicka <jh@suse.cz>
16488
16489 PR tree-optimization/47234
16490 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
16491 (pass_feedback_split_functions): Declare.
16492 * passes.c (init_optimization_passes): Add ipa-split as subpass of
16493 tree-profile.
16494 * ipa-split.c (gate_split_functions): Update comments; disable
16495 split-functions for profile_arc_flag and branch_probabilities.
16496 (gate_feedback_split_functions): New function.
16497 (execute_feedback_split_functions): New function.
16498 (pass_feedback_split_functions): New global var.
16499
16500 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
16501
16502 PR lto/46760
16503 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
16504 calling gimple_call_set_cannot_inline.
16505
16506 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
16507
16508 * config/darwin-sections.def: Remove unused section.
16509
16510 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
16511
16512 PR c++/47218
16513 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
16514
16515 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
16516
16517 PR objc/47232
16518 * c-parser.c (c_parser_declaration_or_fndef): Improved
16519 error message.
16520
16521 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
16522
16523 * config/i386/winnt.c (i386_pe_start_function): Make sure
16524 to switch back to function's section.
16525
16526 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
16527
16528 PR gcc/46902
16529 PR testsuite/46912
16530 * plugin.c: Move include of dlfcn.h from here...
16531 * system.h: ... to here.
16532
16533 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16534
16535 * doc/cpp.texi (C++ Named Operators): Fix markup for header
16536 file name.
16537 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
16538 two extra empty pages in PDF output.
16539
16540 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
16541
16542 PR objc/47078
16543 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
16544 for error recovery purposes behave as if it was not specified so
16545 that the default type is usd.
16546
16547 2011-01-07 Jan Hubicka <jh@suse.cz>
16548
16549 PR tree-optmization/46469
16550 * ipa.c (function_and_variable_visibility): Clear needed flags on
16551 nodes with external decls; handle weakrefs merging correctly.
16552
16553 2011-01-07 Joseph Myers <joseph@codesourcery.com>
16554
16555 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
16556 not false.
16557
16558 2011-01-07 Jan Hubicka <jh@suse.cz>
16559
16560 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
16561 and no longer claim that gold is required for linker plugin.
16562 * configure: Regenerate.
16563 * gcc.c (PLUGIN_COND): New macro.
16564 (LINK_COMMAND_SPEC): Use it.
16565 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
16566 * config.in (HAVE_LTO_PLUGIN): New.
16567 * configure.ac (--with-lto-plugin): New parameter; autodetect
16568 HAVE_LTO_PLUGIN.
16569
16570 2011-01-07 Jan Hubicka <jh@suse.cz>
16571
16572 PR tree-optimization/46367
16573 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
16574 when we can update original.
16575 (cgraph_mark_inline_edge): Sanity check.
16576 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
16577
16578 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16579
16580 * config/spu/spu.h (ASM_COMMENT_START): Define.
16581
16582 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
16583
16584 PR driver/42445
16585 * gcc.c (%>S): New.
16586 (SWITCH_KEEP_FOR_GCC): Likewise.
16587 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
16588 (do_spec_1): Handle "%>".
16589
16590 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
16591
16592 2011-01-07 Jakub Jelinek <jakub@redhat.com>
16593
16594 PR target/47201
16595 * config/i386/i386.c (ix86_delegitimize_address): If
16596 simplify_gen_subreg fails, return orig_x.
16597
16598 PR bootstrap/47187
16599 * value-prof.c (gimple_stringop_fixed_value): Handle
16600 lhs of the call properly.
16601
16602 2011-01-07 Jan Hubicka <jh@suse.cz>
16603
16604 PR lto/45375
16605 * lto-opt.c (lto_reissue_options): Set flag_shlib.
16606
16607 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
16608
16609 * target.def (function_switched_text_sections): New hook.
16610 * doc/tm.texi: Regenerated.
16611 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16612 * final.c (default_function_switched_text_sections): New.
16613 (final_scan_insn): Call function_switched_text_sections when a
16614 mid-function section change occurs.
16615 * output.h (default_function_switched_text_sections): Declare.
16616 * config/darwin-protos.h (darwin_function_switched_text_sections):
16617 Likewise.
16618 * config/darwin.c (darwin_function_switched_text_sections): New.
16619 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16620
16621 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
16622
16623 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
16624 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
16625 the secondary code fragment when outputting for DWARF == 2.
16626
16627 2011-01-07 Anatoly Sokolov <aesok@post.ru>
16628
16629 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16630 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
16631 Remove.
16632 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
16633 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16634
16635 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
16636
16637 PR debug/46704
16638 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
16639 when it is not empty.
16640
16641 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
16642
16643 Bobcat Enablement
16644 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
16645 (case ${target}): Add btver1.
16646 * config/i386/driver-i386.c (host_detect_local_cpu): Let
16647 -march=native recognize btver1 processors.
16648 * config/i386/i386-c.c (ix86_target_macros_internal): Add
16649 btver1 def_and_undef
16650 * config/i386/i386.c (struct processor_costs btver1_cost): New
16651 btver1 cost table.
16652 (m_BTVER1): New definition.
16653 (m_AMD_MULTIPLE): Includes m_BTVER1.
16654 (initial_ix86_tune_features): Add btver1 tune.
16655 (processor_target_table): Add btver1 entry.
16656 (static const char *const cpu_names): Add btver1 entry.
16657 (software_prefetching_beneficial_p): Add btver1.
16658 (ix86_option_override_internal): Add btver1 instruction sets.
16659 (ix86_issue_rate): Add btver1.
16660 (ix86_adjust_cost): Add btver1.
16661 * config/i386/i386.h (TARGET_BTVER1): New definition.
16662 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
16663 (enum processor_type): Add PROCESSOR_BTVER1.
16664 * config/i386/i386.md (define_attr "cpu"): Add btver1.
16665
16666 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16667
16668 PR target/43309
16669 * config/i386/i386.c (legitimize_tls_address)
16670 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
16671 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
16672 (tls_initial_exec_64_sun): New pattern.
16673
16674 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16675
16676 * doc/invoke.texi (Overall Options): Improve wording and markup
16677 of the description of -wrapper.
16678
16679 2011-01-06 Joseph Myers <joseph@codesourcery.com>
16680
16681 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
16682 rdynamic, threads): New Driver options.
16683
16684 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16685
16686 PR target/38118
16687 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
16688 if coming from .tdata.
16689 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16690
16691 2011-01-06 Jan Hubicka <jh@suse.cz>
16692
16693 PR lto/47188
16694 * collect2.c (main): Do not enable LTOmode when plugin is active.
16695
16696 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16697
16698 PR other/45915
16699 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
16700 --version output if supported.
16701 * configure: Regenerate.
16702
16703 2011-01-06 Joseph Myers <joseph@codesourcery.com>
16704
16705 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
16706 Driver options.
16707
16708 2011-01-06 Jakub Jelinek <jakub@redhat.com>
16709
16710 PR c/47150
16711 * c-convert.c (convert): When converting a complex expression
16712 other than COMPLEX_EXPR to a different complex type, ensure
16713 c_save_expr is called instead of save_expr, unless in_late_binary_op.
16714 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
16715 when converting COMPLEX_TYPE.
16716
16717 2011-01-06 Ira Rosen <irar@il.ibm.com>
16718
16719 PR tree-optimization/47139
16720 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
16721 only the last reduction value is used outside the loop. Update
16722 documentation.
16723
16724 2011-01-05 Joseph Myers <joseph@codesourcery.com>
16725
16726 * config/rtems.opt: New.
16727 * config.gcc (*-*-rtems*): Use rtems.opt.
16728
16729 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
16730
16731 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
16732 processors do not support 3DNow instructions.
16733
16734 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16735
16736 * config/spu/spu.c (spu_option_override): Set parameter
16737 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
16738
16739 2011-01-05 Jan Hubicka <jh@suse.cz>
16740
16741 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
16742 at the command line.
16743
16744 2011-01-05 Martin Jambor <mjambor@suse.cz>
16745
16746 PR lto/47162
16747 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
16748 deltas on streamed outgoing edges.
16749 (output_node_opt_summary): Output info for outgoing edges only when
16750 the node is in new parameter set.
16751 (output_cgraph_opt_summary): New parameter set, passed to the two
16752 aforementioned functions. Update its forward declaration and its
16753 callee too.
16754
16755 2011-01-05 Tom Tromey <tromey@redhat.com>
16756
16757 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
16758 operator to c_finish_omp_atomic.
16759 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
16760 (build_unary_op): Update.
16761 (build_modify_expr): Update.
16762 (build_asm_expr): Update.
16763
16764 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16765
16766 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
16767 newly inserted insns.
16768 (pad_bb): Likewise.
16769 (spu_emit_branch_hint): Likewise.
16770 (insert_hbrp_for_ilb_runout): Likewise.
16771 (spu_machine_dependent_reorg): Call df_finish_pass after
16772 schedule_insns returns.
16773
16774 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16775
16776 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16777
16778 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
16779
16780 PR tree-optimization/47005
16781 * tree-sra.c (struct access): Add 'non_addressable' bit.
16782 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16783 (decide_one_param_reduction): Return 0 if the parameter is passed by
16784 reference and one of the accesses in the group is non_addressable.
16785
16786 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16787
16788 PR tree-optimization/47056
16789 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16790 (mark_load): Likewise. Handle FUNCTION_DECL specially.
16791 (mark_store): Likewise. Pass STMT to ipa_record_reference.
16792
16793 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16794
16795 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16796 initializer. Skip view conversions from aggregate types.
16797
16798 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
16799
16800 PR bootstrap/47055
16801 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16802
16803 2011-01-04 Philipp Thomas <pth@suse.de>
16804
16805 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16806 obvious typo.
16807
16808 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16809
16810 * function.c (thread_prologue_and_epilogue_insns): Do not crash
16811 on empty epilogue sequences.
16812
16813 2011-01-04 Joseph Myers <joseph@codesourcery.com>
16814
16815 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16816 non-static): New Driver options.
16817
16818 2011-01-04 Jie Zhang <jie@codesourcery.com>
16819
16820 PR driver/47137
16821 * gcc.c (default_compilers[]): Set combinable field to 0
16822 for all assembly languages.
16823
16824 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
16825
16826 * config/mips/loongson3a.md: New file.
16827 * config/mips/mips.md: Include loongson3a.md.
16828 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16829 TUNE_LOONGSON_3A.
16830
16831 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
16832
16833 PR middle-end/47017
16834 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16835 instead of convert_memory_address_addr_space on the base expression.
16836
16837 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16838
16839 * config/spu/spu.c (spu_option_override): Update error text
16840 for bad -march= / -mtune= values.
16841
16842 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16843
16844 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16845 if branch-hint optimization will be performed.
16846
16847 2011-01-03 Jakub Jelinek <jakub@redhat.com>
16848
16849 PR tree-optimization/47148
16850 * ipa-split.c (split_function): Convert arguments to
16851 DECL_ARG_TYPE if possible.
16852
16853 PR tree-optimization/47155
16854 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16855 when computing uns.
16856
16857 PR rtl-optimization/47157
16858 * combine.c (try_combine): If undobuf.other_insn becomes
16859 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16860 and set *new_direct_jump_p too.
16861
16862 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
16863
16864 PR tree-optimization/47021
16865 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16866
16867 2011-01-03 Jakub Jelinek <jakub@redhat.com>
16868
16869 * gcc.c (process_command): Update copyright notice dates.
16870 * gcov.c (print_version): Likewise.
16871 * gcov-dump.c (print_version): Likewise.
16872 * mips-tfile.c (main): Likewise.
16873 * mips-tdump.c (main): Likewise.
16874
16875 2011-01-03 Martin Jambor <mjambor@suse.cz>
16876
16877 PR tree-optimization/46801
16878 * tree-sra.c (type_internals_preclude_sra_p): Check whether
16879 aggregate fields start at byte boundary instead of the bit-field flag.
16880
16881 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
16882
16883 PR driver/47137
16884 * gcc.c (main): Revert revision 168407.
16885
16886 2011-01-03 Martin Jambor <mjambor@suse.cz>
16887
16888 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16889
16890 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16891
16892 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16893 vector optab to expand vector/scalar shift, update gimple to vector.
16894
16895 2011-01-03 Martin Jambor <mjambor@suse.cz>
16896
16897 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16898 a thunk.
16899
16900 2011-01-03 Martin Jambor <mjambor@suse.cz>
16901
16902 PR tree-optimization/46984
16903 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16904 HOST_WIDE_INT.
16905 (cgraph_create_indirect_edge): Fixed line length.
16906 (cgraph_indirect_call_info): Declare.
16907 (cgraph_make_edge_direct) Update declaration.
16908 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16909 (cgraph_create_indirect_edge): Use it.
16910 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
16911 callees.
16912 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16913 the new thunk_delta representation.
16914 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16915 HOST_WIDE_INT.
16916 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16917 (ipa_read_indirect_edge_info): Likewise.
16918 * lto-cgraph.c (output_edge_opt_summary): New function.
16919 (output_node_opt_summary): Call it on all outgoing edges.
16920 (input_edge_opt_summary): New function.
16921 (input_node_opt_summary): Call it on all outgoing edges.
16922
16923 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
16924
16925 PR driver/47137
16926 * gcc.c (main): Don't check have_o when settting combine_inputs.
16927
16928 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
16929
16930 * regrename.c: Add general comment describing the pass.
16931 (struct du_head): Remove 'length' field.
16932 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16933 (regrename_optimize): Do not sort chains. Rework comments, add others.
16934 Force renaming to the preferred class (if any) in the first pass and do
16935 not consider registers that belong to it in the second pass.
16936 (create_new_chain): Do not set 'length' field.
16937 (scan_rtx_reg): Likewise.
16938
16939 2011-01-02 Jakub Jelinek <jakub@redhat.com>
16940
16941 PR tree-optimization/47140
16942 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16943 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16944 to bit_value_binop.
16945
16946 PR rtl-optimization/47028
16947 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16948 parm_birth_insn instead of at the beginning of first bb.
16949
16950 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
16951
16952 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16953 Remove the word "see" before "@pxref".
16954 * doc/rtl.texi: Remove the word "see" before "@pxref".
16955
16956 2011-01-01 Jan Hubicka <jh@suse.cz>
16957
16958 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16959 memory.
16960
16961 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
16962
16963 PR target/38662
16964 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16965
16966 \f
16967 Copyright (C) 2011 Free Software Foundation, Inc.
16968
16969 Copying and distribution of this file, with or without modification,
16970 are permitted in any medium without royalty provided the copyright
16971 notice and this notice are preserved.