967371c09f339e58ee36832eccada2b718bae8a7
[gcc.git] / gcc / ChangeLog
1 2011-06-06 Jakub Jelinek <jakub@redhat.com>
2
3 PR debug/49294
4 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
5 non-MODE_INT modes.
6
7 PR c++/49264
8 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
9 if stmt folded into nothing.
10 * tree-inline.c (fold_marked_statements): If a builtin at the
11 end of a bb folded into nothing, just update cgraph edges
12 and move to next bb.
13 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
14 to be NULL. Don't compute count and frequency if new_call is NULL.
15
16 2011-06-04 Diego Novillo <dnovillo@google.com>
17
18 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
19 (cgraph.o): Likewise.
20 (cgraphunit.o): Likewise.
21 * cgraphunit.c: Include lto-streamer.h
22 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
23 if LTO is enabled.
24 * lto-streamer-in.c (unpack_value_fields): Call
25 streamer_hooks.unpack_value_fields if set.
26 (lto_materialize_tree): For unhandled nodes, first try to
27 call lto_streamer_hooks.alloc_tree, if it exists.
28 (lto_input_ts_decl_common_tree_pointers): Move reading of
29 DECL_INITIAL to lto_streamer_read_tree.
30 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
31 (lto_streamer_read_tree): New.
32 (lto_reader_init): Rename from lto_init_reader.
33 Move initialization code to lto/lto.c.
34 * lto-streamer-out.c (pack_value_fields): Call
35 streamer_hooks.pack_value_fields if set.
36 (lto_output_tree_ref): For tree nodes that are not
37 normally indexable, call streamer_hooks.indexable_with_decls_p
38 before giving up.
39 (lto_output_ts_decl_common_tree_pointers): Move handling
40 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to
41 lto_streamer_write_tree.
42 (lto_output_tree_header): Call streamer_hooks.is_streamable
43 instead of lto_is_streamable.
44 Call lto_streamer_hooks.output_tree_header if set.
45 (lto_write_tree): Call lto_streamer_hooks.write_tree if
46 set.
47 (lto_streamer_write_tree): New.
48 (lto_output): Call lto_streamer_init directly.
49 (lto_writer_init): Remove.
50 * lto-streamer.c (streamer_hooks): New.
51 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
52 instead of lto_preload_common_nodes.
53 (lto_is_streamable): Move from lto-streamer.h
54 (lto_streamer_hooks_init): New.
55 (streamer_hooks): New.
56 (streamer_hooks_init): New.
57 * lto-streamer.h (struct output_block): Forward declare.
58 (struct lto_input_block): Likewise.
59 (struct data_in): Likewise.
60 (struct bitpack_d): Likewise.
61 (struct streamer_hooks): Declare.
62 (streamer_hooks): Declare.
63 (lto_streamer_hooks_init): Declare.
64 (lto_streamer_write_tree): Declare.
65 (lto_streamer_read_tree): Declare.
66 (streamer_hooks_init): Declare.
67 (lto_is_streamable): Move to lto-streamer.c
68
69 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
70
71 * longlong.h (smul_ppmm): The resulting register pair contains the
72 higher order word first.
73
74 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
75
76 PR tree-optimization/46728
77 * builtins.c (powi_table): Remove.
78 (powi_lookup_cost): Remove.
79 (powi_cost): Remove.
80 (expand_powi_1): Remove.
81 (expand_powi): Remove.
82 (expand_builtin_pow_root): Remove.
83 (expand_builtin_pow): Remove.
84 (expand_builtin_powi): Eliminate handling of constant exponent.
85 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
86
87 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
88
89 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
90
91 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
92
93 * dce.c (reset_unmarked_insns_debug_uses): New.
94 (delete_unmarked_insns): Skip debug insns.
95 (prescan_insns_for_dce): Likewise.
96 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
97 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
98 active reg can be found.
99 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
100 (convert_regs_1): Use it.
101
102 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
103
104 * tree-pretty-print.c (dump_function_header): Add flags.
105 Don't dump decl_uid with nouid.
106 * tree-pretty-print.h (dump_function_header): Adjust.
107 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
108 * passes.c (pass_init_dump_file): Pass dump_flags on.
109 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
110
111 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
112
113 PR bootstrap/49270
114 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
115
116 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
117
118 PR tree-optimization/49243
119 * calls.c (setjmp_call_p): Also check if fndecl has the
120 returns_twice attribute.
121
122 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
123
124 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
125 -ffast-math etc.
126
127 2011-06-06 Richard Henderson <rth@redhat.com>
128 Georg-Johann Lay <avr@gjlay.de>
129
130 PR target/42210
131 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
132 New predicates.
133 * config/avr/avr.md ("insv"): New insn expander.
134 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
135 "*insv.not.io", "*insv.reg"): New insns.
136
137 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
138
139 PR target/49285
140 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct
141 predicate to nonimmediate_operand from memory_operand for the
142 operand that is to be forced to memory by the expander. Lose
143 the constraints.
144
145 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
146
147 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
148 EH return when delayed branches are disabled.
149
150 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
151
152 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
153 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
154 calculation.
155 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
156 Simplify MODE_V1DF and MODE_V2SF handling.
157 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
158 Simplify MODE_SF handling.
159
160 2011-06-04 Jan Hubicka <jh@suse.cz>
161
162 PR tree-optimization/48893
163 PR tree-optimization/49091
164 PR tree-optimization/49179
165 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
166 Bounds check.
167
168 2011-06-04 Jan Hubicka <jh@suse.cz>
169
170 PR lto/48954
171 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args bitmaps.
172
173 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
174
175 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
176
177 2011-06-04 Jakub Jelinek <jakub@redhat.com>
178
179 PR target/49281
180 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
181 to be strictly smaller than 1 << shiftcount.
182
183 2011-06-04 Jan Hubicka <jh@suse.cz>
184
185 PR tree-optimize/48929
186 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
187 of empty predicate.
188
189 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
190
191 PR debug/48333
192 * calls.c (emit_call_1): Prefer the __builtin declaration of
193 builtin functions.
194
195 2011-06-03 Diego Novillo <dnovillo@google.com>
196
197 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
198 (lto_input_tree_pointers): Likewise.
199 * lto-streamer-out.c (pack_value_fields): Likewise.
200 (lto_output_tree_pointers): Likewise.
201 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
202 and OPTIMIZATION_NODE.
203
204 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
205
206 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
207 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
208 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
209 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
210 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
211 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
212 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
213 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
214 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
215 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
216 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
217 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
218 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
219 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
220 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
221 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
222 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
223 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
224 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
225 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
226 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
227 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
228 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
229 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
230 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
231 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
232 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
233 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
234 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
235 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
236 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
237 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
238 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
239 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
240 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
241 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
242 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
243 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
244 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
245 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
246 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
247 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
248 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
249 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
250 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
251 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
252 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
253 * system.h (MD_UNWIND_SUPPORT): Poison.
254 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
255 * doc/tm.texi: Regenerate.
256 * unwind-dw2.c: Include md-unwind-support.h instead of
257 MD_UNWIND_SUPPORT.
258 * config/ia64/unwind-ia64.c: Likewise.
259 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
260
261 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
262
263 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
264
265 2011-06-03 Richard Henderson <rth@redhat.com>
266 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
267
268 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
269 (sigill_hdlr): Correct insn, insn size.
270 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
271
272 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
273
274 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
275 t-slibgcc-dummy.
276 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
277 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
278 * config/mips/t-iris: Remove.
279 * config/mips/t-irix6: New file.
280 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
281
282 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
283
284 * Makefile.in (LIB2ADDEHDEP): Remove.
285 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
286 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
287 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
288 * config/t-darwin (LIB2ADDEHDEP): Remove.
289 * config/t-freebsd (LIB2ADDEHDEP): Remove.
290 * config/t-linux (LIB2ADDEHDEP): Remove.
291
292 2011-06-03 Diego Novillo <dnovillo@google.com>
293
294 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
295 (lto_register_var_decl_in_symtab): Likewise.
296 (lto_register_function_decl_in_symtab): Likewise.
297 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
298 logic to uniquify_nodes.
299
300 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
301
302 * config/alpha/t-osf5: Remove.
303 * config/alpha/t-osf-pthread: Remove.
304 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
305 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
306
307 2011-06-03 Julian Brown <julian@codesourcery.com>
308
309 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
310 (strongarm1110): Use strongarm tuning.
311 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
312 * config/arm/arm.c (arm_strongarm_tune): New.
313 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
314 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
315 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
316 setting, using previous defaults or 1 for Cortex-A5.
317 (arm_option_override): Set max_insns_skipped from current tuning.
318
319 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
320
321 * doc/install.texi (Options specification): Document --with-specs.
322
323 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
324
325 * config/arm/neon.md (orndi3_neon): Actually split it.
326
327 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
328
329 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
330 * var-tracking.c (reverse_op): Limite recurse depth to 5.
331
332 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
333
334 PR debug/47590
335 * target.def (delay_sched2, delay_vartrack): New.
336 * doc/tm.texi.in: Update.
337 * doc/tm.texi: Rebuild.
338 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
339 * var-tracking.c (gate_handle_var_tracking): Likewise.
340 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
341 (bfin_flag_var_tracking): Drop.
342 (output_file_start): Don't save and override flag_var_tracking.
343 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
344 (bfin_reorg): Test original variables.
345 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
346 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
347 (ia64_flag_var_tracking): Drop.
348 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
349 (ia64_file_start): Don't save and override flag_var_tracking.
350 (ia64_override_options_after_change): Ditto
351 flag_schedule_insns_after_reload.
352 (ia64_reorg): Test original variables.
353 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
354 (picochip_flag_var_tracking): Drop.
355 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
356 (picochip_option_override): Don't save and override
357 flag_schedule_insns_after_reload.
358 (picochip_asm_file_start): Ditto flag_var_tracking.
359 (picochip_reorg): Test original variables.
360 * config/spu/spu.c (spu_flag_var_tracking): Drop.
361 (TARGET_DELAY_VARTRACK): Define.
362 (spu_var_tracking): New.
363 (spu_machine_dependent_reorg): Call it.
364 (asm_file_start): Don't save and override flag_var_tracking.
365
366 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
367
368 PR target/49163
369 * config/sh/predicates.md (general_movsrc_operand): Return 0
370 for memory and memory subreg of which address is an invalid
371 indexed address for QI and HImode.
372 (general_movdst_operand): Likewise.
373
374 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
375
376 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
377 edges only, when there is a non-local label in the function.
378 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
379
380 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
381
382 * config/i386/constraints.md (Y3): New register constraint.
383 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
384 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
385 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
386 *sse2_interleave_lowv2df.
387
388 2011-06-02 Julian Brown <julian@codesourcery.com>
389
390 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
391 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
392 (arm_cortex_a5_tune): New.
393
394 2011-06-02 Julian Brown <julian@codesourcery.com>
395
396 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
397 * config/arm/arm.c (arm_default_branch_cost): New.
398 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
399 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
400 (arm_fa726_tune): Set branch_cost field using
401 arm_default_branch_cost.
402 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
403 current_tune structure.
404 * dojump.c (tm_p.h): Include file.
405
406 2011-06-02 Julian Brown <julian@codesourcery.com>
407
408 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
409 tuning.
410 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
411 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
412 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
413 field.
414 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
415 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
416 (arm_fa726te_tune): Add prefer_constant_pool setting.
417 (arm_v6t2_tune, arm_cortex_tune): New.
418 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
419 prefer_constant_pool setting.
420
421 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
422
423 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
424 switch statement.
425 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
426 (*movdf_internal) <case 6,7,8>: Ditto.
427
428 * config/i386/constraints.md (Y4): New register constraint.
429 * config/i386/sse.md (vec_set<mode>_0): Merge with
430 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
431 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
432 *vec_extractv2di_1_sse.
433 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
434 and *vec_concatv2di_rex64_sse.
435
436 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
437
438 PR target/48807
439 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
440 of cgraph_local_info for null before attempting to use it.
441
442 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
443
444 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
445 (current_function_dynamic_alloc_count): Delete.
446 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
447 (expand_builtin_nonlocal_goto): Remove obsolete comment.
448 (expand_builtin_update_setjmp_buf): Remove dead code.
449 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
450 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
451 support.
452 * function.c (instantiate_virtual_regs): Likewise.
453 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
454 for a block with a single abnormal incoming edge.
455 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
456 (SETJMP_VIA_SAVE_AREA): Delete.
457 * config/sparc/sparc-protos.h (load_got_register): Declare.
458 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
459 (load_got_register): Make global.
460 (sparc_frame_pointer_required): Add 'static'.
461 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
462 (sparc_builtin_setjmp_frame_value): New function.
463 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
464 (save_stack_nonlocal): New expander.
465 (restore_stack_nonlocal): Likewise.
466 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
467 (nonlocal_goto_internal): New insn.
468 (goto_handler_and_restore): Delete.
469 (builtin_setjmp_setup): Likewise.
470 (do_builtin_setjmp_setup): Likewise.
471 (setjmp): Likewise.
472 (builtin_setjmp_receiver): New expander.
473
474 2011-06-01 David Li <davidxl@google.com>
475
476 PR middle-end/49261
477 * tree-pretty-print.c (dump_function_header): Format cleanup.
478
479 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
480
481 PR target/49238
482 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
483 needed when original operands are used for msw_skip comparison.
484
485 2011-06-01 Jakub Jelinek <jakub@redhat.com>
486
487 PR debug/49250
488 * var-tracking.c (add_uses, add_stores): Don't call
489 cselib_subst_to_values on ENTRY_VALUE.
490
491 2011-06-01 Diego Novillo <dnovillo@google.com>
492
493 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
494 output_record_start with LTO_null instead of output_zero.
495 (lto_output_ts_binfo_tree_pointers): Likewise.
496 (lto_output_tree): Likewise.
497 (output_eh_try_list): Likewise.
498 (output_eh_region): Likewise.
499 (output_eh_lp): Likewise.
500 (output_eh_regions): Likewise.
501 (output_bb): Likewise.
502 (output_function): Likewise.
503 (output_unreferenced_globals): Likewise.
504 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
505 instead of NUM_TREE_CODES.
506 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
507 (lto_output_int_in_range): Change << to >> when shifting VAL.
508
509 2011-06-01 Diego Novillo <dnovillo@google.com>
510
511 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
512 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
513
514 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
515
516 PR target/45074
517 * optabs.h (valid_multiword_target_p): Declare.
518 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
519 doing multi-word operations.
520 * optabs.c (expand_binop): Likewise.
521 (expand_doubleword_bswap): Likewise.
522 (expand_absneg_bit): Likewise.
523 (expand_unop): Likewise.
524 (expand_copysign_bit): Likewise.
525 (multiword_target_p): New function.
526
527 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
528
529 PR rtl-optimization/48830
530 PR rtl-optimization/48808
531 PR rtl-optimization/48792
532 * reload.c (push_reload): Check contains_reg_of_mode.
533 * reload1.c (strip_paradoxical_subreg): New function.
534 (gen_reload_chain_without_interm_reg_p): Use it to handle
535 paradoxical subregs.
536 (emit_output_reload_insns, gen_reload): Likewise.
537
538 2011-06-01 David Li <davidxl@google.com>
539
540 * predict.c : Change pass name
541 * ipa.c: Ditto.
542 * dce.c: Ditto.
543 * tree-profile.c: Ditto.
544 * except.c: Ditto.
545
546 2011-06-01 David Li <davidxl@google.com>
547
548 * tree-pretty-print.c (dump_function_header): New function.
549 * final.c (rest_of_clean_state): Use header dumper.
550 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
551 * passes.c (pass_init_dump_file): Use header dumper.
552
553 2011-06-01 Jakub Jelinek <jakub@redhat.com>
554
555 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
556 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
557 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
558 New functions.
559 (mem_loc_descriptor): Use them.
560
561 * var-tracking.c (create_entry_value): New function.
562 (vt_add_function_parameter): Use it.
563
564 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
565
566 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
567 Include <signal.h>, <ucontext.h>.
568 (sigill_caught): Define.
569 (sigill_hdlr): New function.
570 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
571 insns can be executed.
572 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
573 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
574
575 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
576
577 * config/t-slibgcc-darwin: Move to ...
578 * config/t-slibgcc-dummy: ... this. Clarify comments.
579 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
580 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
581 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
582 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
583 Remove i386/t-crtstuff from tmake_file.
584 (i[34567]86-*-solaris2*): Remove t-svr4,
585 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
586 t-slibgcc-dummy.
587 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
588 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
589 sparc/t-crtfm from tmake_file.
590 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
591 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
592 Remove extra_parts.
593 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
594 * config/i386/t-nwld (SHLIB_LINK): Remove.
595 * config/i386/t-rtems-i386: Rename to ...
596 * config/i386/t-rtems: ... this.
597 ($(T)crti.o, $(T)crtn.o): Remove.
598 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
599 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
600 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
601 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
602 EXTRA_MULTILIB_PARTS): Remove.
603 * config/sparc/t-sol2-64: Likewise.
604 * config/sparc/t-sol2: Remove.
605 * config/sparc/t-crtin: Remove.
606 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
607 * config/i386/gmon-sol2.c: Remove.
608 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
609 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
610 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
611 * config/i386/sol2-gc1.asm: Remove.
612 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
613 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
614 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
615 * config/t-slibgcc-sld: Remove.
616
617 2011-06-01 Jakub Jelinek <jakub@redhat.com>
618
619 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
620 base_type_for_mode with op_mode instead of mode.
621
622 2011-06-01 Paul Brook <paul@cpodesourcery.com>
623
624 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
625 Cortex-A15.
626 * config/arm/arm-tune.md: Regenerate.
627 * config/arm/arm-tables.opt: Regenerate.
628 * config/arm/arm.c (FL_DIV): Rename...
629 (FL_THUMB_DIV): ... to this.
630 (FL_ARM_DIV): Define.
631 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
632 (arm_arch_hwdiv): Remove.
633 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
634 (arm_issue_rate): Add cortexr5.
635 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
636 __ARM_ARCH_EXT_IDIV__.
637 (TARGET_IDIV): Define.
638 (arm_arch_hwdiv): Remove.
639 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
640 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
641 (divsi3, udivsi3): New patterns.
642 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
643 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
644
645 2011-06-01 Martin Jambor <mjambor@suse.cz>
646
647 * ipa-utils.c (ipa_dfs_info): New field scc_no.
648 * ipa-utils.c (searchc): Set scc_no.
649
650 2011-06-01 Martin Jambor <mjambor@suse.cz>
651
652 * ipa-utils.c (searchc_env): New field allow_overwritable.
653 (searchc): do not ignore edges to overwritable nodes if indicated
654 by env->allow_overwritable.
655 (ipa_reduced_postorder): Set env.allow_overwritable.
656
657 2011-06-01 Richard Guenther <rguenther@suse.de>
658
659 * tree.c (free_lang_data): Do not reset boolean_type_node nor
660 char_type_node.
661 * lto-streamer.c (lto_record_common_node): Take node pointer,
662 do not register types.
663 (lto_preload_common_nodes): Explicitly skip preloading nodes
664 that differ between frontends.
665
666 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
667
668 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
669 NON_FLOAT_REGS.
670
671 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
672
673 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
674 parameter value for dump. Dump cost on outermost call only.
675 (rs6000_memory_move_cost): Dump cost on outermost call only.
676
677 2011-05-31 Jakub Jelinek <jakub@redhat.com>
678
679 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
680 DW_OP_GNU_convert ops.
681
682 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
683 cselib_preserve_constants.
684 (cselib_lookup_1): If cselib_preserve_constants,
685 a new VALUE is being created for REG and there is a VALUE for the
686 same register in wider mode, add another loc with lowpart SUBREG of
687 the wider VALUE.
688 (cselib_subst_to_values): Handle ENTRY_VALUE.
689 * var-tracking.c (replace_expr_with_values): Return NULL for
690 ENTRY_VALUE too.
691 * dwarf2out.c (convert_descriptor_to_signed): New function.
692 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
693 instead of two shifts.
694 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
695 the right mode if needed.
696 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
697 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
698 convert_descriptor_to_signed.
699 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
700 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
701
702 PR target/48688
703 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
704
705 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
706
707 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
708 of X87MODEI12 and SWI48x instead of SSEMODEI24.
709 (SWI248x): New mode iterator, rename from X87MODEI.
710 (X87MODEI): Remove mode iterator.
711 (X87MODEI12): Ditto.
712 (SSEMODEI24): Ditto.
713
714 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
715
716 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
717 * doc/invoke.texi: Document max-vartrack-expr-depth.
718 * var-tracking.c (EXPR_DEPTH): New.
719 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
720
721 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
722
723 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
724 * config/i386/sse.md: Add n to negated FMA pattern names.
725
726 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
727
728 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
729
730 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
731
732 * gengtype-state.c (read_state_params_structs): Initialize previous.
733
734 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
735
736 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
737 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
738
739 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
740
741 * config/i386/i386.md (*movtf_internal): Avoid allocating general
742 registers. Penalize F*r->o alternative to prevent partial memory
743 stalls. Slightly penalize *roF->*r alternative. Generate SSE
744 CONST_DOUBLE immediates when optimizing function for size. Do not move
745 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
746 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
747 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
748 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
749 alternatives.
750 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
751
752 (fp_register_operand splitters): Use fp_register_operand
753 constraint. Do not use FP_REG_P in insn condition.
754 (any_fp_register_operand splitters): Use any_fp_register_operand
755 constraint. Do not use ANY_FP_REG_P in insn condition.
756
757 2011-05-31 Jan Hubicka <jh@suse.cz>
758
759 * cgraph.h (cgraph_inline_failed_t): Give enum a name
760 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
761 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
762 (lto_output_edge): Use output_enum and var_len_unsigned.
763 (lto_output_varpool_node): Likewise.
764 (input_overwrite_node): Do not take resolution parameter;
765 extract it from a bitpack.
766 (input_node): Do not read resolution; use input_enum and
767 var_len_unsigned.
768 (input_varpool_node): Likewise.
769 (input_edge): Likewise.
770 (input_cgraph_1): Likewise.
771
772 2011-05-31 Richard Guenther <rguenther@suse.de>
773
774 * gimple.c (gimple_register_canonical_type): Do not register
775 any types via gimple_register_type.
776
777 2011-05-31 Jan Hubicka <jh@suse.cz>
778
779 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
780 of thunks.
781
782 2011-05-31 Jakub Jelinek <jakub@redhat.com>
783
784 PR rtl-optimization/49235
785 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
786 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
787
788 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
789
790 PR tree-optimization/49093
791 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
792 data references.
793
794 2011-05-31 Dodji Seketeli <dodji@redhat.com>
795
796 PR debug/49047
797 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
798 for concrete functions containing the code of cloned functions.
799
800 2011-05-31 Richard Guenther <rguenther@suse.de>
801
802 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
803 to ...
804 (forward_propagate_into_comparison_1): ... this.
805 (forward_propagate_comparison): Rename to ...
806 (forward_propagate_into_comparison): ... this. Split out
807 real forward propagation code to ...
808 (forward_propagate_comparison): ... this.
809 (forward_propagate_into_gimple_cond): Remove looping.
810 (forward_propagate_into_cond): Likewise.
811 (simplify_not_neg_expr): Return whether we have done something.
812 (simplify_gimple_switch): Likewise.
813 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
814 (ssa_forward_propagate_and_combine): ... this. Re-structure
815 to do a forward forward-propagation walk on BBs and a backward
816 stmt combining walk on BBs. Consistently re-scan changed statements.
817 (pass_forwprop): Adjust.
818
819 2011-05-30 Ian Lance Taylor <iant@google.com>
820
821 * godump.c (go_format_type): Correct length of name added to
822 obstack for anonymous field.
823
824 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
825
826 PR target/49186
827 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
828 part of the second operand is 0.
829
830 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
831
832 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
833 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
834 to memory for !TARGET_MEMORY_MISMATCH_STALL.
835 (*movdf_internal_rex64): Do not penalize F->r alternative.
836 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
837 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
838 when optimizing function for size. Do not move CONST_DOUBLEs
839 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
840 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
841 SUBREGs. Do not check for MEM_P operands in the insn condition,
842 check for ANY_FP_REGNO_P instead.
843 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
844 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
845 function for speed.
846 * config/i386/i386.c (ix86_option_override_internal): Do not
847 set TARGET_INTEGER_DFMODE_MOVES here.
848
849 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
850
851 PR target/49168
852 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
853
854 2011-05-30 Jakub Jelinek <jakub@redhat.com>
855
856 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
857 DW_TAG_rvalue_reference_type even for
858 -gdwarf-4 -fno-debug-types-section.
859
860 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
861
862 PR tree-optimization/46728
863 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
864 (build_and_insert_binop): New.
865 (gimple_expand_builtin_pow): Reorder args for
866 build_and_insert_call; use build_and_insert_binop; add more
867 optimizations for fractional exponents.
868
869 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
870
871 PR bootstrap/49190
872
873 Revert:
874 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
875
876 * tree.h (struct tree_identifier): Inherit from tree_typed, not
877 tree_common.
878 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
879 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
880 TS_BASE instead of TS_COMMON.
881 * varasm.c (assemble_name): Remove assert.
882
883 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
884
885 * config.gcc: Keep obselete list sorted.
886
887 2011-05-30 Jakub Jelinek <jakub@redhat.com>
888 Eric Botcazou <ebotcazou@adacore.com>
889
890 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
891 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
892 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
893 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
894 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
895
896 2011-05-30 Richard Guenther <rguenther@suse.de>
897
898 * gimple.c (gimple_types_compatible_p_1): Compare record
899 and union type members properly.
900
901 2011-05-30 Richard Guenther <rguenther@suse.de>
902
903 PR tree-optimization/49210
904 * ipa-split.c (split_function): Care for the case where the call
905 result is not trivially convertible to the result holding variable.
906
907 2011-05-30 Richard Guenther <rguenther@suse.de>
908
909 PR tree-optimization/49218
910 * tree-vrp.c (adjust_range_with_scev): Properly check whether
911 overflow occured.
912
913 2011-05-30 Richard Guenther <rguenther@suse.de>
914
915 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
916 New function split out from ...
917 (forward_propagate_into_gimple_cond): ... here. Adjust.
918 (forward_propagate_into_cond): Likewise.
919 (forward_propagate_comparison): Also propagate into
920 comparisons on assignment RHS. Change return value to
921 behave similar to forward_propagate_into_cond.
922 (tree_ssa_forward_propagate_single_use_vars): Handle
923 strict-overflow warnings properly for forward_propagate_comparison.
924
925 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
926
927 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
928 from plugin linker.
929 * configure: Regenerate.
930
931 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
932
933 PR tree-optimization/49199
934 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
935 non-reduction operands are either defined in the loop or by induction.
936
937 2011-05-29 Xinliang David Li <davidxl@google.com>
938
939 * opts-global.c (handle_common_deferred_options): Handle new options.
940 * passes.c (register_one_dump_file): Call register_pass_name.
941 (execute_one_pass): Check explicit enable/disable flag.
942 (passr_hash): New function.
943 (passr_eq): Ditto.
944 (register_pass_name): Ditto.
945 (get_pass_by_name): Ditto.
946 (pass_hash): Ditto.
947 (pass_eq): Ditto.
948 (enable_pass): Ditto.
949 (disable_pass): Ditto.
950 (is_pass_explicitly_enabled_or_disabled): Ditto.
951
952 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
953
954 * config/i386/i386.md (*movoi_internal_avx): Use
955 standard_sse_constant_opcode for alternative 0.
956 (*movti_internal_sse): Ditto.
957 (*movti_internal_rex64): Use standard_sse_constant_opcode for
958 alternative 2.
959 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
960 sselog1 type moves.
961 (*movsi_internal): Ditto.
962 (*movdi_internal): Ditto. Add ssecvt type moves.
963
964 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
965
966 PR target/48830
967 * rtlanal.c (simplify_subreg_regno): Adjust comment.
968
969 2011-05-29 Jakub Jelinek <jakub@redhat.com>
970
971 PR rtl-optimization/49095
972 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
973 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
974
975 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
976
977 PR target/43995
978 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
979 recurse_p argument. Only follow register copies if it is set,
980 and prevent mips_find_pic_call_symbol from recursing.
981 (mips_find_pic_call_symbol): Add a recurse_p argument.
982 Pass it to mips_pic_call_symbol_from_set.
983 (mips_annotate_pic_calls): Update accordingly.
984
985 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
986
987 * emit-rtl.c (try_split): Use a loop to search for
988 NOTE_INSN_CALL_ARG_LOCATIONs.
989
990 2011-05-29 Richard Guenther <rguenther@suse.de>
991
992 PR tree-optimization/49217
993 * ipa-pure-const.c (propagate_pure_const): Fix typos.
994
995 2011-05-28 Jan Hubicka <jh@suse.cz>
996
997 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
998 length.
999 (string_slot_free): Remove
1000 (create_output_block): Initialize obstack.
1001 (destroy_output_block): Free obstack.
1002 (lto_string_index): Add PERSISTENT parameter; do not duplicate
1003 the string unless it needs to be added into the hash.
1004 (lto_output_string_with_length): Add persistent attribute;
1005 handle NULL strings.
1006 (lto_output_string): Add PERSISTENT parameter.
1007 (output_string_cst, output_identifier): Simplify.
1008 (lto_output_location_bitpack): Update.
1009 (lto_output_builtin_tree): Update.
1010 * lto-streamer.h (struct output_block): Add obstack.
1011 (lto_output_string, lto_output_string_with_length): Remove
1012 declarations; functions are static now.
1013
1014 2011-05-28 Jan Hubicka <jh@suse.cz>
1015
1016 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
1017 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
1018 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
1019 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
1020 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
1021 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
1022 unpack_ts_decl_with_vis_value_fields,
1023 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
1024 lto_get_builtin_tree): Use enum and variable length i/o.
1025 * basic-block.h (profile_status_d): Add PROFILE_LAST.
1026 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
1027 New functions.
1028 (bp_pack_enum, bp_unpack_enum): New macros.
1029
1030 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
1031
1032 * genrecog.c: Remove redundant forward declarations.
1033
1034 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
1035
1036 * config.gcc: Deprecate mips*-*-openbsd*.
1037
1038 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
1039
1040 PR bootstrap/49195
1041 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
1042 for match_op_dup.
1043
1044 2011-05-27 Andrew Pinski <pinskia@gmail.com>
1045
1046 PR middle-end/48981
1047 * gengtype.c (vec_prefix_type): New function.
1048 (note_def_vec): Use vec_prefix_type and change the length
1049 attribute to be based on the prefix.
1050 * vec.c: Include coretypes.h before vec.h.
1051 (struct vec_prefix): Remove.
1052 (vec_gc_p_reserve): Change the offsetof to sizeof.
1053 (vec_gc_p_reserve_exact): Likewise.
1054 (vec_heap_p_reserve): Likewise.
1055 (vec_heap_p_reserve_exact): Likewise.
1056 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
1057 (vec_stack_p_reserve): Change the offsetof to sizeof.
1058 (vec_stack_p_reserve_exact): Likewise.
1059 * vec.h (struct vec_prefix): New struct definition.
1060 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
1061 (VEC_T_GTY(T,B)): Likewise.
1062 (DEF_VEC_FUNC_P(T)): Use prefix field.
1063 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
1064 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
1065
1066 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1067
1068 PR tree-optimization/46728
1069 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
1070 (powi_as_mults): Add gimple_set_location.
1071 (build_and_insert_call): New.
1072 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
1073 0.5, 0.25, 0.75, 1./3., or 1./6.
1074
1075 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
1076
1077 * doc/contrib.texi: Update copyright years.
1078 (Contributors): Add Zdenek Sojka.
1079
1080 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
1081
1082 * c-decl.c (c_push_function_context): Copy the current statement
1083 list stack.
1084 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
1085 (finish_struct): Call building_stmt_list_p instead of checking
1086 cur_stmt_list.
1087 * c-parser.c (c_parser_postfix_expression): Likewise.
1088 * c-typeck.c (c_end_compound_stmt): Likewise.
1089 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
1090 * tree-iterator.c (stmt_list_cache): Change to a VEC.
1091 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
1092 (free_stmt_list): Likewise.
1093 * tree.h (struct tree_statement_list): Include typed_tree instead
1094 of tree_common.
1095 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
1096 as TS_TYPED instead of TS_COMMON.
1097
1098 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1099 Uros Bizjak <ubizjak@gmail.com>
1100
1101 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
1102 (HAVE_AS_IX86_TLSGDPTL): Define.
1103 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
1104 (HAVE_AS_IX86_TLSLDMPLT): Define.
1105 * configure: Regenerate.
1106 * config.in: Regenerate.
1107 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
1108 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
1109 TARGET_SUN_TLS, use @tlsgdplt or @plt.
1110 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
1111 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
1112 @tlsldmplt or @plt.
1113 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
1114
1115 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
1116
1117 * sched-int.h (struct _haifa_deps_insn_data): New members cond
1118 and reverse_cond.
1119 (INSN_COND, INSN_REVERSE_COND): New macros.
1120 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
1121 once.
1122 (sched_get_condition_with_rev): Cache the results, and look them up
1123 if possible.
1124 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
1125 are clobbered by the current insn.
1126 * target.def (exposed_pipline): New sched data hook.
1127 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
1128 * doc/tm.texi: Regenerate.
1129
1130 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1131
1132 PR tree-optimization/49170
1133 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
1134 sincos or cexp.
1135
1136 2011-05-27 Richard Guenther <rguenther@suse.de>
1137
1138 PR middle-end/49189
1139 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
1140 of comparisons.
1141
1142 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
1143
1144 * haifa-sched.c (sched_scan_info): Remove.
1145 (schedule_block): Call sched_extend_luids rather than sched_init_luids
1146 with NULL args.
1147 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
1148 Remove functions.
1149 (sched_scan): Remove.
1150 (sched_extend_luids): Renamed from luids_extend_insn and no longer
1151 static. All callers changed.
1152 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
1153 static. All callers changed.
1154 (sched_init_luids): Remove all arguments except the first. All
1155 callers changed. Don't use sched_scan.
1156 (haifa_init_h_i_d): Likewise.
1157 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
1158 manually rather than using sched_init_luids. Likewise with
1159 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
1160 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
1161 rather than sched_init_luids with NULL args.
1162 * sel-sched-ir.c (new_insns): Remove variable.
1163 (sched_scan): New static function, previously in haifa-sched.c. Remove
1164 all arguments but the first two; all callers changed.
1165 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
1166 rather than sched_init_luids.
1167 (sel_init_bbs): Remove second argument. All callers changed.
1168 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
1169 with NULL arguments.
1170 (create_insn_rtx_from_pattern): Likewise.
1171 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
1172 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
1173 (sched_init_insn_luid, sched_extend_luids): Declare.
1174 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
1175 declarations.
1176
1177 2011-05-27 Richard Guenther <rguenther@suse.de>
1178
1179 PR middle-end/49177
1180 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
1181 A CMP B ? (T) true : (T) false for non-integral types T again.
1182
1183 2011-05-27 Jan Hubicka <jh@suse.cz>
1184
1185 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
1186 so 0 means NULL string.
1187 (lto_output_string_with_length): ... here.
1188 (lto_output_string, output_string_cst, output_identifier): Update
1189 handling of NULL strings.
1190 (lto_output_location_bitpack): New function.
1191 (lto_output_location): Use it.
1192 (lto_output_tree_ref): Use output_record_start.
1193 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
1194 len values.
1195 * lto-streamer-in.c (string_for_index): Break out from ...; offset
1196 values by 1.
1197 (input_string_internal): ... here;
1198 (input_string_cst, input_identifier, lto_input_string): Update handling
1199 of NULL strings.
1200 (lto_input_location_bitpack): New function
1201 (lto_input_location): Use it.
1202 (unpack_ts_type_common_value_fields): Pack align & alias in var len
1203 values.
1204 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
1205 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
1206 (bp_pack_value): Sanity check the value range.
1207 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
1208 New functions.
1209 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
1210 New functions.
1211
1212 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
1213
1214 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
1215 call_arg_location instructions down the floor.
1216
1217 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
1218
1219 PR rtl-optimization/49154
1220 * ira.c (setup_pressure_classes): Process class without sublcasses
1221 as a candidate for pressure classes.
1222
1223 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
1224
1225 PR rtl-optimization/48575
1226 * genrecog.c (position_type): New enum.
1227 (position): New structure.
1228 (decision): Use position structure instead of a string.
1229 (root_pos, peep2_insn_pos_list): New variables.
1230 (next_position, compare_positions): New functions.
1231 (new_decision): Use position structures instead of strings.
1232 (maybe_both_true): Likewise.
1233 (change_state): Likewise.
1234 (write_tree): Likewise.
1235 (make_insn_sequence): Likewise.
1236
1237 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
1238
1239 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
1240 TS_BASE instead of TS_COMMON.
1241 (find_decls_types_r): Check for TS_TYPED structure before looking at
1242 TREE_TYPE.
1243 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
1244 Add chain field.
1245 (BLOCK_CHAIN): Use new chain field.
1246
1247 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
1248
1249 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
1250 moves expensive on Power7 also.
1251
1252 2011-05-26 Richard Guenther <rguenther@suse.de>
1253
1254 * fold-const.c (fold_unary_loc): Remove bogus code.
1255
1256 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
1257
1258 * tree.h (struct tree_identifier): Inherit from tree_typed, not
1259 tree_common.
1260 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
1261 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
1262 TS_BASE instead of TS_COMMON.
1263 * varasm.c (assemble_name): Remove assert.
1264
1265 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
1266
1267 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
1268 substituted first.
1269 * libgcc-std.ver: Delete file.
1270
1271 2011-05-26 Richard Guenther <rguenther@suse.de>
1272
1273 PR tree-optimization/48702
1274 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
1275 only when we know the base address is within bounds.
1276 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
1277 assume the base address of TARGET_MEM_REFs is in bounds.
1278
1279 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1280
1281 PR target/49099
1282 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
1283 declaration in TARGET_SOLARIS.
1284
1285 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
1286
1287 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
1288 The instruction is then expanded explicitly.
1289 (supported_compare): Callable instruction.
1290 (compare): Likewise.
1291
1292 2011-05-26 Jakub Jelinek <jakub@redhat.com>
1293
1294 PR c++/49165
1295 * gimplify.c (shortcut_cond_r): Don't special case
1296 COND_EXPRs if they have void type on one of their arms.
1297
1298 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
1299
1300 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
1301 to reduce duplication, and to achieve a slightly more logical order
1302 of operations.
1303
1304 2011-05-26 Jakub Jelinek <jakub@redhat.com>
1305
1306 PR tree-optimization/49161
1307 * tree-vrp.c (struct case_info): New type.
1308 (compare_case_labels): Sort case_info structs instead of
1309 trees, and not primarily by CASE_LABEL uids but by
1310 label_for_block indexes.
1311 (find_switch_asserts): Put case labels into struct case_info
1312 array instead of TREE_VEC, adjust sorting, compare label_for_block
1313 values instead of CASE_LABELs.
1314
1315 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1316
1317 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
1318 ("orndi3_neon"): Likewise.
1319 ("bic<mode>3_neon"): Likewise.
1320
1321 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
1322
1323 PR tree-optimization/49038
1324 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
1325 Ensure at least one epilogue iteration if required by data
1326 accesses with gaps.
1327 * tree-vectorizer.h (struct _loop_vec_info): Add new field
1328 to mark loops that require peeling for gaps.
1329 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
1330 (vect_get_known_peeling_cost): Take peeling for gaps into
1331 account.
1332 (vect_transform_loop): Generate epilogue if required by data
1333 access with gaps.
1334 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
1335 loop as requiring an epilogue if there are gaps in the end of
1336 the strided group.
1337
1338 2011-05-25 Ian Lance Taylor <iant@google.com>
1339
1340 * godump.c (go_format_type): Output the first field with a usable
1341 Go type, if any.
1342
1343 2011-05-25 Ian Lance Taylor <iant@google.com>
1344
1345 * godump.c (go_format_type): Check for invalid type names, pointer
1346 target types, and struct field types.
1347
1348 2011-05-25 Jason Merrill <jason@redhat.com>
1349
1350 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
1351
1352 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
1353
1354 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
1355
1356 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
1357
1358 * config/i386/i386.md (*movqi_extv_1)): Put back
1359 "register_operand" check in "type" calculation.
1360 (*movqi_extzv_2): Likewise.
1361
1362 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
1363
1364 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
1365
1366 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
1367
1368 PR bootstrap/49160
1369 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
1370 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
1371 __divxc3, __divtc3): Wrap definitions in #ifndef.
1372
1373 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
1374
1375 PR target/49142
1376 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
1377 "register_operand" check and replace q_regs_operand with
1378 QIreg_operand in "type" calculation.
1379 (*movqi_extv_1): Likewise.
1380 (*movqi_extzv_2_rex64): Likewise.
1381 (*movqi_extzv_2): Likewise.
1382
1383 * config/i386/predicates.md (QIreg_operand): New.
1384
1385 2011-05-25 Richard Guenther <rguenther@suse.de>
1386
1387 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
1388 type-based offset disambiguation, streamline MEM_REF and
1389 TARGET_MEM_REF handling.
1390
1391 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
1392
1393 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
1394 (bdesc_special_args): Add pause intrinsic.
1395
1396 * config/i386/i386.md (UNSPEC_PAUSE): New.
1397 (pause): Likewise.
1398 (*pause): Likewise.
1399 * config/i386/ia32intrin.h (__pause): Likewise.
1400
1401 * doc/extend.texi (X86 Built-in Functions): Add documentation for
1402 pause intrinsic.
1403
1404 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1405
1406 PR tree-optimization/46728
1407 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
1408 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
1409
1410 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
1411
1412 * tree.h (struct tree_exp): Inherit from struct tree_typed.
1413 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
1414 instead of TS_COMMON.
1415
1416 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
1417
1418 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
1419 LIBGCC2_GNU_PREFIX is defined.
1420 (__N): New macro.
1421 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
1422 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
1423 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
1424 __clz_tab): Define using __N.
1425 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
1426 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1427 * target.def (libfunc_gnu_prefix): New hook.
1428 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
1429 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
1430 * doc/tm.texi: Regenerate.
1431 * system.h (LIBGCC2_GNU_PREFIX): Poison.
1432 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
1433 account.
1434 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
1435 (init_optabs): Likewise for the bswap libfuncs.
1436 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
1437 and divide.
1438 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
1439 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
1440 * libgcc-std.ver: Remove.
1441 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
1442 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
1443 libgcc-std.ver.
1444 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1445 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
1446 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
1447 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
1448 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
1449 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1450 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
1451 * config/fixed-bit.h (FIXED_OP): Define differently depending on
1452 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
1453 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
1454
1455 2011-05-25 Jan Hubicka <jh@suse.cz>
1456
1457 * lto-streamer-out.c (output_record_start): Use lto_output_enum
1458 (lto_output_tree): Use output_record_start.
1459 * lto-streamer-in.c (input_record_start): Use lto_input_enum
1460 (lto_get_pickled_tree): Use input_record_start.
1461 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
1462 (lto_value_range_error): New function.
1463 * lto-streamer.h (lto_value_range_error): Declare.
1464 (lto_output_int_in_range, lto_input_int_in_range): New functions.
1465 (lto_output_enum, lto_input_enum): New macros.
1466
1467 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
1468
1469 * common.opt (flag_stack_usage_info): New variable.
1470 (-Wstack-usage): New option.
1471 * doc/invoke.texi (Warning options): Document -Wstack-usage.
1472 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
1473 <OPT_fstack_usage>: Likewise.
1474 * toplev.c (output_stack_usage): Handle -Wstack-usage.
1475 * calls.c (expand_call): Test flag_stack_usage_info variable instead
1476 of flag_stack_usage.
1477 (emit_library_call_value_1): Likewise.
1478 * explow.c (allocate_dynamic_stack_space): Likewise.
1479 * function.c (instantiate_virtual_regs ): Likewise.
1480 (prepare_function_start): Likewise.
1481 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
1482 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
1483 * config/arm/arm.c (arm_expand_prologue): Likewise.
1484 (thumb1_expand_prologue): Likewise.
1485 * config/avr/avr.c (expand_prologue): Likewise.
1486 * config/i386/i386.c (ix86_expand_prologue): Likewise.
1487 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1488 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
1489 * config/mips/mips.c (mips_expand_prologue): Likewise.
1490 * config/pa/pa.c (hppa_expand_prologue): Likewise.
1491 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1492 * config/s390/s390.c (s390_emit_prologue): Likewise.
1493 * config/sh/sh.c (sh_expand_prologue): Likewise.
1494 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1495 * config/spu/spu.c (spu_expand_prologue): Likewise.
1496
1497 2011-05-25 Richard Guenther <rguenther@suse.de>
1498
1499 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
1500 (gimple_canonical_types_compatible_p): Likewise.
1501
1502 2011-05-25 Jan Hubicka <jh@suse.cz>
1503
1504 PR middle-end/49062
1505 * ipa.c (function_and_variable_visibility): Only add to same
1506 comdat group list if DECL_ONE_ONLY.
1507
1508 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
1509
1510 PR rtl-optimization/49014
1511 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
1512
1513 2011-05-25 Jakub Jelinek <jakub@redhat.com>
1514
1515 PR target/49128
1516 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1517
1518 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1519
1520 PR rtl-optimization/48757
1521 * ira-build.c (loop_with_eh_edge_p): Rename to
1522 loop_with_complex_edge_p, check edges on complexity, make function
1523 conditional.
1524 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
1525 conditional.
1526
1527 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1528
1529 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
1530 force flag_ira_share_save_slots to 0.
1531
1532 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1533
1534 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
1535 (vt_initialize): Set PROLOGUE_BB unconditionally.
1536 Add block comment about CFA_BASE_RTX machinery.
1537 Reset FP_CFA_OFFSET to -1 on all invalid paths.
1538 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
1539
1540 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
1541
1542 PR objc/48187
1543 * c-parser.c (c_parser_objc_class_instance_variables): More robust
1544 parsing of syntax error in ObjC instance variable lists. In
1545 particular, avoid an infinite loop if there is a stray ']'.
1546 Updated error message.
1547
1548 2011-05-24 Ian Lance Taylor <iant@google.com>
1549
1550 * godump.c (go_define): Don't accept a string immediately after
1551 another operand.
1552
1553 2011-05-24 Ian Lance Taylor <iant@google.com>
1554
1555 * godump.c (struct godump_container): Add invalid_hash field.
1556 (go_format_type): Return false if type is found in invalid_hash.
1557 (go_output_typedef): Add invalid type to invalid_hash.
1558 (go_finish): Create and delete invalid_hash.
1559
1560 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1561
1562 PR tree-optimization/46728
1563 * tree-ssa-math-opts.c (powi_table): New.
1564 (powi_lookup_cost): New.
1565 (powi_cost): New.
1566 (powi_as_mults_1): New.
1567 (powi_as_mults): New.
1568 (gimple_expand_builtin_powi): New.
1569 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
1570 (gate_cse_sincos): Remove sincos/cexp restriction.
1571
1572 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1573
1574 PR target/3746
1575 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
1576 mips-tdump native.
1577 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
1578 * mips-tdump.c: Likewise.
1579
1580 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
1581
1582 PR target/49128
1583 * config/i386/driver-i386.c (host_detect_local_cpu): Always
1584 add -mno-XXX. Handle FMA.
1585
1586 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1587
1588 PR rtl-optimization/48633
1589 * ira-build.c (loop_with_eh_edge_p): New function.
1590 (mark_loops_for_removal): Use it.
1591
1592 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1593
1594 PR rtl-optimization/48971
1595 * ira.c (setup_pressure_classes): Don't check register move cost
1596 for classes with one registers. Don't add pressure class if there
1597 is a pressure class with the same available hard registers.
1598 Check contains_reg_of_mode. Fix a typo in collecting
1599 temp_hard_regset. Ignore hard registers not belonging to a class.
1600
1601 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
1602
1603 PR target/49133
1604 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
1605
1606 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1607 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1608
1609 PR gcov-profile/48845
1610 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
1611
1612 2011-05-24 Richard Guenther <rguenther@suse.de>
1613
1614 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
1615 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
1616 (gimple_types_compatible_p_1): Adjust.
1617 (iterative_hash_canonical_type): Do not bother about complete vs.
1618 incomplete types.
1619 (gimple_canonical_types_compatible_p): Likewise.
1620
1621 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1622
1623 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
1624
1625 2011-05-24 Richard Guenther <rguenther@suse.de>
1626
1627 PR bootstrap/49078
1628 * gimple.c (gimple_register_canonical_type): Revert
1629 previous change.
1630 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
1631 does not for a tree for the case where it matters. Cache
1632 pointer-type alias-sets.
1633
1634 2011-05-24 Joseph Myers <joseph@codesourcery.com>
1635
1636 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
1637 (OBJS): Remove options.o, opts-common.o and prefix.o.
1638 (OBJS-libcommon-target): New.
1639 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
1640 (BACKEND): Include libcommon-target.a.
1641 (MOSTLYCLEANFILES): Include libcommon-target.a.
1642 (libcommon-target.a): New.
1643 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
1644 prefix.o.
1645
1646 2011-05-23 Joseph Myers <joseph@codesourcery.com>
1647
1648 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
1649 parts of output shared with the driver.
1650 * optc-gen.awk: Don't generate parts of output not shared with the
1651 driver.
1652 * opth-gen.awk: Remove GCC_DRIVER conditionals.
1653 * doc/options.texi (SourcerInclude): Mention options-save.c.
1654 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
1655 (OBJS): Add options-save.o.
1656 (options-save.c, options-save.o): New.
1657 (options.o): Update dependencies.
1658 (gcc-options.o): Remove.
1659 (mostlyclean): Remove options-save.c.
1660
1661 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1662
1663 PR debug/49032
1664 * dbxout.c: Include cgraph.h.
1665 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
1666 and without value expr, return NULL if no varpool node exists for
1667 it or if it is not needed.
1668 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
1669
1670 PR c/49120
1671 * c-decl.c (start_decl): Convert expr to void_type_node.
1672
1673 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
1674
1675 PR rtl-optimization/48826
1676 * emit-rtl.c (try_split): When splitting a call that is followed
1677 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
1678
1679 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1680
1681 * cfgexpand.c (expand_debug_expr): For unused non-addressable
1682 parameters passed in memory prefer using DECL_INCOMING_RTL over
1683 the pseudos it will be copied into.
1684
1685 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
1686
1687 PR target/47315
1688 * config/i386/i386.c (ix86_option_override_internal): Save the
1689 initial options after checking vzeroupper.
1690
1691 2011-05-23 David Li <davidxl@google.com>
1692
1693 PR tree-optimization/48988
1694 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1695 Initialize has_valid_pred for each pred chain.
1696
1697 2011-05-23 Richard Guenther <rguenther@suse.de>
1698
1699 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1700 (iterative_hash_gimple_type): Always hash type names.
1701
1702 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
1703
1704 * c-typeck.c (build_function_call_vec): Tweak call to
1705 check_function_arguments.
1706
1707 2011-05-23 Richard Guenther <rguenther@suse.de>
1708
1709 PR tree-optimization/49115
1710 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1711 is not necessarily carried out, do not claim it kills the ref.
1712 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1713
1714 2011-05-23 Richard Guenther <rguenther@suse.de>
1715
1716 PR middle-end/15419
1717 * builtins.c (fold_builtin_memory_op): Be less restrictive about
1718 what pointer types we accept for folding.
1719
1720 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1721
1722 * gthr-gnat.c: Remove.
1723 * gthr-gnat.h: Remove.
1724 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1725 * config/t-freebsd (LIB2ADDEH): Likewise.
1726 * config/t-linux (LIB2ADDEH): Likewise.
1727 * config/t-sol2 (LIB2ADDEH): Likewise.
1728 * config/ia64/t-vms (LIB2ADDEH): Likewise.
1729 * configure.ac (target_thread_file): Remove gnat handling.
1730 * configure: Regenerate.
1731 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1732
1733 2011-05-23 Tristan Gingold <gingold@adacore.com>
1734 Eric Botcazou <ebotcazou@adacore.com>
1735
1736 * gcov.c (create_file_names): If no object directory is specified,
1737 keep the directory of the file.
1738
1739 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1740
1741 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1742 * configure: Regenerate.
1743
1744 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1745
1746 PR middle-end/48973
1747 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1748 failed and the comparison has a single bit signed type, use
1749 constm1_rtx instead of const1_rtx for true value.
1750 (do_store_flag): If ops->type is single bit signed type, disable
1751 signel bit test optimization and pass -1 instead of 1 as last
1752 parameter to emit_store_flag_force.
1753
1754 2011-05-23 Tom de Vries <tom@codesourcery.com>
1755
1756 PR target/45098
1757 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1758 function.
1759 (infer_loop_bounds_from_undefined): Use new function.
1760
1761 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1762
1763 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1764 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
1765 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1766 and -O0 otherwise.
1767 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1768
1769 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1770
1771 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1772 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1773 returns true.
1774
1775 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1776
1777 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1778
1779 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1780
1781 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1782 UNSPEC_MOVE_PIC pattern.
1783
1784 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1785
1786 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1787 (sparc-*-rtems*): Likewise.
1788 (sparc64-*-elf*): Likewise.
1789 (sparc64-*-rtems*): Likewise.
1790 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
1791 * config/sparc/t-crtin: New file.
1792 * config/sparc/t-sol2 (crti.o): Delete rule.
1793 (crtn.o): Likewise.
1794 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1795 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1796 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1797 (ENDFILE_SPEC): Add crtn.o.
1798
1799 2011-05-22 Tom de Vries <tom@codesourcery.com>
1800
1801 PR middle-end/48689
1802 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1803 CODE_CONTAINS_STRUCT (TS_COMMON).
1804
1805 2011-05-22 Jakub Jelinek <jakub@redhat.com>
1806
1807 PR middle-end/49029
1808 * expmed.c (extract_fixed_bit_field): Test whether target can be used
1809 only after deciding which mode to use.
1810
1811 2011-05-22 Tom de Vries <tom@codesourcery.com>
1812
1813 PR target/45098
1814 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1815 for call to get_shiftadd_cost.
1816
1817 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
1818
1819 PR target/49104
1820 * config/i386/cpuid.h (bit_MMXEXT): New define.
1821
1822 2011-05-22 Nick Clifton <nickc@redhat.com>
1823
1824 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1825 initialisation of non-existant args[2] element. Use args[] array
1826 not arg[] array to pass arguments to build_function_type_list.
1827
1828 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
1829
1830 PR tree-optimization/49087
1831 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1832
1833 2011-05-21 Jason Merrill <jason@redhat.com>
1834
1835 PR c++/49092
1836 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1837 static storage duration.
1838
1839 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1840
1841 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1842 frame pointer.
1843
1844 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1845
1846 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1847 false if there are call-saved registers here...
1848 (sparc_can_use_return_insn_p): ...but here instead.
1849 (save_or_restore_regs): Fix thinko.
1850 (sparc_expand_prologue): Use current_function_is_leaf.
1851 (sparc_frame_pointer_required): Likewise.
1852
1853 2011-05-21 Nick Clifton <nickc@redhat.com>
1854
1855 PR target/49098
1856 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1857
1858 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
1859
1860 * gengtype.c (walk_type): Implemented "atomic" GTY option.
1861 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1862
1863 2011-05-21 Joseph Myers <joseph@codesourcery.com>
1864
1865 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
1866 * optc-gen.awk: Move common code to opt-read.awk.
1867 * opth-gen.awk: Likewise.
1868 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1869
1870 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
1871
1872 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1873
1874 2011-05-20 Tom de Vries <tom@codesourcery.com>
1875
1876 PR target/45098
1877 * tree-ssa-loop-ivopts.c: Include expmed.h.
1878 (get_shiftadd_cost): New function.
1879 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
1880
1881 2011-05-20 Jakub Jelinek <jakub@redhat.com>
1882
1883 PR bootstrap/49086
1884 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1885 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1886
1887 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1888
1889 * Makefile.in: Update comment referring to $(OBJS-common).
1890
1891 2011-05-20 Ian Lance Taylor <iant@google.com>
1892
1893 * godump.c (go_output_typedef): Put enum constants in the macro
1894 hash table to avoid duplicate Go const definitions.
1895
1896 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1897
1898 * Makefile.in (LIBDEPS): Add libcommon.a.
1899 (LIBS): Likewise.
1900 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1901 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1902 pretty-print.o and version.o.
1903 (OBJS-libcommon): New.
1904 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1905 (BACKEND): Add libcommon.a.
1906 (MOSTLYCLEANFILES): Likewise.
1907 (libcommon.a): New.
1908 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1909 (cpp$(exeext)): Likewise.
1910 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1911 pretty-print.o and input.o.
1912 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1913 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1914 (errors.o): Remove.
1915 (mips-tfile): Don't explicitly use version.o.
1916 (mips-tdump): Likewise.
1917 (gcov.o): Depend on $(DIAGNOSTIC_H).
1918 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1919 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1920 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1921 * gcov-dump.c: Include intl.h and diagnostic.h.
1922 (main): Initialize diagnostics.
1923 * gcov.c: Include diagnostic.h.
1924 (fnotice): Remove.
1925 (main): Initialize diagnostics.
1926 * lto-wrapper.c: Include diagnostic.h.
1927 (main): Initialize diagnostics.
1928
1929 2011-05-20 Michael Matz <matz@suse.de>
1930
1931 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1932
1933 2011-05-20 Michael Matz <matz@suse.de>
1934 Richard Guenther <rguenther@suse.de>
1935
1936 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1937 use lto_streamer_cache_append directly instead of returning a VEC.
1938 (preload_common_node): Remove.
1939 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1940 track seen nodes.
1941 (lto_streamer_cache_create): Call lto_preload_common_nodes.
1942
1943 2011-05-20 Richard Guenther <rguenther@suse.de>
1944
1945 PR tree-optimization/49079
1946 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1947 MEM_REFs correctly for the trailing array access detection.
1948 Special case constants the same way as decls for overall size
1949 constraining.
1950
1951 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
1952
1953 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1954 argument expansion.
1955
1956 2011-05-20 Jakub Jelinek <jakub@redhat.com>
1957
1958 PR tree-optimization/49073
1959 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1960 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1961 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1962
1963 2011-05-20 Richard Guenther <rguenther@suse.de>
1964
1965 PR middle-end/48849
1966 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1967 of pointer types the same way the middle-end does.
1968
1969 2011-05-20 Richard Guenther <rguenther@suse.de>
1970
1971 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1972 or pointer-to chains. Delay all fixup to uniquify_nodes.
1973
1974 2011-05-19 Quentin Neill <quentin.neill@amd.com>
1975
1976 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1977 (fma4_fmaddsub): Likewise
1978
1979 2011-05-19 Jan Hubicka <jh@suse.cz>
1980
1981 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1982 (GIMPLE_TYPE_PAIR_SIZE): New macro.
1983 (type_pair_cache): New static var.
1984 (lookup_type_pair): Use fixed sized custom hash; make inline.
1985 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1986 calls of lookup_type_pair.
1987 (print_gimple_types_stats): Remove cache stats.
1988 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1989 and gtc_ob.
1990
1991 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
1992
1993 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1994 when TARGET_RDRND is active.
1995 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1996 Generate dummy SImode target register when target is NULL.
1997
1998 2011-05-19 Joseph Myers <joseph@codesourcery.com>
1999
2000 * config/arm/arm-fpus.def: New.
2001 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
2002 arm-fpus.def.
2003 * config/arm/arm-tables.opt: Regenerate.
2004 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
2005 (arm_option_override): Don't decode FPU name to string here.
2006 * config/arm/arm.opt (mfpu=): Use Enum.
2007 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
2008 Update dependencies.
2009
2010 2011-05-19 Joseph Myers <joseph@codesourcery.com>
2011
2012 * collect2.c: Include diagnostic.h.
2013 (fatal_perror, fatal, error, fancy_abort): Remove.
2014 (main): Set progname. Call xmalloc_set_program_name and
2015 diagnostic_initialize.
2016 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
2017 scan_libraries, resolve_lib_name): Call fatal_error instead of
2018 fatal and fatal_perror.
2019 * collect2.h (error, fatal, fatal_perror): Don't declare.
2020 * tlink.c: Include diagnostic-core.h.
2021 (recompile_files): Call fatal_error instead of fatal_perror.
2022 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
2023 pretty-print.o and input.o.
2024 (collect2.o, tlink.o): Update dependencies.
2025
2026 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2027
2028 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
2029
2030 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2031
2032 PR target/40483
2033 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
2034 COMDAT group syntax, both SPARC and x86 variants.
2035 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
2036 * configure: Regenerate.
2037 * config/sol2.h (TARGET_SOLARIS): Define.
2038 (PUSHSECTION_FORMAT): Remove.
2039 (SECTION_NAME_FORMAT): Define.
2040 * config/sol2.c: Include hashtab.h.
2041 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
2042 expansion, using SECTION_NAME_FORMAT.
2043 (solaris_comdat_htab): New variable.
2044 (struct comdat_entry): Define.
2045 (comdat_hash): New function.
2046 (comdat_eq): New function.
2047 (solaris_elf_asm_comdat_section): New function.
2048 (solaris_define_comdat_signature): New function.
2049 (solaris_code_end): New function.
2050 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
2051 (solaris_code_end): Declare.
2052 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
2053 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
2054 solaris_code_end.
2055 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
2056 Remove ATTRIBUTE_UNUSED.
2057 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
2058 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
2059 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2060 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
2061 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
2062 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
2063 (PUSHSECTION_FORMAT): Remove.
2064 (SECTION_NAME_FORMAT): Redefine.
2065
2066 2011-05-19 Kai Tietz <ktietz@redhat.com>
2067
2068 * tree-cfg.c (verify_gimple_assign_binary): Barf on
2069 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
2070 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
2071
2072 2011-05-19 Anatoly Sokolov <aesok@post.ru>
2073 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2074
2075 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
2076
2077 2011-05-19 Richard Guenther <rguenther@suse.de>
2078
2079 PR middle-end/48985
2080 * tree-object-size.c (addr_object_size): If the pointed-to
2081 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
2082
2083 2011-05-19 Richard Guenther <rguenther@suse.de>
2084
2085 * gimple.c (gimple_types_compatible_p_1): Compare names of
2086 the types themselves.
2087 (iterative_hash_gimple_type): And hash them that way.
2088 (gimple_register_type_1): If we register a main variant properly
2089 initialize the leader to ourselves.
2090
2091 2011-05-19 Tom de Vries <tom@codesourcery.com>
2092
2093 PR target/45098
2094 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
2095 get_loop_invariant_expr_id.
2096 (get_loop_invariant_expr_id): Use get_expr_id.
2097 (parm_decl_cost): New function.
2098 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
2099 Improve bound cost estimation. Use different inv_expr_id for elim and
2100 express cases.
2101
2102 2011-05-19 Tom de Vries <tom@codesourcery.com>
2103
2104 PR target/45098
2105 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
2106 cost_base.cost == 0.
2107
2108 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
2109
2110 PR target/49002
2111 * config/i386/sse.md
2112 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
2113 load cast.
2114
2115 2011-05-18 Jakub Jelinek <jakub@redhat.com>
2116
2117 PR tree-optimization/49039
2118 * tree-vrp.c (extract_range_from_binary_expr): For
2119 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
2120 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
2121
2122 2011-05-18 Tom de Vries <tom@codesourcery.com>
2123
2124 PR target/45098
2125 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
2126
2127 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
2128
2129 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
2130 (*tls_global_dynamic_64): Ditto.
2131 (*tls_local_dynamic_base_32_gnu): Ditto.
2132 (*tls_local_dynamic_base_64): Ditto.
2133 (tls_initial_exec_64_sun): Ditto.
2134
2135 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
2136
2137 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
2138 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2139 bf592-none.
2140 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2141 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2142 * config/bfin/bfin.c (bfin_cpus): Add bf592.
2143 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2144 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
2145 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
2146 * config/bfin/elf.h (LIB_SPEC): Add bf592.
2147
2148 2011-05-18 Joseph Myers <joseph@codesourcery.com>
2149
2150 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
2151 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
2152 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
2153 target_thread_pointer, arm_structure_size_boundary, struct
2154 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
2155 struct abi_name, arm_all_abis): Remove.
2156 (arm_option_override) Don't process most enumerated option values here.
2157 Don't process target_fpe_name here. Work with integer not string for
2158 structure size boundary; use separate diagnostics for each case.
2159 * config/arm/arm.h (enum float_abi_type, enum
2160 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
2161 to arm-opts.h.
2162 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
2163 arm_structure_size_boundary): Remove.
2164 * config/arm/arm.opt (mabi=): Use Enum and Init.
2165 (arm_abi_type): New Enum and EnumValue entries.
2166 (mfloat-abi=): Use Enum and Init.
2167 (float_abi_type): New Enum and EnumValue entries.
2168 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
2169 (mfp16-format=): Use Enum and Init.
2170 (arm_fp16_format_type): New Enum and EnumValue entries.
2171 (mstructure-size-boundary=): Use UInteger and Init.
2172 (mtp=): Use Enum and Init.
2173 (arm_tp_type): New Enum and EnumValue entries.
2174
2175 2011-05-18 Richard Guenther <rguenther@suse.de>
2176
2177 PR tree-optimization/49018
2178 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
2179 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
2180 gimple_has_side_effects.
2181
2182 2011-05-18 Richard Guenther <rguenther@suse.de>
2183
2184 * gimple.c (gimple_register_type_1): New function, split out from ...
2185 (gimple_register_type): ... here. Avoid infinite recursion.
2186
2187 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
2188
2189 PR tree-optimization/41881
2190 * tree-vectorizer.h (struct _loop_vec_info): Add new field
2191 reduction_chains along with a macro for its access.
2192 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
2193 (destroy_loop_vec_info): Free reduction chains.
2194 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
2195 (vect_is_slp_reduction): New function.
2196 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
2197 (vect_create_epilog_for_reduction): Support SLP reduction chains.
2198 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
2199 definition types for reduction chains.
2200 (vect_supported_load_permutation_p): Don't allow permutations for
2201 reduction chains.
2202 (vect_analyze_slp_instance): Support reduction chains.
2203 (vect_analyze_slp): Try to build SLP instance from reduction chains.
2204 (vect_get_constant_vectors): Handle reduction chains.
2205 (vect_schedule_slp_instance): Mark the first statement of the
2206 reduction chain as reduction.
2207
2208 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
2209
2210 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
2211 names for group elements access.
2212 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
2213 reduction chains as well. Remove data reference and interleaving
2214 related words from the fields names.
2215 * tree-vect-loop.c (vect_transform_loop): Use new names for group
2216 elements access.
2217 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
2218 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
2219 vect_update_interleaving_chain, vect_same_range_drs,
2220 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
2221 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
2222 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
2223 vect_analyze_group_access, vect_analyze_data_ref_access,
2224 vect_create_data_ref_ptr, vect_transform_strided_load,
2225 vect_record_strided_load_vectors): Likewise.
2226 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
2227 vect_model_load_cost, vectorizable_store, vectorizable_load,
2228 vect_remove_stores, new_stmt_vec_info): Likewise.
2229 * tree-vect-slp.c (vect_build_slp_tree,
2230 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
2231
2232 2011-05-18 Richard Guenther <rguenther@suse.de>
2233
2234 PR middle-end/48989
2235 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
2236 operand verification.
2237 (verify_gimple_assign_binary): Likewise.
2238 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
2239 to non-1-precision BOOLEAN_TYPEs.
2240
2241 2011-05-18 Tom de Vries <tom@codesourcery.com>
2242
2243 PR target/45098
2244 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
2245
2246 2011-05-18 Jakub Jelinek <jakub@redhat.com>
2247
2248 PR tree-optimization/49000
2249 * tree-ssa.c (execute_update_addresses_taken): Call
2250 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
2251 be rewritten and decl has been marked for renaming, reset
2252 the debug stmt.
2253
2254 2011-05-17 Joseph Myers <joseph@codesourcery.com>
2255
2256 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
2257 enum_opts_set when testing if attributes have set -mfpmath=.
2258
2259 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
2260
2261 * config/mips/mips.c (mips_handle_option): Remove unused variable.
2262
2263 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
2264
2265 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
2266 info->entry with 0
2267 * tree-inline.c (maybe_inline_call_in_expr): Initialize
2268 id.transform_lang_insert_block with NULL.
2269
2270 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
2271
2272 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
2273 (output_fp_compare): Change args 3 and 4 to bool.
2274 (ix86_expand_call): Change arg 6 to bool.
2275 (ix86_attr_length_immediate_default): Change arg 2 to bool.
2276 (ix86_attr_length_vex_default): Change arg 3 to bool.
2277 * config/i386/i386.md: Update all uses.
2278 * config/i386/i386.c: Ditto.
2279 (ix86_flags_dependent): Change return type to bool.
2280
2281 2011-05-17 Richard Guenther <rguenther@suse.de>
2282
2283 * gimple.c (type_hash_pair_compare): Fix comparison.
2284
2285 2011-05-17 Richard Guenther <rguenther@suse.de>
2286
2287 * gimple.c (iterative_hash_gimple_type): Simplify singleton
2288 case some more, fix final hash value of the non-singleton case.
2289
2290 2011-05-17 Richard Guenther <rguenther@suse.de>
2291
2292 PR bootstrap/49013
2293 Revert
2294 2011-05-16 Richard Guenther <rguenther@suse.de>
2295
2296 * gimple.c (gimple_types_compatible_p_1): Use names of the
2297 type itself, not its main variant.
2298 (iterative_hash_gimple_type): Likewise.
2299
2300 2011-05-17 Richard Guenther <rguenther@suse.de>
2301
2302 * gimple.c (gimple_register_canonical_type): Use the main-variant
2303 leader for computing the canonical type.
2304
2305 2011-05-17 Nick Clifton <nickc@redhat.com>
2306
2307 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
2308 moves.
2309
2310 * config/rx/rx.md: Add peephole to remove redundant extensions
2311 after loads.
2312 (bitset_in_memory): Use rx_restricted_mem_operand.
2313 (bitinvert_in_memory): Likewise.
2314 (bitclr_in_memory): Likewise.
2315
2316 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
2317 Nick Clifton <nickc@redhat.com>
2318
2319 * config/rx/rx.md: Add peepholes to match a register move followed
2320 by a comparison of the moved register. Replace these with an
2321 addition of zero that does both actions in one instruction.
2322
2323 2011-05-17 Jakub Jelinek <jakub@redhat.com>
2324
2325 PR target/48986
2326 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
2327 predicate to allow CONST_INT.
2328 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
2329
2330 2011-05-16 Joseph Myers <joseph@codesourcery.com>
2331
2332 * opts-common.c (opt_enum_arg_to_value): New.
2333 * opts.h (opt_enum_arg_to_value): Declare.
2334 * config/i386/i386.opt (fpmath): Remove.
2335 (mfpmath=): Use Enum, Init and Save.
2336 (fpmath_unit): New Enum and EnumValue entries.
2337 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
2338 name for function fpmath state.
2339 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
2340 * config/i386/i386.c: Include diagnostic.h.
2341 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
2342 (ix86_target_string): Take enum fpmath_unit value instead of string.
2343 (ix86_debug_options): Update call to ix86_target_string.
2344 (ix86_option_override_internal): Don't process fpmath strings here.
2345 (x86_function_specific_save, ix86_function_specific_restore):
2346 Don't handle fpmath state specially.
2347 (ix86_function_specific_print): Pass fpmath state to
2348 ix86_target_string instead of printing in this function.
2349 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
2350 Handle enum attributes.
2351 (IX86_ATTR_ENUM, ix86_opt_enum): New.
2352 (ix86_valid_target_attribute_tree): Update option_strings
2353 handling. Handle fpmath as enum option.
2354 (ix86_can_inline_p): Update field names for function fpmath state.
2355 (ix86_expand_builtin): Update call to ix86_target_string.
2356 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
2357 (ix86_fpmath): Remove.
2358 * config/i386/t-i386 (i386.o): Update dependencies.
2359
2360 2011-05-16 Joseph Myers <joseph@codesourcery.com>
2361
2362 PR preprocessor/48677
2363 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
2364 from decoded_options[0], not from itself.
2365
2366 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
2367
2368 * config/i386/constraints.md (z): New constraint.
2369 * config/i386/i386.c (c): New mode attribute.
2370 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
2371 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
2372 constraint for operand 0.
2373 (*call_vzeroupper): Ditto.
2374 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
2375 (*call_rex64_ms_sysv_vzeroupper): Ditto.
2376 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
2377 Use "lzm" constraint for operand 0.
2378 (*call_pop_vzeroupper): Ditto.
2379 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
2380 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
2381 constraint for operand 0.
2382 (*sibcall_vzeroupper): Ditto.
2383 (*sibcall_rex64_ms_sysv): Ditto.
2384 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
2385 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
2386 *sibcall_pop_1. Use "Uz" constraint for operand 0.
2387 (*sibcall_pop_vzeroupper): Ditto.
2388 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
2389 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
2390 mode iterator. Use "<c>zm" constraint for operand 1.
2391 (*call_value_vzeroupper): Ditto.
2392 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
2393 for operand 1.
2394 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
2395 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
2396 *call_value_pop_1. Use "lzm" constraint for operand 1.
2397 (*call_value_pop_vzeroupper): Ditto.
2398 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
2399 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
2400 mode iterator. Use "Uz" constraint for operand 1.
2401 (*sibcall_value_vzeroupper): Ditto.
2402 (*sibcall_value_rex64_ms_sysv): Ditto.
2403 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
2404 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
2405 constraint for operand 1.
2406 (*sibcall_value_pop_vzeroupper): Ditto.
2407 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
2408 and "z" constraint for operand 2.
2409 (*tls_global_dynamic_32_gnu): Ditto.
2410 (*tls_local_dynamic_base_32_gnu): Ditto.
2411 (*tls_local_dynamic_base_64): Ditto.
2412 (*tls_local_dynamic_32_once): Ditto.
2413 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
2414 Update all callers.
2415 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
2416
2417 2011-05-16 Richard Guenther <rguenther@suse.de>
2418
2419 * gimple.c (gimple_types_compatible_p_1): Use names of the
2420 type itself, not its main variant.
2421 (iterative_hash_gimple_type): Likewise.
2422
2423 2011-05-16 Richard Guenther <rguenther@suse.de>
2424
2425 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
2426 always visit pointer target and function result and argument types.
2427
2428 2011-05-16 Jason Merrill <jason@redhat.com>
2429
2430 PR c++/48999
2431 * tree-inline.c (copy_statement_list): Put back recursion.
2432
2433 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
2434
2435 PR target/27663
2436 PR target/41076
2437 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
2438 * config/avr/avr.md ("*ior<mode>qi.byte0",
2439 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
2440
2441 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
2442
2443 PR target/45099
2444 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
2445 register is needed for a function argument.
2446
2447 2011-05-16 Richard Guenther <rguenther@suse.de>
2448
2449 * gimple.c (struct type_hash_pair): New type.
2450 (type_hash_pair_compare): New function.
2451 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
2452
2453 2011-05-16 Revital Eres <revital.eres@linaro.org>
2454
2455 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
2456
2457 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
2458
2459 * config/i386/i386.md (floating point move splitters): Fix
2460 usage of standard_80387_constant_p.
2461 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
2462
2463 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
2464
2465 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
2466
2467 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
2468
2469 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
2470 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
2471 (tree_ssa_lim_finalize): Likewise.
2472
2473 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
2474
2475 * config/i386/constraint.md (Yd, Yx): New register constraints.
2476 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
2477 Yd conditional register constraint.
2478 (*movtf_internal): Use standard_sse_constant_opcode.
2479 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
2480 Yx conditional register constraint.
2481 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
2482 Yd conditional register constraint. Use standard_sse_constant_p to
2483 check for valid SSE constants and call standard_sse_constant_opcode to
2484 output SSE insn.
2485 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
2486 constants and call standard_sse_constant_opcode to output SSE insn.
2487 * config/i386/i386.c (ix86_option_ovverride_internal): Set
2488 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
2489 optimize_size is set.
2490 (standard_sse_constant_opcode): Output conditional AVX insn templates.
2491
2492 2011-05-14 Tobias Burnus <burnus@net-b.de>
2493
2494 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
2495
2496 2011-05-13 Martin Jambor <mjambor@suse.cz>
2497
2498 * ipa-prop.c (ipa_cst_from_jfunc): New function.
2499 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
2500 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
2501 (evaluate_conditions_for_ipcp_clone): Removed.
2502 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
2503 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
2504 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
2505
2506 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
2507
2508 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
2509 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
2510 lieu of MAY_HAVE_DEBUG_STMTS.
2511 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
2512 debug statements if !MAY_HAVE_DEBUG_STMTS.
2513
2514 2011-05-13 Martin Thuresson <martint@google.com>
2515
2516 PR gcov-profile/47793
2517 * libgcov.c (gcov_exit): Support relative profile paths.
2518 * doc/invoke.texi (-fprofile-dir): Update for above change.
2519
2520 2011-05-13 Richard Guenther <rguenther@suse.de>
2521
2522 * gimple.c (gimple_canonical_types_compatible_p): Do not use
2523 type-pair caching, do not compare hashes.
2524
2525 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
2526
2527 PR middle-end/48965
2528 * tree-cfg.c (edge_to_cases_cleanup): Return true.
2529 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
2530
2531 2011-05-13 Kai Tietz <ktietz@redhat.com>
2532
2533 * gimplify.c (gimplify_expr): Make sure operand is boolified.
2534 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
2535 compatible type for TRUTH_NOT_EXPR.
2536
2537 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
2538
2539 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2540 (ix86_hard_regno_mode_ok): Change return value to bool. Use
2541 can_create_pseudo_p ().
2542
2543 2011-05-13 Richard Guenther <rguenther@suse.de>
2544
2545 PR lto/48978
2546 * gimple.c (iterative_hash_gimple_type): Revert change in
2547 pointer target and function result and argument hashing.
2548
2549 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
2550
2551 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
2552 (*movxf_internal_nointeger): Ditto.
2553 (*movdf_internal_rex64): Ditto.
2554 (*movdf_internal): Ditto.
2555 (*movdf_internal_nointeger): Ditto.
2556 (*movsf_internal): Ditto.
2557 (sincos splitters): Use can_create_pseudo ().
2558
2559 2011-05-13 Joseph Myers <joseph@codesourcery.com>
2560
2561 * config/i386/i386-opts.h: New.
2562 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
2563 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
2564 ix86_section_threshold): Remove.
2565 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
2566 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
2567 OPT_mbranch_cost_.
2568 (ix86_option_override_internal): Don't decode strings for options
2569 other than -march=, -mtune= and -mfpmath=. Don't allow for
2570 __attribute__ uses in remaining diagnostics for options with
2571 string arguments. Don't check for integer arguments being negative.
2572 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
2573 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
2574 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
2575 ix86_branch_cost, ix86_section_threshold): Remove.
2576 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
2577 HeaderInclude.
2578 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
2579 but not Var.
2580 (masm=): Use Enum and Init.
2581 (asm_dialect): New Enum and EnumValue entries.
2582 (mbranch-cost=): Use UInteger.
2583 (mlarge-data-threshold=): Use UInteger and Init.
2584 (mcmodel=): Use Enum and Init.
2585 (cmodel): New Enum and EnumValue entries.
2586 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
2587 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
2588 mregparm=): Use UInteger.
2589 (mstringop-strategy=): Use Enum and Init.
2590 (stringop_alg): New Enum and EnumValue entries.
2591 (mtls-dialect=): Use Enum and Init.
2592 (tls_dialect): New Enum and EnumValue entries.
2593 (mabi=): Use Enum and Init.
2594 (calling_abi): New Enum and EnumValue entries.
2595 (mveclibabi=): Use Enum and Init.
2596 (ix86_veclibabi): New Enum and EnumValue entries.
2597
2598 2011-05-13 Nick Clifton <nickc@redhat.com>
2599
2600 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
2601 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
2602
2603 2011-05-13 Kai Tietz <ktietz@redhat.com>
2604
2605 PR middle-end/48984
2606 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
2607 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
2608 (gimple_boolify): Check for cast for boolean_type_node instead for
2609 BOOLEAN_TYPE.
2610
2611 2011-05-13 Richard Guenther <rguenther@suse.de>
2612
2613 PR tree-optimization/48172
2614 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
2615 multiplying by number of iterations for equal step.
2616 (vect_create_cond_for_alias_checks): Likewise.
2617
2618 2011-05-13 Andreas Schwab <schwab@redhat.com>
2619
2620 * configure.ac: Use AS_HELP_STRING throughout.
2621 * configure: Regenerate.
2622
2623 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
2624
2625 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
2626 (ix86_emit_restore_regs_using_mov): Likewise.
2627 (ix86_emit_restore_sse_regs_using_mov): Likewise.
2628
2629 2011-05-12 Anatoly Sokolov <aesok@post.ru>
2630
2631 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
2632 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
2633 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
2634 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
2635 RTX_OK_FOR_OLO10_P): ...here.
2636 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
2637 SYMBOLIC_CONST.
2638
2639 2011-05-12 Kai Tietz <ktietz@redhat.com>
2640
2641 * gimplify.c (gimple_boolify): Re-boolify expression
2642 arguments even if expression type is of kind BOOLEAN_TYPE.
2643 (gimplify_boolean_expr): Removed.
2644 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
2645 and XOR. Additional take care that we keep expression's type.
2646 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
2647 of TRUTH_AND|OR|XOR_EXPR.
2648
2649 2011-05-12 Jakub Jelinek <jakub@redhat.com>
2650
2651 PR tree-optimization/48975
2652 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
2653 on all bbs here and free and clear ifc_bbs at the end.
2654
2655 2011-05-12 Richard Guenther <rguenther@suse.de>
2656
2657 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
2658 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
2659 until after simple checks.
2660 (gimple_types_compatible_p): Likewise.
2661 (iterative_hash_gimple_type): Always hash pointer targets
2662 and function return and argument types.
2663 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
2664 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
2665 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
2666 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
2667 completely in the simple compare section.
2668 (gimple_register_canonical_type): Query the cache again after
2669 registering.
2670
2671 2011-05-12 Richard Guenther <rguenther@suse.de>
2672
2673 PR tree-optimization/48172
2674 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
2675 the number of iterations from the segment size calculation.
2676 (vect_create_cond_for_alias_checks): Adjust.
2677
2678 2011-05-12 Jakub Jelinek <jakub@redhat.com>
2679
2680 PR debug/48967
2681 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
2682 if validate_subreg fails.
2683
2684 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
2685
2686 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
2687 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
2688 early.
2689
2690 2011-05-12 DJ Delorie <dj@redhat.com>
2691
2692 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
2693 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
2694 created builtin into rx_builtins array.
2695 (rx_builtin_decl): New function.
2696 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
2697
2698 2011-05-12 DJ Delorie <dj@redhat.com>
2699 Nick Clifton <nickc@redhat.com>
2700
2701 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2702 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2703 (rx_is_legitimate_address): Add pre-decrement and post-increment
2704 addressing in HImode and QImode. Fix test for out of range
2705 REG+INT addressing.
2706 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
2707 (rx_align_for_label): Test label before extracting its usage count.
2708 (rx_adjust_insn_lengths): Fix selection of insn codes.
2709 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
2710
2711 2011-05-11 Jason Merrill <jason@redhat.com>
2712
2713 * tree.c (type_hash_canon): Use struct tree_type_non_common.
2714
2715 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2716
2717 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2718 reindent the subsequent block.
2719
2720 2011-05-11 Satoru Takabayashi <satorux@google.com>
2721 Paul Pluzhnikov <ppluzhnikov@google.com>
2722
2723 * doc/install.texi (Configuration): Document --with-linker-hash-style.
2724 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2725 * config.in: Add LINKER_HASH_STYLE.
2726 * configure.ac: Add --with-linker-hash-style.
2727 * configure: Regenerate.
2728
2729 2011-05-11 Richard Guenther <rguenther@suse.de>
2730
2731 PR middle-end/48964
2732 * gimple.c (iterative_hash_canonical_type): Fix typo.
2733
2734 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
2735
2736 * config/i386/i386.c (legitimize_tls_address)
2737 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2738 expanders directly for TARGET_GNU2_TLS. Determine pic and
2739 __tls_get_addr symbol reference here. Update call to
2740 gen_tls_global_dynamic_{32,64} for added arguments.
2741 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2742 expanders directly for TARGET_GNU2_TLS. Determine
2743 __tls_get_addr symbol reference here. Update call to
2744 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
2745 unique UNSPEC REG_EQUIV to libcall block.
2746 (ix86_tls_get_addr): Declare static.
2747 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2748 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2749 Do not determine pic and __tls_get_addr symbol reference here. Do not
2750 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2751 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2752 (tls_global_dynamic_64): Add operand 2. Do not determine
2753 __tls_get_addr symbol reference here. Do not call
2754 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2755 (tls_local_dynamic_base64): Ditto for operand 1.
2756
2757 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2758
2759 * function.c (expand_function_start): Initialize stack_check_probe_note
2760 only if the generic stack checking mechanism is used.
2761
2762 2011-05-11 Richard Guenther <rguenther@suse.de>
2763
2764 PR tree-optimization/15256
2765 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2766 (A & B) | C, combine (A op CST1) op CST2.
2767 (tree_ssa_forward_propagate_single_use_vars): Only bother to
2768 visit assigns that have uses.
2769
2770 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2771
2772 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2773 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2774 (unpack_ts_type_common_value_fields): ...this. Update comment.
2775 (unpack_value_fields): Adjust for renaming.
2776 (lto_input_ts_type_tree_pointers): Split into...
2777 (lto_input_ts_type_common_tree_pointer): ...this and...
2778 (lto_input_ts_type_non_common_tree_pointers): ...this.
2779 (lto_input_tree_pointers): Adjust for above split.
2780 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2781 (pack_ts_type_common_value_fields): ...this. Update comment.
2782 (lto_output_ts_type_tree_pointers): Split into...
2783 (lto_output_ts_type_common_tree_pointers): ...this and...
2784 (lto_output_ts_type_non_common_tree_pointers): ...this.
2785 (lto_output_tree_pointers): Adjust for above split.
2786 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2787 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2788 * stor-layout.c (vector_type_mode): Adjust location of mode field.
2789 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2790 Define.
2791 (struct tree_type): Split into...
2792 (struct tree_type_common: ...this and...
2793 (struct tree_type_with_lang_specific): ...this and...
2794 (struct tree_type_non_common): ...this. Adjust accessor macros
2795 accordingly.
2796 (TYPE_VALUES_RAW): Define.
2797 (union tree_node): Update for above changes.
2798 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2799 TS_TYPE_NON_COMMON.
2800 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2801 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2802 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2803 * treestructu.def (TS_TYPE): Remove.
2804 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2805 Define.
2806
2807 2011-05-11 Jakub Jelinek <jakub@redhat.com>
2808
2809 PR debug/48159
2810 * tree-ssa.c (reset_debug_uses): New function.
2811 * tree-flow.h (reset_debug_uses): New prototype.
2812 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2813 * tree-loop-distribution.c (generate_loops_for_partition): Call
2814 reset_debug_uses on the stmts that will be removed. Keep around
2815 all debug stmts, don't count them as bits in partition bitmap.
2816 (generate_builtin): Don't count debug stmts or labels as bits in
2817 partition bitmap.
2818
2819 2011-05-11 Richard Guenther <rguenther@suse.de>
2820
2821 * gimple.c (gimple_type_hash_1): Merge with ...
2822 (gimple_type_hash): ... this.
2823 (gtc_visit): Remove mode parameter and simplify accordingly.
2824 (gimple_types_compatible_p_1): Likewise.
2825 (gimple_types_compatible_p): Likewise.
2826 (iterative_hash_gimple_type): Likewise.
2827 (visit): Likewise.
2828 (gimple_type_eq): Adjust.
2829
2830 2011-05-11 Revital Eres <revital.eres@linaro.org>
2831
2832 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2833 enters the branch create an anti edge in the opposite direction
2834 to prevent the creation of reg-moves.
2835 * modulo-sched.c: Adjust comment to reflect the fact we are
2836 scheduling closing branch.
2837 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2838 (stage_count): New field in struct partial_schedule.
2839 (calculate_stage_count): New function.
2840 (normalize_sched_times): Rename to reset_sched_times and handle
2841 incrementing the sched time of the nodes by a constant value
2842 passed as parameter.
2843 (duplicate_insns_of_cycles): Skip closing branch.
2844 (sms_schedule_by_order): Schedule closing branch.
2845 (ps_insn_find_column): Handle closing branch.
2846 (sms_schedule): Call reset_sched_times and adjust the code to
2847 support scheduling of the closing branch.
2848 (ps_insert_empty_row): Update calls to normalize_sched_times
2849 and rotate_partial_schedule functions.
2850
2851 2011-05-11 Richard Guenther <rguenther@suse.de>
2852
2853 PR middle-end/48953
2854 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2855
2856 2011-05-11 Joseph Myers <joseph@codesourcery.com>
2857
2858 * opts.c (finish_options): Move warning settings from process_options.
2859 * toplev.c (process_options): Move warning settings to finish_options.
2860
2861 2011-05-11 Richard Guenther <rguenther@suse.de>
2862
2863 PR tree-optimization/18041
2864 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2865 (simplify_bitwise_binary): ... this. Handle operand conversions
2866 by applying them to the result instead.
2867 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
2868
2869 2011-05-11 Richard Guenther <rguenther@suse.de>
2870
2871 * gimple.c (gimple_canonical_types_compatible_p): Split out
2872 from gimple_types_compatible_p and friends. Do not recurse
2873 to pointed-to types.
2874 (gimple_canonical_type_eq): Use it.
2875 (iterative_hash_canonical_type): Split out from
2876 iterative_hash_gimple_type and friends. Do not recurse
2877 to pointed-to types.
2878 (gimple_canonical_type_hash): Use it, allocate the hash here.
2879
2880 2011-05-11 Revital Eres <revital.eres@linaro.org>
2881
2882 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2883 recognizing doloop.
2884
2885 2011-05-11 Revital Eres <revital.eres@linaro.org>
2886
2887 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2888 instead of PREV_INSN.
2889
2890 2011-05-11 Revital Eres <revital.eres@linaro.org>
2891
2892 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2893 * loop-doloop.c (doloop_condition_get): Likewise.
2894 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2895 (doloop_end): New.
2896 * config/arm/arm.md (*addsi3_compare0): Remove "*".
2897
2898 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
2899
2900 * tree.def (CASE_LABEL_EXPR): Add an operand.
2901 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2902
2903 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2904
2905 * c-decl.c (c_override_global_bindings_to_false): Remove.
2906 (global_bindings_p): Don't check
2907 c_override_global_bindings_to_false.
2908 * c-tree.h (c_override_global_bindings_to_false): Remove.
2909 * c-typeck.c (composite_type): Don't set
2910 c_override_global_bindings_to_false.
2911
2912 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2913
2914 PR target/48857, 48495
2915 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2916 (VSX_MODE): Ditto.
2917 (VSX_MOVE_MODE): Ditto.
2918 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2919 VSX vector types. Add V2DImode.
2920 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2921 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2922 (MODES_TIEABLE_P): Ditto.
2923
2924 * config/rs6000/rs6000.c (rs6000_emit_move): Use
2925 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2926 VSX_VECTOR_MODE.
2927 (init_cumulative_args): Ditto.
2928 (rs6000_function_arg_boundary): Ditto.
2929 (rs6000_function_arg_advance_1): Ditto.
2930 (rs6000_function_arg): Ditto.
2931 (rs6000_function_ok_for_sibcall): Ditto.
2932 (emit_frame_save): Ditto.
2933 (rs6000_function_value): Ditto.
2934 (rs6000_libcall_value): Ditto.
2935
2936 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2937
2938 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2939 i386/darwin-lib.h to $libgcc_tm_file.
2940 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2941
2942 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2943
2944 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2945
2946 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2947
2948 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2949 * config/rs6000/rs6000-tables.opt: New file (generated).
2950 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2951 rs6000/rs6000-tables.opt to extra_options.
2952 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2953 * config/rs6000/rs6000.c (rs6000_select): Remove.
2954 (processor_target_table): Move contents to rs6000-cpus.def.
2955 (darwin_rs6000_override_options): Check
2956 global_options_set.x_rs6000_cpu_index instead of
2957 rs6000_select[1].string.
2958 (rs6000_option_override_internal): Likewise.
2959 (rs6000_handle_option): Don't assert that global structures are in
2960 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
2961 (rs6000_default_cpu): New variable.
2962 (rs6000_file_start): Set it instead of local default_cpu. Check
2963 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2964 global_options_set.x_rs6000_tune_index instead of rs6000_select.
2965 (rs6000_darwin_file_start): Check rs6000_default_cpu and
2966 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2967 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2968 rs6000_select): Remove.
2969 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2970 Remove.
2971 (mcpu=, mtune=): Use Var, Init, Enum and Save.
2972 * config/rs6000/t-rs6000
2973 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2974 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2975 global_options_set.x_rs6000_cpu_index instead of
2976 rs6000_select[1].string.
2977 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2978 global_options_set.x_rs6000_cpu_index instead of
2979 rs6000_select[1].string.
2980
2981 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2982
2983 * config.gcc (libgcc_tm_file): Define instead of including files
2984 from ../../libgcc/config/ in tm_file.
2985 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2986 * configure: Regenerate.
2987 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2988 libgcc_tm.h, cs-libgcc_tm.h): New.
2989 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2990 (clean): Remove libgcc_tm.h.
2991 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2992 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2993 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2994
2995 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
2996
2997 PR target/48896
2998 * config/avr/avr.c (avr_ret_register): Return unsigned int
2999 instead of int.
3000 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
3001 it to avr_libcall_value.
3002 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
3003 expand_expr.
3004 (avr_expand_binop_builtin): Ditto.
3005 (avr_expand_unop_builtin): Ditto.
3006
3007 2011-05-10 DJ Delorie <dj@redhat.com>
3008
3009 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
3010 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
3011 * config/rx/rx.c (rx_align_for_label): Add label and
3012 uses_threshold parameters. Do not align when the label is not
3013 used enough.
3014 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
3015
3016 2011-05-10 Richard Guenther <rguenther@suse.de>
3017
3018 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
3019 a series of conversions and apply foldings similar to what
3020 fold-const does.
3021 (tree_ssa_forward_propagate_single_use_vars): Call it.
3022
3023 2011-05-10 Jakub Jelinek <jakub@redhat.com>
3024
3025 PR tree-optimization/48611
3026 PR tree-optimization/48794
3027 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
3028 referenced from RESX or EH_DISPATCH arguments.
3029
3030 PR debug/48928
3031 * dfp.c (decimal_to_decnumber): Handle conversion from
3032 dconst{1,2,m1,half}.
3033
3034 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3035
3036 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
3037 for !flag_prefer_avx128.
3038 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
3039
3040 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
3041
3042 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
3043 (fold_ternary_loc): Use expr_location_or.
3044
3045 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
3046
3047 PR debug/48853
3048 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
3049 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
3050 Pmode and mem_mode is not VOIDmode.
3051
3052 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3053
3054 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
3055 TYPE_QUAL_RESTRICT): Convert to enum.
3056
3057 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3058
3059 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
3060 (const_pow2_1_to_8_operand): Ditto.
3061 (const_pow2_1_to_128_operand): Ditto.
3062 (const_pow2_1_to_32768_operand): Ditto.
3063 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
3064 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
3065 in insn constraint to check integer value of operand 3.
3066 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
3067
3068 (PINSR_MODE): New mode iterator.
3069 (sse2p4_1): New mode attribute.
3070 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
3071 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
3072 iterator. Use const_int_operand instead of
3073 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
3074 exact_log2 in insn constraint to check integer value of operand 3.
3075
3076 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3077
3078 * config/i386/sse.md (blendbits): Remove mode attribute.
3079 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
3080 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
3081 Check integer value of operand 3 in insn constraint.
3082
3083 2011-05-09 Richard Guenther <rguenther@suse.de>
3084
3085 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
3086 for diagnostics.
3087 (lto_symtab_merge): Likewise. Do not register types here.
3088 (lto_symtab_merge_decls_2): Likewise.
3089 (lto_symtab_merge_decls_1): Likewise.
3090 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
3091 * gimple.c (enum gtc_mode): Declare.
3092 (gimple_types_compatible_p): Make static.
3093
3094 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3095
3096 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
3097 temporary register to match Pmode.
3098
3099 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3100
3101 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
3102 and *vec_concatv4si_1_avx.
3103
3104 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
3105
3106 PR rtl-optimization/48927
3107 * ira-conflicts.c (commutative_constraint_p): Use
3108 recog_data.alternative_enabled_p to disable alternatives where
3109 "enabled" attribute is false.
3110 (get_dup_num): Ditto.
3111 * ira-lives.c (single_reg_class): Ditto.
3112 (ira_implicitly_set_insn_hard_regs): Ditto.
3113
3114 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
3115
3116 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
3117 (dataflow_set_preserve_mem_locs): Likewise.
3118
3119 2011-05-09 Philipp Thomas <pth@suse.de>
3120
3121 * config/mep/mep.c (mep_validate_vliw): Syntax description
3122 should not be translated.
3123
3124 2011-05-09 Joseph Myers <joseph@codesourcery.com>
3125
3126 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
3127 * config/mips/mips-tables.opt: New file (generated).
3128 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
3129 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
3130 MIPS_ARCH_OPTION_NATIVE): Define.
3131 * config/mips/mips.c (mips_cpu_info_table): Move contents to
3132 mips-cpus.def.
3133 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
3134 mips_parse_cpu): Remove.
3135 (mips_cpu_info_from_opt, mips_default_arch): New.
3136 (mips_handle_option): Don't assert that global structures are in
3137 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
3138 (mips_option_override): Use new variables and functions to set
3139 state of these options. Use strcmp to check for individual CPU names.
3140 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
3141 definition.
3142 * config/mips/mips.opt (march=): Use ToLower and Enum.
3143 (mips): Use ToLower, Enum and Var.
3144 (mtune=): Use ToLower and Enum.
3145 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
3146
3147 2011-05-08 Jan Hubicka <jh@suse.cz>
3148
3149 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
3150 Arrange type pairs to be UID ordered.
3151 (gimple_lookup_type_leader): Make inline.
3152
3153 2011-05-09 Nick Clifton <nickc@redhat.com>
3154
3155 PR target/48899
3156 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
3157 PROCESSOR_DEFAULT.
3158
3159 PR target/48897
3160 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
3161 variable 's'.
3162
3163 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
3164
3165 * combine.c (simplify_comparison): Abstract out parts into...
3166 (simplify_compare_const): ... new function.
3167 (try_combine): Generalize parallel arithmetic/compare combining
3168 to call simplify_compare_const() and CANONICALIZE_COMPARE().
3169
3170 2011-05-08 Jan Hubicka <jh@suse.cz>
3171
3172 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
3173 (cgraph_create_virtual_clone): Call hooks once virtual clone
3174 is finished.
3175 * cgraph.h (cgraph_clone_node): Update prototype.
3176 * ipa-cp.c (ipcp_estimate_growth): Use
3177 estimate_ipcp_clone_size_and_time.
3178 * ipa-inline-transform.c (clone_inlined_nodes): Update.
3179 * lto-cgraph.c (input_node): Update.
3180 * ipa-inline.c (recursive_inlining): Update.
3181 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
3182 (evaluate_conditions_for_known_args): Break out from ...
3183 (evaluate_conditions_for_edge): ... here.
3184 (evaluate_conditions_for_ipcp_clone): New function.
3185 (inline_node_duplication_hook): Update clone summary based
3186 on parameter map.
3187 (estimate_callee_size_and_time): Rename to ...
3188 (estimate_node_size_and_time): take NODE instead of EDGE;
3189 take POSSIBLE_TRUTHS as argument.
3190 (estimate_callee_size_and_time): Update.
3191 (estimate_ipcp_clone_size_and_time): New function.
3192 (do_estimate_edge_time): Update.
3193
3194 2011-05-08 Richard Guenther <rguenther@suse.de>
3195
3196 PR middle-end/48908
3197 PR middle-end/48905
3198 * expmed.c (expand_shift_1): Compute adjusted constant shift
3199 amount manually.
3200
3201 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
3202
3203 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
3204
3205 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
3206
3207 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
3208
3209 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
3210
3211 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
3212
3213 2011-05-07 Jan Hubicka <jh@suse.cz>
3214
3215 * ipa-inline-transform.c (inline_call): Account when program size
3216 decreases.
3217 * ipa-inline.c (relative_time_benefit): New function.
3218 (edge_badness): Reorganize to be power 2 based; fix thinko when
3219 computing badness for negative growth; update comments to match
3220 reality; better dumps.
3221
3222 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
3223
3224 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
3225 type to bool and adjust comment.
3226 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
3227 (fold_mathfn_compare): Remove calls to global_bindings_p.
3228 (fold_inf_compare): Likewise.
3229 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
3230 * c-tree.h (global_bindings_p): Adjust prototype.
3231 * c-decl.c (global_bindings_p): Return bool and simplify.
3232
3233 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
3234
3235 PR tree-optimization/48837
3236 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
3237 when accumulator transformation is performed.
3238
3239 2011-05-06 Jan Hubicka <jh@suse.cz>
3240
3241 * i386.h (ix86_tune_indices): Add
3242 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
3243 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
3244 * i386.c (initial_ix86_tune_features): Add
3245 X86_SOFTARE_PREFETCHING_BENEFICIAL.
3246 (software_prefetching_beneficial_p): Remove predicate.
3247 (ix86_option_override_internal): Use new macro.
3248
3249 2011-05-06 Jan Hubicka <jh@suse.cz>
3250
3251 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
3252
3253 2011-05-06 Jan Hubicka <jh@suse.cz>
3254
3255 * cgraph.c (cgraph_add_thunk): Create real function node instead
3256 of alias node; finalize it and mark needed/reachale; arrange visibility
3257 to be right and add it into the corresponding same comdat group list.
3258 (dump_cgraph_node): Dump thunks.
3259 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
3260 cgraph_function_with_gimple_body_p,
3261 cgraph_first_function_with_gimple_body,
3262 cgraph_next_function_with_gimple_body): New functions.
3263 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
3264 New macros.
3265 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
3266 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3267 * cgraphunit.c (cgraph_finalize_function): Only look into possible
3268 devirtualization when optimizing.
3269 (verify_cgraph_node): Verify thunks.
3270 (cgraph_analyze_function): Analyze thunks.
3271 (cgraph_mark_functions_to_output): Output thunks only in combination
3272 with function they are assigned to.
3273 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
3274 alias into normal node.
3275 (assemble_thunks): New functoin.
3276 (cgraph_expand_function): Use it.
3277 * lto-cgraph.c (lto_output_node): Stream thunks.
3278 (input_overwrite_node): Stream in thunks.
3279 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
3280 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
3281 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
3282 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
3283 (inline_analyze_function): Do not care about thunk jump functions.
3284 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
3285 * ipa-prop.c (ipa_prop_write_jump_functions): Use
3286 cgraph_function_with_gimple_body_p.
3287 * passes.c (do_per_function_toporder): Use
3288 cgraph_function_with_gimple_body_p.
3289 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
3290 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
3291 (function_called_by_processed_nodes_p): Likewise.
3292
3293 2011-05-06 Joseph Myers <joseph@codesourcery.com>
3294
3295 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
3296 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
3297 entries.
3298 (mabi=): Replace with separate entries for mabi=altivec,
3299 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
3300 mabi=ieeelongdouble and mabi=ibmlongdouble.
3301 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
3302 check for -mabi=spe without SPE ABI support here.
3303 (rs6000_handle_option): Replace OPT_mabi_ handling with
3304 OPT_mabi_altivec and OPT_mabi_spe handling.
3305
3306 2011-05-06 Cary Coutant <ccoutant@google.com>
3307
3308 * dwarf2out.c (contains_subprogram_definition): New function.
3309 (should_move_die_to_comdat): Call it.
3310
3311 2011-05-06 Jeff Law <law@redhat.com>
3312
3313 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
3314 remove_ctrl_stmt_and_useless_edges.
3315 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
3316 (fixup_template_block, thread_single_edge): Likewise.
3317 (mark_threaded_blocks): Use THREAD_TARGET.
3318
3319 2011-05-06 Alan Modra <amodra@gmail.com>
3320
3321 PR target/48900
3322 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
3323 const0_rtx as the arg to the dummy __tls_get_addr libcall.
3324
3325 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
3326
3327 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
3328 constraint modifier to "r".
3329
3330 2011-05-06 Joseph Myers <joseph@codesourcery.com>
3331
3332 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
3333 fall through for OPT_mcmodel_.
3334
3335 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3336
3337 * config/s390/s390.c (s390_asm_trampoline_template): Comment
3338 instruction sizes.
3339 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
3340
3341 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3342
3343 PR target/47930
3344 * config/arm/arm.opt (marm): Document it.
3345 (mthumb): Reject negative variant.
3346
3347 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
3348
3349 PR target/48898
3350 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3351 Fix typo in "ccvt" variable name.
3352
3353 2011-05-06 Tristan Gingold <gingold@adacore.com>
3354
3355 PR target/48895
3356 * config/vms/vms-ar.c (main): Remove cwd variable.
3357
3358 2011-05-06 Jakub Jelinek <jakub@redhat.com>
3359
3360 PR debug/48902
3361 * var-tracking.c (prepare_call_arguments): Move else before #endif.
3362
3363 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
3364
3365 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
3366 * gimplify.c (gimplify_switch_expr): Likewise.
3367 * omp-low.c (expand_omp_sections): Likewise.
3368 * tree-eh.c (lower_try_finally_switch): Likewise.
3369 (lower_eh_dispatch): Likewise.
3370 * tree.h (build_case_label): Declare.
3371 * tree.c (build_case_label): Define.
3372
3373 2011-05-05 Jason Merrill <jason@redhat.com>
3374
3375 PR c++/40975
3376 * tree-inline.c (copy_tree_r): Use copy_statement_list.
3377 (copy_statement_list): Don't recurse.
3378 * stor-layout.c (copy_self_referential_tree_r): Don't allow
3379 STATEMENT_LIST.
3380
3381 2011-05-05 Joseph Myers <joseph@codesourcery.com>
3382
3383 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
3384 through from -mfpu= handling.
3385 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
3386
3387 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
3388
3389 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
3390 POST_MODIFY.
3391
3392 2011-05-05 Steve Ellcey <sje@cup.hp.com>
3393
3394 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
3395 for 11.31.
3396 (hppa[12]*-*-hpux11*): Ditto.
3397 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
3398 * config/ia64/hpux-unix2003.h: New.
3399 * config/pa/pa-hpux1131.opt: New.
3400 * config/pa/pa-hpux1131.h: New.
3401 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
3402 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
3403 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
3404
3405 2011-05-05 Jakub Jelinek <jakub@redhat.com>
3406
3407 PR debug/48853
3408 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
3409 instead of mode as 3rd argument to recursive call.
3410 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
3411 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
3412 VOIDmode.
3413 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
3414 don't give up if mode is Pmode and mem_mode is not VOIDmode.
3415 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
3416 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
3417
3418 2011-05-05 Julian Brown <julian@codesourcery.com>
3419
3420 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
3421 parenthesis in D-register case.
3422
3423 2011-05-05 Joseph Myers <joseph@codesourcery.com>
3424
3425 * opt-functions.awk (var_type_struct): Handle Enum options.
3426 * optc-gen.awk: Don't check range of variables of character type.
3427 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
3428 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
3429 rs6000_sdata_name, rs6000_explicit_options): Remove.
3430 (rs6000_option_override_internal): Check for -malign-power here.
3431 Use global_options_set instead of rs6000_explicit_options.
3432 (rs6000_parse_fpu_option): Remove.
3433 (rs6000_handle_option): Access variables via opts and opts_set
3434 pointers. Use error_at and warning_at. Add fall-through
3435 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
3436 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
3437 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
3438 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
3439 here. Don't use rs6000_parse_fpu_option.
3440 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
3441 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
3442 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
3443 (mrecip=): Use Var.
3444 (mspe): Use Var and Save.
3445 (mtraceback=): Use Enum and Var.
3446 (rs6000_traceback_type): New Enum and EnumValue entries.
3447 (mfloat-gprs=): Use Enum, Var and Save.
3448 (rs6000_float_gprs): New Enum and EnumValue entries.
3449 (mlong-double-): use Var and Save.
3450 (msched-costly-dep=, minsert-sched-nops=): Use Var.
3451 (malign-): Use Enum and Var.
3452 (rs6000_alignment_flags): New Enum and EnumValue entries.
3453 (mfpu=): Use Enum.
3454 (fpu_type_t): New Enum and EnumValue entries.
3455 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3456 global_options_set instead of rs6000_explicit_options.
3457 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3458 global_options_set instead of rs6000_explicit_options.
3459 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3460 global_options_set instead of rs6000_explicit_options.
3461 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
3462 global_options_set instead of rs6000_explicit_options.
3463 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
3464 global_options_set instead of rs6000_explicit_options.
3465 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3466 global_options_set instead of rs6000_explicit_options.
3467 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
3468 definition.
3469 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3470 global_options_set instead of rs6000_explicit_options.
3471 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
3472 (rs6000_cmodel): New Enum and EnumValue entries.
3473 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3474 global_options_set instead of rs6000_explicit_options.
3475 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
3476 (mtls-size=): Use Enum and Var.
3477 (rs6000_tls_size): New Enum and EnumValue entries.
3478
3479 2011-05-05 Michael Matz <matz@suse.de>
3480
3481 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
3482 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
3483 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
3484 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
3485 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
3486 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
3487 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
3488 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
3489 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
3490 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
3491 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
3492 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
3493 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
3494 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
3495 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
3496 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
3497
3498 2011-05-05 Richard Guenther <rguenther@suse.de>
3499
3500 * expmed.c (expand_variable_shift): Rename to ...
3501 (expand_shift_1): ... this. Take an expanded shift amount.
3502 For rotates recurse directly not building trees for the shift amount.
3503 (expand_variable_shift): Wrap around expand_shift_1.
3504 (expand_shift): Adjust.
3505
3506 2011-05-05 Jakub Jelinek <jakub@redhat.com>
3507
3508 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
3509
3510 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
3511
3512 * tree.h (get_pending_sizes): Remove prototype.
3513 (put_pending_size): Likewise.
3514 (put_pending_sizes): Likewise.
3515 * stor-layout.c (pending_sizes): Delete.
3516 (get_pending_sizes): Likewise.
3517 (put_pending_size): Likewise.
3518 (put_pending_sizes): Likewise.
3519 (variable_size): Do not call put_pending_size and tidy up.
3520 * function.h (struct function): Remove dont_save_pending_sizes_p.
3521 * lto-streamer-in.c (input_function): Do not stream it.
3522 * lto-streamer-out.c (output_function): Likewise.
3523 * tree-inline.c (initialize_cfun): Do not copy it.
3524 * c-decl.c (store_parm_decls): Do not set it.
3525 * omp-low.c (create_task_copyfn): Likewise.
3526 * tree-optimize.c (tree_rest_of_compilation): Likewise.
3527
3528 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
3529
3530 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
3531 conditions.
3532 (*movdf_internal): Ditto.
3533 (*movdf_internal_nointeger): Ditto.
3534 (*movsf_internal): Ditto.
3535
3536 2011-05-05 Joseph Myers <joseph@codesourcery.com>
3537
3538 * c-decl.c (finish_decl): Don't call get_pending_sizes.
3539 (grokparm): Add parameter expr. Pass it to grokdeclarator.
3540 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
3541 (c_variable_size): Remove.
3542 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
3543 call put_pending_sizes.
3544 (get_parm_info): Add parameter expr. Use it to set
3545 arg_info->pending_sizes.
3546 (store_parm_decls): Use arg_info->pending_sizes instead or calling
3547 get_pending_sizes.
3548 * c-parser.c (c_parser_parms_declarator): Update call to
3549 c_parser_parms_list_declarator.
3550 (c_parser_parms_list_declarator): Take parameter expr. Update
3551 call to push_parm_decl. Update recursive call. Don't call
3552 get_pending_sizes. Update calls to get_parm_info.
3553 (c_parser_objc_method_definition): Update calls to
3554 c_parser_objc_method_decl and objc_start_method_definition.
3555 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
3556 (c_parser_objc_method_decl): Add parameter expr. Update call to
3557 grokparm.
3558 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
3559 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
3560 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
3561
3562 2011-05-05 Michael Hope <michael.hope@linaro.org>
3563
3564 PR pch/45979
3565 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
3566 __ARM_EABI__ hosts.
3567
3568 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3569
3570 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
3571 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
3572 (spu_output_mi_thunk): New function.
3573
3574 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3575
3576 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
3577 targetm.asm_out.print_operand.
3578 * config/sol2.c: Include target.h.
3579
3580 2011-05-04 Jan Hubicka <jh@suse.cz>
3581
3582 * ipa-inline.c (reset_edge_caches): New function.
3583 (update_caller_keys): Add check_inlinablity_for; do not
3584 reset edge caches; remove now unnecesary loop.
3585 (update_callee_keys): Add comments; reset node_growth_cache of callee.
3586 (update_all_callee_keys): Likewise.
3587 (inline_small_functions): Sanity check cache; update code
3588 recomputing it.
3589
3590 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
3591
3592 PR rtl-optimization/47612
3593 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
3594 as the last insn of the sequence to be moved.
3595
3596 2011-05-04 Tobias Burnus <burnus@net-b.de>
3597
3598 PR fortran/48864
3599 * doc/invoke.texi (Ofast): Document that it
3600 enables Fortran's -fno-protect-parens.
3601
3602 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
3603
3604 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
3605
3606 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
3607
3608 * stor-layout.c (variable_size): Do not issue errors.
3609
3610 2011-05-04 Richard Guenther <rguenther@suse.de>
3611
3612 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
3613 for array-ref indices.
3614 (tree_coverage_counter_addr): Likewise.
3615 (build_fn_info_type): Use size_int for index types.
3616 (build_gcov_info): Likewise.
3617
3618 2011-05-04 Richard Guenther <rguenther@suse.de>
3619
3620 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
3621 to build_int_cst.
3622 * c-typeck.c (really_start_incremental_init): Use bitsize_int
3623 for constructor indices.
3624 (push_init_level): Likewise.
3625
3626 2011-05-04 Richard Guenther <rguenther@suse.de>
3627
3628 * explow.c (promote_mode): Move variable declarations before code.
3629
3630 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
3631
3632 * tree.h (build_function_type_array): Declare.
3633 (build_varargs_function_type_array): Declare.
3634 (build_function_type_vec, build_varargs_function_type_vec): Define.
3635 * tree.c (build_function_type_array_1): New function.
3636 (build_function_type_array): New function.
3637 (build_varargs_function_type_array): New function.
3638
3639 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
3640
3641 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
3642 before setting STMT_VINFO_TYPE.
3643
3644 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3645
3646 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
3647 instead of spu_pass_by_reference.
3648
3649 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3650
3651 * calls.c (emit_library_call_value_1): Invoke
3652 promote_function_mode hook on libcall arguments.
3653 * explow.c (promote_function_mode, promote_mode): Handle TYPE
3654 argument being NULL.
3655 * targhooks.c (default_promote_function_mode): Lisewise.
3656 * config/s390/s390.c (s390_promote_function_mode): Likewise.
3657 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
3658
3659 * doc/tm.texi: Document that TYPE argument might be NULL.
3660
3661 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3662
3663 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
3664
3665 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3666
3667 From Bernd Schmidt
3668 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
3669
3670 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3671
3672 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
3673 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
3674 Move ...
3675 * mips-tfile.c: ... here.
3676 Don't include coretypes.h, tm.h, filenames.h.
3677 (saber_stop): Remove definition and all calls.
3678 [__SABER__]: Remove.
3679 (__LINE__): Remove default.
3680 (Size_t, Ptrdiff_t): Remove definitions.
3681 Replace by size_t, ptrdiff_t.
3682 [!MIPS_DEBUGGING_INFO]: Remove.
3683 (SHASH_SIZE, THASH_SIZE): Remove defaults.
3684 (progname): Add const.
3685 (STATIC): Remove.
3686 Replace all uses by static.
3687 (ALIGN_SYMTABLE_OFFSET): Remove default.
3688 * mips-tdump.c: Don't include coretypes.h, tm.h.
3689 Remove !MIPS_IS_STAB guard.
3690 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
3691 $(TM_H), filenames.h dependencies.
3692 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
3693
3694 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3695
3696 From Jie Zhang
3697 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
3698 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3699
3700 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3701
3702 From Bernd Schmidt
3703 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3704 account and save/restore RETS.
3705 (PROFILE_BEFORE_PROLOGUE): Define.
3706 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
3707 the push insn to use predecrement.
3708
3709 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3710
3711 From Jie Zhang
3712 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
3713
3714 2011-05-04 Nick Clifton <nickc@redhat.com>
3715
3716 * config/mn10300/mn10300.c: Include cfgloop.h.
3717 (DUMP): New macro.
3718 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
3719 Lcc or a FLcc insn into the instruction stream.
3720 (mn10300_block_contains_call): New function. Returns true if the
3721 given basic block contains a CALL insn.
3722 (mn10300_loop_contains_call_insn): New function. Returns true if
3723 the given loop contains a CALL insn.
3724 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
3725 to use the SETLB and Lcc or FLcc insns.
3726 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3727 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3728 * config/mn10300/mn10300.opt (msetlb): New option. Used to
3729 disable the SETLB optimization.
3730 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3731 __SETLB__ or __NO_SETLB__.
3732 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3733 (movsf_internal): Handle MDR register.
3734 (cmpsi): Make visible.
3735 (setlb): New pattern.
3736 (Lcc): New pattern.
3737 (FLcc): New pattern.
3738
3739 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
3740
3741 PR target/48860
3742 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3743 for reg<->xmm moves.
3744 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3745 (vec_concatv2di_rex64_sse): Ditto.
3746 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3747 (*vec_extractv2di_1_rex64): Ditto.
3748
3749 Revert:
3750 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3751
3752 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3753 reg<->xmm moves.
3754 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3755
3756 2011-05-04 Richard Guenther <rguenther@suse.de>
3757
3758 * tree.h (int_const_binop): Remove notrunc argument.
3759 * fold-const.c (int_const_binop): Remove notrunc argument. Always
3760 create integer constants that are properly truncated.
3761 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3762 (const_binop): Remove zero notrunc argument to int_const_binop.
3763 (size_binop_loc): Likewise.
3764 (fold_div_compare): Likewise.
3765 (maybe_canonicalize_comparison_1): Likewise.
3766 (fold_comparison): Likewise.
3767 (fold_binary_loc): Likewise.
3768 (multiple_of_p): Likewise.
3769 * expr.c (store_constructor): Likewise.
3770 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3771 (maybe_fold_stmt_addition): Likewise.
3772 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3773 * stor-layout.c (layout_type): Likewise.
3774 * tree-data-ref.c (tree_fold_divides_p): Likewise.
3775 * tree-sra.c (build_ref_for_offset): Likewise.
3776 (build_user_friendly_ref_for_offset): Likewise.
3777 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3778 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3779 * tree-ssa-loop-niter.c (inverse): Likewise.
3780 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3781 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3782 * tree-switch-conversion.c (check_range): Likewise.
3783 (build_constructors): Likewise.
3784 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3785 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3786 (extract_range_from_assert): Likewise.
3787 (vrp_int_const_binop): Likewise.
3788 (extract_range_from_binary_expr): Likewise.
3789 (extract_range_from_unary_expr): Likewise.
3790 (check_array_ref): Likewise.
3791 (find_case_label_range): Likewise.
3792 (simplify_div_or_mod_using_ranges): Likewise.
3793 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3794 comparing case labels for merging.
3795
3796 2011-05-03 Mark Wielaard <mjw@redhat.com>
3797
3798 * dwarf2out.c (debug_str_hash_forced): Removed.
3799 (gen_label_for_indirect_string): Removed.
3800 (get_debug_string_label): Removed.
3801 (AT_string_form): Generate label directly.
3802 (output_indirect_string): Test indirect_string_node for
3803 DW_FORM_strp instead of checking label and refcount.
3804 (prune_indirect_string): Removed.
3805 (prune_unused_types): Don't check debug_str_hash_forced or
3806 call prune_indirect_string.
3807
3808 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
3809
3810 PR other/48093
3811 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3812
3813 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
3814
3815 PR debug/47994
3816 PR debug/47919
3817 * combine.c (try_combine): Skip debug insns at m_split tests.
3818
3819 2011-04-26 Mark Wielaard <mjw@redhat.com>
3820
3821 PR42288
3822 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3823 when info_section_emitted.
3824
3825 2011-05-03 Joseph Myers <joseph@codesourcery.com>
3826
3827 * config/mips/mips-opts.h: New.
3828 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3829 to mips-opts.h.
3830 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3831 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3832 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
3833 via opts pointer.
3834 * config/mips/mips.h (enum mips_code_readable_setting): Move to
3835 mips-opts.h.
3836 (mips_abi, mips_code_readable): Don't declare.
3837 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3838 (mabi=): Use Enum and Var.
3839 (mips_abi): New Enum and EnumValue entries.
3840 (mcode-readable=): Use Enum and Var.
3841 (mips_code_readable_setting): New Enum and EnumValue entries.
3842 (mr10k-cache-barrier=): Use Enum and Var.
3843 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3844
3845 2011-05-03 Jan Hubicka <jh@suse.cz>
3846
3847 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3848 replace hash by pointer map.
3849 (cgraph_node_set_element_def, cgraph_node_set_element,
3850 const_cgraph_node_set_element, varpool_node_set_element_def,
3851 varpool_node_set_element, const_varpool_node_set_element): Remove.
3852 (free_cgraph_node_set, free_varpool_node_set): New function.
3853 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3854 * tree-emutls.c: Free varpool node set.
3855 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3856 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3857 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3858 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3859 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3860 Move here from ipa.c; implement using pointer_map
3861 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3862 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3863 debug_cgraph_node_set, varpool_node_set_new,
3864 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3865 dump_varpool_node_set, debug_varpool_node_set):
3866 Move to ipa-uitls.c.
3867 * passes.c (ipa_write_summaries): Update.
3868
3869 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3870
3871 From Mike Frysinger:
3872 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3873 bf542/bf544/bf547/bf548/bf549.
3874
3875 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
3876
3877 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3878
3879 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3880
3881 From Bernd Schmidt:
3882 * config/bfin/bfin.md (MOVCC): New mode_macro.
3883 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3884 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
3885 comments from generated assembly.
3886
3887 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3888
3889 From Bernd Schmidt
3890 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3891 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3892 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3893 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3894 * config/bfin/lib1funcs.asm (___muldi3): New function.
3895
3896 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3897
3898 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3899 build_function_type_list instead of build_function_type.
3900 Rearrange initialization of `args' to do so.
3901
3902 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3903
3904 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3905 instead of build_function_type.
3906
3907 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3908
3909 * config/rs6000/rs6000.c (spe_init_builtins): Call
3910 build_function_type_list instead of build_function_type.
3911 (paired_init_builtins, altivec_init_builtins): Likewise.
3912 (builtin_function_type): Likewise.
3913
3914 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3915
3916 * config/sh/sh.c (sh_media_init_builtins): Call
3917 build_function_type_list instead of build_function_type.
3918
3919 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3920
3921 * config/sparc/sparc.c (sparc_file_end): Call
3922 build_function_type_list instead of build_function_type.
3923
3924 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3925
3926 * config/alpha/alpha.c (alpha_init_builtins): Call
3927 build_function_type_list instead of build_function_type.
3928
3929 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3930
3931 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3932 build_function_type_list instead of build_function_type.
3933
3934 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3935
3936 * config/iq2000/i2000.c (iq2000_init_builtins): Call
3937 build_function_type_list instead of build_function_type.
3938 Delete `endlink' variable.
3939
3940 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3941
3942 * config/avr/avr.c (avr_init_builtins): Call
3943 build_function_type_list instead of build_function_type.
3944
3945 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3946
3947 * config/picochip/picochip.c (picochip_init_builtins): Call
3948 build_function_type_list instead of build_function_type.
3949 Delete `endlink' variable.
3950
3951 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3952
3953 * config/bfin/bfin.c (bfin_init_builtins): Call
3954 build_function_type_list instead of build_function_type.
3955
3956 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3957
3958 From Bernd Schmidt
3959 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3960 that's not CONST_INT. Seemingly redundant check is due to PR39768.
3961
3962 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3963
3964 From Jie Zhang:
3965 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3966 libbffastfp overrides libgcc when -mfast-fp.
3967
3968 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3969
3970 Originally from Bernd Schmidt
3971 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3972 * config/bfin/bfin.c (override_options): Test it and error if
3973 TARGET_FDPIC.
3974
3975 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3976
3977 Originally From Bernd Schmidt
3978 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3979 FD-PIC.
3980
3981 2011-05-03 Jeff Law <law@redhat.com>
3982
3983 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3984 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3985 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3986 than accessing AUX field directly. Free the AUX field before
3987 clearing it.
3988 (thread_block, thread_through_loop_header): Likewise.
3989 (thread_single_edge, mark_threaded_blocks): Likewise.
3990 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
3991 (register_jump_thread): Do not attempt to thread to a NULL edge.
3992
3993 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3994
3995 * function.c (init_function_start): Call decide_function_section.
3996 * varasm.c (decide_function_section): New function.
3997 (assemble_start_function): When not using
3998 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3999 or first_function_block_is_cold.
4000 * rtl.h (decide_function_section): Declare.
4001
4002 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
4003 Jakub Jelinek <jakub@redhat.com>
4004
4005 PR target/48774
4006 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
4007 only succeed if req_mode is the same as set_mode.
4008
4009 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
4010
4011 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
4012 * genemit.c (gen_exp): Handle RETURN.
4013 * emit-rtl.c (verify_rtx_sharing): Likewise.
4014 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
4015 * rtl.c (copy_rtx): RETURN is shared.
4016 * rtl.h (enum global_rtl_index): Add GR_RETURN.
4017 (ret_rtx): New.
4018 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
4019 * config/s390/s390.c (s390_emit_epilogue): Likewise.
4020 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
4021 * config/cris/cris.c (cris_expand_return): Likewise.
4022 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
4023 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
4024 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
4025 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
4026 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
4027 Likewise.
4028 * config/v850/v850.c (expand_epilogue): Likewise.
4029 * config/bfin/bfin.c (bfin_expand_call): Likewise.
4030 * config/arm/arm.md (epilogue): Likewise.
4031 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
4032 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
4033 variable to ret_reg.
4034
4035 2011-05-03 Richard Guenther <rguenther@suse.de>
4036
4037 PR lto/48846
4038 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
4039 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
4040 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4041
4042 2011-05-03 Richard Guenther <rguenther@suse.de>
4043
4044 * c-decl.c (grokdeclarator): Instead of looking at
4045 TREE_OVERFLOW check if the constant fits in the index type.
4046
4047 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
4048
4049 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
4050 (vec_store_lanes<mode><mode>): Likewise.
4051
4052 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
4053
4054 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
4055 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
4056 convert_optab_index values.
4057 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
4058 * genopinit.c (optabs): Initialize the new optabs.
4059 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
4060 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
4061 (expand_STORE_LANES): New functions.
4062 * tree.h (build_array_type_nelts): Declare.
4063 * tree.c (build_array_type_nelts): New function.
4064 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
4065 (vect_model_load_cost): Likewise.
4066 (vect_store_lanes_supported, vect_load_lanes_supported)
4067 (vect_record_strided_load_vectors): Declare.
4068 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
4069 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
4070 (vect_transform_strided_load): Split out statement recording into...
4071 (vect_record_strided_load_vectors): ...this new function.
4072 * tree-vect-stmts.c (create_vector_array, read_vector_array)
4073 (write_vector_array, create_array_ref): New functions.
4074 (vect_model_store_cost): Add store_lanes_p argument.
4075 (vect_model_load_cost): Add load_lanes_p argument.
4076 (vectorizable_store): Try to use store-lanes functions for
4077 interleaved stores.
4078 (vectorizable_load): Likewise load-lanes and loads.
4079 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
4080 to vect_model_store_cost.
4081 (vect_build_slp_tree): Likewise vect_model_load_cost.
4082
4083 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
4084
4085 * hooks.h (hook_bool_mode_uhwi_false): Declare.
4086 * hooks.c (hook_bool_mode_uhwi_false): New function.
4087 * target.def (array_mode_supported_p): New hook.
4088 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
4089 * doc/tm.texi: Regenerate.
4090 * stor-layout.c (mode_for_array): New function.
4091 (layout_type): Use it.
4092 * config/arm/arm.c (arm_array_mode_supported_p): New function.
4093 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
4094
4095 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
4096
4097 PR target/48723
4098 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
4099 for -fstack-check if the size to allocate is negative.
4100
4101 2011-05-02 Lawrence Crowl <crowl@google.com>
4102
4103 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
4104 (timevar_cond_start): New for starting a timer only when it is not
4105 already running.
4106 (timevar_cond_stop): New for stopping a timer when it was not already
4107 running.
4108
4109 * timevar.c (timevar_stop): Enable start/stop timers to start again.
4110 (timevar_cond_start): New as above.
4111 (timevar_cond_stop): New as above.
4112
4113 * timevar.def: Add start/stop timers for compiler phases,
4114 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
4115 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
4116 and TV_PHASE_FINALIZE.
4117 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
4118 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
4119 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
4120 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
4121 Make unused TV_OVERLOAD into a start/stop timer.
4122
4123 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
4124 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
4125 to indicate that they are start/stop timers.
4126
4127 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
4128 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
4129 Move initialization to do_compile.
4130 (do_compile): Add initialization from above.
4131 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
4132
4133 * c-decl.c (c_write_global_declarations): Add start/stop of
4134 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
4135
4136 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
4137 or TV_PARSE_INLINE, as appropriate.
4138 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
4139 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
4140
4141 2011-05-02 Jason Merrill <jason@redhat.com>
4142
4143 PR c++/40975
4144 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
4145
4146 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
4147
4148 PR c/35445
4149 * c-decl.c (finish_decl): Only create a composite if the types are
4150 compatible.
4151
4152 2011-05-02 Joseph Myers <joseph@codesourcery.com>
4153
4154 * config/fr30/fr30-protos.h (Mmode): Don't define.
4155 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
4156 definition where used.
4157 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
4158 define. Expand definitions where used.
4159 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
4160 Expand definitions where used.
4161 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
4162 rx_function_arg, rx_function_arg_advance,
4163 rx_function_arg_boundary): Expand definitions of those macros.
4164 * config/v850/v850-protos.h (Mmode): Don't define. Expand
4165 definition where used.
4166
4167 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
4168
4169 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
4170 reg<->xmm moves.
4171 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
4172 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
4173 with *movv2sf_internal_rex64_avx.
4174 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
4175 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
4176 Use %v prefix in insn mnemonic to handle TARGET_AVX.
4177 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
4178 "vex" in "prefix" attribute calculation.
4179 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
4180
4181 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
4182
4183 PR target/47951
4184 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
4185 inputs match the output.
4186
4187 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
4188
4189 PR target/47955
4190 * config/m68k/m68k.c (m68k_expand_prologue): Set
4191 current_function_static_stack_size.
4192
4193 2011-05-02 Jan Hubicka <jh@suse.cz>
4194
4195 * lto-streamer.c (lto_streamer_cache_insert_1,
4196 lto_streamer_cache_lookup, lto_streamer_cache_create,
4197 lto_streamer_cache_delete): Use pointer map instead of hashtable.
4198 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
4199
4200 2011-05-02 Joseph Myers <joseph@codesourcery.com>
4201
4202 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
4203 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
4204 config/m68k/t-opts: New files.
4205 * config/m68k/m68k-tables.opt: New file (generated).
4206 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
4207 extra_options and m68k/t-opts to tmake_file.
4208 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
4209 (all_isas): Initialize using m68k-isas.def.
4210 (all_microarchs): Initialize using m68k-microarchs.def.
4211 (m68k_find_selection): Remove.
4212 (m68k_handle_option): Don't assert that global structures are in
4213 use. Use error_at. Access variables via opts pointer. Don't
4214 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
4215 directly for -m68020-40 and -m68020-60.
4216 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
4217 m68k_tune_entry here.
4218 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
4219 to m68k-opts.h.
4220 (m68k_library_id_string): Remove declaration.
4221 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
4222 (m68k_library_id_string): New Variable.
4223 (march=, mcpu=, mtune=): Use Enum and Var.
4224
4225 2011-05-02 Richard Guenther <rguenther@suse.de>
4226
4227 * varasm.c (output_constructor_regular_field): Compute zero-based
4228 index with double-ints. Make sure to ICE instead of producing
4229 wrong code.
4230 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
4231 in asserts. Properly use a signed type.
4232
4233 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
4234
4235 * config/i386/sse.md (V): New mode iterator.
4236 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
4237 TARGET_SSE2.
4238 (V_256): Rename from AVX256MODE.
4239 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
4240 condition to all users.
4241 (VF1): Ditto.
4242 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
4243 condition to all users.
4244 (VF_128): Make V4SF mode unconditional.
4245 (VF_256): Rename from AVX256MODEF2P.
4246 (VI4F_128): Rename from SSEMODE4S.
4247 (VI8F_128): Rename from SSEMODE2D.
4248 (VI4F_256): Rename from AVX256MODE8P.
4249 (VI8F_256): Rename from AVX256MODE4P.
4250 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
4251 (ssescalarmodesuffix): Remove SF and DF modes.
4252 (SSEMODE124): Remove.
4253 (SSEMODE1248): Ditto.
4254 (SSEMODEF2P): Ditto.
4255 (AVXMODEF2P): Ditto.
4256 (AVXMODEFDP): Ditto.
4257 (AVXMODEFSP): Ditto.
4258 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
4259 unconditional.
4260 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
4261 unconditional.
4262 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
4263 xop_pcmov_<mode>256. Use V mode iterator.
4264
4265 Adjust RTX patterns globally for renamed mode attributes.
4266
4267 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4268
4269 * haifa-sched.c (sched_emit_insn): Emit insn before first
4270 non-scheduled insn. Inform back-end about new insn. Add
4271 new insn to scheduled_insns list.
4272
4273 2011-05-02 Richard Guenther <rguenther@suse.de>
4274
4275 PR tree-optimization/48822
4276 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
4277 (process_scc): Indicate which iteration we start.
4278
4279 2011-05-02 Jan Hubicka <jh@suse.cz>
4280
4281 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
4282 (lto_section_overrun): New.
4283 * lto-section-out.c (append_block): Rename to ...
4284 (lto_append_block): ... this one; export.
4285 (lto_output_1_stream): Move lto lto-streamer.h
4286 (lto_output_data_stream): Update.
4287 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
4288 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
4289 functions.
4290
4291 2011-05-02 Richard Guenther <rguenther@suse.de>
4292
4293 * tree.c (tree_code_counts): New global array.
4294 (record_node_allocation_statistics): Count individual tree codes.
4295 (dump_tree_statistics): Dump individual code stats.
4296
4297 2011-05-01 Jan Hubicka <jh@suse.cz>
4298
4299 * ipa-inline.c (caller_growth_limits): Fix thinko when
4300 looking for largest stack frame.
4301 * ipa-inline.h (dump_inline_summary): Declare.
4302 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
4303 on stack usage.
4304 (dump_inline_summary): Export.
4305 (debug_inline_summary): Declare as DEBUG_FUNCTION.
4306
4307 2011-05-01 Anatoly Sokolov <aesok@post.ru>
4308
4309 * reginfo.c (memory_move_cost): Change rclass argument type form
4310 'enum reg_class' to reg_class_t.
4311 * reload.h (memory_move_cost): Update prototype.
4312 * postreload.c reload_cse_simplify_set): Change type dclass var to
4313 reg_class_t.
4314 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
4315 Update prototype.
4316 (ira_allocate_and_set_costs): Change aclass argument type form
4317 'enum reg_class' to reg_class_t.
4318 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
4319 Change aclass argument type to reg_class_t.
4320 (update_conflict_hard_reg_costs): Change type aclass and pref vars
4321 to reg_class_t.
4322 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
4323 memory_move_cost call.
4324
4325 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
4326 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
4327 Change type tmp var to reg_class_t.
4328
4329 2011-04-30 Jan Hubicka <jh@suse.cz>
4330
4331 * ipa-inline.c (can_inline_edge_p): Disregard limits when
4332 inlining into function with flatten attribute.
4333 (want_inline_small_function_p): Be more realistic about inlining
4334 cold calls where callee size grows.
4335
4336 2011-04-30 Jan Hubicka <jh@suse.cz>
4337
4338 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
4339 flags.
4340
4341 2011-04-30 Anatoly Sokolov <aesok@post.ru>
4342
4343 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4344 PRINT_OPERAND_PUNCT_VALID_P): Remove.
4345 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
4346 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
4347 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4348 (print_operand): Rename to...
4349 (sparc_print_operand): ...this. Make static. Adjust
4350 sparc_print_operand function call.
4351 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
4352 functions.
4353
4354 2011-04-30 Jan Hubicka <jh@suse.cz>
4355
4356 PR middle-end/48752
4357 * ipa-inline.c (early_inliner): Disable when doing late
4358 addition of function.
4359
4360 2011-04-30 Jakub Jelinek <jakub@redhat.com>
4361
4362 * dwarf2out.c (get_address_mode): New inline.
4363 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
4364 if not dwarf_strict emit
4365 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
4366 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
4367 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
4368 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
4369 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
4370 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
4371 mem_loc_descriptor callers.
4372 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
4373 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
4374 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
4375 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
4376 (base_types): New variable.
4377 (get_base_type_offset, calc_base_type_die_sizes,
4378 base_type_for_mode, mark_base_types, base_type_cmp,
4379 move_marked_base_types): New functions.
4380 (calc_die_sizes): Assert that die_offset is 0 or equal to
4381 next_die_offset.
4382 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
4383 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
4384 callers. If not dwarf_strict, call mem_loc_descriptor even for
4385 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
4386 (gen_subprogram_die): Don't give up on call site parameters
4387 with non-integral or large integral modes. Adjust
4388 mem_loc_descriptor callers.
4389 (prune_unused_types): Call prune_unused_types_mark on base_types
4390 vector entries.
4391 (resolve_addr): Call mark_base_types.
4392 (dwarf2out_finish): Call move_marked_base_types.
4393
4394 PR tree-optimization/48809
4395 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
4396 type.
4397 (gen_inbound_check): Don't compute index_expr - range_min in utype
4398 again, instead reuse SSA_NAME initialized in build_arrays.
4399 Remove two useless gsi_for_stmt calls.
4400
4401 2011-04-29 Jeff Law <law@redhat.com>
4402
4403 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
4404
4405 2011-04-29 Martin Jambor <mjambor@suse.cz>
4406
4407 * cgraph.h (cgraph_postorder): Remove declaration.
4408 * ipa-utils.h (ipa_free_postorder_info): Declare.
4409 (ipa_reverse_postorder): Likewise.
4410 * cgraphunit.c: Include ipa-utils.h.
4411 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
4412 * ipa-inline.c: Include ipa-utils.h.
4413 (ipa_inline): Update call to ipa_reverse_postorder.
4414 * ipa-pure-const.c (propagate_pure_const): Update call to
4415 ipa_reduced_postorder and ipa_print_order. Call
4416 ipa_free_postorder_info to clean up.
4417 (propagate_nothrow): Likewise.
4418 * ipa-reference.c (propagate): Removed a useless call to
4419 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
4420 and ipa_print_order. Call ipa_free_postorder_info to clean up.
4421 * ipa.c: Include ipa-utils.h.
4422 (ipa_profile): Update call to ipa_reverse_postorder.
4423 (cgraph_postorder): Moved to...
4424 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
4425 (ipa_utils_print_order): Renamed to ipa_print_order.
4426 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
4427 comments.
4428 (ipa_free_postorder_info): New function.
4429 * passes.c: Include ipa-utils.h.
4430 (do_per_function_toporder): Update call to ipa_reverse_postorder.
4431 (ipa_write_summaries): Likewise.
4432 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
4433 (cgraphunit.o): Likewise.
4434 (ipa.o): Likewise.
4435 (ipa-inline.o): Likewise.
4436
4437 2011-04-29 Jan Hubicka <jh@suse.cz>
4438
4439 * gcc.dg/tree-ssa/inline-10.c: New testcase.
4440 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
4441 * ipa-inline.h (clause_t): Turn into unsigned int.
4442 * ipa-inline-analysis.c (add_clause): Do more simplification.
4443 (and_predicates): Shortcut more cases.
4444 (predicates_equal_p): Move forward; check that clauses are properly
4445 ordered.
4446 (or_predicates): Shortcut more cases.
4447 (edge_execution_predicate): Rewrite as...
4448 (set_cond_stmt_execution_predicate): ... this function; handle
4449 __builtin_constant_p.
4450 (set_switch_stmt_execution_predicate): New .
4451 (compute_bb_predicates): New.
4452 (will_be_nonconstant_predicate): Update TODO.
4453 (estimate_function_body_sizes): Use compute_bb_predicates
4454 and free them later, always try to estimate if stmt is constant.
4455 (estimate_time_after_inlining, estimate_size_after_inlining):
4456 Gracefully handle optimized out edges.
4457 (read_predicate): Fix off by one error.
4458
4459 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
4460
4461 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
4462
4463 2011-04-27 Xinliang David Li <davidxl@google.com>
4464
4465 * tree-profile.c (init_ic_make_global_vars): Set
4466 tls attribute on ic vars.
4467 * coverage.c (coverage_end_function): Initialize
4468 function_list with zero.
4469
4470 2011-04-29 Richard Guenther <rguenther@suse.de>
4471
4472 * builtins.c (fold_builtin_classify_type): Use integer_type_node
4473 for the type of the result.
4474 (fold_builtin_isascii): Likewise.
4475 (fold_builtin_toascii): Use integer_type_node where appropriate.
4476 (fold_builtin_logb): Likewise.
4477 (fold_builtin_frexp): Likewise.
4478 (fold_builtin_strstr): Likewise.
4479 (fold_builtin_strpbrk): Likewise.
4480 (fold_builtin_fputs): Likewise.
4481 (fold_builtin_sprintf): Likewise.
4482 (fold_builtin_snprintf): Likewise.
4483 (fold_builtin_printf): Likewise.
4484 (do_mpfr_remquo): Use a proper type for the assigned constant.
4485 (do_mpfr_lgamma_r): Likewise.
4486 * dwarf2out.c (resolve_one_addr): Use size_int.
4487 * except.c (init_eh): Likewise.
4488 (assign_filter_values): Use integer_type_node for filter values.
4489 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
4490 indices.
4491 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
4492 for EH region numbers.
4493 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
4494 for the shift amount.
4495
4496 2011-04-29 Richard Guenther <rguenther@suse.de>
4497
4498 * expr.h (expand_shift): Rename to ...
4499 (expand_variable_shift): ... this.
4500 (expand_shift): Take a constant shift amount.
4501 * expmed.c (expand_shift): Rename to ...
4502 (expand_variable_shift): ... this.
4503 (expand_shift): New wrapper around expand_variable_shift.
4504 * expr.c (convert_move, emit_group_load_1, emit_group_store,
4505 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
4506 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
4507 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
4508 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
4509 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
4510 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
4511 emit_store_flag_1, emit_store_flag): Likewise.
4512 * builtins.c (expand_builtin_signbit): Likewise.
4513 * calls.c (load_register_parameters): Likewise.
4514 * function.c (assign_parm_setup_block): Likewise.
4515 * lower-subreg.c (resolve_shift_zext): Likewise.
4516 * optabs.c (widen_bswap, expand_abs_nojump,
4517 expand_one_cmpl_abs_nojump, expand_float): Likewise.
4518 * spu/spu.c (spu_expand_extv): Likewise.
4519 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4520
4521 2011-04-29 Richard Guenther <rguenther@suse.de>
4522
4523 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
4524 for the remapped region number.
4525 * predict.c (build_predict_expr): Use integer_type_node for the
4526 predict kind.
4527 * fold-const.c (fold_binary_loc): Use integer_type_node for
4528 the shift amount. Use a proper type for the PLUS_EXPR operand.
4529
4530 2011-04-29 Michael Matz <matz@suse.de>
4531
4532 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
4533 other trees that just builtins.
4534 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
4535
4536 2011-04-29 Richard Guenther <rguenther@suse.de>
4537
4538 * tree-nested.c (get_trampoline_type): Use size_int.
4539 (get_nl_goto_field): Likewise.
4540 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
4541 for all indexes.
4542 (lower_eh_constructs_2): Likewise.
4543 (lower_resx): Likewise.
4544 (lower_eh_dispatch): Likewise.
4545 * tree-mudflap.c (mf_build_string): Use size_int.
4546 (mudflap_register_call): Use integer_type_node for the flag.
4547 (mudflap_enqueue_constant): Use size_int.
4548 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
4549 instead of rebuilding it.
4550
4551 2011-04-29 Richard Guenther <rguenther@suse.de>
4552
4553 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
4554 Handle OBJ_TYPE_REF.
4555 (find_func_aliases_for_call): Use it more consistently.
4556
4557 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
4558
4559 * haifa-sched.c (last_nondebug_scheduled_insn): New.
4560 (rank_for_schedule): Use it.
4561 (schedule_block): Set it.
4562
4563 2011-04-28 David Li <davidxl@google.com>
4564
4565 * tree.c (crc32_string): Use crc32_byte.
4566 (crc32_byte): New function.
4567 * tree.h (crc32_byte): New function.
4568 * gcov.c (read_graph_file): Handle new cfg_cksum.
4569 (read_count_file): Ditto.
4570 * profile.c (instrument_values): Ditto.
4571 (get_exec_counts): Ditto.
4572 (read_profile_edge_counts): Ditto.
4573 (compute_branch_probabilities): Ditto.
4574 (compute_value_histograms): Ditto.
4575 (branch_prob): Ditto.
4576 (end_branch_prob): Ditto.
4577 * coverage.c (read_counts_file): Ditto.
4578 (get_coverage_counts): Ditto.
4579 (tree_coverage_counter_addr): Ditto.
4580 (coverage_checksum_string): Ditto.
4581 (coverage_begin_output): Ditto.
4582 (coverage_end_function): Ditto.
4583 (build_fn_info_type): Ditto.
4584 (build_fn_info_value): Ditto.
4585 * libgcov.c (gcov_exit): Ditto.
4586 * gcov-dump.c (tag_function): Ditto.
4587 (compute_checksum): Remove.
4588
4589 2011-04-29 Alan Modra <amodra@gmail.com>
4590
4591 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4592 unspec plus offset. Tidy macho code.
4593
4594 2011-04-29 Martin Jambor <mjambor@suse.cz>
4595
4596 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
4597 node instead of a decl. Update all callers.
4598 * cgraph.h: Update declaration.
4599
4600 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
4601
4602 PR tree-optimization/48765
4603 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
4604 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
4605 to indicate if loop aware SLP is being used. Scan the statements
4606 and update the vectorization factor according to the type of
4607 vectorization before statement analysis.
4608 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
4609 pass it to vect_analyze_loop_operations.
4610 (vectorizable_reduction): Set number of copies to 1 in case of pure
4611 SLP statement.
4612 * tree-vect-stmts.c (vectorizable_conversion,
4613 vectorizable_assignment, vectorizable_shift,
4614 vectorizable_operation, vectorizable_type_demotion,
4615 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
4616 Likewise.
4617 (vectorizable_condition): Move the check that it is not SLP
4618 vectorization before the number of copies check.
4619 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
4620 to vectorize the loop using SLP.
4621
4622 2011-04-28 Jakub Jelinek <jakub@redhat.com>
4623
4624 PR middle-end/48597
4625 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
4626 inline asm.
4627
4628 2011-04-28 Joseph Myers <joseph@codesourcery.com>
4629
4630 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
4631 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
4632 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
4633 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
4634 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
4635 linux*.h headers.
4636 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
4637 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4638 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4639 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4640 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4641 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
4642 REG_NAME.
4643 * config/i386/linux.h (REG_NAME): Don't define.
4644 * config/i386/linux64.h (REG_NAME): Don't define.
4645 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
4646 Undefine before defining.
4647
4648 2011-04-28 Jan Hubicka <jh@suse.cz>
4649
4650 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
4651 nonconstant_names array.
4652 (estimate_function_body_sizes): Build nonconstant_names array; handle
4653 BUILT_IN_CONSTANT_P.
4654
4655 2011-04-28 Richard Guenther <rguenther@suse.de>
4656
4657 PR bootstrap/48804
4658 Revert
4659 2011-04-28 Richard Guenther <rguenther@suse.de>
4660
4661 * tree-ssa-structalias.c (solve_constraints): Build succ graph
4662 as late as possible.
4663
4664 2011-04-28 Richard Guenther <rguenther@suse.de>
4665
4666 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
4667 (debug_constraint): Do it here.
4668 (dump_constraints): And here.
4669 (rewrite_constraints): And here.
4670 (dump_constraint_edge): Remove.
4671 (dump_constraint_graph): Rewrite to produce DOT output.
4672 (solve_constraints): Build succ graph as late as possible.
4673 Dump constraint graphs before and after solving.
4674
4675 2011-04-28 Richard Guenther <rguenther@suse.de>
4676
4677 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4678 New function split out from ...
4679 (find_func_aliases): ... here. Call it.
4680 (find_func_aliases_for_call): Likewise.
4681
4682 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
4683
4684 * internal-fn.h (internal_fn_name_array): Declare.
4685 (internal_fn_flags_array): Likewise.
4686
4687 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
4688
4689 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
4690 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
4691 Move from sse.md.
4692 (ssemodefsuffix): Remove.
4693 (ssevecmodesuffix): New mode attribute.
4694 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
4695 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4696 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4697 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4698 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
4699 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
4700 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
4701 ssemodesuffix mode attribute.
4702 (float splitters): Use ssevecmodesuffix mode attribute.
4703 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
4704 (sseinsmode): Rename from avxvecmode.
4705 (avxsizesuffix): Rename from avxmodesuffix.
4706 (sseintvecmode): Rename from avxpermvecmode.
4707 (ssedoublevecmode): Rename from ssedoublesizemode.
4708 (ssehalfvecmode): Rename from avxhalfvecmode.
4709 (ssescalarmode): Rename from avxscalarmode.
4710 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
4711 templates for ssemodesuffix mode attribute.
4712 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
4713 mode attribute.
4714
4715 Adjust RTX patterns globally for renamed mode attributes.
4716
4717 2011-04-27 Jan Hubcika <jh@suse.cz>
4718
4719 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
4720 * ipa-inline-analysis.c: Include alloc-pool.h.
4721 (edge_predicate_pool): New.
4722 (trye_predicate_p): New function
4723 (false_predicate_p): New function.
4724 (add_clause): Sanity check that false clauses are "optimized";
4725 never add clauses to predicate that is already known to be false.
4726 (and_predicate): Use flase_predicate_p.
4727 (evaulate_predicate): Rename to ...
4728 (evaluate_predicate): ... this one; update all callers; assert
4729 that false is not listed among possible truths.
4730 (dump_predicate): Use true_predicate_p.
4731 (account_size_time): Use false_predicate_p.
4732 (evaulate_conditions_for_edge): Rename to ...
4733 (evaluate_conditions_for_edge) ... this one.
4734 (edge_set_predicate): New function.
4735 (inline_edge_duplication_hook): Duplicate edge predicates.
4736 (inline_edge_removal_hook): Free edge predicates.
4737 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4738 (dump_inline_summary): Update.
4739 (estimate_function_body_sizes): Set edge predicates.
4740 (estimate_calls_size_and_time): Handle predicates.
4741 (estimate_callee_size_and_time): Update.
4742 (remap_predicate): Add toplev_predicate; update comment.
4743 (remap_edge_predicates): New function.
4744 (inline_merge_summary): Compute toplev predicate; update.
4745 (read_predicate): New function.
4746 (read_inline_edge_summary): Use it.
4747 (inline_read_section): Likewise.
4748 (write_predicate): New function.
4749 (write_inline_edge_summary): Use it.
4750 (inline_write_summary): Likewise.
4751 (inline_free_summary): Free alloc pool and edge summary vec.
4752
4753 2011-04-27 Richard Guenther <rguenther@suse.de>
4754
4755 * tree-ssa-structalias.c (changed_count): Remove.
4756 (changed): Use a bitmap.
4757 (unify_nodes): Adjust.
4758 (do_sd_constraint): Likewise.
4759 (do_ds_constraint): Likewise.
4760 (do_complex_constraint): Likewise.
4761 (solve_graph): Likewise.
4762
4763 2011-04-27 Jan Hubicka <jh@suse.cz>
4764
4765 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4766
4767 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
4768
4769 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4770 (avx_vperm2f128_*_operand): Ditto.
4771 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4772 Use avx_vpermilp_parallel in insn condition.
4773 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4774 Use avx_vperm2f128_parallel in insn condition.
4775
4776 2011-04-27 Richard Guenther <rguenther@suse.de>
4777
4778 * Makefile.in (tree-ssa-structalias.o): Remove
4779 gt-tree-ssa-structalias.h dependency.
4780 (GTFILES): Remove tree-ssa-structalias.c.
4781 * tree.c (allocate_decl_uid): New function.
4782 (make_node_stat): Use it.
4783 (copy_node_stat): Likewise.
4784 * tree.h (allocate_decl_uid): Declare.
4785 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4786 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4787 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4788 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4789 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4790 (struct heapvar_map): Likewise.
4791 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4792 heapvar_insert): Likewise.
4793 (make_heapvar_for): Rename to ...
4794 (make_heapvar): ... this. Simplify.
4795 (fake_var_decl_obstack): New global var.
4796 (build_fake_var_decl): New function.
4797 (make_constraint_from_heapvar): Adjust.
4798 (handle_lhs_call): Likewise.
4799 (create_function_info_for): Likewise.
4800 (intra_create_variable_infos): Likewise.
4801 (init_alias_vars): Allocate fake_var_decl_obstack.
4802 (init_alias_heapvars, delete_alias_heapvars): Remove.
4803 (compute_points_to_sets): Do not call init_alias_heapvars.
4804 (ipa_pta_execute): Likewise.
4805 (delete_points_to_sets): Free fake_var_decl_obstack.
4806
4807 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4808
4809 * config/spu/divmovti4.c (union qword_UTItype): New data type.
4810 (si_from_UTItype, si_to_UTItype): New functions.
4811 (__udivmodti4): Use them to implement type-punning.
4812 * config/spu/multi3.c (union qword_TItype): New data type.
4813 (si_from_TItype, si_to_TItype): New functions.
4814 (__multi3): Use them to implement type-punning.
4815
4816 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4817
4818 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4819
4820 2011-04-27 Jan Hubicka <jh@suse.cz>
4821
4822 * ipa-prop.c (function_insertion_hook_holder): New holder.
4823 (ipa_add_new_function): New function.
4824 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4825 Register/deregister holder.
4826
4827 2011-04-27 Richard Guenther <rguenther@suse.de>
4828
4829 PR tree-optimization/48772
4830 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4831
4832 2011-04-27 Richard Guenther <rguenther@suse.de>
4833
4834 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4835 TARGET_MEM_REF handling.
4836
4837 2011-04-27 Nick Clifton <nickc@redhat.com>
4838
4839 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4840 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4841 (REG_CLASS_NAMES): Likewise.
4842 (REG_CLASS_CONTENTS): Likewise.
4843 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4844 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4845 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
4846 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
4847 (EVEN_REGS): New macro. Alias for QUAD_REGS.
4848 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4849 duplicate register classes.
4850 (frv_class_likely_spilled_p): Likewise.
4851 (frv_register_move_cost): Likewise.
4852
4853 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4854 end of the regno_reg_class array.
4855
4856 2011-04-27 Jakub Jelinek <jakub@redhat.com>
4857
4858 PR c/48742
4859 * c-typeck.c (build_binary_op): Don't wrap arguments if
4860 int_operands is true.
4861
4862 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
4863
4864 PR target/48767
4865 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4866 targetm.calls.must_pass_in_stack for void type.
4867
4868 2011-04-26 Jan Hubicka <jh@suse.cz>
4869
4870 * cgraphbuild.c (build_cgraph_edges): Update call
4871 of cgraph_create_edge and cgraph_create_indirect_edge.
4872 * cgraph.c (cgraph_create_edge_including_clones,
4873 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4874 cgraph_update_edges_for_call_stmt_node): Do not take nest
4875 argument; do not initialize call_stmt_size/time.
4876 (dump_cgraph_node): Do not dump nest.
4877 (cgraph_clone_edge): Do not take loop_nest argument;
4878 do not propagate it; do not clone call_stmt_size/time.
4879 (cgraph_clone_node): Likewise.
4880 (cgraph_create_virtual_clone): Update.
4881 * cgraph.h (struct cgraph_edge): Remove
4882 call_stmt_size/call_stmt_time/loop_nest.
4883 (cgraph_create_edge, cgraph_create_indirect_edge,
4884 cgraph_create_edge_including_clones, cgraph_clone_node): Update
4885 prototype.
4886 * tree-emutls.c (gen_emutls_addr): Update.
4887 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4888 loop_nest; handle indirect calls, too.
4889 (clone_inlined_nodes): Do not care about updating inline summaries.
4890 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4891 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4892 stream call_stmt_size/call_stmt_time/loop_nest.
4893 * ipa-inline.c (edge_badness): Update.
4894 (ipa_inline): dump summaries after inlining.
4895 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4896 New.
4897 (inline_edge_summary): New function.
4898 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4899 (inline_edge_removal_hook): Handle edge summaries.
4900 (inline_edge_duplication_hook): New hook.
4901 (inline_summary_alloc): Alloc hooks.
4902 (initialize_growth_caches): Do not register removal hooks.
4903 (free_growth_caches); Do not free removal hook.
4904 (dump_inline_edge_summary): New function.
4905 (dump_inline_summary): Use it.
4906 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4907 (inline_update_callee_summaries): New function.
4908 (inline_merge_summary): Use it.
4909 (do_estimate_edge_time, do_estimate_edge_growth): Update.
4910 (read_inline_edge_summary): New function.
4911 (inline_read_section): Use it.
4912 (write_inline_edge_summary): New function.
4913 (inline_write_summary): Use it.
4914 (inline_free_summary): Free edge new holders.
4915 * tree-inline.c (copy_bb): Update.
4916
4917 2011-04-26 Jason Merrill <jason@redhat.com>
4918
4919 * tree-eh.c (lower_try_finally_switch): Create the label along with
4920 the CASE_LABEL_EXPR.
4921
4922 2011-04-26 David S. Miller <davem@davemloft.net>
4923 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4924
4925 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4926 * configure: Regenerate.
4927
4928 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
4929
4930 PR target/48258
4931 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4932 reduction.
4933 (VEC_reduc): New code iterator and splitters for vector reduction.
4934 (VEC_reduc_name): Ditto.
4935 (VEC_reduc_rtx): Ditto.
4936 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4937 (reduc_<VEC_reduc_name>_v4sf): Ditto.
4938
4939 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4940 support for extracting SF on VSX.
4941
4942 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4943 generating xscvspdp.
4944 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4945 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4946 double add, minimum, maximum vector reduction.
4947 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4948 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4949 optimize double vector reduction.
4950 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4951
4952 2011-04-26 Joseph Myers <joseph@codesourcery.com>
4953
4954 * config/fr30/fr30.h (inhibit_libc): Don't define.
4955 * config/m32r/m32r-protos.h: Correct comment.
4956 * config/v850/v850.h (GHS_default_section_names,
4957 GHS_current_section_names): Use tree, not union tree_node *.
4958
4959 2011-04-26 Xinliang David Li <davidxl@google.com>
4960
4961 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
4962 * c-family/c-opts.c (c_common_handle_option): Set
4963 warn_maybe_uninitialized.
4964 * opts.c (common_handle_option): Ditto.
4965 * common.opt: New option.
4966 * tree-ssa.c (warn_uninit): Add one more parameter.
4967 (warn_uninitialized_var): Pass warning code.
4968 * tree-flow.h: Interface change.
4969
4970 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4971
4972 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4973 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4974 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4975
4976 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4977
4978 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4979 * config/mips/mips.opt (mmips-tfile): Remove.
4980
4981 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4982 mips-tdump reference to ...
4983 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
4984 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4985 reference by Tru64 UNIX.
4986
4987 2011-04-26 Jakub Jelinek <jakub@redhat.com>
4988
4989 PR debug/48768
4990 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4991 is error_mark_node, set value to NULL.
4992
4993 PR tree-optimization/48734
4994 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4995 if return value from maybe_fold_*_comparsions isn't something
4996 the code is prepared to handle.
4997
4998 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
4999
5000 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
5001 mode check.
5002 (ext_QIreg_nomode_operands): Remove.
5003 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
5004 (*andsi_1): Ditto.
5005 (*andhi_1): Ditto.
5006
5007 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
5008
5009 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
5010
5011 2011-04-26 Richard Guenther <rguenther@suse.de>
5012
5013 * c-typeck.c (build_unary_op): Do not expand array-refs via
5014 pointer arithmetic. Only adjust qualifiers for function types.
5015
5016 2011-04-26 Richard Guenther <rguenther@suse.de>
5017
5018 PR middle-end/48694
5019 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
5020 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
5021 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
5022 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
5023
5024 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
5025
5026 * doc/extend.texi: Document __underlying_type.
5027
5028 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
5029
5030 * config/rs6000/titan.md (automata_option "progress"): Remove.
5031
5032 2011-04-25 Jeff Law <law@redhat.com>
5033
5034 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
5035
5036 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
5037
5038 * system.h (ENUM_BITFIELD): Remove.
5039
5040 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
5041 Eric Botcazou <ebotcazou@adacore.com>
5042
5043 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
5044 for STORE_FLAG_VALUE==-1 case.
5045
5046 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
5047
5048 PR target/43804
5049 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
5050 LEGITIMATE_PIC_OPERAND_P.
5051
5052 2011-04-24 Jan Hubicka <jh@suse.cz>
5053
5054 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
5055 WPA hack.
5056 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
5057 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
5058 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
5059 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
5060 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
5061 Sanity check predicate length.
5062 (remap_predicate): Likewise; sanity check jump functions.
5063 (inline_read_section, inline_write_summary): Sanity check
5064 predicate length.
5065
5066 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
5067
5068 PR other/48748
5069 * doc/extend.texi (Type Traits): Document __is_standard_layout,
5070 __is_literal_type, and __is_trivial; update throughout about
5071 possibly cv-qualified void types.
5072
5073 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
5074
5075 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
5076 testsuite and make it version agnostic.
5077
5078 2011-04-22 Jan Hubicka <jh@suse.cz>
5079
5080 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
5081
5082 2011-04-23 Jakub Jelinek <jakub@redhat.com>
5083
5084 PR c/48685
5085 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
5086 to VOID_TYPE even around MODIFY_EXPR.
5087
5088 2011-04-22 Mike Stump <mikestump@comcast.net>
5089
5090 * gensupport.c (read_md_rtx): Fix typo in comment.
5091 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
5092 comment.
5093
5094 2011-04-22 Jan Hubicka <jh@suse.cz>
5095
5096 * gengtype.c (open_base_files): Add ipa-inline.h include.
5097 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
5098 ipa-prop.c; update all uses.
5099 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
5100 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
5101 merge summary of inlined function into former caller.
5102 * ipa-inline.c (max_benefit): Remove.
5103 (edge_badness): Compensate for removal of benefits.
5104 (update_caller_keys): Use
5105 reset_node_growth_cache/reset_edge_growth_cache.
5106 (update_callee_keys): Likewise.
5107 (update_all_callee_keys): Likewise.
5108 (inline_small_functions): Do not collect max_benefit; do not reset
5109 estimated_growth; call free_growth_caches and initialize_growth_caches.
5110 * ipa-inline.h (struct condition, type clause_t, struct predicate,
5111 struct size_time_entry): New structures.
5112 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
5113 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
5114 and estimated_growth.
5115 (edge_growth_cache_entry): New structure.
5116 (node_growth_cache, edge_growth_cache): New global vars.
5117 (estimate_growth): Turn into inline.
5118 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
5119 initialize_growth_caches, free_growth_caches): Declare.
5120 (estimate_edge_growth): Rewrite.
5121 (estimate_edge_time): Implement as inline cache lookup.
5122 (reset_node_growth_cache, reset_edge_growth_cache): New inline
5123 functions.
5124 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
5125 (NUM_CONDITIONS): New constant.
5126 (predicate_conditions): New enum.
5127 (IS_NOT_CONSTANT): New constant.
5128 (edge_removal_hook_holder): New var.
5129 (node_growth_cache, edge_growth_cache): New global vars.
5130 (true_predicate, single_cond_predicate, false_predicate,
5131 not_inlined_predicate, add_condition, add_clause, and_predicates,
5132 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
5133 dump_clause, dump_predicate, account_size_time,
5134 evaulate_conditions_for_edge): New functions.
5135 (inline_summary_alloc): Move to heap.
5136 (inline_node_removal_hook): Clear condition and entry vectors.
5137 (inline_edge_removal_hook): New function.
5138 (initialize_growth_caches, free_growth_caches): New function.
5139 (dump_inline_summary): Update.
5140 (edge_execution_predicate): New function.
5141 (will_be_nonconstant_predicate): New function.
5142 (estimate_function_body_sizes): Compute BB and constantness predicates.
5143 (compute_inline_parameters): Do not clear estimated_growth.
5144 (estimate_edge_size_and_time): New function.
5145 (estimate_calls_size_and_time): New function.
5146 (estimate_callee_size_and_time): New function.
5147 (remap_predicate): New function.
5148 (inline_merge_summary): New function.
5149 (do_estimate_edge_time): New function based on...
5150 (estimate_edge_time): ... this one.
5151 (do_estimate_edge_growth): New function.
5152 (do_estimate_growth): New function based on....
5153 (estimate_growth): ... this one.
5154 (inline_analyze_function): Analyze after deciding on jump functions.
5155 (inline_read_section): New function.
5156 (inline_read_summary): Use it.
5157 (inline_write_summary): Write all the new data.
5158 * ipa-prop.c (ipa_get_param_decl_index): Export.
5159 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
5160 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
5161 Declare.
5162 (ipa_get_lattice): Move here from ipa-cp.c
5163 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
5164 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
5165 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
5166 cgraph_edge_inlinable_p): Remove.
5167 * cgraphunit.c: Include ipainline.h
5168 (cgraph_process_new_functions): Update call of
5169 compute_inline_parameters.
5170
5171 2011-04-22 Richard Guenther <rguenther@suse.de>
5172
5173 * tree.c (build_int_cst): Properly create canonicalized integer
5174 constants.
5175 (build_int_cst_type): Remove scary comments.
5176
5177 2011-04-22 Xinliang David Li <davidxl@google.com>
5178
5179 * toplev.c (process_options): Enable -Werror=coverage-mismatch
5180 by default when -Wno-error is not specified.
5181 * opts-global.c (decode_options): Remove call to
5182 control_warning_options.
5183
5184 2011-04-22 Jakub Jelinek <jakub@redhat.com>
5185
5186 PR tree-optimization/48717
5187 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
5188 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
5189
5190 2011-04-22 Joseph Myers <joseph@codesourcery.com>
5191
5192 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
5193 definition where used.
5194
5195 2011-04-22 Jakub Jelinek <jakub@redhat.com>
5196
5197 PR c/48716
5198 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
5199 TREE_STATIC variables declared inside of some OpenMP construct.
5200
5201 2011-04-22 Martin Jambor <mjambor@suse.cz>
5202
5203 PR middle-end/48585
5204 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
5205
5206 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
5207
5208 PR c/36750
5209 * c-typeck.c (pop_init_level): Do not warn about initializing
5210 with ` = {0}'.
5211
5212 2011-04-22 Alan Modra <amodra@gmail.com>
5213
5214 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
5215 when returning call_cookie.
5216 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
5217 pointers, to functions with no more vector args than the current
5218 function, and some non-local calls for ABI_V4.
5219 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
5220 sibcall_nonlocal_aix64): Combine to ..
5221 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
5222 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
5223 (sibcall_value_nonlocal_aix<mode>): ..likewise.
5224 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
5225 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
5226 operand.
5227 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
5228 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
5229 sibcall_value_symbolic_64): Delete.
5230
5231 2011-04-21 Xinliang David Li <davidxl@google.com>
5232
5233 * cgraph.h: Remove pid.
5234 * cgraph.c: Remove pid.
5235 * value-prof.c (init_node_map): New function.
5236 (del_node_map): New function.
5237 (find_func_by_funcdef_no): New function.
5238 (gimple_ic_transform): Call new function.
5239 * cgraphunit.c (cgraph_finalize_function): Remove pid.
5240 * function.c (get_last_funcdef_no): New function.
5241 * function.h (get_last_funcdef_no): New function.
5242 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
5243 to libgcov function.
5244 (tree-profiling): Call node map init and delete function.
5245
5246 2011-04-21 Ian Lance Taylor <iant@google.com>
5247
5248 * godump.c (go_format_type): Use exported Go name for anonymous
5249 field name.
5250
5251 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
5252
5253 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
5254 Call builtin_function_type_list instead of builtin_function_type.
5255 (UNARY, BINARY, TRINARY, QUAD): Likewise.
5256
5257 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
5258
5259 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
5260 build_function_type_list instead of build_function_type.
5261 Delete variable `endlink'.
5262
5263 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
5264
5265 * config/s390/s390.c (s390_init_builtins): Call
5266 build_function_type_list instead of build_function_type.
5267
5268 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
5269
5270 * config/ia64/ia64.c (ia64_init_builtins): Call
5271 build_function_type_list instead of builtin_function_type.
5272
5273 2011-04-21 Easwaran Raman <eraman@google.com>
5274
5275 * cfgexpand.c (stack_var): Remove OFFSET...
5276 (add_stack_var): ...and its reference here...
5277 (expand_stack_vars): ...and here.
5278 (stack_var_cmp): Sort by descending order of size.
5279 (partition_stack_vars): Change heuristic.
5280 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
5281 (dump_stack_var_partition): Add newline after each partition.
5282
5283 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
5284 Jeff Law <law@redhat.com>
5285
5286 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
5287 * gengtype.c (matching_file_name_substitute): Likewise.
5288
5289 2011-04-21 Richard Guenther <rguenther@suse.de>
5290
5291 PR lto/48703
5292 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
5293
5294 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
5295
5296 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
5297
5298 2011-04-21 Richard Guenther <rguenther@suse.de>
5299
5300 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
5301 file name.
5302
5303 2011-04-21 Richard Guenther <rguenther@suse.de>
5304
5305 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
5306 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
5307 Use DECL_P, not SSA_VAR_P.
5308 (ptr_derefs_may_alias_p): Likewise.
5309 (ptr_deref_may_alias_ref_p_1): Likewise.
5310 (decl_refs_may_alias_p): Likewise.
5311 (refs_may_alias_p_1): Likewise.
5312 (ref_maybe_used_by_call_p_1): Likewise.
5313 (call_may_clobber_ref_p_1): Likewise.
5314 (indirect_ref_may_alias_decl_p): Assume indirect refrences
5315 are either MEM_REF or TARGET_MEM_REF.
5316 (indirect_refs_may_alias_p): Likewise.
5317 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
5318 for MEM_EXPR of indirect calls.
5319
5320 2011-04-21 Tristan Gingold <gingold@adacore.com>
5321
5322 * vmsdbgout.c (write_srccorr): Compute file length from the string.
5323 (dst_file_info_struct): Remove flen field.
5324 (lookup_filename): Remove code that set flen field.
5325
5326 2011-04-21 Tristan Gingold <gingold@adacore.com>
5327
5328 * config/ia64/ia64.c (ia64_start_function): Add a guard.
5329
5330 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
5331
5332 PR target/48708
5333 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
5334 vec_extract and vec_concat for non-SSE4_1 targets.
5335
5336 2011-04-21 Richard Guenther <rguenther@suse.de>
5337
5338 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
5339 return statements.
5340
5341 2011-04-21 Joseph Myers <joseph@codesourcery.com>
5342
5343 * config/i386/cygming.h (union tree_node, TREE): Don't define or
5344 undefine.
5345 (FILE): Don't undefine.
5346
5347 2011-04-21 Joseph Myers <joseph@codesourcery.com>
5348
5349 * config/alpha/alpha.c (struct machine_function): Use rtx, not
5350 struct rtx_def *.
5351 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
5352 struct rtx_def *.
5353 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
5354 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
5355 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
5356 rtx_def *.
5357 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
5358 definitions where used.
5359 * config/microblaze/microblaze.h (struct microblaze_args): Use
5360 rtx, not struct rtx_def *.
5361 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
5362 rtx_def *.
5363 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
5364 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
5365 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
5366 not struct rtx_def *.
5367 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
5368 struct rtx_def *.
5369 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
5370 rtx_def *.
5371 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
5372
5373 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5374
5375 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
5376 operand_equal_p to compare DR_BASE_ADDRESSes.
5377 (vect_check_interleaving): Likewise.
5378
5379 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5380
5381 PR target/46329
5382 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
5383 for all Neon struct constants.
5384
5385 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5386
5387 * target.def (legitimate_constant_p): New hook.
5388 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
5389 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
5390 * doc/tm.texi: Regenerate.
5391 * hooks.h (hook_bool_mode_rtx_true): Declare.
5392 * hooks.c (hook_bool_mode_rtx_true): Define.
5393 * system.h (LEGITIMATE_CONSTANT_P): Poison.
5394 * calls.c (precompute_register_parameters): Replace uses of
5395 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
5396 (emit_library_call_value_1): Likewise.
5397 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
5398 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
5399 * ira-costs.c (scan_one_insn): Likewise.
5400 * recog.c (general_operand, immediate_operand): Likewise.
5401 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
5402 * reload1.c (init_eliminable_invariants): Likewise.
5403
5404 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
5405 mode argument.
5406 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
5407 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
5408 argument.
5409 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5410 * config/alpha/predicates.md (input_operand): Update call to
5411 alpha_legitimate_constant_p.
5412
5413 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
5414 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
5415 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
5416 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5417 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
5418 (arm_legitimate_constant_p): New functions.
5419 (arm_cannot_force_const_mem): Make static.
5420
5421 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
5422
5423 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
5424 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
5425 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
5426 instead of bfin_legitimate_constant_p.
5427 (bfin_legitimate_constant_p): Make static. Add a mode argument.
5428 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5429
5430 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
5431
5432 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
5433
5434 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
5435 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
5436 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5437 (frv_legitimate_constant_p): Make static. Add a mode argument.
5438
5439 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
5440 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
5441 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
5442
5443 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
5444 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
5445 * config/i386/i386.c (legitimate_constant_p): Rename to...
5446 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
5447 argument.
5448 (ix86_cannot_force_const_mem): Update accordingly.
5449 (ix86_legitimate_address_p): Likewise.
5450 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5451 * config/i386/i386.md: Update commentary.
5452
5453 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
5454 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
5455 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5456 (ia64_legitimate_constant_p): Make static. Add a mode argument.
5457
5458 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
5459
5460 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
5461 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
5462 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5463 (lm32_legitimate_constant_p): Make static. Add a mode argument.
5464
5465 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
5466 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
5467 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
5468
5469 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
5470 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5471 (m32r_legitimate_constant_p): New function.
5472
5473 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
5474 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
5475 LEGITIMATE_CONSTANT_P.
5476 (LEGITIMATE_CONSTANT_P): Delete.
5477 * config/m68k/m68k.c (m68k_expand_prologue): Call
5478 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
5479 (m68k_legitimate_constant_p): New function.
5480 * config/m68k/m68k.md: Update comments.
5481
5482 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
5483 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5484 (mcore_legitimate_constant_p): New function.
5485
5486 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
5487 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
5488 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
5489 Add a mode argument.
5490 (mep_legitimate_address): Update accordingly.
5491 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5492
5493 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
5494 Delete.
5495 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
5496 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
5497 static. Check OP's mode for VOIDmode.
5498 (microblaze_legitimate_constant_p): New function.
5499 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5500
5501 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
5502 * config/mips/mips.c (mips_legitimate_constant_p): New function.
5503 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
5504 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5505 * config/mips/predicates.md: Update comments.
5506
5507 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
5508 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
5509 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5510 (mmix_legitimate_constant_p): Make static, return a bool, and take
5511 a mode argument.
5512 (mmix_print_operand_address): Update accordingly.
5513
5514 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
5515 Delete.
5516 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
5517 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
5518 static. Add a mode argument.
5519 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5520
5521 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
5522
5523 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
5524 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5525 (pa_legitimate_constant_p): New function.
5526
5527 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
5528
5529 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
5530 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5531 (pdp11_legitimate_constant_p): New function.
5532
5533 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
5534 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5535 (rs6000_legitimate_constant_p): New function.
5536
5537 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
5538 (rx_legitimate_constant_p): ...this.
5539 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
5540 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
5541 (rx_legitimate_constant_p): ...this.
5542 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5543 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
5544
5545 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
5546 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
5547 * config/s390/s390.c (legitimate_constant_p): Rename to...
5548 (s390_legitimate_constant_p): ...this. Make static, return a bool,
5549 and add a mode argument.
5550 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5551
5552 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
5553
5554 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
5555 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5556 (sh_legitimate_constant_p): New function.
5557
5558 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
5559 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
5560 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5561 (legitimate_constant_p): Rename to...
5562 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
5563 argument.
5564 (constant_address_p): Update accordingly.
5565
5566 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
5567 argument and return a bool.
5568 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
5569 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5570 (spu_legitimate_constant_p): Add a mode argument and return a bool.
5571 (spu_rtx_costs): Update accordingly.
5572 * config/spu/predicates.md (vec_imm_operand): Likewise.
5573
5574 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
5575
5576 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
5577 * config/v850/v850.c (v850_legitimate_constant_p): New function.
5578 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5579
5580 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
5581 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
5582 * config/vax/vax.c (legitimate_constant_p): Likewise.
5583
5584 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
5585 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5586 (xtensa_legitimate_constant_p): New function.
5587
5588 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5589
5590 * target.def (cannot_force_const_mem): Add a mode argument.
5591 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
5592 * doc/tm.texi: Regenerate.
5593 * hooks.h (hook_bool_mode_rtx_false): Declare.
5594 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
5595 (hook_bool_mode_const_rtx_true): Likewise.
5596 (hook_bool_mode_rtx_false): New function.
5597 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
5598 to be non-VOID. Update call to cannot_force_const_mem.
5599 (find_reloads): Update accordingly.
5600 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
5601 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
5602 argument.
5603 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
5604 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
5605 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
5606 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
5607 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
5608 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
5609 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
5610 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5611 (m68k_cannot_force_const_mem): ...this new function.
5612 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
5613 argument.
5614 (mips_const_insns, mips_legitimize_const_move): Update calls.
5615 (mips_secondary_reload_class): Likewise.
5616 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5617 (pa_cannot_force_const_mem): ...this new function.
5618 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
5619 (rs6000_cannot_force_const_mem): ...this new function.
5620 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
5621 argument.
5622 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
5623 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
5624 to...
5625 (xtensa_cannot_force_const_mem): ...this new function.
5626
5627 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5628
5629 * config/mips/mips.c (mips16_build_function_stub): Call
5630 build_function_type_list instead of build_function_type.
5631 (mips16_build_call_stub): Likewise.
5632
5633 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5634
5635 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
5636 instead of build_function_type.
5637
5638 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5639
5640 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
5641 instead of build_function_type.
5642
5643 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
5644
5645 PR target/48678
5646 * config/i386/i386.md (insv): Change operand 0 constraint to
5647 "register_operand". Change operand 1 and 2 constraint to
5648 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
5649 * config/i386/sse.md (sse4_1_pinsrb): Export.
5650 (sse2_pinsrw): Ditto.
5651 (sse4_1_pinsrd): Ditto.
5652 (sse4_1_pinsrq): Ditto.
5653 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
5654 * config/i386/i386.c (ix86_expand_pinsr): New.
5655
5656 2011-04-20 Easwaran Raman <eraman@google.com>
5657
5658 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
5659 containing union type only with -fstrict-aliasing.
5660
5661 2011-04-20 Jim Meyering <meyering@redhat.com>
5662
5663 Remove useless if-before-free tests.
5664 * calls.c (expand_call, save_area): Likewise.
5665 * cfgcleanup.c (try_forward_edges): Likewise.
5666 * collect2.c (collect_execute): Likewise.
5667 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
5668 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
5669 * coverage.c (coverage_checksum_string): Likewise.
5670 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
5671 * cselib.c (cselib_init): Likewise.
5672 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
5673 (df_set_clean_cfg): Likewise.
5674 * function.c (free_after_compilation): Likewise.
5675 * gcc.c (do_spec_1, main): Likewise.
5676 * gcov.c (create_file_names): Likewise.
5677 * gensupport.c (identify_predicable_attribute): Likewise.
5678 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
5679 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
5680 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
5681 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
5682 * ipa-pure-const.c (local_pure_const): Likewise.
5683 * ipa-reference.c (propagate): Likewise.
5684 * ira-costs.c (free_ira_costs): Likewise.
5685 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
5686 * matrix-reorg.c (mat_free): Likewise.
5687 * prefix.c (get_key_value): Likewise.
5688 * profile.c (compute_value_histograms): Likewise.
5689 * reload1.c (free_reg_equiv): Likewise.
5690 * sched-deps.c (free_deps): Likewise.
5691 * sel-sched-ir.c (fence_clear): Likewise.
5692 * sese.c (set_rename, if_region_set_false_region): Likewise.
5693 * tree-data-ref.c (free_rdg): Likewise.
5694 * tree-eh.c (lower_try_finally): Likewise.
5695 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
5696 * tree-ssa-live.c (delete_var_map): Likewise.
5697 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
5698 * tree-ssa-pre.c (phi_trans_add): Likewise.
5699
5700 2011-04-20 Jakub Jelinek <jakub@redhat.com>
5701
5702 PR tree-optimization/48611
5703 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
5704 beyond ERT_MUST_NOT_THROW region.
5705
5706 2011-04-20 Catherine Moore <clm@codesourcery.com>
5707
5708 * config/mips/mips.opt (mfix-24k): New.
5709 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
5710 * config/mips/mips.md (length): Increase by 4 for stores if
5711 fixing 24K errata.
5712 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
5713 all noreorder if fixing 24K errata.
5714 * doc/invoke.texi: Document mfix-24k.
5715
5716 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
5717
5718 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
5719 quad-word modes, reduce to 9-bit index range when above 1016 limit.
5720
5721 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
5722
5723 * config/arm/arm.c (arm_gen_constant): Move movw support ....
5724 (const_ok_for_op): ... to here.
5725
5726 2011-04-20 Kai Tietz <ktietz@redhat.com>
5727
5728 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5729 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5730
5731 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
5732
5733 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5734
5735 2011-04-20 Richard Guenther <rguenther@suse.de>
5736
5737 PR tree-optimization/47892
5738 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5739 are if-convertible.
5740
5741 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
5742
5743 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5744
5745 2011-04-20 Tristan Gingold <gingold@adacore.com>
5746
5747 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5748
5749 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
5750
5751 PR target/18145
5752
5753 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5754 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5755 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5756 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5757 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5758
5759 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5760 New prototype.
5761
5762 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5763 (avr_asm_named_section, avr_asm_output_aligned_common,
5764 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5765 New functions to update...
5766 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5767 (avr_asm_init_sections): Overwrite section callbacks for
5768 data_section, bss_section.
5769 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5770 from here to...
5771 (avr_file_end): ...here.
5772
5773 2011-04-20 Richard Guenther <rguenther@suse.de>
5774
5775 PR middle-end/48695
5776 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5777 objects and types here. Adjust for their offset before comparing.
5778
5779 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5780
5781 * tree-vect-stmts.c (vectorizable_store): Only chain one related
5782 statement per copy.
5783
5784 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5785
5786 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5787 (GIMPLE_H): Include $(INTERNAL_FN_H).
5788 (OBJS-common): Add internal-fn.o.
5789 (internal-fn.o): New rule.
5790 * internal-fn.def: New file.
5791 * internal-fn.h: Likewise.
5792 * internal-fn.c: Likewise.
5793 * gimple.h: Include internal-fn.h.
5794 (GF_CALL_INTERNAL): New gf_mask.
5795 (gimple_statement_call): Put fntype into a union with a new
5796 internal_fn field.
5797 (gimple_build_call_internal): Declare.
5798 (gimple_build_call_internal_vec): Likewise.
5799 (gimple_call_same_target_p): Likewise.
5800 (gimple_call_internal_p): New function.
5801 (gimple_call_internal_fn): Likewise.
5802 (gimple_call_fntype): Return null for internal calls.
5803 (gimple_call_set_fntype): Assert that the function is not internal.
5804 (gimple_call_set_fn): Likewise.
5805 (gimple_call_set_fndecl): Likewise.
5806 (gimple_call_set_internal_fn): New function.
5807 (gimple_call_addr_fndecl): Handle null functions.
5808 (gimple_call_return_type): Likewise null types.
5809 * gimple.c (gimple_build_call_internal_1): New function.
5810 (gimple_build_call_internal): Likewise.
5811 (gimple_build_call_internal_vec): Likewise.
5812 (gimple_call_same_target_p): Likewise.
5813 (gimple_call_flags): Handle calls to internal functions.
5814 (gimple_call_fnspec): New function.
5815 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5816 (gimple_has_side_effects): Handle null functions.
5817 (gimple_rhs_has_side_effects): Likewise.
5818 (gimple_call_copy_skip_args): Handle calls to internal functions.
5819 * cfgexpand.c (expand_call_stmt): Likewise.
5820 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5821 * gimple-fold.c (gimple_fold_call): Handle null functions.
5822 (gimple_fold_stmt_to_constant_1): Don't fold
5823 calls to internal functions.
5824 * gimple-low.c (gimple_check_call_args): Handle calls to internal
5825 functions.
5826 * gimple-pretty-print.c (dump_gimple_call): Likewise.
5827 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5828 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5829 (do_warn_unused_result): Likewise.
5830 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5831 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5832 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5833 the target of a call.
5834 (initialize_hash_element): Update accordingly.
5835 (hashable_expr_equal_p): Use gimple_call_same_target_p.
5836 (iterative_hash_hashable_expr): Handle calls to internal functions.
5837 (print_expr_hash_elt): Likewise.
5838 * tree-ssa-pre.c (can_value_number_call): Likewise.
5839 (eliminate): Handle null functions.
5840 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5841 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5842 (find_func_aliases): Likewise.
5843 * value-prof.c (gimple_ic_transform): Likewise.
5844 (gimple_indirect_call_to_profile): Likewise.
5845 * lto-streamer-in.c (input_gimple_stmt): Likewise.
5846 * lto-streamer-out.c (output_gimple_stmt): Likewise.
5847
5848 2011-04-19 Jan Hubicka <jh@suse.cz>
5849
5850 * ipa-inline-transform.c (save_inline_function_body): Add comments.
5851 * ipa-inline.c (inline_small_functions): Compute summaries first,
5852 populate heap later.
5853
5854 2011-04-19 Jan Hubicka <jh@suse.cz>
5855
5856 * cgraph.h (save_inline_function_body): Remove.
5857 * ipa-inline-transform.c: New file, broke out of...
5858 * ipa-inline.c: ... this one; Update toplevel comment.
5859 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5860 make global.
5861 (update_noncloned_frequencies): Move to ipa-inline-transform.c
5862 (cgraph_mark_inline_edge): Rename to inline_call; move to
5863 ipa-inline-transform.c.
5864 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5865 move to ipa-inline-transform.c
5866 (recursive_inlining, inline_small_functions, flatten_function,
5867 ipa_inline, inline_always_inline_functions,
5868 early_inline_small_functions): Update.
5869 (inline_transform): Move to ipa-inline-transform.c.
5870 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5871 Declare.
5872 * Makefile.in (ipa-inline-transform.o): New file.
5873 * cgraphunit.c (save_inline_function_body): Move to
5874 ipa-inline-transform.c
5875
5876 2011-04-19 DJ Delorie <dj@redhat.com>
5877
5878 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5879 registers if we already know there aren't any.
5880 (m32c_emit_epilogue): Don't emit a barrier here.
5881 (m32c_emit_eh_epilogue): Likewise.
5882 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5883 operands at expand time.
5884 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5885 int" wchar type.
5886 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5887 duplicates. Provide aliases instead.
5888 * config/m32c/prologue.md (eh_return): Emit a barrier here.
5889 (eh_epilogue): Add a "(return)" here as a hint to other parts of
5890 the compiler.
5891
5892 2011-04-19 Anatoly Sokolov <aesok@post.ru>
5893
5894 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5895 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5896 (general_or_i64_p, sparc_register_move_cost): New function.
5897
5898 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5899
5900 * doc/install.texi (Configuration, --enable-threads): Remove mach.
5901 Add lynx, mipssde. Sort table.
5902
5903 2011-04-19 Xinliang David Li <davidxl@google.com>
5904
5905 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5906 not negative.
5907
5908 2011-04-19 Jakub Jelinek <jakub@redhat.com>
5909
5910 PR target/48678
5911 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5912 is a SUBREG with non-MODE_INT mode inside of it.
5913
5914 2011-04-19 Martin Jambor <mjambor@suse.cz>
5915
5916 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5917 also according to actual contants.
5918 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5919 (gimple_fold_call): Use it.
5920 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5921
5922 2011-04-19 Martin Jambor <mjambor@suse.cz>
5923
5924 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5925 non-pointer assignments.
5926
5927 2011-04-19 Martin Jambor <mjambor@suse.cz>
5928
5929 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5930 account anc_offset and otr_type from the indirect edge info.
5931 * ipa-prop.c (get_ancestor_addr_info): New function.
5932 (compute_complex_ancestor_jump_func): Assignment analysis moved to
5933 get_ancestor_addr_info, call it.
5934 (ipa_note_param_call): Do not initialize information about polymorphic
5935 calls, return the indirect call graph edge. Remove the last
5936 parameter, adjust all callers.
5937 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5938 parameters. Initialize polymorphic information in the indirect edge.
5939
5940 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5941
5942 PR lto/48148
5943 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5944 the types if they have different enumeration identifiers.
5945
5946 2011-04-19 Jan Hubicka <jh@suse.cz>
5947
5948 * cgraph.h (cgraph_optimize_for_size_p): Declare.
5949 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5950 * predict.c (cgraph_optimize_for_size_p): Break out from ...
5951 (optimize_function_for_size_p) ... here.
5952
5953 2011-04-19 Richard Guenther <rguenther@suse.de>
5954
5955 PR lto/48207
5956 * tree.c (free_lang_data): Do not reset the decl-assembler-name
5957 langhook.
5958
5959 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5960
5961 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5962 if DECL_NO_INLINE_WARNING_P is set on the function.
5963
5964 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
5965
5966 PR fortran/47976
5967 * reload1.c (inc_for_reload): Return void. All callers changed.
5968 (emit_input_reload_insns): Don't try to delete previous output
5969 reloads to a register, or record spill_reg_store for autoincs.
5970
5971 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
5972
5973 * gengtype.h: Updated copyright year.
5974 (struct input_file_st): Add inpisplugin field.
5975 (type_fileloc): New function.
5976 * gengtype.c
5977 (write_typed_struct_alloc_def): Add gcc_assert.
5978 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5979 (write_typed_alloc_defns): Don't output for plugin files.
5980 (input_file_by_name): Clear inpisplugin field.
5981 (main): Set inpisplugin field for plugin files.
5982
5983 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
5984
5985 * gengtype-state.c (string_eq): New.
5986 (read_state): Use string_eq instead of strcmp when creating the
5987 state_ident_tab.
5988
5989 2011-04-19 Wei Guozhi <carrot@google.com>
5990
5991 PR target/47855
5992 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5993 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5994 linkage.
5995 * config/arm/constraints.md (Uu): New constraint.
5996 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5997
5998 2011-04-19 Tristan Gingold <gingold@adacore.com>
5999
6000 * config.gcc (-*-*-*vms): Added.
6001 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
6002 definitions moved.
6003 * config/vms/vms-ld.c: New file.
6004 * config/vms/vms-ar.c: New file.
6005 * config/vms/t-vmsnative: New file.
6006
6007 2011-04-18 Xinliang David Li <davidxl@google.com>
6008
6009 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
6010
6011 2011-04-18 Jakub Jelinek <jakub@redhat.com>
6012
6013 PR middle-end/48661
6014 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
6015 if TREE_TYPE (v) is non-NULL.
6016
6017 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
6018 gimple_get_virt_mehtod_for_binfo.
6019 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
6020 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
6021 callers.
6022 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
6023
6024 2011-04-18 Michael Matz <matz@suse.de>
6025 Steve Ellcey <sje@cup.hp.com>
6026
6027 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
6028 use its mode as source mode if it isn't VOIDmode.
6029
6030 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
6031
6032 * doc/passes.texi: Fill crossref nodes.
6033
6034 2011-04-18 Jim Meyering <meyering@redhat.com>
6035
6036 Fix doubled-word typos in comments and strings
6037 * config/alpha/vms-unwind.h: s/for for/for/
6038 * config/arm/unwind-arm.h: Likewise.
6039 * config/microblaze/microblaze.c: Likewise.
6040 * config/sh/constraints.md: s/in in/in/
6041 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
6042
6043 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
6044
6045 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
6046 (AVX_FLOAT_MODE_P): Ditto.
6047 (AVX128_VEC_FLOAT_MODE_P): Ditto.
6048 (AVX256_VEC_FLOAT_MODE_P): Ditto.
6049 (AVX_VEC_FLOAT_MODE_P): Ditto.
6050 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
6051 (UNSPEC_MASKSTORE): Ditto.
6052 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
6053 Merge from <sse>_movmsk<ssemodesuffix> and
6054 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
6055 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
6056 iterator.
6057 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
6058 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
6059 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
6060
6061 2011-04-18 Jan Hubicka <jh@suse.cz>
6062
6063 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
6064
6065 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
6066 (want_inline_function_called_once_p): Break out the logic from
6067 ipa_inline.
6068 (edge_badness): Ensure that profile is not misupdated.
6069 (lookup_recursive_calls): Prioritize by call frequencies.
6070 (inline_small_functions): Move program size estimates here;
6071 actually process whole queue even when unit growth has been
6072 met. (to properly compute inline_failed reasons and for the
6073 case unit size decrease.) Revisit comments on recursive inlining.
6074 (ipa_inline): Remove unit summary code; first inline hot calls
6075 of functions called once, cold calls next.
6076 (order, nnodes): Remove unused variables.
6077 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
6078 (GTFILES): Remove ipa-inline.c
6079 * sel-sched.c (fill_insns): Silence uninitialized var warning.
6080
6081 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
6082
6083 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
6084
6085 2011-04-18 Jie Zhang <jie@codesourcery.com>
6086 Richard Earnshaw <rearnsha@arm.com>
6087
6088 * arm.c (neon_builtin_type_bits): Remove.
6089 (typedef enum neon_builtin_mode): New.
6090 (T_MAX): Don't define.
6091 (typedef enum neon_builtin_datum): Remove bits, codes[],
6092 num_vars and base_fcode. Add mode, code and fcode.
6093 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
6094 VAR10): Change accordingly.
6095 (neon_builtin_data[]): Change accordingly
6096 (arm_init_neon_builtins): Change accordingly.
6097 (neon_builtin_compare): Remove.
6098 (locate_neon_builtin_icode): Remove.
6099 (arm_expand_neon_builtin): Change accordingly.
6100
6101 * arm.h (enum arm_builtins): Move to ...
6102 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
6103
6104 * arm.c (arm_builtin_decl): Declare.
6105 (TARGET_BUILTIN_DECL): Define.
6106 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
6107 (arm_builtin_decls[]): New.
6108 (arm_init_neon_builtins): Store builtin declarations in
6109 arm_builtin_decls[].
6110 (arm_init_tls_builtins): Likewise.
6111 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
6112 (arm_builtin_decl): New.
6113
6114 2011-04-18 Richard Guenther <rguenther@suse.de>
6115
6116 * tree.c (upper_bound_in_type): Build properly canonicalized
6117 INTEGER_CSTs.
6118 (lower_bound_in_type): Likewise.
6119
6120 2011-04-18 Richard Guenther <rguenther@suse.de>
6121
6122 * gimple.h (gimple_call_addr_fndecl): New function.
6123 (gimple_call_fndecl): Use it.
6124 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
6125 for direct calls.
6126 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
6127 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
6128
6129 2011-04-18 Richard Guenther <rguenther@suse.de>
6130
6131 PR middle-end/48650
6132 * tree.c (build_string): STRING_CST is now derived from tree_typed.
6133
6134 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
6135
6136 PR lto/48492
6137 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
6138 DECL_IN_CONSTANT_POOL without RTL.
6139
6140 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
6141 Ira Rosen <ira.rosen@linaro.org>
6142
6143 PR target/48252
6144 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
6145 to match neon_vzip/vuzp/vtrn_internal.
6146 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
6147 outputs explicitly dependent on both inputs.
6148 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
6149
6150 2011-04-18 Jakub Jelinek <jakub@redhat.com>
6151
6152 PR tree-optimization/48616
6153 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
6154 whether the shift is by scalar or vector based on whether all SLP
6155 scalar stmts have the same rhs.
6156
6157 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
6158
6159 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
6160 memory operands.
6161
6162 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
6163
6164 PR target/43700
6165 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
6166 registers.
6167
6168 2011-04-17 Jan Hubicka <jh@suse.cz>
6169
6170 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
6171 * cgrpahunit.c (cgraph_finalize_function): Do not set
6172 finalized_by_frontend.
6173 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
6174 finalized_by_frontend.
6175
6176 2011-04-17 Jan Hubicka <jh@suse.cz>
6177
6178 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
6179 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
6180 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
6181 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
6182 method.
6183 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
6184 gimple-fold.c
6185 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
6186
6187 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
6188
6189 PR lto/48538
6190 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
6191 is non-null before accessing it.
6192 (input_cgraph): Remove trailing spaces.
6193
6194 2011-04-17 Revital Eres <revital.eres@linaro.org>
6195
6196 * params.def (sms-min-sc): New param flag.
6197 * modulo-sched.c (sms_schedule): Use it.
6198 * doc/invoke.texi (sms-min-sc): Document it.
6199
6200 2011-04-17 Jan Hubicka <jh@suse.cz>
6201
6202 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
6203 present, also set gimple_call_set_cannot_inline.
6204 * ipa-inline.c: Update toplevel comment.
6205 (MAX_TIME): Remove.
6206 (cgraph_clone_inlined_nodes): Fix linebreaks.
6207 (cgraph_check_inline_limits): Restructure to ...
6208 (caller_growth_limits): ... this one; be more tolerant
6209 on growth in nested inline chains; add explanatory comment;
6210 fix stack accounting thinko introduced by previous patch.
6211 (cgraph_default_inline_p): Remove.
6212 (report_inline_failed_reason): New function.
6213 (can_inline_edge_p): New function.
6214 (can_early_inline_edge_p): New function.
6215 (leaf_node_p): Move upwards in file.
6216 (want_early_inline_function_p): New function.
6217 (want_inline_small_function_p): New function.
6218 (want_inline_self_recursive_call_p): New function.
6219 (cgraph_edge_badness): Rename to ...
6220 (edge_badness) ... this one; fix linebreaks.
6221 (update_edge_key): Update call of edge_baddness; add
6222 detailed dump about queue updates.
6223 (update_caller_keys): Use can_inline_edge_p and
6224 want_inline_small_function_p.
6225 (cgraph_decide_recursive_inlining): Rename to...
6226 (recursive_inlining): Use can_inline_edge_p and
6227 want_inline_self_recursive_call_p; simplify and remove no longer
6228 valid FIXME.
6229 (cgraph_set_inline_failed): Remove.
6230 (add_new_edges_to_heap): Use can_inline_edge_p and
6231 want_inline_small_function_p.
6232 (cgraph_decide_inlining_of_small_functions): Rename to ...
6233 (inline_small_functions): ... this one; cleanup; use
6234 can/want predicates; cleanup debug ouput; work edges till fibheap
6235 is exhausted and do not stop once unit growth is reached; remove
6236 later loop processing remaining edges.
6237 (cgraph_flatten): Rename to ...
6238 (flatten_function): ... this one; use can_inline_edge_p
6239 and can_early_inline_edge_p predicates.
6240 (cgraph_decide_inlining): Rename to ...
6241 (ipa_inline): ... this one; remove unreachable nodes before
6242 inlining functions called once; simplify the pass.
6243 (cgraph_perform_always_inlining): Rename to ...
6244 (inline_always_inline_functions): ... this one; use
6245 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
6246 (cgraph_decide_inlining_incrementally): Rename to ...
6247 (early_inline_small_functions): ... this one; simplify
6248 using new predicates; cleanup; make dumps prettier.
6249 (cgraph_early_inlining): Rename to ...
6250 (early_inliner): newer inline regular functions into always-inlines;
6251 fix updating of call stmt summaries.
6252 (pass_early_inline): Update for new names.
6253 (inline_transform): Fix formating.
6254 (gate_cgraph_decide_inlining): Rename to ...
6255 (pass_ipa_inline): ... this one.
6256 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
6257 * ipa-inline-analysis.c (dump_inline_summary): Update.
6258 (compute_inline_parameters): Do not compute disregard_inline_limits;
6259 look for mismatching arguments.
6260 (estimate_growth): Fix handlig of non-trivial self recursion.
6261 (inline_read_summary): Do not read info->disregard_inline_limits.
6262 (inline_write_summary): Do not write info->disregard_inline_limits.
6263 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
6264 and move all checks into can_inline_edge_p predicate; re-enable code
6265 comparing optimization levels.
6266 (expand_call_inline): Do not test inline_forbidden_into_p.
6267 * Makefile.in (ipa-inline.o): Update arguments.
6268
6269 2011-04-17 Revital Eres <revital.eres@linaro.org>
6270
6271 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
6272
6273 2011-04-17 Revital Eres <revital.eres@linaro.org>
6274
6275 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
6276
6277 2011-04-17 Michael Matz <matz@suse.de>
6278
6279 PR tree-optimization/48622
6280 PR lto/48645
6281 * ipa-inline-analysis.c (inline_read_summary): Read size/time
6282 in same order as they're written.
6283
6284 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6285
6286 * config/pa/predicates.md: Reorganize and simplify predicates.
6287 Eliminate duplicate code checks.
6288 (arith_operand): Rename to arith14_operand
6289 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
6290 * config/pa/pa.md: Use renamed operands.
6291 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
6292 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
6293 arith11_operand, adddi3_operand, indexed_memory_operand,
6294 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
6295 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
6296 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
6297 move_dest_operand, move_src_operand, prefetch_cc_operand,
6298 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
6299 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
6300 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
6301 div_operand, int5_operand, movb_comparison_operator,
6302 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
6303 arith_double_operand, ireg_operand, lhs_lshift_operand,
6304 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
6305 integer_store_memory_operand): Likewise.
6306 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
6307 (integer_store_memory_operand, read_only_operand,
6308 function_label_operand, borx_reg_operand,
6309 non_hard_reg_operand): Likewise.
6310 (eq_neq_comparison_operator): Delete unused operator.
6311 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
6312 function_label_operand.
6313 (emit_move_sequence): Likewise.
6314
6315 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
6316
6317 * config/i386/sse.md (sseunpackmode): New mode attribute.
6318 (ssepackmode): Ditto.
6319 (vec_pack_trunc_<mode>): Macroize expander from
6320 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
6321 (vec_unpacks_lo_<mode>): Macroize expander from
6322 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6323 (vec_unpacks_hi_<mode>): Macroize expander from
6324 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6325 (vec_unpacku_lo_<mode>): Macroize expander from
6326 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6327 (vec_unpacku_hi_<mode>): Macroize expander from
6328 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
6329 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
6330 ix86_expand_sse4_unpack.
6331 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
6332
6333 2011-04-16 Jan Hubicka <jh@suse.cz>
6334
6335 * cgraphbuild.c: Include ipa-inline.h.
6336 (reset_inline_failed): Use initialize_inline_failed.
6337 * cgraph.c: Include ipa-inline.h.
6338 (cgraph_create_node_1): Do not initialize estimated_growth.
6339 (initialize_inline_failed): More to ipa-inline-analysis.c
6340 (dump_cgraph_node): Do not dump inline flags.
6341 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
6342 and disregard_inline_limits flags.
6343 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
6344 time, size, estimated_growth.
6345 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
6346 Update.
6347 * cgraphunit.c (cgraph_decide_is_function_needed): Use
6348 DECL_DISREGARD_INLINE_LIMITS.
6349 (cgraph_analyze_function): Do not initialize
6350 node->local.disregard_inline_limits.
6351 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
6352 inlinable, versionable and disregard_inline_limits.
6353 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
6354 cgraph_check_inline_limits, cgraph_default_inline_p,
6355 cgraph_edge_badness, update_caller_keys, update_callee_keys,
6356 add_new_edges_to_heap): Update.
6357 (cgraph_decide_inlining_of_small_function): Update; set
6358 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
6359 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
6360 cgraph_decide_inlining_incrementally): Update.
6361 * ipa-inline.h (inline_summary): Add inlinable, versionable,
6362 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
6363 time, size and estimated_growth parameters.
6364 (estimate_edge_growth): Update.
6365 (initialize_inline_failed): Declare.
6366 * ipa-split.c: Include ipa-inline.h
6367 (execute_split_functions): Update.
6368 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
6369 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
6370 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
6371 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
6372 estimated_growth to INT_MIN.
6373 (inline_node_duplication_hook): Likewise.
6374 (dump_inline_summary): Dump new fields.
6375 (compute_inline_parameters): Update.
6376 (estimate_edge_time, estimate_time_after_inlining,
6377 estimate_size_after_inlining, estimate_growth, inline_read_summary,
6378 inline_write_summary):
6379 (initialize_inline_failed): Move here from cgraph.c.
6380 * tree-sra.c: Include ipa-inline.h.
6381 (ipa_sra_preliminary_function_checks): Update.
6382 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
6383 ipa-inline.h.
6384
6385 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
6386
6387 * config/i386/sse.md (V16): New mode iterator.
6388 (VI1, VI8): Ditto.
6389 (AVXMODEQI, AVXMODEDI): Remove.
6390 (sse2, sse3): New mode attribute.
6391 (mov<mode>): Use V16 mode iterator.
6392 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
6393 (push<mode>1): Use V16 mode iterator.
6394 (movmisalign<mode>): Ditto.
6395 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6396 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
6397 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
6398 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
6399 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
6400 avx_movdqu<avxmodesuffix>.
6401 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
6402 *avx_movdqu<avxmodesuffix>.
6403 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
6404 avx_lddqu<avxmodesuffix>.
6405 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
6406 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
6407 avx_movnt<AVXMODEDI:mode>.
6408 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
6409 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
6410
6411 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
6412
6413 PR target/48629
6414 * haifa-sched.c (prune_ready_list, schedule_block): Use
6415 sched_pressure_p rather than flag_sched_pressure.
6416
6417 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
6418
6419 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6420 cgraph_get_node instead of cgraph_get_create_node.
6421
6422 2011-04-15 Jakub Jelinek <jakub@redhat.com>
6423
6424 * cfgexpand.c (expand_debug_expr): Use
6425 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
6426
6427 2011-04-15 Michael Matz <matz@suse.de>
6428
6429 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
6430 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
6431 * function.c (gimplify_parameters): Ditto.
6432 * gimplify.c (gimplify_vla_decl): Ditto.
6433
6434 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
6435 (gimple_call_set_alloca_for_var): New inline function.
6436 (gimple_call_alloca_for_var_p): Ditto.
6437 * gimple.c (gimple_build_call_from_tree): Remember
6438 CALL_ALLOCA_FOR_VAR_P state.
6439 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
6440
6441 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
6442 calls if they were for VLA objects.
6443
6444 2011-04-15 Martin Jambor <mjambor@suse.cz>
6445
6446 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
6447 of ADR_EXPRs.
6448
6449 2011-04-15 Martin Jambor <mjambor@suse.cz>
6450
6451 PR middle-end/48601
6452 * tree-emutls.c (lower_emutls_function_body): Call
6453 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
6454 result is non-NULL.
6455
6456 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
6457
6458 * c-decl.c (detect_field_duplicates): Call
6459 objc_detect_field_duplicates instead of objc_get_interface_ivars.
6460
6461 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
6462
6463 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
6464 * gimple.c (gimple_asm_clobbers_memory_p): Define.
6465 * ipa-pure-const.c (check_stmt): Call it.
6466 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
6467
6468 2011-04-15 Richard Guenther <rguenther@suse.de>
6469
6470 PR tree-optimization/48290
6471 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
6472 Properly decide inhibiting propagation based on the valueized
6473 operand. Do loop-closed SSA form preserving here ...
6474 (init_copy_prop): ... not here.
6475
6476 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
6477
6478 PR target/48612
6479 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
6480 (*ieee_smax<mode>3): Likewise.
6481
6482 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6483
6484 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
6485 Replace match_operand with match_dup for the third operand in
6486 these expanders.
6487
6488 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
6489
6490 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
6491 to track processing of conditionals. Update all callers.
6492 (try_combine, simplify_if_then_else): Update.
6493
6494 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
6495
6496 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
6497 -fsched-pressure.
6498
6499 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
6500
6501 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
6502 instead of match_operand for operand 3.
6503
6504 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
6505
6506 * recog.h (insn_operand_data): Add an "allows_mem" field.
6507 * genoutput.c (output_operand_data): Initialize it.
6508 * optabs.c (maybe_legitimize_operand_same_code): New function.
6509 (maybe_legitimize_operand): Use it when matching the original
6510 op->value.
6511
6512 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
6513
6514 * gimplify.c: Fix issues in comments throughout.
6515 (voidify_wrapper_expr): Fix long line.
6516 (build_stack_save_restore): Likewise.
6517 (gimplify_loop_expr): Likewise.
6518 (gimplify_compound_lval): Likewise.
6519 (gimplify_init_ctor_eval): Likewise.
6520 (gimplify_modify_expr_rhs): Likewise.
6521 (omp_notice_threadprivate_variable): Likewise.
6522
6523 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
6524
6525 * cfgexpand.c (expand_call_stmt): Convert the function type to the
6526 original one if this is not a builtin function.
6527
6528 2011-04-14 Jakub Jelinek <jakub@redhat.com>
6529
6530 PR target/48605
6531 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
6532 offset it as needed based on top 2 bits in operands[3], change
6533 MEM mode to SFmode and mask those 2 bits away from operands[3].
6534
6535 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
6536
6537 * c-parser.c (c_parser_objc_protocol_definition): Updated for
6538 change from objc_declare_protocols() to objc_declare_protocol().
6539
6540 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
6541
6542 * config/i386/sse.md (sse4_1): New mode attribute.
6543 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
6544 avx_blend<ssemodesuffix><avxmodesuffix> and
6545 sse4_1_blend<ssemodesuffix> using VF mode iterator.
6546 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
6547 avx_blendv<ssemodesuffix><avxmodesuffix> and
6548 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
6549 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
6550 avx_dp<ssemodesuffix><avxmodesuffix> and
6551 sse4_1_dp<ssemodesuffix> using VF mode iterator.
6552 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
6553 (sse4_1_packusdw): Merge with *avx_packusdw.
6554 (sse4_1_pblendvb): Merge with *avx_pblendvb.
6555 (sse4_1_pblendw): Merge with *avx_pblendw.
6556 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
6557 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
6558 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
6559 VF mode iterator.
6560 (sse4_1_round<ssescalarmodesuffix>): Merge with
6561 *avx_round<ssescalarmodesuffix>.
6562 (aesenc): Merge with *avx_aesenc.
6563 (aesenclast): Merge with *avx_aesenclast.
6564 (aesdec): Merge with *avx_aesdec.
6565 (aesdeclast): Merge with *avx_aesdeclast.
6566 (pclmulqdq): Merge with *pclmulqdq.
6567 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
6568 New predicate.
6569 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
6570
6571 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
6572
6573 PR middle-end/48608
6574 * cfgexpand.c (get_decl_align_unit): Renamed to ...
6575 (align_local_variable): This. Update DECL_ALIGN.
6576 (add_stack_var): Updated.
6577 (expand_one_stack_var): Likewise.
6578
6579 2011-04-14 Richard Guenther <rguenther@suse.de>
6580
6581 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
6582 Remove.
6583 (dse_initialize_block_local_data, dse_leave_block,
6584 record_voperand_set, get_stmt_uid): Likewise.
6585 (dse_possible_dead_store_p): Allow any kind of killing stmt.
6586 (dse_optimize_stmt): Remove voperand set handling code.
6587 Simplify and improve to handle any kind of killing stmt.
6588 (dse_record_phi): Remove.
6589 (dse_enter_block): Simplify.
6590 (tree_ssa_dse): Likewise.
6591 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
6592
6593 2011-04-14 Jan Hubicka <jh@suse.cz>
6594
6595 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
6596 * cgraph.h (struct inline_summary): Move to ipa-inline.h
6597 (cgraph_local_info): Remove inline_summary.
6598 * ipa-cp.c: Include ipa-inline.h.
6599 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
6600 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
6601 accesor.
6602 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
6603 (input_overwrite_node): Do not set inline summary.
6604 (input_node): Do not stream inline summary.
6605 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
6606 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
6607 growth; we do not have inline parameters computed for that anyway.
6608 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
6609 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
6610 (inline_summary_t): New type and VECtor.
6611 (debug_inline_summary, dump_inline_summaries): Declare.
6612 (inline_summary): Use VOCtor.
6613 (estimate_edge_growth): Kill hack computing call stmt size directly.
6614 * lto-section-in.c (lto_section_name): Add inline section.
6615 * ipa-inline-analysis.c: Include lto-streamer.h
6616 (node_removal_hook_holder, node_duplication_hook_holder): New holders
6617 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
6618 (inline_summary_vec): Define.
6619 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
6620 dump_inline_summaries): New functions.
6621 (estimate_function_body_sizes): Properly compute size/time of outgoing
6622 calls.
6623 (compute_inline_parameters): Alloc inline_summary; do not compute
6624 size/time of incomming calls.
6625 (estimate_edge_time): Avoid missing time summary hack.
6626 (inline_read_summary): Read inline summary info.
6627 (inline_write_summary): Write inline summary info.
6628 (inline_free_summary): Free all hooks and inline summary vector.
6629 * lto-streamer.h: Add LTO_section_inline_summary section.
6630 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
6631 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
6632
6633 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6634
6635 * tree-vectorizer.h (vect_strided_store_supported): Add a
6636 HOST_WIDE_INT argument.
6637 (vect_strided_load_supported): Likewise.
6638 (vect_permute_store_chain): Return void.
6639 (vect_transform_strided_load): Likewise.
6640 (vect_permute_load_chain): Delete.
6641 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
6642 count argument. Check that the count is a power of two.
6643 (vect_strided_load_supported): Likewise.
6644 (vect_permute_store_chain): Return void. Update after above changes.
6645 Assert that the access is supported.
6646 (vect_permute_load_chain): Likewise.
6647 (vect_transform_strided_load): Return void.
6648 * tree-vect-stmts.c (vectorizable_store): Update calls after
6649 above interface changes.
6650 (vectorizable_load): Likewise.
6651 (vect_analyze_stmt): Don't check for strided powers of two here.
6652
6653 2011-04-14 Richard Guenther <rguenther@suse.de>
6654
6655 PR tree-optimization/48590
6656 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6657 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6658 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
6659 BUILT_IN_STACK_SAVE.
6660 * tree-ssa-dce.c (propagate_necessity): Handle
6661 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6662
6663 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
6664
6665 * c-parser.c (c_parser_objc_class_declaration): Updated call to
6666 objc_declare_class.
6667
6668 2011-04-14 Richard Guenther <rguenther@suse.de>
6669
6670 * tree.h (get_object_alignment_1): Declare.
6671 * builtins.c (get_object_alignment_1): Split out worker from ...
6672 (get_object_alignment): ... here.
6673 * fold-const.c (get_pointer_modulus_and_residue): Use
6674 get_object_alignment_1.
6675
6676 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6677
6678 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
6679 type parameter.
6680 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
6681 parameter. Generalise code to handle arrays as well as vectors.
6682 (vect_setup_realignment): Update accordingly.
6683 * tree-vect-stmts.c (vectorizable_store): Likewise.
6684 (vectorizable_load): Likewise.
6685
6686 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6687
6688 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
6689 within the per-copy loop.
6690
6691 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6692
6693 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
6694 in the dump file.
6695
6696 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6697
6698 * doc/options.texi (Negative): Explicitly mention that the
6699 Negative chain must be circular.
6700
6701 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
6702
6703 * function.h (block_chainon): Declare.
6704 * function.c (block_chainon): Define.
6705
6706 2011-04-14 Anatoly Sokolov <aesok@post.ru>
6707 Eric Weddington <eric.weddington@atmel.com>
6708 Georg-Johann Lay <avr@gjlay.de>
6709
6710 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
6711 New Includes
6712 (avr_init_builtins, avr_expand_builtin,
6713 avr_expand_delay_cycles, avr_expand_unop_builtin,
6714 avr_expand_binop_builtin ): New functions.
6715 (avr_builtin_id): New enum
6716 (struct avr_builtin_description): New struct
6717 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
6718 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
6719
6720 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
6721 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
6722 UNSPECV_DELAY_CYCLES): new enumeration values
6723 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6724 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6725 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6726 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6727 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6728 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6729 "fmulsu"): New insns
6730
6731 * config/avr/avr-c.c: fix line endings
6732 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6733 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6734 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6735 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6736 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6737
6738 * doc/extend.texi (AVR Built-in Functions): New node
6739 (Target Builtins): Add documentation of AVR
6740 built-in functions.
6741
6742 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
6743
6744 PR target/44643
6745 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6746 alone. Error if non-const data has attribute progmem.
6747
6748 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6749
6750 * tree.h (struct tree_constructor): Include tree_typed instead of
6751 tree_common.
6752 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6753 TS_TYPED instead of TS_COMMON.
6754
6755 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
6756
6757 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6758 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6759 (sse2_psadbw): Merge with *avx_psadbw.
6760 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6761 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6762 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6763 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6764 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6765 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6766 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6767 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6768 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6769 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6770 (ssse3_palignrti): Merge with *avx_palignrti.
6771
6772 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6773
6774 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6775 * tree-ssanames.c (fini_ssanames): VEC_free it.
6776 (make_ssa_name_fn): Update for VECness of free_ssanames.
6777 (release_ssa_name, release_dead_ssa_names): Likewise.
6778 * tree.h (struct tree_ssa_name): Include tree_typed instead of
6779 tree_common.
6780 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6781 TS_TYPED instead of TS_COMMON.
6782
6783 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6784
6785 * postreload-gcse.c (gcse_after_reload_main): Add calls to
6786 statistics_counter_event.
6787 * tree-ssa-copyrename.c (stats): Define.
6788 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
6789 statistics_counter_event.
6790 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6791 (bswap_stats, widen_mul_stats): Define.
6792 (insert_reciprocals): Increment rdivs_inserted.
6793 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
6794 rfuncs_inserted. Add calls to statistics_counter_event.
6795 (execute_cse_sincos_1): Increment inserted.
6796 (execute_cse_sincos): Zeroize sincos_stats. Add call to
6797 statistics_counter_event.
6798 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
6799 of bswap_stats. Add calls to statistics_counter_event.
6800 (convert_mult_to_widen): Increment widen_mults_inserted.
6801 (convert_plusminus_to_widen): Increment maccs_inserted.
6802 (convert_mult_to_fma): Increment fmas_inserted.
6803 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
6804 calls to statistics_counter_event.
6805
6806 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
6807
6808 PR rtl-optimization/48455
6809 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6810 `temp_costs->mem_cost'.
6811
6812 2011-04-13 Jan Hubicka <jh@suse.cz>
6813
6814 * ipa-inline.h: New file.
6815 * ipa-inline-analysis.c: New file. Broken out of ...
6816 * ipa-inline.c: ... this file; update toplevel comment;
6817 include ipa-inline.h
6818 (inline_summary): Move to ipa-inline.h
6819 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6820 ipa-inline-analysis.c.
6821 (cgraph_estimate_time_after_inlining): Rename to
6822 estiamte_time_after_inlining; move to ipa-inline-analysis.c
6823 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6824 to estimate_edge_growth.
6825 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6826 rename to estimate_size_after_inlining.
6827 (cgraph_mark_inline_edge): Update for new naming convention.
6828 (cgraph_check_inline_limits): Likewise.
6829 (cgraph_edge_badness): Likewise.
6830 (cgraph_decide_recursive_inlining): Likewise.
6831 (cgraph_decide_inlining_of_small_functions): Likewise.
6832 (cgraph_decide_inlining_incrementally): Likewise.
6833 (cgraph_estimate_growth): Rename to estimate_growth; move to
6834 ipa-inline-analysis.c.
6835 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6836 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6837 (compute_inline_parameters): Likewise.
6838 (compute_inline_parameters_for_current): Likewise.
6839 (pass_inline_parameters): Likewise.
6840 (inline_indirect_intraprocedural_analysis): Likewise.
6841 (analyze_function): Rename to inline_analyze_function; likewise.
6842 (add_new_function): Move to ipa-inline-analysis.c.
6843 (inline_generate_summary): Likewise.
6844 (inline_read_summary): Likewise.
6845 (inline_write_summary): Likewise.
6846 * Makefile.in (ipa-inline-analysis.c): New file.
6847
6848 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6849
6850 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6851 * configure: Regenerate.
6852
6853 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6854
6855 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6856 instead of tree_common.
6857 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6858 Likewise.
6859 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6860 TS_TYPED rather than TS_COMMON.
6861 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6862
6863 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
6864
6865 PR target/45263
6866 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6867 r20 around calls of __tablejump_elpm__
6868
6869 2011-04-13 Jakub Jelinek <jakub@redhat.com>
6870
6871 PR middle-end/48591
6872 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6873 NULL.
6874 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6875
6876 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
6877
6878 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6879 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6880 (cfi_vec): New typedef.
6881 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6882 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6883 (cie_cfi_vec): New static variable.
6884 (cie_cfi_head): Delete.
6885 (add_cfi): Accept a cfi_vec * as first argument. All callers and
6886 declaration changed. Use vector rather than list operations.
6887 (new_cfi): Don't initialize the dw_cfi_next field.
6888 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6889 rather than list operations.
6890 (lookup_cfa): Use vector rather than list operations.
6891 (output_cfis): New argument upto. Accept a cfi_vec rather than
6892 a dw_cfi_ref list head as argument. All callers changed.
6893 Iterate over the vector using upto as a maximum index.
6894 (output_all_cfis): New static function.
6895 (output_fde): Use vector rather than list operations. Use the
6896 new upto argument for output_cfis rather than manipulating a
6897 list.
6898 (dwarf2out_begin_prologue): Change initializations to match
6899 new struct members.
6900 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6901 from the vector length rather than searching for the end of a list.
6902 Use output_all_cfis.
6903 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6904
6905 2011-04-13 Nick Clifton <nickc@redhat.com>
6906
6907 * config/rx/rx.md (movmemsi): Do not use this pattern when
6908 volatile pointers are involved.
6909
6910 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
6911
6912 * config/i386/sse.md (pinsrbits): Remove.
6913 (sse2_packsswb): Merge with *avx_packsswb.
6914 (sse2_packssdw): Merge with *avx_packssdw.
6915 (sse2_packuswb): Merge with *avx_packuswb.
6916 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6917 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6918 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6919 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6920 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6921 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6922 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6923 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6924 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6925 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6926 (sse2_loadld): Merge with *avx_loadld.
6927 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6928 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6929 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6930 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6931 (vec_concatv2di): Merge with *vec_concatv2di_avx.
6932
6933 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
6934
6935 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6936 calling TREE_CHAIN.
6937 * print-tree.c (print_node): Likewise.
6938 * tree-inline.c (copy_tree_r): Likewise.
6939 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6940 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6941 instead of TS_COMMON.
6942 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6943 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6944 (copy_node_stat): Zero TREE_CHAIN only if necessary.
6945 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6946 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6947 ...and these...
6948 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6949 * tree.h: ...here.
6950 (TREE_CHAIN): Check for a TS_COMMON structure.
6951 (TREE_TYPE): Check for a TS_TYPED structure.
6952
6953 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
6954
6955 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6956 cgraph_get_create_node instead of cgraph_node.
6957
6958 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
6959
6960 * c-parser.c (c_parser_initelt): Updated call to
6961 objc_build_message_expr.
6962 (c_parser_postfix_expression): Likewise.
6963
6964 2011-04-12 Kai Tietz <ktietz@redhat.com>
6965
6966 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6967 MASK_MS_BITFIELD_LAYOUT bit.
6968
6969 2011-04-12 Jakub Jelinek <jakub@redhat.com>
6970
6971 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6972 assert it is always true.
6973 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6974 moves.
6975
6976 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
6977
6978 * c-parser.c (c_lex_one_token): Rewritten conditional used when
6979 compiling Objective-C to be more efficient.
6980
6981 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
6982
6983 * opts-common.c (decode_cmdline_options_to_array): Remove variable
6984 argv_copied.
6985
6986 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6987
6988 * recog.h, genoutput.c, optabs.c: Revert last patch.
6989
6990 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6991
6992 PR target/48090
6993 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
6994
6995 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6996
6997 * recog.h (insn_operand_data): Add an "allows_mem" field.
6998 * genoutput.c (output_operand_data): Initialize it.
6999 * optabs.c (maybe_legitimize_operand_same_code): New function.
7000 (maybe_legitimize_operand): Use it when matching the original
7001 op->value.
7002
7003 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
7004
7005 * genpreds.c (process_define_predicate): Move most processing
7006 to gensupport.c. Continue to validate the expression.
7007 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
7008 (process_define_predicate): Move processing to gensupport.c.
7009 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
7010 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
7011 (compute_predicate_codes): Moved from genrecog.c. Add lineno
7012 argument.
7013 (valid_predicate_name_p): New function, split out from old
7014 genpreds.c:process_define_predicate.
7015 (process_define_predicate): New function, combining code from
7016 old genpreds.c and genrecog.c functions.
7017 (process_rtx): Call it for DEFINE_PREDICATE and
7018 DEFINE_SPECIAL_PREDICATE.
7019
7020 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
7021
7022 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
7023 size of a '%A' memory reference.
7024 (T_DREG, T_QREG): New neon_builtin_type_bits.
7025 (arm_init_neon_builtins): Assert that the load and store operands
7026 are neon_struct_operands.
7027 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
7028 (NEON_ARG_MEMORY): New builtin_arg.
7029 (neon_dereference_pointer): New function.
7030 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
7031 Handle NEON_ARG_MEMORY.
7032 (arm_expand_neon_builtin): Update after above interface changes.
7033 Use NEON_ARG_MEMORY for loads and stores.
7034 * config/arm/predicates.md (neon_struct_operand): New predicate.
7035 * config/arm/iterators.md (V_two_elem): Tweak formatting.
7036 (V_three_elem): Use BLKmode for accesses that have no associated mode.
7037 (V_four_elem): Tweak formatting.
7038 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
7039 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
7040 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
7041 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
7042 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
7043 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
7044 (neon_vst4<mode>): Replace pointer operand with a memory operand.
7045 Use %A in the output template.
7046 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
7047 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
7048 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
7049 the width of the memory access. Remove post-increment.
7050 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
7051
7052 2011-04-12 Nick Clifton <nickc@redhat.com>
7053
7054 * config/v850/v850.c (expand_prologue): Do not use the CALLT
7055 instruction for interrupt handlers if the target is the basic V850
7056 architecture.
7057 (expand_epilogue): Likewise.
7058
7059 2011-04-12 Jakub Jelinek <jakub@redhat.com>
7060
7061 PR rtl-optimization/48549
7062 * combine.c (propagate_for_debug): Also stop after BB_END of
7063 this_basic_block. Process LAST and just stop processing after it.
7064 (combine_instructions): If last_combined_insn has been deleted,
7065 set last_combined_insn to its PREV_INSN.
7066
7067 2011-04-12 Richard Guenther <rguenther@suse.de>
7068
7069 PR tree-optimization/46076
7070 * gimple.h (struct gimple_statement_call): Add fntype field.
7071 (gimple_call_fntype): Adjust.
7072 (gimple_call_set_fntype): New function.
7073 * gimple.c (gimple_build_call_1): Set the call function type.
7074 * gimplify.c (gimplify_call_expr): Preserve the function
7075 type the frontend used for the call.
7076 (gimplify_modify_expr): Likewise.
7077 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
7078 function type.
7079 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
7080 function type.
7081 * tree-ssa.c (useless_type_conversion_p): Function pointer
7082 conversions are useless.
7083
7084 2011-04-12 Martin Jambor <mjambor@suse.cz>
7085
7086 * cgraph.h (cgraph_node): Remove function declaration.
7087 (cgraph_create_node): Declare.
7088 (cgraph_get_create_node): Likewise.
7089 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
7090 Updated all callers.
7091 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
7092 the decl does not already exist. Call cgraph_get_create_node instead
7093 of cgraph_node.
7094 (cgraph_get_create_node): New function.
7095 (cgraph_same_body_alias): Update comment.
7096 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
7097 assert it does not return NULL.
7098 (cgraph_update_edges_for_call_stmt): Likewise.
7099 (cgraph_clone_edge): Likewise.
7100 (cgraph_create_virtual_clone): Likewise.
7101 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
7102 instead of cgraph_node.
7103 (cgraph_add_new_function): Call cgraph_create_node or
7104 cgraph_get_create_node instead of cgraph_node.
7105 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
7106 instead of cgraph_node.
7107 (record_eh_tables): Likewise.
7108 (mark_address): Likewise.
7109 (mark_load): Likewise.
7110 (build_cgraph_edges): Call cgraph_get_create_node instead
7111 of cgraph_node.
7112 (rebuild_cgraph_edges): Likewise.
7113 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
7114 instead of cgraph_node.
7115 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
7116 cgraph_node.
7117 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
7118 cgraph_create_node instead of cgraph_node.
7119 * c-decl.c (finish_function): Call cgraph_get_create_node instead
7120 of cgraph_node.
7121 * lto-cgraph.c (input_node): Likewise.
7122 * lto-streamer-in.c (input_function): Likewise.
7123 * varasm.c (mark_decl_referenced): Likewise.
7124 (assemble_alias): Likewise.
7125
7126 2011-04-12 Martin Jambor <mjambor@suse.cz>
7127
7128 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
7129 instead of cgraph_node and assert it does not return NULL.
7130 * lto-streamer-in.c (lto_read_body): Likewise.
7131 * omp-low.c (new_omp_context): Likewise.
7132 (create_task_copyfn): Likewise.
7133 * tree-emutls.c (lower_emutls_function_body): Likewise.
7134 * matrix-reorg.c (transform_allocation_sites): Likewise.
7135
7136 2011-04-12 Jakub Jelinek <jakub@redhat.com>
7137
7138 PR c/48552
7139 * c-typeck.c (build_asm_expr): Error out on attempts to use
7140 void type outputs or inputs for constraints that allow reg or
7141 don't allow memory.
7142
7143 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
7144 Richard Earnshaw <rearnsha@arm.com>
7145
7146 PR target/48250
7147 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
7148 to use sign-magnitude offsets. Reject unsupported unaligned
7149 cases. Add detailed description in comments.
7150 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
7151 condition from TARGET_32BIT to TARGET_ARM.
7152
7153 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
7154
7155 * tree.h (struct typed_tree): New.
7156 (struct tree_common): Include it instead of tree_base.
7157 (TREE_TYPE): Update for new location of type field.
7158 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
7159 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
7160 (union tree_node): Add typed field.
7161 * treestruct.def (TS_TYPED): New.
7162 * lto-streamer.c (check_handled_ts_structures): Handle it.
7163 * tree.c (MARK_TS_TYPED): New macro.
7164 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
7165
7166 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
7167
7168 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
7169 (force_nonfallthru): Do not alter the loop nest if no basic block
7170 was created.
7171
7172 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
7173
7174 * config/i386/sse.md (VI): New mode iterator.
7175 (SSEMODEI): Remove.
7176 (AVX256MODEI): Ditto.
7177 (AVXMODEF4P): Ditto.
7178 (avxvecpsmode): Ditto.
7179 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
7180 (sse2_andnot<mode>3): New expander.
7181 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
7182 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
7183 (<any_logic:code><mode>3): Use VI mode iterator.
7184 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
7185 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
7186 (*andnottf3): Handle AVX three-operand constraints.
7187 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
7188
7189 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7190 Robert Millan <rmh@gnu.org>
7191
7192 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
7193 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
7194 GNU_USER_DYNAMIC_LINKER64): Define.
7195 (REG_NAME): Don't undefine.
7196 (MD_UNWIND_SUPPORT): Undefine.
7197 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
7198 (REG_NAME): Don't undefine.
7199 (MD_UNWIND_SUPPORT): Undefine.
7200 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
7201
7202 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7203
7204 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
7205 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
7206
7207 2011-04-11 Xinliang David Li <davidxl@google.com>
7208
7209 * value-profile.c (check_ic_target): New function.
7210 (gimple_ic_transform): Sanity check indirect call target.
7211 * gimple-low.c (gimple_check_call_args): Interface change.
7212 (gimple_check_call_matching_types): New function.
7213 * tree-inline.c (tree_can_inline_p): Call new function.
7214
7215 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
7216
7217 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
7218 tree-pretty-print.h & realmpfr.h.
7219
7220 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
7221
7222 PR middle-end/48464
7223 * ira.c (setup_pressure_classes): Fix typo in loop condition.
7224 (setup_allocno_and_important_classes): Ditto.
7225
7226 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7227
7228 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
7229 GNU_USER_DYNAMIC_LINKER.
7230 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
7231 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7232 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
7233 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7234 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7235 GNU_USER_TARGET_OS_CPP_BUILTINS.
7236 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
7237 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7238 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7239 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7240 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
7241 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7242 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7243 GNU_USER_TARGET_OS_CPP_BUILTINS.
7244 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7245 GNU_USER_DYNAMIC_LINKER.
7246 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7247 GNU_USER_TARGET_OS_CPP_BUILTINS.
7248 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
7249 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7250 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
7251 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7252 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
7253 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
7254 GNU_USER_DYNAMIC_LINKER64): Remove.
7255 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
7256 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7257 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7258 GNU_USER_DYNAMIC_LINKER.
7259 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7260 GNU_USER_TARGET_OS_CPP_BUILTINS.
7261 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7262 GNU_USER_TARGET_OS_CPP_BUILTINS.
7263 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
7264 to GNU_USER_TARGET_OS_CPP_BUILTINS.
7265 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
7266 GNU_USER_TARGET_OS_CPP_BUILTINS.
7267 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
7268 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
7269 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
7270 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
7271 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7272 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7273 GNU_USER_DYNAMIC_LINKER.
7274 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
7275 GNU_USER_TARGET_OS_CPP_BUILTINS.
7276 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
7277 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7278 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7279 GNU_USER_DYNAMIC_LINKER.
7280 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7281 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7282 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
7283 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7284 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7285 GNU_USER_DYNAMIC_LINKER.
7286 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
7287 GNU_USER_DYNAMIC_LINKERN32.
7288 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
7289 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
7290 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
7291 GNU_USER_DYNAMIC_LINKER32.
7292 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
7293 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7294 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7295 GNU_USER_DYNAMIC_LINKER.
7296 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
7297 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7298 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
7299 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7300 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
7301 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
7302 GNU_USER_DYNAMIC_LINKER32.
7303 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
7304 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
7305 GNU_USER_DYNAMIC_LINKER.
7306 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
7307 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7308 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
7309 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
7310 GNU_USER_DYNAMIC_LINKER64.
7311 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
7312 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7313 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7314 GNU_USER_DYNAMIC_LINKER.
7315 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
7316 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7317 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
7318 GNU_USER_DYNAMIC_LINKER.
7319 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
7320 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7321 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
7322 GNU_USER_DYNAMIC_LINKER32.
7323 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
7324 GNU_USER_DYNAMIC_LINKER64.
7325 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
7326 GNU_USER_DYNAMIC_LINKER64.
7327 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
7328 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
7329 * config/xtensa/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 GNU_USER_DYNAMIC_LINKER.
7332
7333 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7334
7335 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
7336 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
7337 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
7338 GNU_USER_DYNAMIC_LINKER.
7339 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
7340 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
7341 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
7342 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
7343 GNU_USER_DYNAMIC_LINKER64.
7344 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
7345 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
7346 GNU_USER_LINK_EMULATION.
7347 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
7348 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
7349 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
7350 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
7351 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
7352 CPP_SPEC, CC1_SPEC): Remove.
7353 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
7354 (GNU_USER_DYNAMIC_LINKER): Define.
7355 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
7356 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
7357 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
7358 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
7359 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
7360 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
7361 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
7362 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
7363 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
7364 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
7365 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
7366 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
7367 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
7368 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
7369 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
7370 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
7371 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7372 GNU_USER_DYNAMIC_LINKER.
7373 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7374 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
7375 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7376 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
7377 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
7378 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
7379 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
7380 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
7381 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
7382 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
7383
7384 2011-04-11 Kai Tietz <ktietz@redhat.com>
7385
7386 PR target/9601
7387 PR target/11772
7388 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
7389 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
7390 comment.
7391 (ix86_is_msabi_thiscall): Removed.
7392 (ix86_is_type_thiscall): Likewise.
7393 (ix86_get_callcvt): New function.
7394 (ix86_comp_type_attributes): Simplify check.
7395 (ix86_function_regparm): Use ix86_get_callcvt for calling
7396 convention attribute checks.
7397 (ix86_return_pops_args): Likewise.
7398 (ix86_static_chain): Likewise.
7399 (x86_this_parameter): Likewise.
7400 (x86_output_mi_thunk): Likewise.
7401 (ix86_function_type_abi): Optimize check for types without attributes.
7402 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
7403 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
7404 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
7405 by flag-values.
7406 (IX86_BASE_CALLCVT): Helper macro.
7407 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
7408 Use ix86_get_callcvt for calling convention attribute checks and avoid
7409 symbol-decoration for stdcall in TARGET_RTD case.
7410 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
7411 Likewise.
7412 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
7413 for declaration.
7414
7415 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
7416
7417 * config/i386/sse.md (VI_128): New mode iterator.
7418 (VI12_128): Rename from SSEMODE12.
7419 (VI14_128): Rename from SSEMODE14.
7420 (VI124_128): New mode iterator.
7421 (VI24_128): Rename from SSEMODE248.
7422 (VI248_128): Rename from SSEMODE248.
7423 (SSEMODE124C8): Remove.
7424 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7425 (*sse2_<plusminus_insn><mode>3): Merge with
7426 *avx_<plusminus_insn><mode>3.
7427 (*mulv8hi3): Merge with *avx_mulv8hi3.
7428 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
7429 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
7430 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
7431 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
7432 (ashr<mode>3): Merge with *avx_ashr<mode>3.
7433 (lshr<mode>3): Merge with *avx_lshr<mode>3.
7434 (ashl<mode>3): Merge with *avx_ashl<mode>3.
7435 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
7436 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
7437 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7438 (*<smaxmin:code>v8hi3): Ditto.
7439 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
7440 (*<smaxmin:code>v16qi3): Ditto.
7441 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
7442 (*sse2_eq<mode>3): Ditto.
7443 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
7444 (*sse2_gt<mode>3): Ditto.
7445 (vcondv2di): Split out of vcond<mode>.
7446 (vconduv2di): Split out of vcondu<mode>.
7447
7448 2011-04-11 Richard Guenther <rguenther@suse.de>
7449
7450 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
7451 before calling tree_low_cst.
7452
7453 2011-04-11 Richard Guenther <rguenther@suse.de>
7454
7455 * stor-layout.c (layout_type): Compute all array index size operations
7456 in the original type.
7457 (initialize_sizetypes): Add comment.
7458 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
7459
7460 2011-04-11 Joseph Myers <joseph@codesourcery.com>
7461
7462 * common.opt (Tbss=, Tdata=, Ttext=): New options.
7463
7464 2011-04-11 Martin Jambor <mjambor@suse.cz>
7465
7466 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
7467 of cgraph_node, handle NULL return value.
7468 (cgraph_global_info): Likewise.
7469 (cgraph_rtl_info): Likewise.
7470 * tree-inline.c (estimate_num_insns): Likewise.
7471 * gimplify.c (unshare_body): Likewise.
7472 (unvisit_body): Likewise.
7473 (gimplify_body): Likewise.
7474 * predict.c (optimize_function_for_size_p): Likewise.
7475 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7476 (call_may_clobber_ref_p_1): Likewise.
7477 * varasm.c (function_section_1): Likewise.
7478 (assemble_start_function): Likewise.
7479
7480 2011-04-11 Martin Jambor <mjambor@suse.cz>
7481
7482 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
7483 of cgraph_node.
7484 * final.c (rest_of_clean_state): Likewise.
7485 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
7486 * passes.c (pass_init_dump_file): Likewise.
7487 (execute_all_ipa_transforms): Likewise.
7488 (function_called_by_processed_nodes_p): Likewise.
7489 * predict.c (maybe_hot_frequency_p): Likewise.
7490 (probably_never_executed_bb_p): Likewise.
7491 (compute_function_frequency): Likewise.
7492 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
7493 (unnest_nesting_tree_1): Likewise.
7494 (lower_nested_functions): Likewise.
7495 * tree-optimize.c (execute_fixup_cfg): Likewise.
7496 (tree_rest_of_compilation): Likewise.
7497 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
7498 * tree-sra.c (ipa_early_sra): Likewise.
7499 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
7500 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
7501 * ipa.c (record_cdtor_fn): Likewise.
7502 * ipa-inline.c (cgraph_early_inlining): Likewise.
7503 (compute_inline_parameters_for_current): Likewise.
7504 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
7505 * ipa-pure-const.c (local_pure_const): Likewise.
7506 * ipa-split.c (split_function): Likewise.
7507 (execute_split_functions): Likewise.
7508 * cgraphbuild.c (build_cgraph_edges): Likewise.
7509 (rebuild_cgraph_edges): Likewise.
7510 (cgraph_rebuild_references): Likewise.
7511 (remove_cgraph_callee_edges): Likewise.
7512 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
7513 (verify_cgraph_node): Likewise.
7514 (cgraph_analyze_functions): Likewise.
7515 (cgraph_preserve_function_body_p): Likewise.
7516 (save_inline_function_body): Likewise.
7517 (save_inline_function_body): Likewise.
7518 * tree-inline.c (copy_bb): Likewise.
7519 (optimize_inline_calls): Likewise.
7520
7521 2011-04-11 Martin Jambor <mjambor@suse.cz>
7522
7523 PR tree-optimization/48195
7524 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
7525 ipa_check_create_edge_args.
7526 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
7527 ipa_check_create_edge_args.
7528 * ipa-inline.c (inline_generate_summary): Do not call
7529 ipa_check_create_node_params and ipa_check_create_edge_args.
7530 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
7531 ipa_check_create_edge_args.
7532
7533 2011-04-09 Anatoly Sokolov <aesok@post.ru>
7534
7535 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
7536 instead of loop.
7537 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
7538 * function.c (record_hard_reg_sets): Likewise.
7539 * ira.c (compute_regs_asm_clobbered): Likewise.
7540 * sched-deps.c (sched_analyze_1): Likewise.
7541 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
7542
7543 2011-04-09 Xinliang David Li <davidxl@google.com>
7544
7545 PR tree-optimization/PR48484
7546 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
7547 has_valid_pred lazily
7548
7549 2011-04-09 Duncan Sands <baldrick@free.fr>
7550
7551 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
7552
7553 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
7554
7555 * combine.c (combine_validate_cost): Adjust comments. Set registered
7556 cost of I0 to zero at the end, if any.
7557
7558 2011-04-08 Xinliang David Li <davidxl@google.com>
7559
7560 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
7561 to insane profile data.
7562
7563 2011-04-08 Xinliang David Li <davidxl@google.com>
7564
7565 * ipa-cp.c (ipcp_update_profiling): Correct
7566 negative scale factor due to insane profile data.
7567
7568 2011-04-08 Xinliang David Li <davidxl@google.com>
7569
7570 * final.c (dump_basic_block_info): New function.
7571 (final): Dump basic block.
7572 (final_scan_insn): Remove old dump.
7573
7574 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
7575
7576 PR target/47829
7577 * config.gcc (i386-*-freebsd): Disable unwind table generation for
7578 crtbegin/crtend.
7579
7580 2011-04-08 Michael Matz <matz@suse.de>
7581
7582 PR middle-end/48389
7583 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
7584 functions.
7585 (rebuild_jump_labels): Call rebuild_jump_labels_1.
7586 * rtl.h (rebuild_jump_labels_chain): Declare.
7587 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
7588 insns inserted on edges.
7589
7590 2011-04-08 Joseph Myers <joseph@codesourcery.com>
7591
7592 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
7593 * config/arm/arm-arches.def: New.
7594 * config/arm/arm-opts.h: New.
7595 * config/arm/genopt.sh: New.
7596 * config/arm/arm-tables.opt: New (generated).
7597 * config/arm/arm.c (arm_handle_option, arm_target_help,
7598 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
7599 (all_architectures): Get most table contents from arm-arches.def.
7600 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
7601 arm_selected_tune here.
7602 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
7603 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
7604 (march=, mcpu=, mtune=): Use Enum and Var.
7605 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
7606 (arm.o): Update dependencies.
7607
7608 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
7609
7610 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
7611 of header_file.
7612 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
7613 (write_typed_alloc_defns): Likewise.
7614 (main): Calls write_typed_alloc_defns with output_header.
7615
7616 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
7617
7618 PR inline-asm/48435
7619 * ira-color.c (setup_profitable_hard_regs): Add comments.
7620 Don't take prohibited hard regs into account.
7621 (setup_conflict_profitable_regs): Rename to
7622 get_conflict_profitable_regs.
7623 (check_hard_reg_p): Check prohibited hard regs.
7624
7625 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
7626
7627 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
7628 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
7629 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
7630
7631 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7632
7633 PR target/48366
7634 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
7635 move from floating point to shift amount register.
7636 (emit_move_sequence): Remove secondary reload support for floating
7637 point to shift amount amount register copies.
7638 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
7639 amount register copies.
7640 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
7641 register, return false if mode isn't a scalar integer mode.
7642 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
7643
7644 2011-04-08 Richard Guenther <rguenther@suse.de>
7645
7646 * gimple.c (gimple_call_flags): Remove kludge.
7647
7648 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7649
7650 * sel-sched.c (sel_region_init): Move call to
7651 sel_setup_region_sched_flags after setup_current_loop_nest.
7652
7653 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
7654
7655 PR rtl-optimization/48272
7656 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
7657 init_insn_reg_pressure_info. Adjust a caller.
7658 * sched-int.h (init_insn_reg_pressure_info): Declare.
7659 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
7660 when sched-pressure is enabled.
7661
7662 2011-04-08 Richard Guenther <rguenther@suse.de>
7663
7664 * gimple.c (gimple_set_modified): Do not queue calls to
7665 MODIFIED_NORETURN_CALLS here ...
7666 * tree-ssa-operands.c (update_stmt_operands): ... but here.
7667
7668 2011-04-08 Richard Guenther <rguenther@suse.de>
7669
7670 PR lto/48467
7671 * toplev.c (lang_dependent_init): Do not open asm_out_file
7672 in WPA mode, nor perform debug machinery initialization.
7673 (finalize): Do not unlink asm_out_file in WPA mode.
7674
7675 2011-04-08 Richard Guenther <rguenther@suse.de>
7676
7677 * gimple.h (gimple_call_fntype): New function.
7678 (gimple_call_return_type): Use it.
7679 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
7680 * gimple-low.c (gimple_check_call_args): Likewise.
7681 * gimple.c (gimple_call_flags): Likewise.
7682 (gimple_call_arg_flags): Likewise.
7683 (gimple_call_return_flags): Likewise.
7684 * tree-cfg.c (verify_gimple_call): Likewise.
7685 (do_warn_unused_result): Likewise.
7686 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7687 * value-prof.c (gimple_ic_transform): Fix fndecl check.
7688
7689 2011-04-08 Dmitry Melnik <dm@ispras.ru>
7690
7691 PR rtl-optimization/48235
7692 * sel-sched.c (code_motion_process_successors): Recompute the last
7693 insn in basic block if control flow changed.
7694 (code_motion_path_driver): Ditto. Recompute the first insn as well.
7695 Update condition for ilist_remove.
7696
7697 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7698
7699 PR rtl-optimization/48302
7700 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
7701 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
7702 it to record added preheader blocks.
7703 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
7704 on to sel_add_loop_preheaders.
7705 (sel_region_init): Move call to setup_current_loop_nest after
7706 sel_init_bbs.
7707
7708 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7709
7710 PR target/48273
7711 * cfgloop.h (loop_has_exit_edges): New helper.
7712 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
7713 non-clonable.
7714 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
7715 that have no exit edges.
7716
7717 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7718
7719 PR rtl-optimization/48442
7720 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
7721 all callers. Adjust assert.
7722
7723 2011-04-08 Jakub Jelinek <jakub@redhat.com>
7724
7725 PR tree-optimization/48377
7726 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7727 is_packed to true even for types with smaller TYPE_ALIGN than
7728 TYPE_SIZE.
7729
7730 2011-04-08 Richard Guenther <rguenther@suse.de>
7731
7732 PR bootstrap/48513
7733 * doc/tm.texi: Re-generate.
7734
7735 2011-04-08 Wei Guozhi <carrot@google.com>
7736
7737 PR target/47855
7738 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7739 * config/arm/arm.c (arm_attr_length_push_multi): New function.
7740 * config/arm/arm.md (*push_multi): Change the length computation to
7741 call a C function.
7742
7743 2011-04-08 Anatoly Sokolov <aesok@post.ru>
7744
7745 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7746 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7747 * doc/tm.texi: Regenerate.
7748 * system.h (ASM_OUTPUT_BSS): Poison.
7749 * varasm.c (asm_output_bss): Remove function.
7750 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7751
7752 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7753 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7754 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7755 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7756 Likewise.
7757 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7758 Likewise.
7759 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7760 Likewise.
7761 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7762
7763 2011-04-07 Joseph Myers <joseph@codesourcery.com>
7764
7765 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7766 EnumValue lines.
7767
7768 2011-04-07 Joseph Myers <joseph@codesourcery.com>
7769
7770 * config/m68k/m68k.c (m68k_handle_option): Don't handle
7771 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7772 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7773 OPT_mcpu32.
7774 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7775 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7776 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7777 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7778 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7779 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7780 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7781 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7782 options. Don't map other m68k options manually. Don't handle
7783 old-style options as canonical.
7784 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7785 * doc/install.texi (m68k-*-*): Document binutils version requirement.
7786
7787 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
7788
7789 * basic-block.h (force_nonfallthru): Move to...
7790 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7791 (force_nonfallthru): ...here.
7792 * cfghooks.c (force_nonfallthru): New function.
7793 * cfgrtl.c (force_nonfallthru): Rename into...
7794 (rtl_force_nonfallthru): ...this.
7795 (commit_one_edge_insertion): Do not set AUX field.
7796 (commit_edge_insertions): Do not discover new basic blocks.
7797 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7798 (cfg_layout_rtl_cfg_hooks): Likewise.
7799 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7800 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
7801 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7802
7803 2011-04-07 Anatoly Sokolov <aesok@post.ru>
7804
7805 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7806 Remove macros.
7807
7808 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
7809
7810 * config/i386/sse.md: Update copyright year.
7811 (avxcvtvecmode): Remove.
7812 (sse_movhlps): Merge with *avx_movhlps.
7813 (sse_movlhps): Merge with *avx_movlhps.
7814 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7815 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7816 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7817 (sse_loadhps): Merge with *avx_loadhps.
7818 (sse_storelps): Merge with *avx_storelps.
7819 (sse_loadlps): Merge with *avx_loadlps.
7820 (sse_movss): Merge with *avx_movss.
7821 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7822 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7823 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7824 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7825 (vec_set<mode>_0): Ditto.
7826 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7827 (sse4_1_insertps): Merge with *avx_insertps.
7828 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7829 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7830 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7831 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7832 (sse2_storehpd): Merge with *avx_storehpd.
7833 (sse2_loadhpd): Merge with *avx_loadhpd.
7834 (sse2_loadlpd): Merge with *avx_loadlpd.
7835 (sse2_movsd): Merge with *avx_movsd.
7836 (*vec_concatv2df): Merge with *vec_concatv2df.
7837
7838 2011-04-07 Jakub Jelinek <jakub@redhat.com>
7839
7840 PR debug/48343
7841 * combine.c (combine_instructions): Add last_combined_insn,
7842 update it if insn is after it, pass it to all try_combine calls.
7843 (try_combine): Add last_combined_insn parameter, pass it instead of
7844 i3 to propagate_for_debug.
7845
7846 2011-04-07 Nick Clifton <nickc@redhat.com>
7847
7848 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7849 to handle MDR <-> data register transfers.
7850 (movhi_internal): Likewise.
7851
7852 2011-04-07 Alan Modra <amodra@gmail.com>
7853
7854 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7855 previous stack info.
7856
7857 2011-04-07 Tom de Vries <tom@codesourcery.com>
7858
7859 PR target/43920
7860 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
7861 flow_find_cross_jump. Swap variables to implement backward replacement.
7862 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7863
7864 2011-04-07 Tom de Vries <tom@codesourcery.com>
7865
7866 PR target/43920
7867 * cfgcleanup.c (walk_to_nondebug_insn): New function.
7868 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
7869 and bb2.
7870 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7871 src1 or src2. Redirect edges to the last basic block. Update
7872 frequency and count on multiple basic blocks in case of fallthru.
7873
7874 2011-04-07 Tom de Vries <tom@codesourcery.com>
7875
7876 PR target/43920
7877 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7878 function.
7879 (old_insns_match_p): Change return type. Replace return false/true
7880 with return dir_none/dir_both. Use can_replace_by.
7881 (flow_find_cross_jump): Add dir_p parameter. Init replacement
7882 direction from dir_p. Register replacement direction in dir, last_dir
7883 and afterlast_dir. Handle new return type of old_insns_match_p using
7884 merge_dir. Return replacement direction in dir_p.
7885 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7886 return type of old_insns_match_p.
7887 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7888 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7889 flow_find_cross_jump.
7890 * basic-block.h (enum replace_direction): New type.
7891 (flow_find_cross_jump): Add parameter to declaration.
7892
7893 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
7894
7895 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7896 (AVXMODEDCVTPS2DQ): Ditto.
7897 (VEC_FLOAT_MODE): Ditto.
7898 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
7899 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7900 (<any_logic:code><mode>3): Use VF mode iterator.
7901 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7902 Use VF mode iterator.
7903 (copysign<mode>3): Use VF mode iterator.
7904 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
7905 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7906 (*<any_logic:code><MODEF:mode>3): Merge with
7907 *avx_<any_logic:code><MODEF:mode>3.
7908 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7909 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7910 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7911 (avx_cvtdq2ps<avxmodesuffix>): Remove.
7912 (sse2_cvtdq2ps): Use %v modifier.
7913 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7914 (avx_cvtps2dq<avxmodesuffix>): Remove.
7915 (sse2_cvtps2dq): Use %v modifier.
7916 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7917 (avx_cvttps2dq<avxmodesuffix>): Remove.
7918 (sse2_cvttps2dq): Use %v modifier.
7919 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7920 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7921 (sse2_cvtsd2siq): Fix insn template.
7922 (sse2_cvtsd2siq_2): Ditto.
7923 (sse2_cvttsd2siq): Ditto.
7924 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7925 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7926
7927 2011-04-06 Joseph Myers <joseph@codesourcery.com>
7928
7929 * gcov-io.c: Use GCC Runtime Library Exception.
7930
7931 2011-04-06 Jakub Jelinek <jakub@redhat.com>
7932
7933 PR debug/48466
7934 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7935 as base_reg whatever register reg has been eliminated to, instead
7936 of hardcoding STACK_POINTER_REGNUM.
7937
7938 2011-04-06 Joseph Myers <joseph@codesourcery.com>
7939
7940 * doc/tm.texi.in: Document C target hooks as separate from general
7941 target hooks.
7942 * doc/tm.texi: Regenerate.
7943 * genhooks.c (struct hook_desc): Add docname field.
7944 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
7945 docname field.
7946 (hook_array): Include c-target.def.
7947 (emit_documentation): Use docname field in output.
7948 (emit_init_macros): Take docname argument. Only emit definitions
7949 for hooks matching docname.
7950 (main): Expect additional arguments in all cases. Pass argument
7951 to emit_init_macros.
7952 * target.def: Move initial macro definitions and comments to
7953 target-hooks-macros.h.
7954 (gcc_targetcm): Move to c-family/c-target.def.
7955 * target.h (targetcm): Move declaration to c-family/c-target.h.
7956 * targhooks.c (default_handle_c_option): Move to
7957 c-family/c-opts.c.
7958 * targhooks.h (default_handle_c_option): Move declaration to
7959 c-family/c-common.h.
7960 * target-hooks-macros.h: New file.
7961 * config.gcc (target_has_targetcm): Define and use to add to
7962 c_target_objs and cxx_target_objs.
7963 * config/default-c.c: New file.
7964 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7965 of target.h and target-def.h.
7966 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7967 (darwin_objc_construct_string, darwin_cfstring_ref_p,
7968 darwin_check_cfstring_format_arg): Make static.
7969 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7970 TARGET_STRING_OBJECT_REF_TYPE_P,
7971 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7972 * config/darwin-protos.h (darwin_objc_construct_string,
7973 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7974 declare.
7975 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7976 TARGET_STRING_OBJECT_REF_TYPE_P,
7977 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
7978 * config/t-darwin (darwin-c.o): Update dependencies.
7979 * system.h (TARGET_HAS_TARGETCM): Poison.
7980 * Makefile.in (TARGET_H): Update.
7981 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7982 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7983 (default-c.o): New target.
7984 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
7985 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
7986 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
7987 c-target.def.
7988 (build/genhooks.o): Update dependencies.
7989
7990 2011-04-06 Richard Guenther <rguenther@suse.de>
7991
7992 * ipa-inline.c (enum inlining_mode): Remove.
7993 (cgraph_flatten): Use some other token.
7994 (cgraph_edge_early_inlinable_p): New function, split out from ...
7995 (cgraph_perform_always_inlining): New function, split out from ...
7996 (cgraph_decide_inlining_incrementally): ... here.
7997 (cgraph_mark_inline_edge): Adjust.
7998 (cgraph_early_inlining): Re-structure.
7999 (pass_early_inline): Require SSA form.
8000
8001 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
8002 Julian Brown <julian@codesourcery.com>
8003 Mark Shinwell <shinwell@codesourcery.com>
8004
8005 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
8006 LO_REGS only for Thumb-1.
8007 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
8008 be used in short instructions when optimising for size on Thumb-2.
8009
8010 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
8011
8012 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
8013 associated with user returns to be preserved.
8014
8015 2011-04-06 Tristan Gingold <gingold@adacore.com>
8016
8017 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
8018 symbol_queue_size, DBXOUT_DECR_NESTING,
8019 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
8020 if XCOFF_DEBUGGING_INFO.
8021
8022 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
8023
8024 * config/i386/i386.md (attribute isa): New.
8025 (attribute enabled): New.
8026 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
8027 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
8028 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
8029 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
8030 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
8031 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8032 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
8033 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
8034
8035 * config/i386/sse.md (VF): New mode iterator.
8036 (VF1): Ditto.
8037 (VF2): Ditto.
8038 (VF_128): Ditto.
8039 (SSEMODEF4): Remove.
8040 (attribute sse): Handle V8SF and V4DF modes.
8041 (<absneg:code><mode>2): Use VF mode iterator.
8042 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
8043 mode iterator.
8044 (<plusminus_insn><mode>3): Use VF mode iterator.
8045 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
8046 Use VF mode iterator.
8047 (<sse>_vm<plusminus_insn><mode>3): Merge with
8048 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
8049 (mul<mode>3): Use VF mode iterator.
8050 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
8051 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
8052 mode iterator.
8053 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
8054 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
8055 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
8056 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
8057 mode iterator.
8058 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
8059 Use VF1 mode iterator.
8060 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
8061 (sqrt<VF2:mode>2): New expander.
8062 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
8063 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
8064 and sqrtv2df2. Use VF mode iterator.
8065 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
8066 mode iterator.
8067 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
8068 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
8069 Use VF1 mode iterator.
8070 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
8071 (<smaxmin:code><mode>3): Use VF mode iterator.
8072 (*<smaxmin:code><mode>3_finite): Merge with
8073 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
8074 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
8075 (<sse>_vm<smaxmin:code><mode>2): Merge with
8076 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
8077 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
8078 mode iterator.
8079 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
8080 mode iterator.
8081 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
8082 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
8083 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
8084 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
8085 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
8086 VF mode iterator.
8087 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
8088 Use VF_128 mode iterator.
8089 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
8090 mode iterator.
8091 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
8092 VF_128 mode iterator.
8093 (vcond<mode>): Use VF mode iterator.
8094 * config/i386/predicates.md (sse_comparison_operator): Merge with
8095 avx_comparison_float_operator. Do not declare as special_predicate.
8096 * config/i386/i386.c (struct builtin_description): Update for renamed
8097 compare patterns.
8098 (ix86_expand_args_builtin): Ditto.
8099 (ix86_expand_sse_compare_mask): Ditto.
8100
8101 2011-04-06 Richard Guenther <rguenther@suse.de>
8102
8103 * tree-inline.c (estimate_num_insns): For calls simply account
8104 for all passed arguments and a used return value.
8105
8106 2011-04-06 Richard Guenther <rguenther@suse.de>
8107
8108 PR tree-optimization/47663
8109 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
8110 call_stmt_time fields.
8111 (cgraph_edge_inlinable_p): Declare.
8112 (cgraph_edge_recursive_p): New inline function.
8113 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
8114 (cgraph_clone_edge): Copy it.
8115 * ipa-inline.c (cgraph_estimate_edge_time): New function.
8116 Account for call stmt time.
8117 (cgraph_estimate_time_after_inlining): Take edge argument.
8118 (cgraph_estimate_edge_growth): Account call stmt size.
8119 (cgraph_estimate_size_after_inlining): Take edge argument.
8120 (cgraph_mark_inline_edge): Adjust.
8121 (cgraph_check_inline_limits): Likewise.
8122 (cgraph_recursive_inlining_p): Remove.
8123 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
8124 (cgraph_decide_recursive_inlining): Take edge argument and
8125 adjust.
8126 (cgraph_decide_inlining_of_small_functions): Do not avoid
8127 diags for recursive inlining here.
8128 (cgraph_flatten): Adjust.
8129 (cgraph_decide_inlining_incrementally): Likewise.
8130 (estimate_function_body_sizes): Remove call cost handling.
8131 (compute_inline_parameters): Initialize caller edge call costs.
8132 (cgraph_estimate_edge_growth): New function.
8133 (cgraph_estimate_growth): Use it.
8134 (cgraph_edge_badness): Likewise.
8135 (cgraph_check_inline_limits): Take an edge argument.
8136 (cgraph_decide_inlining_of_small_functions): Adjust.
8137 (cgraph_decide_inlining): Likewise.
8138 * tree-inline.c (estimate_num_insns): Only account for call
8139 return value if it is used.
8140 (expand_call_inline): Avoid diagnostics on recursive inline
8141 functions here.
8142 * lto-cgraph.c (lto_output_edge): Output edge call costs.
8143 (input_edge): Input edge call costs.
8144
8145 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8146
8147 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
8148
8149 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
8150
8151 * doc/invoke.texi (Spec Files): Fix typo.
8152
8153 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
8154
8155 * profile.c (branch_prob): Move declaration of local variable. Remove
8156 obsolete ??? comment. Expand the location explicitly instead of using
8157 the LOCATION_FILE and LOCATION_LINE macros.
8158
8159 2011-04-06 Wei Guozhi <carrot@google.com>
8160
8161 PR target/47855
8162 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
8163 (arm_cond_branch): Likewise.
8164 (arm_cond_branch_reversed): Likewise.
8165 (arm_jump): Likewise.
8166 (push_multi): Likewise.
8167 * config/arm/constraints.md (Py): New constraint.
8168
8169 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8170
8171 PR bootstrap/48471
8172 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
8173 Move these...
8174 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
8175 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
8176 #ifdef DBX_DEBUGGING_INFO.
8177
8178 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
8179
8180 PR bootstrap/48403
8181 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
8182 if old and new states differ.
8183
8184 2011-04-05 Joseph Myers <joseph@codesourcery.com>
8185
8186 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
8187 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
8188 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
8189 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
8190 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
8191 mcfv4e): Use Alias.
8192 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
8193 ColdFire options to -mcpu= options.
8194
8195 2011-04-05 Jeff Law <law@redhat.com>
8196
8197 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
8198 check if BB is a successor of LOOP->header and return
8199 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
8200
8201 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
8202
8203 * cprop.c (struct reg_use): Remove.
8204 (reg_use_table): Make an array of RTX.
8205 (find_used_regs, constprop_register, local_cprop_pass,
8206 bypass_block): Simplify users of reg_use_table.
8207 (cprop_insn): Likewise. Iterate if copy propagation succeeded
8208 on one of the uses found by find_used_regs.
8209
8210 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8211
8212 PR bootstrap/48469
8213 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
8214 declaration.
8215
8216 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8217
8218 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
8219 as an rtx.
8220 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
8221
8222 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
8223
8224 PR middle-end/48441
8225 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
8226
8227 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8228
8229 * combine.c: Include obstack.h.
8230 (struct insn_link): Define.
8231 (uid_log_links): Adjust type.
8232 (FOR_EACH_LOG_LINK): New macro.
8233 (insn_link_obstack): Declare.
8234 (alloc_insn_link): Define.
8235 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
8236 type of link variables.
8237 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
8238 (try_combine, record_promoted_values, distribute_notes): Likewise.
8239 (distribute_links): Likewise. Tweak prototype.
8240 (clear_log_links): Delete.
8241 (adjust_for_new_dest): Call alloc_insn_link.
8242 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
8243
8244 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8245
8246 * gcse.c (modify_mem_list): Convert to an array of VECs.
8247 (canon_modify_mem_list, compute_transp): Tweak formatting.
8248 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
8249 (load_killed_in_block_p): Likewise.
8250 (record_last_mem_set_info): Likewise.
8251 (clear_modify_mem_tables): Likewise.
8252
8253 2011-04-05 Tom de Vries <tom@codesourcery.com>
8254
8255 PR middle-end/48461
8256 * function.c (emit_use_return_register_into_block): Only define if
8257 HAVE_return.
8258
8259 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
8260
8261 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
8262
8263 2011-04-05 Joseph Myers <joseph@codesourcery.com>
8264
8265 * config/rx/rx-opts.h: New.
8266 * config/rx/rx.c (rx_cpu_type): Remove.
8267 (rx_handle_option): Don't assert that global structures are in
8268 use. Access variables via opts pointer. Defer most handling of
8269 OPT_mint_register_. Use error_at.
8270 (rx_option_override): Handle deferred OPT_mint_register_ here.
8271 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
8272 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
8273 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
8274 (rx_cpu_types): New Enum and EnumValue entries.
8275 (mint-register=): Use Defer and use Var accordingly.
8276
8277 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8278
8279 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
8280 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
8281 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
8282 Move these...
8283 (debug_free_queue, debug_nesting, symbol_queue_index):
8284 ...and these...
8285 * dbxout.c: ...to here. Make static.
8286
8287 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
8288
8289 * gcse.c (modify_pair): Define. Define a VEC of it.
8290 (canon_modify_mem_list): Convert to an array of VECs.
8291 (free_insn_expr_list_list): Delete.
8292 (clear_modify_mem_tables): Call VEC_free instead.
8293 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
8294 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
8295 (canon_list_insert, compute_transp): Likewise.
8296
8297 2011-04-05 Tom de Vries <tom@codesourcery.com>
8298
8299 PR target/43920
8300 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
8301 for size.
8302
8303 2011-04-05 Tom de Vries <tom@codesourcery.com>
8304
8305 PR target/43920
8306 * function.c (emit_use_return_register_into_block): New function.
8307 (thread_prologue_and_epilogue_insns): Use
8308 emit_use_return_register_into_block.
8309
8310 2011-04-05 Tom de Vries <tom@codesourcery.com>
8311
8312 PR target/43920
8313 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
8314 insn.
8315
8316 2011-04-05 Tom de Vries <tom@codesourcery.com>
8317
8318 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
8319
8320 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
8321
8322 * config/arm/arm.md (define_constants for unspec): Replace with
8323 define_c_enum.
8324 (define_constants for unspecv): Replace with define_c_enum.
8325 * config/arm/neon.md (define_constants for unspec): Replace with
8326 define_c_enum.
8327
8328 2011-04-04 Richard Henderson <rth@redhat.com>
8329
8330 PR bootstrap/48400
8331 * dwarf2out.c (output_line_info): Always emit line info from
8332 at least one section.
8333 (dwarf2out_init): Create text_section_line_info here ...
8334 (set_cur_line_info_table): ... not here.
8335
8336 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
8337
8338 PR target/48380
8339 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
8340 not called.
8341
8342 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
8343
8344 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
8345
8346 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
8347 (expr_equiv_p): Remove.
8348 (insert_set_in_table): Look at <dest, src> pair instead of expr.
8349 (hash_scan_set): Update call to insert_set_in_table.
8350 (dump_hash_table): Dump <dest, src> pair.
8351 (lookup_set): Simplify. Lookup <dest, src> pair.
8352 (compute_transp): Remove, fold heavily simplified code into...
8353 (compute_local_properties): ...here. Expect COMP and TRANSP
8354 unconditionally.
8355 (find_avail_set): Take set directly from struct expr.
8356 (find_bypass-set): Likewise.
8357 (bypass_block): Likewise.
8358 (cprop_insn): Likewise. Remove redundant INSN_P test.
8359
8360 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
8361 checks on form of COND from find_implicit_sets to here.
8362 (find_implicit_sets): Cleanup control flow. Split critical edges
8363 if it exposes implicit sets. Allocate/resize implicit_sets as
8364 necessary.
8365 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
8366 changed something. Run df_analyze after find_implicit_sets if any
8367 edges were split. Do not allocate implicit_sets here.
8368
8369 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
8370 (gcse_obstack): Renamed to cprop_obstack.
8371 (GNEW, GNEWVEC, GNEWVAR): Remove.
8372 (gmalloc): Remove.
8373 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
8374 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
8375 (gcse_alloc): Likewise, and rename to cprop_alloc.
8376 (alloc_gcse_men, free_gcse_mem): Remove.
8377 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
8378 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
8379 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
8380
8381 * cprop.c (oprs_not_set_p): Remove.
8382 (mark_set, mark_clobber): Remove.
8383 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
8384 (reg_not_set_p): New function.
8385 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
8386 (cprop_insn): Likewise.
8387 (cprop_jump): Use FOR_EACH_EDGE.
8388
8389 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
8390
8391 PR bootstrap/48403
8392 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
8393 (rank_for_schedule): Use scheduled_insns vector instead of
8394 last_scheduled_insn.
8395 (ok_for_early_queue_removal): Likewise.
8396 (queue_to_ready): Search forward in nonscheduled_insns_begin if
8397 we have a dbg_cnt.
8398 (choose_ready): Likewise.
8399 (commit_schedule): Use VEC_iterate.
8400 (schedule_block): Initialize nonscheduled_insns_begin. If we have
8401 a dbg_cnt, use it and ensure the first insn is in the ready list.
8402 (haifa_sched_init): Allocate scheduled_insns.
8403 (sched_extend_ready_list): Don't allocate it; reserve space.
8404 (haifa_sched_finish): Free it.
8405
8406 2011-04-04 Joseph Myers <joseph@codesourcery.com>
8407
8408 * optc-gen.awk: Always remove type from Variable entry before
8409 recording in var_seen.
8410
8411 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
8412
8413 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
8414 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
8415 call to tidy_fallthru_edges.
8416
8417 2011-04-04 Joseph Myers <joseph@codesourcery.com>
8418
8419 * doc/options.texi (ToLower): Document.
8420 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
8421 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
8422 * opts.h (cl_option): Add cl_tolower field.
8423 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
8424 arguments with lowercase strings.
8425 * config/rx/rx.opt (mcpu=): Add ToLower.
8426 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
8427 argument.
8428
8429 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
8430
8431 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
8432
8433 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
8434
8435 * config/vax/vax.c: Include reload.h.
8436
8437 2011-04-04 Anatoly Sokolov <aesok@post.ru>
8438
8439 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
8440 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8441 (sparc_preferred_reload_class): New function.
8442
8443 2011-04-04 Jakub Jelinek <jakub@redhat.com>
8444
8445 PR debug/48401
8446 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8447 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
8448
8449 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
8450
8451 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
8452 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
8453
8454 2011-04-03 Anatoly Sokolov <aesok@post.ru>
8455
8456 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
8457 (ASM_OUTPUT_ALIGNED_BSS): Define.
8458
8459 2011-04-03 Michael Matz <matz@suse.de>
8460
8461 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
8462 and next_slot members.
8463 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
8464 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
8465 (lto_streamer_cache_append): Declare.
8466 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
8467 unsigned index, remove offset parameter, ensure that we append
8468 or update existing entries.
8469 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
8470 parameter, update next_slot for append.
8471 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
8472 parameter.
8473 (lto_streamer_cache_insert_at): Likewise.
8474 (lto_streamer_cache_append): New function.
8475 (lto_streamer_cache_lookup): Use unsigned index.
8476 (lto_streamer_cache_get): Likewise.
8477 (lto_record_common_node): Don't test tree_node_can_be_shared.
8478 (preload_common_node): Adjust call to lto_streamer_cache_insert.
8479 (lto_streamer_cache_delete): Don't free offsets member.
8480 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
8481 (lto_output_string_with_length): Use lto_output_data_stream.
8482 (lto_output_tree_header): Remove ix parameter, don't write it.
8483 (lto_output_builtin_tree): Likewise.
8484 (lto_write_tree): Adjust callers to above, don't track and write
8485 offset, write unsigned index.
8486 (output_unreferenced_globals): Don't emit all global vars.
8487 (write_global_references): Use unsigned indices.
8488 (lto_output_decl_state_refs): Likewise.
8489 (write_symbol): Likewise.
8490 * lto-streamer-in.c (lto_input_chain): Move earlier.
8491 (input_function): Use unsigned index.
8492 (input_alias_pairs): Don't read and then ignore all global vars.
8493 (lto_materialize_tree): Remove ix_p parameter, don't read index,
8494 don't pass it back, use lto_streamer_cache_append.
8495 (lto_register_var_decl_in_symtab): Use unsigned index.
8496 (lto_register_function_decl_in_symtab): Likewise.
8497 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
8498 index.
8499 (lto_get_builtin_tree): Don't read index, use
8500 lto_streamer_cache_append.
8501 (lto_read_tree): Adjust call to lto_materialize_tree.
8502
8503 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
8504 don't use function calls in arguments to MIN.
8505
8506 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
8507 twice.
8508
8509 * gimple.c (gimple_type_leader_entry): Mark deletable.
8510
8511 2011-04-03 Alan Modra <amodra@gmail.com>
8512
8513 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
8514
8515 2011-04-03 Michael Matz <matz@suse.de>
8516
8517 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
8518 an integer.
8519 * tree.h (tree_decl_non_common.vindex): Adjust comment.
8520
8521 2011-04-03 Michael Matz <matz@suse.de>
8522
8523 * cgraphbuild.c (record_reference): Canonicalize constructor values.
8524 * gimple-fold.c (canonicalize_constructor_val): Accept being called
8525 without function context.
8526 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
8527 current_function_decl and cfun.
8528
8529 2011-04-03 Michael Matz <matz@suse.de>
8530
8531 * tree.c (decl_init_priority_insert): Don't create entry for
8532 default priority.
8533 (decl_fini_priority_insert): Ditto.
8534 (fields_compatible_p, find_compatible_field): Remove.
8535 * tree.h (fields_compatible_p, find_compatible_field): Remove.
8536 * gimple.c (gimple_compare_field_offset): Adjust block comment.
8537
8538 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
8539
8540 * combine.c (try_combine): Remove useless local variable.
8541
8542 2011-04-03 Richard Guenther <rguenther@suse.de>
8543 Ira Rosen <ira.rosen@linaro.org>
8544
8545 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
8546 non-variable offsets and compare the remaining bases of the two
8547 accesses instead of looking for exact same data-ref.
8548
8549 2011-04-02 Kai Tietz <ktietz@redhat.com>
8550
8551 PR target/48416
8552 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
8553
8554 * i386.c (ix86_is_msabi_thiscall): New helper function.
8555 (ix86_is_type_thiscall): New helper function.
8556 (ix86_comp_type_attributes): Handle thiscall for method-functions
8557 special.
8558 (init_cumulative_args): Likewise.
8559 (find_drap_reg): Likewise.
8560 (ix86_static_chain): Likewise.
8561 (x86_this_parameter): Likewise.
8562 (x86_output_mi_thunk): Likewise.
8563
8564 2011-04-01 Olivier Hainque <hainque@adacore.com>
8565 Nicolas Setton <setton@adacore.com>
8566 Eric Botcazou <ebotcazou@adacore.com>
8567
8568 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
8569 (add_gnat_descriptive_type_attribute): New function.
8570 (gen_array_type_die): Call it.
8571 (gen_enumeration_type_die): Likewise.
8572 (gen_struct_or_union_type_die): Likewise.
8573 (modified_type_die): Likewise.
8574 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
8575 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
8576 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
8577
8578 2011-04-01 Jakub Jelinek <jakub@redhat.com>
8579
8580 PR bootstrap/48148
8581 * dwarf2out.c (resolve_addr): Don't call force_decl_die
8582 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
8583
8584 Revert:
8585 2011-03-17 Richard Guenther <rguenther@suse.de>
8586
8587 PR bootstrap/48148
8588 * lto-cgraph.c (input_overwrite_node): Clear the abstract
8589 origin for decls in other ltrans units.
8590 (input_varpool_node): Likewise.
8591
8592 2011-04-01 Jakub Jelinek <jakub@redhat.com>
8593
8594 PR middle-end/48335
8595 * expr.c (expand_assignment): Handle all possibilities
8596 if TO_RTX is CONCAT.
8597 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
8598 (store_split_bit_field): If SUBREG_REG (op0) or
8599 op0 itself has smaller mode than word, return it
8600 for offset 0 and const0_rtx for out-of-bounds stores.
8601 If word is const0_rtx, skip it.
8602
8603 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
8604
8605 * config/h8300/h8300.c (print_operand_address): Rename to...
8606 (h8300_print_operand_address): ...this. Make static. Adjust comments.
8607 Call h8300_print_operand and h8300_print_operand_address instead of
8608 print_operand and print_operand_address. Declare.
8609 (print_operand): Renake to...
8610 (h8300_print_operand): ...this. Make static. Adjust comments.
8611 Call h8300_print_operand instead of print_operand. Declare.
8612 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
8613 (h8300_register_move_cost): Likewise.
8614 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
8615 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
8616 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
8617 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
8618 * config/h8300/h8300-protos.h (print_operand): Delete.
8619 (print_operand_address): Delete.
8620
8621 2011-04-01 Richard Henderson <rth@redhat.com>
8622
8623 PR 48400
8624 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
8625 in strict mode before dwarf4. Re-order tests to early out
8626 before switching sections.
8627
8628 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
8629
8630 * config/h8300/constraints.md: New file.
8631 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
8632 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
8633 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
8634 * config/h8300/predicates.md (bit_operand): Likewise.
8635 (incdec_operand): Use satisfies_constraint_M and
8636 satisfies_constraint_O. Don't use C code block.
8637 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
8638 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
8639 (compute_mov_length): Use satisfies_constraint_G.
8640 (fix_bit_operand): Use satisfies_constraint_U.
8641 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
8642 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
8643 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
8644 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
8645 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
8646 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
8647 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8648 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
8649 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
8650 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
8651 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
8652 (EXTRA_MEMORY_CONSTRAINT): Delete.
8653
8654 2011-04-01 Andrew Pinski <pinskia@gmail.com>
8655 Michael Meissner <meissner@linux.vnet.ibm.com>
8656
8657 PR target/48262
8658 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
8659 operands, as per the specifications.
8660
8661 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
8662 (vec_extract_evenv4sf): Ditto.
8663 (vec_extract_evenv8hi): Ditto.
8664 (vec_extract_evenv16qi): Ditto.
8665 (vec_extract_oddv4si): Ditto.
8666
8667 2011-03-31 Mark Wielaard <mjw@redhat.com>
8668
8669 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
8670 high_pc attribute if the CU has no associated code. Only output
8671 DW_AT_entry_pc for CU if not generating strict dwarf and
8672 dwarf_version < 4.
8673
8674 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
8675
8676 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
8677 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
8678 out of ...
8679 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
8680 * final.c (final_start_function): Call the new function rather
8681 than using a NULL argument for dwarf2out_frame_debug.
8682
8683 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
8684 that contains the prologue.
8685
8686 * haifa-sched.c (queue_insn): New arg REASON. All callers
8687 changed. Print it in debugging output.
8688
8689 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
8690
8691 * sched-ebb.c (begin_schedule_ready): Remove second argument.
8692 Split most of the code into...
8693 (begin_move_insn): ... here. New function.
8694 (ebb_sched_info): Add a pointer to it.
8695 * haifa-sched.c (scheduled_insns): New static variable.
8696 (sched_extend_ready_list): Allocate it.
8697 (schedule_block): Use it to record the order of scheduled insns.
8698 Perform RTL changes to move insns only after all scheduling
8699 decisions have been made.
8700 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
8701 begin_move_insn field.
8702 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
8703 * sched-int.h (struct haifa_sched_info): Remove second argument
8704 from begin_schedule_ready hook. Add new member begin_move_insn.
8705 * sched-rgn.c (begin_schedule_ready): Remove second argument.
8706 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
8707
8708 * haifa-sched.c (prune_ready_list): New function, broken out of
8709 schedule_block.
8710 (schedule_block): Use it.
8711
8712 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8713
8714 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
8715
8716 2011-04-01 Kai Tietz <ktietz@redhat.com>
8717
8718 * config.gcc (*-*-mingw*): Allow as option the
8719 posix threading model.
8720 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
8721 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
8722 definition.
8723 (CPP_SPEC): Add pthread/no-pthread handling.
8724 (LIB_SPEC): Likewise.
8725 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8726 (LIB_SPEC): Likewise.
8727 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8728 flag to pass -pthread option for shared libgcc build.
8729 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8730 for shared libgcc build.
8731 * config/i386/t-mingw-pthread: New file.
8732 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8733 New define to enable use of library pthread by default.
8734 * config/i386/mingw.opt (pthread): New driver option.
8735 (no-pthread): New driver option.
8736 * config/i386/cygming.opt: Make sure trailing empty line is retained.
8737 * config/i386/mingw-w64.opt: Likewise.
8738
8739 2011-04-01 Gary Funck <gary@intrepid.com>
8740
8741 * c-decl.c (grokdeclarator): Fix formatting.
8742
8743 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8744
8745 * expr.c (emit_block_move_via_movmem): Use n_generator_args
8746 instead of n_operands.
8747 (set_storage_via_setmem): Likewise.
8748 * optabs.c (maybe_gen_insn): Likewise.
8749 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8750 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8751 (mips_expand_builtin_direct): Likewise.
8752 * config/spu/spu.c (expand_builtin_args): Likewise.
8753
8754 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8755
8756 * recog.h (insn_data_d): Add n_generator_args.
8757 * genoutput.c (data): Likewise.
8758 (output_insn_data): Print it.
8759 (max_opno, num_dups): Delete.
8760 (scan_operands): Just fill in "d->operand[...]".
8761 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8762
8763 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8764
8765 * gensupport.h (pattern_stats): New structure.
8766 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8767 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8768 (max_operand_1, max_operand_vec): Delete.
8769 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8770
8771 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
8772
8773 * emit-rtl.c (emit_pattern_after_setloc): New function.
8774 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8775 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8776 (emit_pattern_after): New function.
8777 (emit_insn_after, emit_jump_insn_after): Call it.
8778 (emit_call_insn_after, emit_debug_insn_after): Likewise.
8779 (emit_pattern_before_setloc): New function.
8780 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8781 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8782 Likewise.
8783 (emit_pattern_before): New function.
8784 (emit_insn_before, emit_jump_insn_before): Call it.
8785 (emit_call_insn_before, emit_debug_insn_before): Likewise.
8786
8787 2011-03-31 Richard Henderson <rth@redhat.com>
8788
8789 * dwarf2out.c (dw_separate_line_info_ref): Remove.
8790 (dw_separate_line_info_entry): Remove.
8791 (enum dw_line_info_opcode): New.
8792 (dw_line_info_entry): Use it.
8793 (dw_line_info_table, dw_line_info_table_p): New.
8794 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8795 (line_info_table, line_info_label_num): Remove.
8796 (line_info_table_in_use): Remove.
8797 (separate_line_info_table): Remove.
8798 (separate_line_info_table_allocated): Remove.
8799 (separate_line_info_table_in_use): Remove.
8800 (LINE_INFO_TABLE_INCREMENT): Remove.
8801 (line_info_label_num): New.
8802 (cur_line_info_table): New.
8803 (text_section_line_info, cold_text_section_line_info): New.
8804 (separate_line_info): New.
8805 (SEPARATE_LINE_CODE_LABEL): Remove.
8806 (print_dwarf_line_table): Remove.
8807 (debug_dwarf): Don't dump it.
8808 (output_one_line_info_table): New.
8809 (output_line_info): Use it.
8810 (new_line_info_table): New.
8811 (set_cur_line_info_table): New.
8812 (dwarf2out_switch_text_section): Use it.
8813 (dwarf2out_begin_function): Likewise.
8814 (push_dw_line_info_entry): New.
8815 (dwarf2out_source_line): Rewrite for new line info tables.
8816 (dwarf2out_init): Remove dead initailizations.
8817
8818 2011-03-31 Joseph Myers <joseph@codesourcery.com>
8819
8820 * opts.h (cl_option): Add comments to fields. Add bit-fields for
8821 various flags.
8822 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8823 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8824 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8825 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8826 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8827 * opt-functions.awk (flag_init, switch_bit_fields): New.
8828 (switch_flags): Don't handle flags moved to bit-fields. Don't
8829 generate CL_MISSING_OK or CL_SAVE.
8830 * optc-gen.awk: Update to generate bit-field output as well as
8831 flags field.
8832 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8833 bit-field instead of CL_REJECT_DRIVER flag.
8834 * opts-common.c (generate_canonical_option,
8835 decode_cmdline_option): Use bit-fields instead of CL_* flags.
8836 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8837 instead of CL_REJECT_NEGATIVE flag.
8838 * toplev.c (print_switch_values): Use cl_report bit-field instead
8839 of CL_REPORT flag.
8840
8841 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
8842
8843 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8844 a zero minimum index only if it is redundant.
8845
8846 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
8847
8848 PR rtl-optimization/48381
8849 * ira-color.c (assign_hard_reg): Use hard reg set intersection
8850 instead of ira_class_hard_reg_index for calculating conflicting
8851 hard registers.
8852
8853 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
8854
8855 * cprop.c: Clean up hash table building.
8856 (reg_avail_info): Remove.
8857 (oprs_available_p): Remove.
8858 (record_last_reg_set_info): Remove.
8859 (record_last_set_info): Remove.
8860 (reg_available_p): New function.
8861 (gcse_constant_p): Do not treat unfolded conditions as constants.
8862 (make_set_regs_unavailable): New function.
8863 (hash_scan_set): Simplify with new reg_available_p.
8864 (compute_hash_table_work): Traverse insns stream only once.
8865 Do not compute reg_avail_info. Traverse insns in reverse order.
8866 Record implicit sets after recording explicit sets from the block.
8867
8868 2011-03-31 Michael Matz <matz@suse.de>
8869
8870 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8871
8872 2011-03-31 Anatoly Sokolov <aesok@post.ru>
8873
8874 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8875 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8876 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8877 (h8300_mode_dependent_address_p): New function.
8878 (h8300_get_index): Make static.
8879
8880 2011-03-31 Jeff Law <law@redhat.com>
8881
8882 * reload1.c (elimination_effects): Fix typo in recent change.
8883
8884 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8885 typo potentially leading to null pointer dereference.
8886
8887 * caller-save.c (new_saved_hard_reg): Eliminate return value.
8888 (setup_save_areas): Corresponding changes to avoid useless
8889 assignments.
8890
8891 * jump.c (reversed_comparison_code_parts): Avoid successive return
8892 statements when REVERSE_CONDITION is defined.
8893
8894 * expr.c (expand_assignment): Avoid useless assignments.
8895 (expand_expr_real_1): Likewise.
8896 (expand_expr_real_2): Avoid useless statements.
8897
8898 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8899
8900 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8901
8902 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8903 statements.
8904
8905 * stmt.c (expand_expr_stmt): Avoid useless assignment.
8906
8907 2011-03-31 Joseph Myers <joseph@codesourcery.com>
8908
8909 PR target/47109
8910 * doc/tm.texi.in (TARGET_VERSION): Remove.
8911 * doc/tm.texi: Regenerate.
8912 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8913 * collect2.c (main): Don't use TARGET_VERSION.
8914 * mips-tdump.c (main): Don't use TARGET_VERSION.
8915 * mips-tfile.c (main): Don't use TARGET_VERSION.
8916 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8917 * config/rs6000/vxworksae.h: Remove.
8918 * config/alpha/alpha.h (TARGET_VERSION): Remove.
8919 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8920 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8921 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8922 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8923 * config/arm/arm.h (TARGET_VERSION): Remove.
8924 * config/arm/coff.h (TARGET_VERSION): Remove.
8925 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8926 * config/arm/elf.h (TARGET_VERSION): Remove.
8927 * config/arm/freebsd.h (TARGET_VERSION): Remove.
8928 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8929 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8930 * config/arm/pe.h (TARGET_VERSION): Remove.
8931 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8932 * config/arm/semi.h (TARGET_VERSION): Remove.
8933 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8934 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8935 * config/arm/vxworks.h (TARGET_VERSION): Remove.
8936 * config/avr/avr.h (TARGET_VERSION): Remove.
8937 * config/bfin/bfin.h (TARGET_VERSION): Remove.
8938 * config/fr30/fr30.h (TARGET_VERSION): Remove.
8939 * config/frv/frv.h (TARGET_VERSION): Remove.
8940 * config/h8300/h8300.h (TARGET_VERSION): Remove.
8941 * config/i386/cygwin.h (TARGET_VERSION): Remove.
8942 * config/i386/darwin.h (TARGET_VERSION): Remove.
8943 * config/i386/darwin64.h (TARGET_VERSION): Remove.
8944 * config/i386/djgpp.h (TARGET_VERSION): Remove.
8945 * config/i386/freebsd.h (TARGET_VERSION): Remove.
8946 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8947 * config/i386/gnu.h (TARGET_VERSION): Remove.
8948 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8949 * config/i386/i386elf.h (TARGET_VERSION): Remove.
8950 * config/i386/linux.h (TARGET_VERSION): Remove.
8951 * config/i386/linux64.h (TARGET_VERSION): Remove.
8952 * config/i386/lynx.h (TARGET_VERSION): Remove.
8953 * config/i386/mingw32.h (TARGET_VERSION): Remove.
8954 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8955 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8956 * config/i386/netware.h (TARGET_VERSION): Remove.
8957 * config/i386/nto.h (TARGET_VERSION): Remove.
8958 * config/i386/openbsd.h (TARGET_VERSION): Remove.
8959 * config/i386/vxworks.h (TARGET_VERSION): Remove.
8960 * config/ia64/elf.h (TARGET_VERSION): Remove.
8961 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8962 * config/ia64/hpux.h (TARGET_VERSION): Remove.
8963 * config/ia64/linux.h (TARGET_VERSION): Remove.
8964 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8965 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8966 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8967 * config/lm32/lm32.h (TARGET_VERSION): Remove.
8968 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8969 * config/m32c/m32c.h (TARGET_VERSION): Remove.
8970 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8971 * config/m32r/m32r.h (TARGET_VERSION): Remove.
8972 * config/m68k/linux.h (TARGET_VERSION): Remove.
8973 * config/m68k/m68k.h (TARGET_VERSION): Remove.
8974 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8975 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8976 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8977 * config/mep/mep.h (TARGET_VERSION): Remove.
8978 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8979 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8980 * config/mips/iris6.h (MACHINE_TYPE): Remove.
8981 * config/mips/linux.h (TARGET_VERSION): Remove.
8982 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8983 * config/mips/vxworks.h (TARGET_VERSION): Remove.
8984 * config/mmix/mmix.h (TARGET_VERSION): Remove.
8985 * config/mn10300/linux.h (TARGET_VERSION): Remove.
8986 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8987 * config/pa/pa.h (TARGET_VERSION): Remove.
8988 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8989 * config/picochip/picochip.h (TARGET_VERSION): Remove.
8990 * config/rs6000/aix.h (TARGET_VERSION): Remove.
8991 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8992 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8993 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8994 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8995 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8996 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8997 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8998 * config/rs6000/linux.h (TARGET_VERSION): Remove.
8999 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
9000 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
9001 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
9002 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
9003 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
9004 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
9005 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
9006 * config/s390/linux.h (TARGET_VERSION): Remove.
9007 * config/s390/s390.h (TARGET_VERSION): Remove.
9008 * config/s390/tpf.h (TARGET_VERSION): Remove.
9009 * config/score/score.h (TARGET_VERSION): Remove.
9010 * config/sh/linux.h (TARGET_VERSION): Remove.
9011 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
9012 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
9013 * config/sh/sh.h (TARGET_VERSION): Remove.
9014 * config/sh/sh64.h (TARGET_VERSION): Remove.
9015 * config/sh/superh.h (TARGET_VERSION): Remove.
9016 * config/sh/vxworks.h (TARGET_VERSION): Remove.
9017 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
9018 * config/sparc/linux.h (TARGET_VERSION): Remove.
9019 * config/sparc/linux64.h (TARGET_VERSION): Remove.
9020 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
9021 TARGET_NAME32, TARGET_NAME): Remove.
9022 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
9023 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
9024 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
9025 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
9026 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
9027 * config/spu/spu.h (TARGET_VERSION): Remove.
9028 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
9029 * config/v850/v850.h (TARGET_VERSION): Remove.
9030 * config/vax/linux.h (TARGET_VERSION): Remove.
9031 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
9032 * config/xtensa/elf.h (TARGET_VERSION): Remove.
9033 * config/xtensa/linux.h (TARGET_VERSION): Remove.
9034
9035 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
9036
9037 PR target/48142
9038 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
9039 frame-related from frame-unrelated adjustments to the stack pointer.
9040
9041 2011-03-31 Jakub Jelinek <jakub@redhat.com>
9042
9043 * common.opt (fdebug-types-section): Move earlier.
9044 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
9045
9046 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
9047
9048 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
9049 var.
9050
9051 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
9052
9053 * tree.h (CASE_CHAIN): Define.
9054 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
9055 (gimple_redirect_edge_and_branch): Likewise.
9056
9057 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
9058
9059 PR middle-end/48367
9060 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
9061 calculation.
9062
9063 2011-03-30 Jeff Law <law@redhat.com>
9064
9065 * PR bootstrap/48371
9066 * reload1.c (reload): Fix botch in last change.
9067
9068 * reload.h (struct reload): Fix typo introduced in last change.
9069
9070 2011-03-30 Joseph Myers <joseph@codesourcery.com>
9071
9072 * config/arm/arm.opt (mhard-float, msoft-float): Mark
9073 Undocumented. Remove help text.
9074 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
9075 -mhard-float.
9076
9077 2011-03-30 Joseph Myers <joseph@codesourcery.com>
9078
9079 * doc/options.texi (NegativeAlias): Document.
9080 (Alias): Mention NegativeAlias.
9081 * opt-functions.awk: Handle NegativeAlias.
9082 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
9083 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
9084 * opts.h (CL_NEGATIVE_ALIAS): Define.
9085 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
9086 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
9087 OPT_mspe_.
9088 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
9089 Alias entries.
9090 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9091 mno-spe and mno-isel instead of mspe=no and -misel=no.
9092
9093 2011-03-29 Mark Wielaard <mjw@redhat.com>
9094
9095 * common.opt (fdebug-types-section): New flag.
9096 * doc/invoke.texi: Document new -fno-debug-types-section flag.
9097 * dwarf2out.c (use_debug_types): New define.
9098 (struct die_struct): Mark die_id with GTY desc use_debug_types.
9099 (print_die): Guard output of type unit signatures using
9100 use_debug_types.
9101 (build_abbrev_table): Replace assert of dwarf_version >= 4
9102 with assert on use_debug_types.
9103 (size_of_die): Likewise.
9104 (unmark_dies): Likewise.
9105 (value_format): Decide AT_ref_external form on use_debug_types.
9106 (output_die): Replace dwarf_version version check guard with
9107 use_debug_types where appropriate.
9108 (modified_type_die): Likewise.
9109 (gen_reference_type_die): Likewise.
9110 (dwarf2out_start_source_file): Likewise.
9111 (dwarf2out_end_source_file): Likewise.
9112 (prune_unused_types_walk_attribs): Likewise.
9113 (dwarf2out_finish): Likewise.
9114
9115 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
9116
9117 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
9118
9119 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
9120
9121 PR rtl-optimization/48332
9122 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
9123 mode of input operand N and modeN to its actual mode.
9124
9125 2011-03-30 Jeff Law <law@redhat.com>
9126
9127 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
9128 define accessor macro.
9129 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
9130 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
9131 (reg_equiv_init): Likewise.
9132 (reg_equivs_size): New variable.
9133 (reg_equiv_init_size): Remove.
9134 (allocate_initial_values): Move prototype to here from....
9135 * integrate.h (allocate_initial_values): Remove prototype.
9136 * integrate.c: Include reload.h.
9137 (allocate_initial_values): Corresponding changes.
9138 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
9139 (fix_reg_equiv_init, no_equiv): Corresponding changes.
9140 (update_equiv_regs): Corresponding changes.
9141 (ira): Corresponding changes.
9142 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
9143 (push_secondary_reload): Corresponding changes.
9144 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
9145 (make_memloc, find_reloads_address): Corresponding changes.
9146 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
9147 (find_reloads_address_1): Corresponding changes.
9148 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
9149 (refers_to_regno_for_reload_p): Corresponding changes.
9150 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
9151 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
9152 * reload1.c: Include ggc.h.
9153 (grow_reg_equivs): New function.
9154 (replace_pseudos_in, reload): Corresponding changes.
9155 (calculate_needs_all_insns, alter_regs): Corresponding changes.
9156 (eliminate_regs_1, elimination_effects): Corresponding changes.
9157 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
9158 (delete_output_reload): Likewise.
9159 * caller-save.c (mark_referenced_regs): Corresponding changes.
9160 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
9161 * frv/predicates.md (frv_load_operand): Corresponding changes.
9162 * microblaze/microblaze.c (double_memory_operand): Corresponding
9163 changes.
9164 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
9165 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
9166 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
9167 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
9168 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
9169 changes.
9170 * pa/pa.c (emit_move_sequence): Corresponding changes.
9171 * vax/vax.c (nonindexed_address_p): Corresponding changes.
9172
9173 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
9174
9175 PR target/47551
9176 * config/arm/arm.c (coproc_secondary_reload_class): Handle
9177 structure modes. Don't check neon_vector_mem_operand for
9178 vector or structure modes.
9179
9180 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
9181 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9182
9183 PR target/43590
9184 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
9185 operand 1 and reshuffle the operands to match.
9186 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
9187
9188 2011-03-30 Christian Schüler <cschueler@gmx.de>
9189
9190 PR driver/48208
9191 * config/c.opt (F): Added 'Driver' to -F option.
9192
9193 PR driver/48260
9194 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
9195 handler function.
9196 * config/darwin.opt: Added '-arch' option.
9197
9198 2011-03-30 Nick Clifton <nickc@redhat.com>
9199
9200 * config/rx/rx.md: Add peepholes and patterns to combine
9201 extending loads and simple arithmetic instructions.
9202 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
9203 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
9204 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
9205 modes to use pre-decrement and post-increment addressing.
9206 (rx_is_restricted_memory_address): Add range checking of REG+INT
9207 addresses.
9208 (rx_print_operand): Add support for %Q. Fix handling of %Q.
9209 (rx_memory_move_cost): Adjust cost of stores.
9210 (rx_adjust_insn_length): New function.
9211
9212 2011-03-30 Jakub Jelinek <jakub@redhat.com>
9213
9214 PR c/48305
9215 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9216 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
9217 matching arg00/arg01 types.
9218
9219 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
9220
9221 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
9222 last_location to UNKNOWN_LOCATION.
9223
9224 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
9225
9226 PR target/48349
9227 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
9228 FLOAT_SSE_REGS.
9229
9230 2011-03-30 Joseph Myers <joseph@codesourcery.com>
9231 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9232
9233 PR bootstrap/48337
9234 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
9235 Init(PROCESSOR_V7).
9236 (sparc_cpu): Likewise.
9237 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
9238 PROCESSOR_V7.
9239
9240 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
9241
9242 PR target/48336
9243 PR middle-end/48342
9244 PR rtl-optimization/48345
9245 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
9246 hard regs for given mode from profitable regs when doing secondary
9247 allocation.
9248
9249 2011-03-29 Jeff Law <law@redhat.com>
9250
9251 PR bootstrap/48327
9252 * tree-ssa-threadupdate.c (struct redirection_data): Remove
9253 do_not_duplicate field.
9254 (lookup_redirection_data): Corresponding changes.
9255 (create_duplicates): Always create a template block.
9256 (redirect_edges): Remove code which reused the original block
9257 when it was going to become unreachable code.
9258 (thread_block): Don't set do_not_duplicate field.
9259
9260 2011-03-29 Joseph Myers <joseph@codesourcery.com>
9261
9262 * lto-opts.c (register_user_option_p, lto_register_user_option):
9263 Make type argument unsigned.
9264 * lto-streamer.h (lto_register_user_option): Make type argument
9265 unsigned.
9266 * opth-gen.awk: Make CL_* macros unsigned.
9267 * opts-common.c (find_opt): Make lang_mask argument unsigned.
9268 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
9269 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
9270 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
9271 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
9272 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
9273 (find_opt): Make lang_mask argument unsigned.
9274
9275 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
9276
9277 PR rtl-optimization/48331
9278 PR rtl-optimization/48334
9279 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
9280 for any used algorithm.
9281
9282 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
9283
9284 * ira-conflicts.c (build_object_conflicts): Add unused attribute
9285 to parent_max.
9286
9287 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
9288
9289 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
9290 (alpha_option_override): Don't set alpha_sr_alias_set.
9291 (emit_frame_store_1): Use gen_frame_mem rather than calling
9292 set_mem_alias_set.
9293 (alpha_expand_epilogue): Ditto.
9294
9295 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
9296
9297 PR tree-optimization/48290
9298 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
9299 vectorization, check that relevant phis in the basic block after
9300 the inner loop are really inner loop's exit phis.
9301
9302 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
9303
9304 PR debug/48190
9305 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
9306 (cached_dw_loc_list_def): New structure.
9307 (cached_dw_loc_list): New typedef.
9308 (cached_dw_loc_list_table): New variable.
9309 (cached_dw_loc_list_table_hash): New function.
9310 (cached_dw_loc_list_table_eq): Likewise.
9311 (add_location_or_const_value_attribute): Take a bool cache_p.
9312 Cache the list when the parameter is true.
9313 (gen_formal_parameter_die): Update caller.
9314 (gen_variable_die): Likewise.
9315 (dwarf2out_finish): Likewise.
9316 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
9317 while generating debug info for the decl.
9318 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
9319 (dwarf2out_init): Initialize cached_dw_loc_list_table.
9320 (resolve_addr): Cache the result of resolving a chain of
9321 location lists.
9322
9323 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
9324
9325 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
9326 conflict object hard regset nodes have intersecting hard reg sets.
9327
9328 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
9329 after regstat_init_n_sets_and_refs.
9330
9331 * ira.c: Add more comments at the top.
9332 (setup_stack_reg_pressure_class, setup_pressure_classes):
9333 Add comments how we compute the register pressure classes.
9334 (setup_allocno_and_important_classes): Add more comments.
9335 (setup_class_translate_array, reorder_important_classes)
9336 (setup_reg_class_relations): Add comments.
9337
9338 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
9339 start of the file.
9340
9341 * ira-color.c: Add 2011 to the Copyright line.
9342 (assign_hard_reg): Add more comments.
9343 (improve_allocation): Ditto.
9344
9345 * ira-costs.c: Add 2011 to the Copyright line.
9346 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
9347 comments.
9348 (setup_regno_cost_classes_by_mode): Ditto.
9349
9350 Initial patches from ira-improv branch:
9351
9352 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
9353
9354 * ira-build.c (ira_create_object): Remove initialization of
9355 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
9356 (ira_create_allocno): Remove initialization of
9357 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
9358 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
9359 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
9360 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
9361 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
9362 Initialize ALLOCNO_ADD_DATA.
9363 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
9364 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
9365 ALLOCNO_REG.
9366 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
9367 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
9368
9369 * ira.c (ira_reallocate): Remove.
9370 (setup_pressure_classes): Call
9371 ira_init_register_move_cost_if_necessary. Use
9372 ira_register_move_cost instead of ira_get_register_move_cost.
9373 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
9374 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
9375
9376 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
9377 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
9378 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
9379 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
9380 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
9381 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
9382 Fix formatting.
9383 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
9384 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9385 (struct allocno_color_data): New.
9386 (allocno_color_data_t): New typedef.
9387 (allocno_color_data): New definition.
9388 (ALLOCNO_COLOR_DATA): New macro.
9389 (struct object_color_data): New.
9390 (object_color_data_t): New typedef.
9391 (object_color_data): New definition.
9392 (OBJECT_COLOR_DATA): New macro.
9393 (update_copy_costs, calculate_allocno_spill_cost): Call
9394 ira_init_register_move_cost_if_necessary. Use
9395 ira_register_move_cost instead of ira_get_register_move_cost.
9396 (move_spill_restore, update_curr_costs): Ditto.
9397 (allocno_spill_priority): Make it inline.
9398 (color_pass): Allocate and free allocno_color_dat and object_color_data.
9399 (struct coalesce_data, coalesce_data_t): New.
9400 (allocno_coalesce_data): New definition.
9401 (ALLOCNO_COALESCE_DATA): New macro.
9402 (merge_allocnos, coalesced_allocno_conflict_p): Use
9403 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
9404 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
9405 (coalesce_allocnos): Ditto.
9406 (setup_coalesced_allocno_costs_and_nums): Ditto.
9407 (collect_spilled_coalesced_allocnos): Ditto.
9408 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
9409 (setup_slot_coalesced_allocno_live_ranges): Ditto.
9410 (coalesce_spill_slots): Ditto.
9411 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
9412 free allocno_coalesce_data.
9413
9414 * ira-conflicts.c: Fix formatting.
9415 (process_regs_for_copy): Call
9416 ira_init_register_move_cost_if_necessary. Use
9417 ira_register_move_cost instead of ira_get_register_move_cost.
9418 (build_object_conflicts): Optimize.
9419
9420 * ira-costs.c (record_reg_classes): Optimize. Call
9421 ira_init_register_move_cost_if_necessary. Use
9422 ira_register_move_cost, ira_may_move_in_cost, and
9423 ira_may_move_out_cost instead of ira_get_register_move_cost and
9424 ira_get_may_move_cost.
9425 (record_address_regs): Ditto.
9426 (scan_one_insn): Optimize.
9427 (find_costs_and_classes): Optimize.
9428 (process_bb_node_for_hard_reg_moves): Call
9429 ira_init_register_move_cost_if_necessary. Use
9430 ira_register_move_cost instead of ira_get_register_move_cost.
9431
9432 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
9433 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
9434 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
9435 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
9436 definitions.
9437 (ira_initiate_emit_data, ira_finish_emit_data)
9438 (create_new_allocno): New functions.
9439 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
9440 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
9441 Use ira_register_move_cost instead of ira_get_register_move_cost.
9442
9443 * ira-int.h: Fix some comments.
9444 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
9445 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
9446 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
9447 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
9448 add_data.
9449 (struct ira_allocno): Make mode and aclass a bitfield. Move other
9450 bitfield after mode. Make hard_regno a short int. Make
9451 hard_regno short. Remove first_coalesced_allocno and
9452 next_coalesced_allocno. Move mem_optimized_dest_p,
9453 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
9454 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
9455 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
9456 temp, colorable_p. Add new member add_data.
9457 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
9458 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
9459 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
9460 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
9461 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
9462 (ALLOCNO_ADD_DATA): New macro.
9463 (ira_emit_data_t): New typedef.
9464 (struct ira_emit_data): New. Move mem_optimized_dest_p,
9465 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
9466 from struct ira_allocno.
9467 (ALLOCNO_EMIT_DATA): New macro.
9468 (ira_allocno_emit_data, allocno_emit_reg): New.
9469 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
9470 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
9471 (OBJECT_ADD_DATA): New macro.
9472 (ira_reallocate): Remove.
9473 (ira_initiate_emit_data, ira_finish_emit_data): New.
9474 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
9475 (ira_init_register_move_cost_if_necessary): New.
9476 (ira_object_conflict_iter_next): Merge into
9477 ira_object_conflict_iter_cond.
9478 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
9479
9480 * ira-live.c (process_single_reg_class_operands): Call
9481 ira_init_register_move_cost_if_necessary. Use
9482 ira_register_move_cost instead of ira_get_register_move_cost.
9483
9484 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
9485
9486 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
9487
9488 * ira-costs.c: Fix formatting.
9489 (cost_classes, cost_classes_num): Remove.
9490 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
9491 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
9492 (cost_classes_del, cost_classes_htab): New.
9493 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
9494 (initiate_regno_cost_classes, setup_cost_classes): New.
9495 (setup_regno_cost_classes_by_aclass): New.
9496 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
9497 (record_reg_classes): Use regno_cost_classes instead of
9498 cost_classes. Move checking opposite operand up.
9499 (record_address_regs): Use regno_cost_classes
9500 instead of cost_classes.
9501 (scan_one_insn): Ditto. Use always general register.
9502 (print_allocno_costs): Use regno_cost_classes instead of
9503 cost_classes.
9504 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
9505 (find_costs_and_classes): Set up cost classes for each registers.
9506 Use also their mode for this. Use regno_cost_classes instead of
9507 cost_classes.
9508 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
9509 cost_classes.
9510 (free_ira_costs, ira_init_costs): Don't use cost_classes.
9511 (ira_costs, ira_set_pseudo_classes): Call
9512 initiate_regno_cost_classes and finish_regno_cost_classes.
9513
9514 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
9515
9516 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
9517
9518 * target.def (ira_cover_classes): Remove.
9519
9520 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
9521
9522 * doc/tm.texi.in: Ditto.
9523
9524 * ira-conflicts.c: Remove mentioning cover classes from the file.
9525 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
9526 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
9527
9528 * targhooks.c (default_ira_cover_classes): Remove.
9529
9530 * targhooks.h (default_ira_cover_classes): Ditto.
9531
9532 * haifa-sched.c: Remove mentioning cover classes from the file.
9533 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
9534 ira_pressure_classes and ira_pressure_classes_num instead of
9535 ira_reg_class_cover_size and ira_reg_class_cover. Use
9536 sched_regno_pressure_class instead of sched_regno_cover_class.
9537 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
9538 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9539
9540 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
9541 classes from the file.
9542 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
9543 (struct object_hard_regs, struct object_hard_regs_node): New.
9544 (struct ira_object): New members profitable_hard_regs,
9545 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
9546 (struct ira_allocno): Rename cover_class to aclass. Rename
9547 cover_class_cost and updated_cover_class_cost to class_cost and
9548 updated_class_cost. Remove splay_removed_p and
9549 left_conflict_size. Add new members colorable_p.
9550 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
9551 (ALLOCNO_COLORABLE_P): New macro.
9552 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
9553 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
9554 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
9555 (OBJECT_...): Rename parameter C to O.
9556 (OBJECT_PROFITABLE_HARD_REGS): New macro.
9557 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
9558 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
9559 (struct target_ira_int): New members x_ira_max_memory_move_cost,
9560 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
9561 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
9562 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
9563 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
9564 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
9565 x_ira_reg_class_subunion.
9566 (ira_max_memory_move_cost, ira_max_register_move_cost)
9567 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
9568 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
9569 (ira_important_class_nums, ira_reg_class_superunion): New macros.
9570 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
9571 (ira_reg_class_union): Rename to ira_reg_class_subunion.
9572 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9573 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9574 (ira_tune_allocno_costs_and_cover_classes): Rename to
9575 ira_tune_allocno_costs.
9576 (ira_debug_hard_regs_forest): New.
9577 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
9578 (ira_object_conflict_iter_next): Fix comments.
9579 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
9580 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
9581 cover_class to aclass.
9582 (ira_allocate_and_accumulate_costs): Ditto.
9583 (ira_allocate_and_set_or_copy_costs): Ditto.
9584
9585 * opts.c (decode_options): Remove ira_cover_class check.
9586
9587 * ira-color.c: Remove mentioning cover classes from the file. Use
9588 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
9589 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
9590 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
9591 (splay-tree.h): Remove include.
9592 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
9593 before copy_freq_compare_func.
9594 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
9595 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
9596 New definitions.
9597 (hard_regs_roots, hard_regs_node_vec): Ditto.
9598 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
9599 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
9600 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
9601 (create_new_object_hard_regs_node): Ditto.
9602 (add_new_object_hard_regs_node_to_forest): Ditto.
9603 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
9604 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
9605 Ditto.
9606 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
9607 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
9608 (remove_unused_object_hard_regs_nodes): Ditto.
9609 (enumerate_object_hard_regs_nodes): Ditto.
9610 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
9611 (object_hard_regs_subnode_t): Ditto.
9612 (struct object_hard_regs_subnode): Ditto.
9613 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
9614 (setup_object_hard_regs_subnode_index): Ditto.
9615 (get_object_hard_regs_subnodes_num): Ditto.
9616 (form_object_hard_regs_nodes_forest): Ditto.
9617 (finish_object_hard_regs_nodes_tree): Ditto.
9618 (finish_object_hard_regs_nodes_forest): Ditto.
9619 (allocnos_have_intersected_live_ranges_p): Rename to
9620 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
9621 (pseudos_have_intersected_live_ranges_p): Rename to
9622 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
9623 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
9624 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
9625 (update_copy_costs): Remove assert. Skip cost update if the hard
9626 reg does not belong the class.
9627 (assign_hard_reg): Process only profitable hard regs.
9628 (uncolorable_allocnos_num): Make it scalar.
9629 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
9630 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
9631 and ira_reg_class_max_nregs.
9632 (bucket_allocno_compare_func): Check frequency first.
9633 (sort_bucket): Add compare function as a parameter.
9634 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
9635 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
9636 (push_allocno_to_stack): Rewrite for checking new allocno
9637 colorability.
9638 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
9639 (push_only_colorable): Pass new parameter to sort_bucket.
9640 (push_allocno_to_spill): Remove.
9641 (allocno_spill_priority_compare): Make it inline and rewrite.
9642 (splay_tree_allocate, splay_tree_free): Remove.
9643 (allocno_spill_sort_compare): New function.
9644 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
9645 build and use splay tree. Choose first allocno in uncolorable
9646 allocno bucket to spill. Remove setting spill cost.
9647 (all_conflicting_hard_regs): Remove.
9648 (setup_allocno_available_regs_num): Check only profitable hard
9649 regs. Print info about hard regs nodes.
9650 (setup_allocno_left_conflicts_size): Remove.
9651 (put_allocno_into_bucket): Don't call
9652 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
9653 (improve_allocation): New.
9654 (color_allocnos): Call setup_profitable_hard_regs,
9655 form_object_hard_regs_nodes_forest, improve_allocation,
9656 finish_object_hard_regs_nodes_forest. Setup spill cost.
9657 (print_loop_title): Use pressure classes.
9658 (color_allocnso): Ditto.
9659 (do_coloring): Remove allocation and freeing splay_tree_node_pool
9660 and allocnos_for_spilling.
9661 (ira_sort_regnos_for_alter_reg): Don't setup members
9662 {first,next}_coalesced_allocno.
9663 (color): Remove allocating and freeing removed_splay_allocno_vec.
9664 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
9665 prohibited_class_mode_regs.
9666
9667 * ira-lives.c: Remove mentioning cover classes from the file. Fix
9668 formatting.
9669 (update_allocno_pressure_excess_length): Use pressure classes.
9670 (inc_register_pressure, dec_register_pressure): Check for pressure
9671 class.
9672 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
9673 pressure class. Use ira_reg_class_nregs instead of
9674 ira_reg_class_max_nregs.
9675 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
9676 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
9677 (single_reg_class): Use ira_reg_class_nregs instead of
9678 ira_reg_class_max_nregs.
9679 (process_bb_node_lives): Use pressure classes.
9680
9681 * ira-emit.c: Remove mentioning cover classes from the file. Use
9682 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
9683 (change_loop): Use pressure classes.
9684 (modify_move_list): Call ira_set_allocno_class instead of
9685 ira_set_allocno_cover_class.
9686
9687 * ira-build.c: Remove mentioning cover classes from the file. Use
9688 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
9689 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
9690 ALLOCNO_UPDATED_CLASS_COST instead of
9691 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
9692 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
9693 (ira_create_allocno): Remove initialization of
9694 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
9695 ALLOCNO_COLORABLE_P.
9696 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9697 Update conflict regs for the objects.
9698 (create_cap_allocno): Remove assert. Don't propagate
9699 ALLOCNO_AVAILABLE_REGS_NUM.
9700 (ira_free_allocno_costs): New function.
9701 (finish_allocno): Change a part of code into call of
9702 ira_free_allocno_costs.
9703 (low_pressure_loop_node_p): Use pressure classes.
9704 (object_range_compare_func): Don't compare classes.
9705 (setup_min_max_conflict_allocno_ids): Ditto.
9706
9707 * loop-invariant.c: Remove mentioning cover classes from the file.
9708 Use ira_pressure_classes and ira_pressure_classes_num instead of
9709 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
9710 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
9711 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9712 Use reg_allocno_class instead of reg_cover_class.
9713 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
9714 STACK_REG_COVER_CLASS.
9715 (get_regno_cover_class): Rename to get_regno_pressure_class.
9716 (move_loop_invariants): Initialize and finalize regstat.
9717
9718 * ira.c: Remove mentioning cover classes from the file. Add
9719 comments about coloring without cover classes. Use ALLOCNO_CLASS
9720 instead of ALLOCNO_COVER_CLASS. Fix formatting.
9721 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
9722 setup_class_subset_and_memory_move_costs.
9723 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9724 (setup_cover_and_important_classes): Rename to
9725 setup_allocno_and_important_classes.
9726 (setup_class_translate_array): New.
9727 (setup_class_translate): Call it for allocno and pressure classes.
9728 (cover_class_order): Rename to allocno_class_order.
9729 (comp_reg_classes_func): Use ira_allocno_class_translate instead
9730 of ira_class_translate.
9731 (reorder_important_classes): Set up ira_important_class_nums.
9732 (setup_reg_class_relations): Set up ira_reg_class_superunion.
9733 (print_class_cover): Rename to print_classes. Add parameter.
9734 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9735 Print pressure classes too.
9736 (find_reg_class_closure): Rename to find_reg_classes. Don't call
9737 setup_reg_subclasses.
9738 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9739 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9740 (setup_prohibited_class_mode_regs): Use
9741 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9742 (clarify_prohibited_class_mode_regs): New function.
9743 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9744 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9745 (ira_init_once): Initialize them.
9746 (free_register_move_costs): Process them.
9747 (ira_init): Move calls of find_reg_classes and
9748 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9749 Call clarify_prohibited_class_mode_regs.
9750 (ira_no_alloc_reg): Remove.
9751 (too_high_register_pressure_p): Use pressure classes.
9752
9753 * sched-deps.c: Remove mentioning cover classes from the file.
9754 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
9755 ira_pressure_classes and ira_pressure_classes_num instead of
9756 ira_reg_class_cover_size and ira_reg_class_cover.
9757 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9758 sched_regno_pressure_class instead of sched_regno_cover_class.
9759 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
9760 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9761
9762 * ira.h: Add 2010 to Copyright.
9763 (ira_no_alloc_reg): Remove external.
9764 (struct target_ira): Rename x_ira_hard_regno_cover_class,
9765 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9766 x_ira_class_translate to x_ira_hard_regno_allocno_class,
9767 x_ira_allocno_classes_num, x_ira_allocno_classes, and
9768 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
9769 x_ira_pressure_classes, x_ira_pressure_class_translate, and
9770 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
9771 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
9772 x_ira_no_alloc_regs.
9773 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9774 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9775 ira_allocno_classes_num and ira_allocno_classes.
9776 (ira_class_translate): Rename to ira_allocno_class_translate.
9777 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9778 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9779 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9780 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9781 (ira_no_alloc_regs): New.
9782
9783 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
9784 classes from the file. Use ALLOCNO_CLASS instead of
9785 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
9786 ALLOCNO_COVER_CLASS_COST.
9787 (regno_cover_class): Rename to regno_aclass.
9788 (record_reg_classes): Use ira_reg_class_subunion instead of
9789 ira_reg_class_union.
9790 (record_address_regs): Check overflow.
9791 (scan_one_insn): Ditto.
9792 (print_allocno_costs): Print total mem cost fore regional allocation.
9793 (print_pseudo_costs): Use REG_N_REFS.
9794 (find_costs_and_classes): Use classes intersected with them on the
9795 1st pass. Check overflow. Use ira_reg_class_subunion instead of
9796 ira_reg_class_union. Use ira_allocno_class_translate and
9797 regno_aclass instead of ira_class_translate and regno_cover_class.
9798 Modify code for finding regno_aclass. Setup preferred classes for
9799 the next pass.
9800 (setup_allocno_cover_class_and_costs): Rename to
9801 setup_allocno_class_and_costs. Use regno_aclass instead of
9802 regno_cover_class. Use ira_set_allocno_class instead of
9803 ira_set_allocno_cover_class.
9804 (init_costs, finish_costs): Use regno_aclass instead of
9805 regno_cover_class.
9806 (ira_costs): Use setup_allocno_class_and_costs instead of
9807 setup_allocno_cover_class_and_costs.
9808 (ira_tune_allocno_costs_and_cover_classes): Rename to
9809 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
9810 by processing objects. Use ira_reg_class_max_nregs instead of
9811 ira_reg_class_nregs.
9812
9813 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9814
9815 * sched-int.h: Remove mentioning cover classes from the file.
9816 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9817
9818 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
9819 classes from the file.
9820 (struct reg_pref): Rename coverclass into allocnoclass.
9821 (reg_cover_class): Rename to reg_allocno_class.
9822
9823 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9824
9825 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9826
9827 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9828
9829 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9830
9831 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9832
9833 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9834
9835 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9836
9837 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9838
9839 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9840
9841 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9842
9843 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9844 (i386_ira_cover_classes): Ditto.
9845
9846 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9847
9848 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9849
9850 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9851
9852 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9853
9854 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9855
9856 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9857
9858 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9859 (mips_ira_cover_classes): Ditto.
9860
9861 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9862
9863 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9864
9865 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9866
9867 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9868
9869 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9870
9871 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9872 (IRA_COVER_CLASSES_VSX): Ditto.
9873
9874 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9875 (rs6000_ira_cover_classes): Ditto.
9876
9877 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9878
9879 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9880
9881 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9882
9883 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9884
9885 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9886
9887 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9888
9889 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9890
9891 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9892
9893 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9894
9895 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9896
9897 2011-03-29 Jakub Jelinek <jakub@redhat.com>
9898
9899 PR debug/48253
9900 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9901 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9902 dw_fde_unlikely_section_end_label, cold_in_std_section,
9903 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9904 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9905 fields.
9906 (output_fde): Use dw_fde_second_{begin,end} if second is
9907 true, otherwise dw_fde_{begin,end}.
9908 (output_call_frame_info): Test dw_fde_second_begin != NULL
9909 instead of dw_fde_switched_sections.
9910 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9911 fields, initialize new fields. Initialize in_std_section
9912 unconditionally from the first partition.
9913 (dwarf2out_end_epilogue): Don't override dw_fde_end when
9914 dw_fde_second_begin is non-NULL.
9915 (dwarf2out_switch_text_section): Stop initializing removed
9916 dw_fde_struct fields, initialize new fields, initialize
9917 also dw_fde_end here. Set dw_fde_switch_cfi even when
9918 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
9919 (struct var_loc_list_def): Add last_before_switch field.
9920 (arange_table, arange_table_allocated, arange_table_in_use,
9921 ARANGE_TABLE_INCREMENT, add_arange): Removed.
9922 (size_of_aranges): Count !in_std_section and !second_in_std_section
9923 hunks in fdes, instead of looking at arange_table_in_use.
9924 (output_aranges): Add aranges_length argument, don't call
9925 size_of_aranges here. Instead of using aranges_table*
9926 emit ranges for fdes when !in_std_section resp.
9927 !second_in_std_section.
9928 (dw_loc_list): Break ranges crossing section switch.
9929 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
9930 use dw_fde_second_end instead of dw_fde_end as end of last range.
9931 (gen_subprogram_die): Don't call add_arange. Use
9932 dw_fde_{begin,end} for first partition and if switched
9933 section dw_fde_second_{begin,end} for the second.
9934 (var_location_switch_text_section_1,
9935 var_location_switch_text_section): New functions.
9936 (dwarf2out_begin_function): Initialize cold_text_section even
9937 when function_section () isn't text_section.
9938 (prune_unused_types): Don't walk arange_table.
9939 (dwarf2out_finish): Don't needlessly test
9940 flag_reorder_blocks_and_partition when testing cold_text_section_used.
9941 If info_section_emitted, call size_of_aranges and if it indicates
9942 non-empty .debug_aranges, call output_aranges with the computed
9943 size. Stop using removed dw_fde_struct fields, use
9944 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9945 for second.
9946
9947 PR debug/48203
9948 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9949 create ENTRY_VALUE if incoming or address of incoming's MEM
9950 is a hard REG.
9951 * dwarf2out.c (mem_loc_descriptor): Don't emit
9952 DW_OP_GNU_entry_value of DW_OP_fbreg.
9953 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9954 on ENTRY_VALUE is able to find the canonical parameter VALUE.
9955 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9956 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9957 ENTRY_VALUE_EXPs.
9958 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9959 is a REG_P or MEM_P with REG_P address, compute hash directly
9960 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9961 (preserve_only_constants): Don't clear VALUES forwaring
9962 ENTRY_VALUE to some other VALUE.
9963
9964 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
9965
9966 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9967 instead of GEN_INT.
9968
9969 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
9970
9971 * cfgexpand.c (expand_gimple_cond): Always set the source location and
9972 block before expanding the statement.
9973 (expand_gimple_stmt_1): Likewise. Set them here...
9974 (expand_gimple_stmt): ...and not here. Tidy.
9975 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9976 unknown.
9977
9978 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
9979
9980 * Makefile.in: New rule for cprop.o.
9981 * gcse.c: Move constant/copy propagation to cprop.c.
9982 (compute_local_properties): Only handle expression tables.
9983 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9984 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9985 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9986 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
9987 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
9988 compute_cprop_data, find_used_regs, try_replace_reg,
9989 find_avail_set, cprop_jump, constprop_register, cprop_insn,
9990 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9991 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9992 find_bypass_set, reg_killed_on_edge, bypass_block,
9993 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9994 execute_rtl_cprop, pass_rtl_cprop): Move to...
9995 * cprop.c: ...here. New file, constant/copy propagation for RTL
9996 moved from gcse.c to here with minor cleanups in duplicated code.
9997
9998 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
9999
10000 * config/i386/i386.c (flag_opts): Fix a typo in
10001 -mavx256-split-unaligned-store.
10002
10003 2011-03-28 Anatoly Sokolov <aesok@post.ru>
10004
10005 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
10006 LIBCALL_VALUE): Remove macros.
10007 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10008 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10009 (h8300_function_value, h8300_libcall_value,
10010 h8300_function_value_regno_p): New functions.
10011
10012 2011-03-28 Anatoly Sokolov <aesok@post.ru>
10013
10014 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
10015
10016 2011-03-28 Jeff Law <law@redhat.com>
10017
10018 * tree-ssa-threadupdate.c (redirect_edges): Call
10019 create_edge_and_update_destination_phis as needed.
10020 (create_edge_and_update_destination_phis): Accept new BB argument.
10021 All callers updated.
10022 (thread_block): Do not update the profile when threading around
10023 intermediate blocks.
10024 (thread_single_edge): Likewise.
10025 (determine_bb_domination_status): If BB is not a successor of the
10026 loop header, return NONDOMINATING.
10027 (register_jump_thread): Note when we register a jump thread around
10028 an intermediate block.
10029 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
10030 (thread_across_edge): Use it.
10031
10032 2011-03-28 Tristan Gingold <gingold@adacore.com>
10033
10034 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
10035 when for_return is 2.
10036
10037 2011-03-28 Jeff Law <law@redhat.com>
10038
10039 * var-tracking.c (canonicalize_values_mark): Delete unused
10040 lhs assignment.
10041 (canonicalize_values_star, set_variable_part): Likewise.
10042 (clobber_variable_part, delete_variable_part): Likewise.
10043
10044 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
10045
10046 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
10047
10048 2011-03-28 Martin Jambor <mjambor@suse.cz>
10049
10050 * tree-inline.c (expand_call_inline): Do not check that destination
10051 node is analyzed.
10052 (optimize_inline_calls): Assert that destination node is analyzed.
10053 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
10054 not call tree_lowering_passes.
10055 * cgraph.h (cgraph_analyze_function): Declare.
10056 * cgraphunit.c (cgraph_analyze_function): Make public.
10057
10058 2011-03-28 Joseph Myers <joseph@codesourcery.com>
10059
10060 * config/sparc/sparc-opts.h: New.
10061 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
10062 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
10063 (sparc_option_override): Store processor_type enumeration rather
10064 than string in cpu_default. Remove name and enumeration from
10065 cpu_table. Directly default -mcpu then default -mtune from -mcpu
10066 without using sparc_select. Use target_flags_explicit instead of
10067 fpu_option_set.
10068 * config/sparc/sparc.h (enum processor_type): Move to
10069 sparc-opts.h.
10070 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
10071 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
10072 HeaderInclude entry.
10073 (mcpu=, mtune=): Use Var and Enum.
10074 (sparc_processor_type): New Enum and EnumValue entries.
10075
10076 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10077 Iain Sandoe <iains@gcc.gnu.org>
10078
10079 PR target/48245
10080 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
10081
10082 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
10083
10084 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
10085 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
10086 Insert new statements at it in lieu of STMT.
10087 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
10088 * tree-vect-stmts.c (vectorizable_store): Likewise.
10089 (vectorizable_load): Likewise.
10090
10091 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
10092
10093 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
10094 (divtf3): Ditto.
10095 (multf3): Ditto.
10096 (subtf3): Ditto.
10097
10098 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
10099
10100 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
10101 unaligned 256bit load/store.
10102 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
10103 (*avx_movdqu<avxmodesuffix>): Likewise.
10104
10105 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10106
10107 PR target/48288
10108 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
10109 * config/pa/pa.md (iordi3): Use new predicate in expander.
10110 (iorsi3): Likewise.
10111
10112 2011-03-27 Anatoly Sokolov <aesok@post.ru>
10113
10114 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
10115 FUNCTION_VALUE_REGNO_P): Remove macros.
10116 * config/mips/mips-protos.h (mips_function_value): Remove.
10117 * config/mips/mips.c (mips_function_value): Rename to...
10118 (mips_function_value_1): ... this. Make static. Handle receiving
10119 the function type in 'fn_decl_or_type' argument.
10120 (mips_function_value, mips_libcall_value,
10121 mips_function_value_regno_p): New function.
10122 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10123 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10124
10125 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
10126
10127 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
10128 and -mavx256-split-unaligned-store.
10129 (ix86_option_override_internal): Split 32-byte AVX unaligned
10130 load/store by default.
10131 (ix86_avx256_split_vector_move_misalign): New.
10132 (ix86_expand_vector_move_misalign): Use it.
10133
10134 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
10135 -mavx256-split-unaligned-store.
10136
10137 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
10138 256bit load/store. Generate unaligned store on misaligned memory
10139 operand.
10140 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
10141 256bit load/store.
10142 (*avx_movdqu<avxmodesuffix>): Likewise.
10143
10144 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
10145 -mavx256-split-unaligned-store.
10146
10147 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
10148
10149 PR target/38598
10150 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
10151 Update commentary.
10152
10153 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
10154
10155 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
10156 opno arguments with an expand_operand. Use create_input_operand.
10157 (mips_prepare_builtin_target): Delete.
10158 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
10159 functions.
10160 (mips_expand_builtin_direct): Use create_output_operand and
10161 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
10162 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
10163 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
10164
10165 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
10166
10167 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
10168 function.
10169 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10170
10171 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
10172
10173 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
10174 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
10175 basic blocks and call commit_edge_insertions directly.
10176 (fixup_abnormal_edges): Move from here to...
10177 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
10178 on the edges and return whether some have actually been inserted.
10179 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
10180 compensation code.
10181
10182 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
10183
10184 PR rtl-optimization/48144
10185 * sel-sched-ir.c (merge_history_vect): Factor out from ...
10186 (merge_expr_data): ... here.
10187 (av_set_intersect): Rename to av_set_code_motion_filter.
10188 Update all callers. Call merge_history_vect when an expression
10189 is found in both sets.
10190 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
10191
10192 2011-03-26 Alan Modra <amodra@gmail.com>
10193
10194 * config/rs6000/predicates.md (word_offset_memref_op): Handle
10195 cmodel medium addresses.
10196 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
10197 64-bit gpr loads and stores.
10198 (rs6000_secondary_reload_ppc64): New function.
10199 * config/rs6000/rs6000-protos.h: Declare it.
10200 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
10201
10202 2011-03-26 Alan Modra <amodra@gmail.com>
10203
10204 PR target/47487
10205 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
10206 GNU Go in traceback table.
10207
10208 2011-03-25 Richard Henderson <rth@redhat.com>
10209
10210 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
10211 if there are exactly 6 operands.
10212 (set_storage_via_setmem): Similarly.
10213
10214 2011-03-25 Kai Tietz <ktietz@redhat.com>
10215
10216 * collect2.c (write_c_file_stat): Handle backslash
10217 as right-hand directory separator.
10218 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
10219 checking just for slash.
10220 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
10221 instead of checking for trailing slash.
10222 * gcc.c (record_temp_file): Use filename_cmp instead
10223 of strcmp.
10224 (do_spec_1): Likewise.
10225 (replace_outfile_spec_function): Likewise.
10226 (is_directory): Use filename_ncmp instead of strncmp.
10227 (print_multilib_info): Likewise.
10228 * gcov.c (find_source): Use filename_cmp instead
10229 instead of strcmp.
10230 (make_gcov_file_name): Fix order of slash/backslash
10231 checks.
10232 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
10233 (add_standard_paths): Likewise.
10234 * mips-tfile.c (saber_stop): Handle backslash.
10235 * prefix.c (update_path): Use filename_ncmp instead of
10236 strncmp.
10237 * profile.c (output_location): Use filename_cmp instead
10238 of strcmp.
10239 * read-md.c (handle_toplevel_file): Handle backslash.
10240 * tlink.c (frob_extension): Likewise.
10241 * tree-cfg.c (same_line_p): Use filename_cmp instead of
10242 strcmp.
10243 * tree-dump.c (dequeue_and_dump): Handle backslash.
10244 * tree.c (get_file_function_name): Likewise.
10245 * gengtype.c (read_input_list): Likewise.
10246 (get_file_realbasename): Likewise.
10247 (get_output_file_with_visibility): Use filename_cmp
10248 instead of strcmp.
10249
10250 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
10251
10252 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
10253 case to VFPv1.
10254
10255 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
10256
10257 * fold-const.c (expr_location_or): New function.
10258 (fold_truth_not_expr): Call it.
10259
10260 2011-03-25 Jeff Law <law@redhat.com>
10261
10262 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
10263 va_end.
10264 * c-family/c-common.c (def_fn_type): Likewise.
10265 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
10266 * emit-rtl.c (gen_rtvec): Likewise.
10267 * lto/lto-lang.c (def_fn_type): Likewise.
10268
10269 2011-03-25 Richard Guenther <rguenther@suse.de>
10270
10271 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
10272 also generate copies.
10273 (fini_copy_prop): Handle constant values properly.
10274
10275 2011-03-25 Jakub Jelinek <jakub@redhat.com>
10276
10277 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
10278 mode size instead of bitsize with DWARF2_ADDR_SIZE.
10279 (hash_loc_operands, compare_loc_operands): Handle
10280 DW_OP_GNU_entry_value.
10281
10282 2011-03-25 Kai Tietz <ktietz@redhat.com>
10283
10284 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
10285 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
10286 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
10287 comment and use macro TARGET_64BIT_MS_ABI instead.
10288 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
10289 and change default behavior for 32-bit MS_ABI.
10290 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
10291 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
10292 32-bit, too.
10293 (ix86_cfun_abi): Likewise.
10294 (ix86_maybe_switch_abi): Adjust comment.
10295 (init_cumulative_args): Check for bit-ness in MS_ABI case.
10296 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
10297 instead of checking for SYSV_ABI.
10298 (ix86_nsaved_sseregs): Likewise.
10299 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
10300 to 16 bytes.
10301 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
10302 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
10303 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
10304 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
10305 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
10306
10307 2011-03-25 Richard Guenther <rguenther@suse.de>
10308
10309 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
10310 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
10311 (verify_gimple): Remove.
10312 * tree-cfg.c (verify_gimple_call): Merge verification
10313 from verify_stmts.
10314 (verify_gimple_phi): Merge verification from verify_stmts.
10315 (verify_gimple_label): New function.
10316 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
10317 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
10318 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
10319 (verify_stmts): Rename to verify_gimple_in_cfg.
10320 (verify_gimple_in_cfg): New function.
10321 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
10322 * tree-ssa.c (verify_ssa): Likewise.
10323 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
10324
10325 2011-03-25 Richard Guenther <rguenther@suse.de>
10326
10327 * passes.c (init_optimization_passes): Add FRE pass after
10328 early SRA.
10329
10330 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
10331 Andrew Stubbs <ams@codesourcery.com>
10332
10333 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
10334 for Cortex-A8.
10335 (arm_movdi_vfp_cortexa8): New pattern.
10336 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
10337 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
10338 instructions when tuning for Cortex-A8. Set attribute "arch".
10339 * config/arm/arm.md: Move include arm-tune.md up a bit.
10340 (define_attr "arch"): Add "onlya8" and "nota8" values.
10341 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
10342
10343 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
10344
10345 PR bootstrap/48282
10346 Revert:
10347 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10348
10349 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10350 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
10351 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10352 * passes.c (init_optimization_passes): Move
10353 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10354
10355 2011-03-25 Kai Tietz <ktietz@redhat.com>
10356
10357 * c-typeck.c (comptypes_internal): Replace target
10358 hook call of comp_type_attributes by version in tree.c file.
10359 * gimple.c (gimple_types_compatible_p_1): Likewise.
10360 * tree-ssa.c (useless_type_conversion_p): Likewise.
10361 * tree.c (build_type_attribute_qual_variant): Likewise.
10362 (attribute_value_equal): New static helper function.
10363 (comp_type_attributes): New function.
10364 (merge_attributes): Use attribute_value_equal for comparison.
10365 (attribute_list_contained): Likewise.
10366 * tree.h (comp_type_attributes): New prototype.
10367
10368 2011-03-25 Richard Guenther <rguenther@suse.de>
10369
10370 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
10371 of complex types at -O0.
10372 (verify_gimple_assign_binary): Likewise.
10373 (verify_gimple_assign_ternary): Likewise.
10374
10375 2011-03-24 Mark Wielaard <mjw@redhat.com>
10376
10377 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
10378 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
10379
10380 2011-03-24 Mark Wielaard <mjw@redhat.com>
10381
10382 PR debug/48041
10383 * dwarf2out.c (output_abbrev_section): Only write table when
10384 abbrev_die_table_in_use > 1.
10385
10386 2011-02-24 Richard Henderson <rth@redhat.com>
10387
10388 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
10389 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
10390 (alpha_expand_unaligned_load_words): Use extql.
10391 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
10392 (emit_insxl): Handle all modes for consistency.
10393
10394 2011-02-24 Richard Henderson <rth@redhat.com>
10395
10396 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
10397 (alpha_expand_unaligned_load): Likewise.
10398 (alpha_expand_unaligned_store): Likewise.
10399 (alpha_expand_unaligned_load_words): Likewise.
10400 (alpha_expand_unaligned_store_words): Likewise.
10401 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
10402 (alpha_split_lock_test_and_set_12): Likewise.
10403 (print_operand, alpha_fold_builtin_extxx): Likewise.
10404 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
10405 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
10406 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
10407 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
10408 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
10409 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
10410 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
10411 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
10412 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
10413 (extwl, extll, extql): Similarly.
10414 (inswh, inslh, insqh): Similarly.
10415 (mskbl, mskwl, mskll, mskql): Similarly.
10416 (mskwh, msklh, mskqh): Similarly.
10417
10418 2011-02-24 Richard Henderson <rth@redhat.com>
10419
10420 * config/alpha/alpha.md (attribute isa): Add er, ner.
10421 (attribute enabled): Handle them.
10422 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
10423
10424 2011-02-24 Richard Henderson <rth@redhat.com>
10425
10426 * config/alpha/alpha.md (attribute isa): Add vms.
10427 (attribute enabled): Handle it.
10428 (*movsf): Merge *movsf_{nofix,fix,nofp}.
10429 (*movdf): Merge *movdf_{nofix,fix,nofp}.
10430 (*movtf): Rename from *movtf_internal for consistency.
10431 (*movsi): Merge with *movsi_nt_vms.
10432 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
10433 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
10434 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
10435 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
10436
10437 2011-02-24 Richard Henderson <rth@redhat.com>
10438
10439 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
10440 (extendqisi2, extendhisi2): Likewise.
10441 (extendqidi2): Simplify BWX/non-BWX expansions.
10442 (extendhidi2): Similarly.
10443
10444 2011-02-24 Richard Henderson <rth@redhat.com>
10445
10446 * config/alpha/alpha.md (attribute isa): New.
10447 (attribute enabled): New.
10448 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
10449 (zero_extendqisi2, zero_extendqidi2): Similarly.
10450 (zero_extendhisi2, zero_extendhidi2): Similarly.
10451 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
10452
10453 2011-02-24 Richard Henderson <rth@redhat.com>
10454
10455 * config/alpha/predicates.md (input_operand): Revert last change;
10456 update comment to mention 32-bit VMS rather than Windows.
10457
10458 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10459
10460 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
10461 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
10462 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
10463 * passes.c (init_optimization_passes): Move
10464 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
10465
10466 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10467
10468 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
10469
10470 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
10471
10472 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
10473 correctly.
10474
10475 2011-03-24 Jakub Jelinek <jakub@redhat.com>
10476
10477 PR debug/48204
10478 * simplify-rtx.c (simplify_const_unary_operation): Call
10479 real_convert when changing mode class with FLOAT_EXTEND.
10480
10481 2011-03-24 Nick Clifton <nickc@redhat.com>
10482
10483 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
10484 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10485 * config/rx/rx.c (rx_option_override): Set align_jumps,
10486 align_loops and align_labels if not set by the user.
10487 (rx_align_for_label): New function.
10488 (rx_max_skip_for_label): New function.
10489 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
10490 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
10491 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
10492 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
10493 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
10494
10495 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10496
10497 PR rtl-optimization/48263
10498 * optabs.c (expand_binop_directly): Reinstate convert_modes code
10499 and original commutative_p handling. Use maybe_gen_insn.
10500
10501 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10502
10503 * reload.c (find_reloads_subreg_address): Add address_reloaded
10504 parameter and return true there if the full address has been
10505 reloaded.
10506 (find_reloads_toplev): Pass address_reloaded flag.
10507 (find_reloads_address_1): Don't use address_reloaded parameter.
10508
10509 2011-03-24 Jeff Law <law@redhat.com>
10510
10511 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
10512 unused variable "ann".
10513 (remove_unused_locals): Likewise.
10514
10515 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
10516 statement.
10517
10518 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
10519 after it is freed.
10520
10521 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10522
10523 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
10524 for invalid symbolic addresses.
10525 (s390_secondary_reload): Don't use s390_check_symref_alignment for
10526 larl operands.
10527
10528 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10529
10530 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
10531 the argument in calls to fold_truth_not_expr.
10532
10533 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10534
10535 * tree.c (record_node_allocation_statistics): New function.
10536 (make_node_stat, copy_node_stat, build_string): Call it.
10537 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
10538 (build1_stat, build_omp_clause): Likewise.
10539
10540 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10541
10542 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
10543 last commit.
10544
10545 2011-03-24 Richard Guenther <rguenther@suse.de>
10546
10547 PR tree-optimization/48271
10548 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
10549 blocks that still exist.
10550
10551 2011-03-24 Richard Guenther <rguenther@suse.de>
10552
10553 PR tree-optimization/48270
10554 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
10555 not free datarefs before ddrs.
10556
10557 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10558
10559 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
10560 from the address built for a reference with variable offset.
10561
10562 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
10563
10564 PR target/48237
10565 * config/i386/i386.md (*movdf_internal_rex64): Do not split
10566 alternatives that can be handled with movq or movabsq insn.
10567 (*movdf_internal): Disable for !TARGET_64BIT.
10568 (*movdf_internal_nointeger): Ditto.
10569 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
10570
10571 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10572
10573 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10574 (FUNCTION_ARG_ADVANCE): Likewise.
10575 * tm.texi.in: Change references to them to hook references.
10576 * tm.texi: Regenerate.
10577 * targhooks.c (default_function_arg): Eliminate check for target macro.
10578 (default_function_incoming_arg): Likewise.
10579 (default_function_arg_advance): Likewise.
10580 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10581 (function_arg_advance): Likewise.
10582 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10583
10584 2011-03-24 Richard Guenther <rguenther@suse.de>
10585
10586 PR middle-end/48269
10587 * tree-object-size.c (addr_object_size): Do not double-account
10588 for MEM_REF offsets.
10589
10590 2011-03-24 Diego Novillo <dnovillo@google.com>
10591
10592 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
10593 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
10594 (lto_input_data_block): Move from lto-opts.c. Make extern.
10595 Update all users.
10596 (lto_input_string): Rename from input_string. Make extern.
10597 Update all users.
10598 * lto-streamer-out.c (lto_output_string_with_length): Rename from
10599 output_string_with_length.
10600 Output 0 to indicate a non-NULL string. Update all callers to
10601 not emit 0.
10602 (lto_output_string): Rename from output_string. Make extern.
10603 Update all users.
10604 (lto_output_decl_state_streams): Make extern.
10605 (lto_output_decl_state_refs): Make extern.
10606 * lto-streamer.h (lto_input_string): Declare.
10607 (lto_input_data_block): Declare.
10608 (lto_output_string): Declare.
10609 (lto_output_string_with_length): Declare.
10610 (lto_output_decl_state_streams): Declare.
10611 (lto_output_decl_state_refs): Declare.
10612
10613 2011-03-24 Richard Guenther <rguenther@suse.de>
10614
10615 PR tree-optimization/46562
10616 * tree.c (build_invariant_address): New function.
10617 * tree.h (build_invariant_address): Declare.
10618 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
10619 a renamed function moved ...
10620 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
10621 Take valueization callback parameter.
10622 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
10623 * gimple-fold.h: New file.
10624 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
10625 (ccp_fold, fold_const_aggregate_ref,
10626 fold_ctor_reference, fold_nonarray_ctor_reference,
10627 fold_array_ctor_reference, fold_string_cst_ctor_reference,
10628 get_base_constructor): Move ...
10629 * gimple-fold.c: ... here.
10630 (gimple_fold_stmt_to_constant_1): New function
10631 split out from ccp_fold. Take a valueization callback parameter.
10632 Valueize all operands.
10633 (gimple_fold_stmt_to_constant): New wrapper function.
10634 (fold_const_aggregate_ref_1): New function split out from
10635 fold_const_aggregate_ref. Take a valueization callback parameter.
10636 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
10637 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
10638 invariant POINTER_PLUS_EXPRs to invariant form.
10639 (vn_valueize): New function.
10640 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
10641 * tree-vrp.c (vrp_valueize): New function.
10642 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
10643 to fold statements to constants.
10644 * tree-ssa-pre.c (eliminate): Properly guard propagation of
10645 function declarations.
10646 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
10647 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
10648
10649 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10650
10651 * config/h8300/predicates.md (jump_address_operand): Fix register
10652 mode check.
10653
10654 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
10655
10656 * doc/invoke.texi (max-stores-to-sink): Document.
10657 * params.h (MAX_STORES_TO_SINK): Define.
10658 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
10659 if either vectorization or if-conversion is disabled.
10660 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
10661 tree-vect-data-refs.c vect_equal_offsets.
10662 (dr_equal_offsets_p): New function.
10663 (find_data_references_in_bb): Remove static.
10664 * tree-data-ref.h (find_data_references_in_bb): Declare.
10665 (dr_equal_offsets_p): Likewise.
10666 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
10667 (vect_drs_dependent_in_basic_block): Update calls to
10668 vect_equal_offsets.
10669 (vect_check_interleaving): Likewise.
10670 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
10671 (cond_if_else_store_replacement): Rename to...
10672 (cond_if_else_store_replacement_1): ... this. Change arguments and
10673 documentation.
10674 (cond_if_else_store_replacement): New function.
10675 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
10676 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
10677
10678 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
10679
10680 PR target/46934
10681 * config/arm/arm.md (casesi): Use the gen_int_mode() function
10682 to subtract lower bound instead of GEN_INT().
10683
10684 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
10685
10686 PR other/48179
10687 PR other/48221
10688 PR other/48234
10689 * doc/extend.texi (Alignment): Move section to match order in TOC.
10690 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
10691 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
10692
10693 2011-03-23 Jeff Law <law@redhat.com>
10694
10695 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
10696 before removing the edge.
10697
10698 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
10699 it may have been freed by redirect_branch_edge or
10700 redirect_edge_succ_nodup.
10701
10702 2011-03-23 Richard Guenther <rguenther@suse.de>
10703
10704 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
10705 (check_va_list_escapes): Likewise.
10706 (check_all_va_list_escapes): Likewise.
10707
10708 2011-03-23 Richard Guenther <rguenther@suse.de>
10709
10710 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
10711 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
10712 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
10713 (alias.o): Likewise.
10714 (ipa-type-escape.o): Remove.
10715 (ipa-struct-reorg.o): Likewise.
10716 (GTFILES): Remove ipa-struct-reorg.c.
10717 * alias.c: Do not include ipa-type-escape.h.
10718 * tree-ssa-alias.c: Likewise.
10719 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
10720 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
10721 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
10722 and ipa-type-escape passes.
10723 * tree-pass.h (pass_ipa_type_escape): Remove.
10724 (pass_ipa_struct_reorg): Likewise.
10725 * ipa-struct-reorg.h: Remove.
10726 * ipa-struct-reorg.c: Likewise.
10727 * ipa-type-escape.h: Likewise.
10728 * ipa-type-escape.c: Likewise.
10729 * doc/invoke.texi (-fipa-struct-reorg): Remove.
10730 (--param struct-reorg-cold-struct-ratio): Likewise.
10731 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10732 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10733 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10734
10735 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10736
10737 * config/s390/2084.md: Enable all insn reservations also for z9_ec
10738 cpu attribute value.
10739 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10740 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10741 * config/s390/s390.c (processor_flags_table): New constant array.
10742 (s390_handle_arch_option): Remove.
10743 (s390_handle_option): Remove s390_handle_arch_option invocations
10744 and OPT_mwarn_framesize_ handling.
10745 (s390_option_override): Remove s390_handle_arch_option invocation.
10746 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10747 warnings.
10748 * config/s390/s390.md (cpu attribute): Add z9_ec value.
10749 * config/s390/s390.opt (s390_tune, s390_arch)
10750 (march=): Replace s390_arch_option enum and values with
10751 processor_type. Set variable name to s390_arch. Set
10752 initialization value.
10753 (mtune=): Replace s390_arch_option with processor_type. Set
10754 variable name to s390_tune. Set initialization value.
10755
10756 2011-03-23 Julian Brown <julian@codesourcery.com>
10757
10758 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10759 accesses which are not naturally aligned.
10760
10761 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10762
10763 PR target/47553
10764 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10765
10766 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10767
10768 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10769 parameter from "int" to "enum insn_code".
10770 (expand_operand_type): New enum.
10771 (expand_operand): New structure.
10772 (create_expand_operand): New function.
10773 (create_fixed_operand, create_output_operand): Likewise
10774 (create_input_operand, create_convert_operand_to): Likewise.
10775 (create_convert_operand_from, create_address_operand): Likewise.
10776 (create_integer_operand): Likewise.
10777 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10778 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10779 (expand_insn, expand_jump_insn): Likewise.
10780 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10781 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10782 (expand_movstr, expand_builtin___clear_cache): Likewise.
10783 (expand_builtin_lock_release): Likewise.
10784 * explow.c (allocate_dynamic_stack_space): Likewise.
10785 (probe_stack_range): Likewise. Allow check_stack to FAIL,
10786 and use the default handling in that case.
10787 * expmed.c (check_predicate_volatile_ok): Delete.
10788 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10789 (emit_cstore): Likewise.
10790 * expr.c (emit_block_move_via_movmem): Likewise.
10791 (set_storage_via_setmem, expand_assignment): Likewise.
10792 (emit_storent_insn, try_casesi): Likewise.
10793 (emit_single_push_insn): Likewise. Allow the expansion to fail.
10794 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10795 (expand_vec_shift_expr, expand_binop_directly): Likewise.
10796 (expand_twoval_unop, expand_twoval_binop): Likewise.
10797 (expand_unop_direct, emit_indirect_jump): Likewise.
10798 (emit_conditional_move, vector_compare_rtx): Likewise.
10799 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10800 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10801 (expand_sync_lock_test_and_set): Likewise.
10802 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
10803 (emit_unop_insn): Likewise.
10804 (expand_copysign_absneg): Change icode to an insn_code.
10805 (create_convert_operand_from_type): New function.
10806 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10807 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10808 (expand_insn, expand_jump_insn): Likewise.
10809 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10810 than const_int_operand for operand 2.
10811
10812 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10813
10814 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10815 if possible.
10816
10817 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10818
10819 * emit-rtl.c (emit_pattern_before_noloc): New function.
10820 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10821 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10822 (emit_pattern_after_noloc): New function.
10823 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10824 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10825
10826 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10827
10828 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10829 (__ffsDI2): Likewise.
10830
10831 2011-03-22 Richard Henderson <rth@redhat.com>
10832
10833 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10834 of !TARGET_ABI_OPEN_VMS.
10835 (alpha_trampoline_init, alpha_start_function): Likewise.
10836 (alpha_expand_epilogue, alpha_file_start): Likewise.
10837 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10838 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10839 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10840 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10841 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10842
10843 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10844
10845 * config/s390/s390-opts.h: New.
10846 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10847 s390_arch_flags, s390_warn_framesize, s390_stack_size,
10848 s390_stack_guard): Remove.
10849 (s390_handle_arch_option): Return void. Take enum
10850 s390_arch_option value instead of string and searching array.
10851 (s390_handle_option): Don't assert that global structures are in
10852 use. Access variables via opts pointer. Use error_at. Don't use
10853 sscanf for -mstack-guard= or -mstack-size=. Update call to
10854 s390_handle_arch_option.
10855 (s390_option_override): Update call to s390_handle_arch_option.
10856 (s390_emit_prologue): Use %d format for s390_stack_size in
10857 diagnostic. Use %wd for HOST_WIDE_INT.
10858 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10859 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10860 * config/s390/s390.opt (config/s390/s390-opts.h): New
10861 HeaderInclude entry.
10862 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10863 s390_arch_flags, s390_warn_framesize): New Variable entries.
10864 (s390_arch_option): New Enum and EnumValue entries.
10865 (march=): Use Enum instead of Var.
10866 (mstack-guard=, mstack-size=): Use UInteger and Var.
10867 (mtune=): Use Enum.
10868
10869 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10870
10871 * config/score/score.c (score_handle_option): Don't assert that
10872 global structures are in use. Access target_flags via opts
10873 pointer. Use value of -march= option to determine target_flags
10874 settings.
10875 * config/score/score.opt (march=): Use Enum.
10876 (score_arch): New Enum and EnumValue entries.
10877
10878 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10879
10880 * config/mep/mep.c (option_mtiny_specified): Remove.
10881 (mep_option_override): Move register handling for -mivc2 from
10882 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
10883 instead of option_mtiny_specified.
10884 (mep_handle_option): Access target_flags via opts pointer. Don't
10885 assert that global structures are in use. Defer part of -mivc2
10886 handling and move it to mep_option_override.
10887 * config/mep/mep.opt (IVC2): New Mask entry.
10888 (mivc2): Use Var and Defer instead of Mask.
10889
10890 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10891
10892 * config/v850/v850-opts.h: New.
10893 * config/v850/v850.c (small_memory): Replace with
10894 small_memory_physical_max array. Make that array static const.
10895 (v850_handle_memory_option): Take integer value of argument. Take
10896 gcc_options pointer, option text and location. Return void.
10897 Update for changes to small memory structures.
10898 (v850_handle_option): Access target_flags via opts pointer. Don't
10899 assert that global structures are in use. Update calls to
10900 v850_handle_memory_option.
10901 (v850_encode_data_area): Update references to small memory settings.
10902 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10903 (enum small_memory_type): Move to v850-opts.h.
10904 * config/v850/v850.opt (config/v850/v850-opts.h): New
10905 HeaderInclude entry.
10906 (small_memory_max): New Variable entry.
10907 (msda): Replace by pair of options msda= and msda-. Use UInteger.
10908 (mtda, mzda): Likewise.
10909
10910 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10911
10912 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10913 pointer. Don't assert that global structures are in use.
10914
10915 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10916
10917 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10918 via opts pointer. Don't assert that global structures are in use.
10919
10920 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10921
10922 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10923 (munix=93): Use Var.
10924 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10925 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10926 * config/pa/pa-opts.h: New.
10927 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10928 (pa_handle_option): Don't assert that global structures are in
10929 use. Access target_flags via opts pointer. Don't handle
10930 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10931 OPT_munix_98 here.
10932 (pa_option_override): Handle deferred OPT_mfixed_range_.
10933
10934 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10935
10936 * config/mn10300/mn10300-opts.h: New.
10937 * config/mn10300/mn10300.c (mn10300_processor,
10938 mn10300_tune_string): Remove.
10939 (mn10300_handle_option): Don't assert that global structures are
10940 in use. Access mn10300_processor via opts pointer. Don't handle
10941 OPT_mtune_ here.
10942 * config/mn10300/mn10300.h (enum processor_type): Move to
10943 mn10300-opts.h.
10944 (mn10300_processor): Remove.
10945 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10946 HeaderInclude entry.
10947 (mn10300_processor): New Variable entry.
10948 (mtune=): Use Var.
10949
10950 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10951
10952 * config/microblaze/microblaze.c: Don't include opts.h.
10953 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10954 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10955 (mno-clearbss): Use Var and Warn.
10956
10957 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10958
10959 * config/m32r/m32r-opts.h: New.
10960 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10961 (m32r_handle_option): Don't assert that global structures are in
10962 use. Access target_flags and m32r_cache_flush_func via opts
10963 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
10964 OPT_mno_flush_trap here.
10965 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10966 include of m32r-opts.h.
10967 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10968 HeaderInclude entry.
10969 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10970 (mmodel=): Use Enum and Var.
10971 (m32r_model): New Enum and EnumValue entries.
10972 (mno-flush-trap): Use Var.
10973 (msdata=): Use Enum and Var.
10974 (m32r_sdata): New Enum and EnumValue entries.
10975
10976 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10977
10978 * config/m32c/m32c.c: Don't include opts.h.
10979 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10980 m32c_handle_option): Remove.
10981 (m32c_option_override): Check global_options_set.x_target_memregs
10982 instead of target_memregs_set.
10983 * config/m32c/m32c.h (target_memregs): Remove.
10984 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10985 variable.
10986
10987 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10988
10989 * config/iq2000/iq2000-opts.h: New.
10990 * config/iq2000/iq2000.c: Don't include opts.h.
10991 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
10992 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
10993 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10994 HeaderInclude entry.
10995 (iq2000_tune): New Variable entry.
10996 (march=): Add comment. Use Enum.
10997 (iq2000_arch): New Enum and EnumValue entries.
10998 (mcpu=): Use Enum and Var.
10999 (iq2000_tune): New Enum and EnumValue entries.
11000
11001 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11002
11003 * config/ia64/ia64-opts.h: New.
11004 * config/ia64/ia64.c (ia64_tune): Remove.
11005 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
11006 here. Use error_at.
11007 (ia64_option_override): Handle deferred OPT_mfixed_range_.
11008 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
11009 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
11010 HeaderInclude entry.
11011 (ia64_tune): New Variable entry.
11012 (mfixed-range=): Use Defer and Var.
11013 (mtune=): Use Enum and Var.
11014 (ia64_tune): New Enum and EnumValue entries.
11015
11016 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11017
11018 * config/frv/frv-opts.h: New.
11019 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
11020 frv-opts.h.
11021 (frv_cpu_type): Remove.
11022 * config/frv/frv.c: Don't include opts.h.
11023 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
11024 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
11025 (frv_cpu_type): New Variable entry.
11026 (frv_cpu): New Enum and EnumValue entries.
11027
11028 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11029
11030 * config/cris/cris.c (cris_handle_option): Access target_flags via
11031 opts pointer. Don't assert that global structures are in use.
11032 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
11033 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
11034
11035 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11036
11037 * config/bfin/bfin-opts.h: New.
11038 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
11039 bfin_si_revision, bfin_workarounds): Remove.
11040 (bfin_cpus): Make static const.
11041 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
11042 not bfin_lib_id_given.
11043 (bfin_handle_option): Don't set bfin_lib_id_given. Access
11044 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
11045 pointer. Use error_at. Don't assert that global structures are in use.
11046 * config/bfin/bfin.h: Include bfin-opts.h.
11047 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
11048 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
11049 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
11050 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
11051 entries.
11052
11053 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11054
11055 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
11056 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
11057 or -msoft-float here.
11058 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
11059 -msoft-float and -mhard-float.
11060 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
11061 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
11062 msoft-float.
11063 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
11064 -msoft-float.
11065 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
11066 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
11067 not mhard-float.
11068 (LIBGCC_SPEC): Don't handle -msoft-float.
11069 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
11070 -mhard-float.
11071 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
11072 msoft-float.
11073 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
11074 -mfloat-abi=*, not -msoft-float and -mhard-float.
11075 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
11076 -msoft-float.
11077 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
11078 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
11079 mhard-float and msoft-float.
11080 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
11081 mfloat-abi=soft in comments, not mhard-float and msoft-float.
11082 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
11083 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
11084 mhard-float.
11085 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
11086 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
11087 msoft-float.
11088 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
11089 not mhard-float.
11090 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
11091 not msoft-float.
11092
11093 2011-03-22 Richard Henderson <rth@redhat.com>
11094
11095 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
11096 TARGET_ABI_WINDOWS_NT.
11097 (alpha_output_function_end_prologue): Likewise.
11098 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
11099 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11100 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
11101 (trap, *movsi_nt_vms): Likewise.
11102 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
11103 (*tablejump_osf_nt_internal): Remove.
11104 * config/alpha/predicates.md (input_operand): Only test Pmode.
11105
11106 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11107
11108 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
11109 via opts pointer. Use error_at. Don't assert that global
11110 structures are in use.
11111
11112 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11113
11114 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
11115 (ix86_handle_option): Access ix86_isa_flags and
11116 ix86_isa_flags_explicit via opts pointer. Don't assert that
11117 global structures are in use.
11118 (ix86_function_specific_save, ix86_function_specific_restore):
11119 Update ix86_isa_flags_explicit field name.
11120 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
11121 (ix86_isa_flags_explicit): Rename TargetSave entry to
11122 x_ix86_isa_flags_explicit.
11123
11124 2011-03-22 Richard Henderson <rth@redhat.com>
11125
11126 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
11127 (alpha_option_override, direct_return): Likewise.
11128 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
11129 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
11130 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
11131 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
11132 (alpha_expand_epilogue, alpha_end_function): Likewise.
11133 (alpha_init_libfuncs): Likewise.
11134 (struct machine_function): Remove unicosmk members.
11135 (print_operand) ['t']: Remove.
11136 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
11137 unicosmk_output_module_name, unicosmk_output_common,
11138 current_section_align, unicosmk_output_text_section_asm_op,
11139 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
11140 unicosmk_section_type_flags, unicosmk_unique_section,
11141 unicosmk_asm_named_section, unicosmk_insert_attributes,
11142 unicosmk_output_align, unicosmk_defer_case_vector,
11143 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
11144 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
11145 unicosmk_output_ssib, unicosmk_add_call_info_word,
11146 unicosmk_extern_head, unicosmk_output_default_externs,
11147 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
11148 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
11149 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
11150 * config/alpha/alpha-protos.h: Update.
11151 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
11152 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
11153 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
11154 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
11155 (*mulsi_se, mulvsi3): Likewise.
11156 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
11157 (*divmodsi_internal, call, call_value, realign): Likewise.
11158 (moddi3, umoddi3): Likewise; remove duplicate expander.
11159 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
11160 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
11161 (*movdi_nofix): Remove r/U alternative.
11162 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
11163 * config/alpha/constraints.md ("U"): Remove.
11164 * config/alpha/predicates.md (call_operand"): Don't test
11165 TARGET_ABI_UNICOSMK.
11166
11167 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11168
11169 * target.def (handle_option): Take gcc_options and
11170 cl_decoded_option pointers and location_t.
11171 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
11172 * doc/tm.texi: Regenerate.
11173 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
11174 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
11175 * lto-opts.c (lto_reissue_options): Generate option structure for
11176 targetm.handle_option call.
11177 * opts.c (target_handle_option): Update call to
11178 targetm.handle_option. Remove assertions about values now passed
11179 down to hook.
11180 * targhooks.c (default_target_handle_option): New.
11181 * targhooks.h (default_target_handle_option): Declare.
11182 * config/alpha/alpha.c: Include opts.h.
11183 (alpha_handle_option): Update to new hook interface.
11184 * config/arm/arm.c: Include opts.h.
11185 (arm_handle_option): Update to new hook interface.
11186 * config/arm/t-arm (arm.o): Update dependencies.
11187 * config/bfin/bfin.c: Include opts.h.
11188 (bfin_handle_option): Update to new hook interface.
11189 * config/cris/cris.c: Include opts.h.
11190 (cris_handle_option): Update to new hook interface.
11191 * config/frv/frv.c: Include opts.h.
11192 (frv_handle_option): Update to new hook interface.
11193 * config/i386/i386.c: Include opts.h.
11194 (ix86_handle_option): Update to new hook interface.
11195 (ix86_valid_target_attribute_inner_p): Generate option structure
11196 for call to ix86_handle_option.
11197 * config/i386/t-i386 (i386.o): Update dependencies.
11198 * config/ia64/ia64.c: Include opts.h.
11199 (ia64_handle_option): Update to new hook interface.
11200 * config/ia64/t-ia64 (ia64.o): Update dependencies.
11201 * config/iq2000/iq2000.c: Include opts.h.
11202 (iq2000_handle_option): Update to new hook interface.
11203 * config/m32c/m32c.c: Include opts.h.
11204 (m32c_handle_option): Update to new hook interface.
11205 * config/m32r/m32r.c: Include opts.h.
11206 (m32r_handle_option): Update to new hook interface.
11207 * config/m68k/m68k.c: Include opts.h.
11208 (m68k_handle_option): Update to new hook interface.
11209 * config/mep/mep.c: Include opts.h.
11210 (mep_handle_option): Update to new hook interface.
11211 * config/microblaze/microblaze.c: Include opts.h.
11212 (microblaze_handle_option): Update to new hook interface.
11213 * config/mips/mips.c: Include opts.h.
11214 (mips_handle_option): Update to new hook interface.
11215 * config/mn10300/mn10300.c: Include opts.h.
11216 (mn10300_handle_option): Update to new hook interface.
11217 * config/pa/pa.c: Include opts.h.
11218 (pa_handle_option): Update to new hook interface.
11219 * config/pdp11/pdp11.c: Include opts.h.
11220 (pdp11_handle_option): Update to new hook interface.
11221 * config/rs6000/rs6000.c: Include opts.h.
11222 (rs6000_handle_option): Update to new hook interface.
11223 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
11224 * config/rx/rx.c: Include opts.h.
11225 (rx_handle_option): Update to new hook interface.
11226 * config/s390/s390.c: Include opts.h.
11227 (s390_handle_option): Update to new hook interface.
11228 * config/score/score.c: Include opts.h.
11229 (score_handle_option): Update to new hook interface.
11230 * config/sh/sh.c: Include opts.h.
11231 (sh_handle_option): Update to new hook interface.
11232 * config/sparc/sparc.c: Include opts.h.
11233 (sparc_handle_option): Update to new hook interface.
11234 * config/v850/v850.c: Include opts.h.
11235 (v850_handle_option): Update to new hook interface.
11236
11237 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11238
11239 * gcc.c (driver_unknown_option_callback): Only permit and save
11240 unknown -Wno- options.
11241 (driver_wrong_lang_callback): Save options directly instead of via
11242 driver_unknown_option_callback.
11243
11244 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
11245
11246 * combine.c (simplify_set): Try harder to find the best CC mode when
11247 simplifying a nested COMPARE on the RHS.
11248
11249 2011-03-22 Joseph Myers <joseph@codesourcery.com>
11250
11251 * config/alpha/gnu.h: Remove.
11252 * config/arc: Remove directory.
11253 * config/arm/netbsd.h: Remove.
11254 * config/arm/t-pe: Remove.
11255 * config/crx: Remove directory.
11256 * config/i386/netbsd.h: Remove.
11257 * config/m68hc11: Remove directory.
11258 * config/m68k/uclinux-oldabi.h: Remove.
11259 * config/mcore/mcore-pe.h: Remove.
11260 * config/mcore/t-mcore-pe: Remove.
11261 * config/netbsd-aout.h: Remove.
11262 * config/rs6000/gnu.h: Remove.
11263 * config/sh/sh-symbian.h: Remove.
11264 * config/sh/symbian-base.c: Remove.
11265 * config/sh/symbian-c.c: Remove.
11266 * config/sh/symbian-cxx.c: Remove.
11267 * config/sh/symbian-post.h: Remove.
11268 * config/sh/symbian-pre.h: Remove.
11269 * config/sh/t-symbian: Remove.
11270 * config/svr3.h: Remove.
11271 * config/vax/netbsd.h: Remove.
11272 * config.build: Don't handle i[34567]86-*-pe.
11273 * config.gcc: Remove handling of deprecations for most deprecated
11274 targets.
11275 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
11276 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
11277 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
11278 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
11279 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
11280 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
11281 Remove cases.
11282 * config.host: Don't handle i[34567]86-*-pe.
11283 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
11284 (ASM_SPEC32): Don't handle -mcall-gnu.
11285 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
11286 -mcall-gnu.
11287 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
11288 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
11289 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
11290 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
11291 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
11292 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
11293 conditional on SYMBIAN.
11294 * configure.ac: Don't handle powerpc*-*-gnu*.
11295 * configure: Regenerate.
11296 * doc/extend.texi (interrupt attribute): Don't mention CRX.
11297 * doc/install-old.texi (m6811, m6812): Don't mention.
11298 * doc/install.texi (arc-*-elf*): Don't document multilib option.
11299 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
11300 (m68k-uclinuxoldabi): Don't mention.
11301 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
11302 Remove.
11303 (-mcall-gnu): Remove.
11304 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
11305 families): Remove constraint documentation.
11306
11307 2011-03-22 Marius Strobl <marius@FreeBSD.org>
11308
11309 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
11310 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
11311 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
11312
11313 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11314
11315 PR target/48226
11316 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
11317 vector when peeking at the next token for vector, don't expand the
11318 keywords.
11319
11320 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
11321
11322 * config/avr/avr-protos.h (expand_epilogue): Change prototype
11323 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
11324 * config/avr/avr.c (init_cumulative_args)
11325 (avr_function_arg_advance): Use it.
11326 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
11327 sibcall epilogues.
11328 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
11329 (avr_function_ok_for_sibcall): ...this new function.
11330 (avr_lookup_function_attribute1): New static Function.
11331 (avr_naked_function_p, interrupt_function_p)
11332 (signal_function_p, avr_OS_task_function_p)
11333 (avr_OS_main_function_p): Use it.
11334 * config/avr/avr.md ("sibcall", "sibcall_value")
11335 ("sibcall_epilogue"): New expander.
11336 ("*call_insn", "*call_value_insn"): New insn.
11337 ("call_insn", "call_value_insn"): Remove
11338 ("call", "call_value", "epilogue"): Change expander to handle
11339 sibling calls.
11340
11341 2011-03-21 Nick Clifton <nickc@redhat.com>
11342
11343 * doc/invoke.texi (Overall Options): Move closing brace to end of
11344 options list.
11345 (Optimization Options): Add missing @gol.
11346 (Directory Options): Likewise.
11347 (i386 and x86-64 Options): Likewise.
11348 (RS6000 and PowerPC Options): Likewise.
11349 (i386 and x86-64 Windows Options): Likewise.
11350 (V850 Options): Add text missing from descriptions.
11351
11352 2011-03-22 Richard Henderson <rth@redhat.com>
11353
11354 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
11355 (avr_incoming_return_addr_rtx): New.
11356 (emit_push_byte): New.
11357 (expand_prologue): Use it. Remove incorrect dwarf annotation for
11358 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
11359 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
11360 (emit_pop_byte): New.
11361 (expand_epilogue): Use it. Pop frame pointer by bytes.
11362 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
11363 (INCOMING_RETURN_ADDR_RTX): New.
11364 (INCOMING_FRAME_SP_OFFSET): New.
11365 (ARG_POINTER_CFA_OFFSET): New.
11366 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
11367 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
11368 (pophi): Remove.
11369
11370 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
11371
11372 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
11373
11374 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
11375 (FUNCTION_ARG_ADVANCE): Likewise.
11376 * tm.texi.in: Change references to them to hook references.
11377 * tm.texi: Regenerate.
11378 * targhooks.c (default_function_arg): Eliminate check for target
11379 macro.
11380 (default_function_incoming_arg): Likewise.
11381 (default_function_arg_advance): Likewise.
11382 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
11383 (function_arg_advance): Likewise.
11384 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
11385
11386 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
11387
11388 * tree.c (build_call_1): New function.
11389 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
11390
11391 2011-03-22 Richard Guenther <rguenther@suse.de>
11392
11393 PR tree-optimization/48228
11394 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
11395 for single-arg PHIs.
11396
11397 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
11398
11399 PR rtl-optimization/48143
11400 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
11401 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
11402 sse2_cvtps2pd): Likewise.
11403
11404 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11405
11406 * recog.c (canonicalize_change_group): Use validate_unshare_change.
11407
11408 2011-03-22 Richard Guenther <rguenther@suse.de>
11409
11410 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
11411 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
11412 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
11413 and REALIGN_LOAD_EXPR.
11414 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
11415 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
11416 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
11417 DOT_PROD_EXPR case ...
11418 (expand_expr_real_2): ... here.
11419 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
11420 and REALIGN_LOAD_EXPR.
11421 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
11422 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
11423 (vect_create_epilog_for_reduction): Likewise.
11424 (vectorizable_reduction): Likewise.
11425 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
11426 * tree-vect-stmts.c (vectorizable_load): Likewise.
11427
11428 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
11429
11430 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
11431
11432 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11433
11434 * config/s390/s390.c (s390_delegitimize_address): Fix offset
11435 handling for PLTOFF/GOTOFF.
11436
11437 2011-03-22 Nick Clifton <nickc@redhat.com>
11438
11439 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
11440 trailing backslash from the end of the macro definition.
11441
11442 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11443
11444 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
11445 and PLT unspecs.
11446
11447 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
11448
11449 * expr.h (prepare_operand): Move to...
11450 * optabs.h (prepare_operand): ...here and change the insn code
11451 parameter from "int" to "enum insn_code".
11452 (insn_operand_matches): Declare.
11453 * expr.c (init_expr_target): Use insn_operand_matches.
11454 (compress_float_constant): Likewise.
11455 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
11456 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
11457 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
11458 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
11459 Likewise.
11460 (gen_cond_trap): Likewise.
11461 (prepare_operand): Likewise. Change icode to an insn_code.
11462 (insn_operand_matches): New function.
11463 * reload.c (find_reloads_address_1): Use insn_operand_matches.
11464 * reload1.c (gen_reload): Likewise.
11465 * targhooks.c (default_secondary_reload): Likewise.
11466
11467 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
11468
11469 * config/alpha/alpha.md (unspec): New define_c_enum.
11470 (unspecv): Ditto.
11471
11472 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
11473
11474 PR debug/48214
11475 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
11476 between a call and its CALL_ARG_LOCATION note.
11477
11478 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
11479
11480 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
11481
11482 2011-03-21 Jakub Jelinek <jakub@redhat.com>
11483
11484 PR c/42544
11485 PR c/48197
11486 * c-common.c (shorten_compare): If primopN is first sign-extended
11487 to opN and then zero-extended to result type, set primopN to opN.
11488
11489 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
11490
11491 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
11492 for barrier handlers.
11493
11494 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11495
11496 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
11497 UNSPEC constants to be in the unspec enumeration, and redefine
11498 all UNSPECV constants to be in the unspecv enumeration, so that
11499 dumps print which unspec/unspec_volatile this is.
11500 * config/rs6000/vector.md (UNSPEC_*): Ditto.
11501 * config/rs6000/paired.md (UNSPEC_*): Ditto.
11502 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
11503 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
11504 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
11505
11506 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
11507 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
11508 UNSPECV_LWSYNC, since these are used as unspec_volatile.
11509 * config/rs6000/sync.md (isync, lwsync): Ditto.
11510
11511 2011-03-21 Richard Guenther <rguenther@suse.de>
11512
11513 * params.def (lto-min-partition): Fix typo.
11514
11515 2011-03-21 Richard Guenther <rguenther@suse.de>
11516
11517 PR c/47939
11518 * c-decl.c (grokdeclarator): Drop to the main variant only
11519 for array types. Drop flag_gen_aux_info check.
11520
11521 2011-03-21 Richard Guenther <rguenther@suse.de>
11522
11523 PR translation/47911
11524 * params.def (lto-partitions): Fix typo.
11525 (lto-min-partition): Fix wording.
11526
11527 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
11528
11529 * config/rs6000/t-freebsd: Remove duplication from file.
11530
11531 2011-03-21 Richard Guenther <rguenther@suse.de>
11532
11533 PR middle-end/47661
11534 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
11535
11536 2011-03-21 Richard Guenther <rguenther@suse.de>
11537
11538 PR lto/48210
11539 * params.def (lto-partitions): Require at least 1 partition.
11540
11541 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11542
11543 * gthr-solaris.h: Remove.
11544 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
11545 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
11546 (LIB_SPEC): Likewise.
11547 * config/sol2.opt (threads): Remove.
11548 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
11549 (sparc*-*-solaris2*): Likewise.
11550 * configure.ac (enable_threads): Enable solaris support.
11551 * configure: Regenerate.
11552 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
11553 * doc/install.texi (Configuration, --enable-threads=lib): Remove
11554 solaris.
11555
11556 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11557
11558 * config.gcc: Obsolete *-*-solaris2.8*.
11559 * doc/install.texi (Specific, *-*-solaris2*): Document it.
11560
11561 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11562
11563 PR bootstrap/48135
11564 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
11565 reference. Solaris 8 perl works.
11566
11567 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11568
11569 PR bootstrap/48135
11570 * doc/install.texi (Prerequisites): Move jar etc. up.
11571 Explain support library version requirements.
11572
11573 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11574
11575 PR bootstrap/48135
11576 * doc/install.texi (Prerequisites): Move Perl to build
11577 requirements. Always necessary on Solaris 2 with Sun ld.
11578
11579 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11580
11581 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
11582 binutils 2.21.
11583 (Specific, i?86-*-solaris2.[89]): Likewise.
11584 (Specific, i?86-*-solaris2.10): Likewise.
11585 (Specific, mips-sgi-irix6): Likewise.
11586 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
11587 Update for binutils 2.21.
11588
11589 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11590
11591 * configure.ac (gcc_cv_lto_plugin): Fix typo.
11592 Allow -fuse-linker-plugin for non-default plugin linker.
11593 * configure: Regenerate.
11594
11595 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
11596
11597 PR bootstrap/48167
11598 * gengtype.c (files_rules): Added rule for cp/parser.h.
11599
11600 2011-03-21 Jakub Jelinek <jakub@redhat.com>
11601
11602 PR target/48213
11603 * config/s390/s390.c (s390_delegitimize_address): Don't call
11604 lowpart_subreg if orig_x has BLKmode.
11605
11606 2011-03-21 Kai Tietz <ktietz@redhat.com>
11607
11608 PR target/12171
11609 * doc/plugins.texi: Adjust documentation for plugin register_callback.
11610 * tree.h (attribute_spec): Add new member affects_type_identity.
11611 * attribs.c (empty_attribute_table): Adjust attribute_spec
11612 initializers.
11613 * config/alpha/alpha.c: Likewise.
11614 * config/arc/arc.c: Likewise.
11615 * config/arm/arm.c: Likewise.
11616 * config/avr/avr.c: Likewise.
11617 * config/bfin/bfin.c: Likewise.
11618 * config/crx/crx.c: Likewise.
11619 * config/darwin.h: Likewise.
11620 * config/h8300/h8300.c: Likewise.
11621 * config/i386/cygming.h: Likewise.
11622 * config/i386/i386.c: Likewise.
11623 * config/ia64/ia64.c: Likewise.
11624 * config/m32c/m32c.c: Likewise.
11625 * config/m32r/m32r.c: Likewise.
11626 * config/m68hc11/m68hc11.c: Likewise.
11627 * config/m68k/m68k.c: Likewise.
11628 * config/mcore/mcore.c: Likewise.
11629 * config/mep/mep.c: Likewise.
11630 * config/microblaze/microblaze.c: Likewise.
11631 * config/mips/mips.c: Likewise.
11632 * config/rs6000/rs6000.c: Likewise.
11633 * config/rx/rx.c: Likewise.
11634 * config/sh/sh.c: Likewise.
11635 * config/sol2.h: Likewise.
11636 * config/sparc/sparc.c: Likewise.
11637 * config/spu/spu.c: Likewise.
11638 * config/stormy16/stormy16.c: Likewise.
11639 * config/v850/v850.c: Likewise.
11640
11641 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
11642
11643 * simplify-rtx.c (simplify_binary_operation_1): Handle
11644 (xor (and A B) C) case when B and C are both constants.
11645
11646 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
11647
11648 * tree-dfa.c (add_referenced_var): Fix typo in comment.
11649
11650 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
11651
11652 PR bootstrap/48168
11653 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
11654
11655 2011-03-20 Jakub Jelinek <jakub@redhat.com>
11656
11657 PR rtl-optimization/48156
11658 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
11659 assume df and df_lr are not NULL.
11660
11661 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11662
11663 PR debug/48023
11664 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
11665 between a call and its CALL_ARG_LOCATION note.
11666
11667 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
11668
11669 PR debug/48178
11670 * config/sh/sh.c (find_barrier): Don't emit a constant pool
11671 between a call and its corresponding CALL_ARG_LOCATION note.
11672
11673 2011-03-19 Anatoly Sokolov <aesok@post.ru>
11674
11675 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
11676 instead of loop. Use HARD_REGISTER_NUM_P predicate.
11677 * haifa-sched.c (setup_ref_regs): Ditto.
11678 * caller-save.c (add_used_regs_1): Ditto.
11679 * dse.c (look_for_hardregs): Ditto.
11680 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
11681 * sched-rgn.c (check_live_1): Ditto.
11682
11683 2011-03-18 Joseph Myers <joseph@codesourcery.com>
11684
11685 * c-decl.c (diagnose_mismatched_decls): Give an error for
11686 redefining a typedef with variably modified type.
11687
11688 2011-03-18 Joseph Myers <joseph@codesourcery.com>
11689
11690 * c-decl.c (grokfield): Don't allow typedefs for structures or
11691 unions with no tag by default.
11692 * doc/extend.texi (Unnamed Fields): Update.
11693
11694 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
11695
11696 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11697 Rewrite using indirect functions.
11698 (lwp_slwpcb): Ditto.
11699 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
11700 (avx_vinsertf128<mode>): Ditto.
11701
11702 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11703
11704 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
11705 unspecs.
11706
11707 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11708
11709 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
11710 splitting between a call and its corresponding CALL_ARG_LOCATION note.
11711
11712 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
11713
11714 PR rtl-optimization/48170
11715 * gcse.c (hoist_code): Remove bogus asserts.
11716
11717 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
11718
11719 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
11720 computation for prologue/epilogue.
11721
11722 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11723
11724 * Makefile.in (check-consistency): Remove.
11725
11726 2011-03-18 Jakub Jelinek <jakub@redhat.com>
11727
11728 PR debug/48176
11729 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11730 arange_table_in_use is 0, but either text_section_used or
11731 cold_text_section_used is true. Don't call it if
11732 !info_section_emitted.
11733
11734 2011-03-18 Anatoly Sokolov <aesok@post.ru>
11735
11736 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11737 FUNCTION_VALUE_REGNO_P): Remove.
11738 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11739 Remove.
11740 * config/avr/avr.c (avr_ret_register): Make static inline.
11741 (avr_function_value_regno_p): New function.
11742 (avr_libcall_value): Make static. Add 'func' argument.
11743 (avr_function_value): Make static. Rename 'func' argument to
11744 'fn_decl_or_type', forward it to avr_libcall_value. Call
11745 avr_ret_register function instead of RET_REGISTER macro.
11746 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11747
11748 2011-03-18 Jason Merrill <jason@redhat.com>
11749
11750 PR c++/23372
11751 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11752
11753 2011-03-18 Richard Guenther <rguenther@suse.de>
11754
11755 * doc/install.texi (--enable-gold): Remove.
11756 (--with-plugin-ld): Document.
11757 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11758
11759 2011-03-18 Andrew Pinski <pinskia@gmail.com>
11760
11761 PR middle-end/47790
11762 * expr.c (optimize_bitfield_assignment_op): Revamp to work
11763 again after expansion changes.
11764
11765 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
11766
11767 * combine.c (try_combine): Do simplification only call of
11768 subst() on i2 even when i1 is present. Update comments.
11769
11770 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
11771
11772 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11773 and UNSPEC_PCREL_SYMOFF.
11774
11775 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11776
11777 * config/s390/s390.md: Use define_c_enum for the unspec constant
11778 definitions.
11779
11780 2011-03-18 Richard Henderson <rth@redhat.com>
11781 Jakub Jelinek <jakub@redhat.com>
11782
11783 PR bootstrap/48161
11784 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11785 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11786
11787 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11788
11789 PR middle-end/47725
11790 * combine.c (cant_combine_insn_p): Don't check zero/sign
11791 extended hard registers.
11792
11793 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11794
11795 PR middle-end/47725
11796 * combine.c (cant_combine_insn_p): Check zero/sign extended
11797 hard registers.
11798
11799 2011-03-17 Anatoly Sokolov <aesok@post.ru>
11800
11801 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11802 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11803 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11804 Change return type to bool.
11805 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11806
11807 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11808
11809 PR debug/48163
11810 * var-tracking.c (prepare_call_arguments): If CALL target
11811 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11812 pc instead of looking it up using cselib_lookup and use
11813 Pmode for it if x has VOIDmode.
11814 * dwarf2out.c (gen_subprogram_die): If also both first and
11815 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11816
11817 PR debug/48163
11818 * function.c (assign_parms): For data.passed_pointer parms
11819 use MEM of data.entry_parm instead of data.entry_parm itself
11820 as DECL_INCOMING_RTL.
11821 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11822 also when passed and declared mode is the same, DECL_RTL
11823 is a MEM with pseudo as address and DECL_INCOMING_RTL is
11824 a MEM too.
11825
11826 2011-03-16 Jeff Law <law@redhat.com>
11827
11828 PR rtl-optimization/37273
11829 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11830 handle them like argument loads from stack slots. Do not double
11831 count memory for memory constants and argument loads from stack slots.
11832
11833 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11834
11835 PR debug/48160
11836 * var-tracking.c (prepare_call_arguments): Check SUBREG.
11837
11838 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11839
11840 PR target/48171
11841 * config/i386/i386.opt: Add Save to -mavx and -mfma.
11842
11843 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11844
11845 PR bootstrap/48153
11846 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11847 if dwarf_strict.
11848 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11849 Clear call_arg_locations and call_arg_loc_last always.
11850
11851 PR middle-end/48152
11852 * var-tracking.c (prepare_call_arguments): If argument needs to be
11853 passed by reference, adjust argtype and mode.
11854
11855 2011-03-17 Richard Guenther <rguenther@suse.de>
11856
11857 PR middle-end/48134
11858 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11859 a value make sure to fold the statement.
11860
11861 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
11862
11863 PR target/43872
11864 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11865 return condition with !cfun->calls_alloca.
11866
11867 2011-03-17 Richard Guenther <rguenther@suse.de>
11868
11869 PR bootstrap/48148
11870 * lto-cgraph.c (input_overwrite_node): Clear the abstract
11871 origin for decls in other ltrans units.
11872 (input_varpool_node): Likewise.
11873
11874 2011-03-17 Richard Guenther <rguenther@suse.de>
11875
11876 PR middle-end/48165
11877 * tree-object-size.c (compute_object_offset): Properly return
11878 the offset operand of MEM_REFs as sizetype.
11879
11880 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11881
11882 PR rtl-optimization/48141
11883 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11884 * dse.c: Include params.h.
11885 (active_local_stores_len): New variable.
11886 (add_wild_read, dse_step1): Clear it when setting active_local_stores
11887 to NULL.
11888 (record_store, check_mem_read_rtx): Decrease it when removing
11889 from the chain.
11890 (scan_insn): Likewise. Increase it when adding to chain, if it
11891 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11892 set active_local_stores to NULL before the addition.
11893 * Makefile.in (dse.o): Depend on $(PARAMS_H).
11894
11895 PR rtl-optimization/48141
11896 * dse.c (record_store): If no positions are needed in an insn
11897 that cannot be deleted, at least unchain it from active_local_stores.
11898
11899 2011-03-16 Dodji Seketeli <dodji@redhat.com>
11900
11901 PR debug/47510
11902 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11903 (lookup_type_die_strip_naming_typedef): ... here.
11904 (get_context_die): Use it.
11905 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11906 the anonymous struct named by the naming typedef.
11907
11908 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
11909
11910 PR target/48154
11911 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11912 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11913
11914 2011-03-16 Jeff Law <law@redhat.com>
11915
11916 * tree-vrp.c (identify_jump_threads): Slightly simplify type
11917 check for operands of conditional. Allow type to be a pointer.
11918
11919 2011-03-16 Richard Guenther <rguenther@suse.de>
11920
11921 PR tree-optimization/48149
11922 * fold-const.c (fold_binary_loc): Fold
11923 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11924
11925 2011-03-16 Richard Guenther <rguenther@suse.de>
11926
11927 PR tree-optimization/26134
11928 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11929 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11930 (non_rewritable_mem_ref_base): Handle complex type component
11931 accesses, constrain offsets for vector and complex extracts
11932 more properly.
11933
11934 2011-03-16 Richard Guenther <rguenther@suse.de>
11935
11936 PR tree-optimization/48146
11937 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11938 operands avoiding the need for renaming.
11939
11940 2011-03-16 Richard Guenther <rguenther@suse.de>
11941
11942 * gimple-fold.c (maybe_fold_reference): Open-code relevant
11943 constant folding. Move MEM_REF canonicalization first.
11944 Rely on fold_const_aggregate_ref for initializer folding.
11945 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11946
11947 2011-03-16 Jakub Jelinek <jakub@redhat.com>
11948
11949 PR middle-end/48136
11950 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11951 arg0/arg1 or their arguments are always fold converted to matching
11952 types.
11953
11954 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11955 to nargs.
11956
11957 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11958
11959 PR lto/46944
11960 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11961 Handle in-tree gold.
11962 (ld_vers): Extract binutils version for gold.
11963 (gcc_cv_ld_hidden): Handle gold here.
11964 (gcc_cv_lto_plugin): Determine level of linker plugin support.
11965 * configure: Regenerate.
11966 * config.in: Regenerate.
11967 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11968 -fuse-linker-plugin otherwise.
11969 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
11970 (LINK_COMMAND_SPEC): Use it.
11971 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11972
11973 2011-03-16 Jakub Jelinek <jakub@redhat.com>
11974
11975 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11976 * calls.c: Remove debug.h include.
11977 (emit_call_1): Don't call virtual_call_token debug hook.
11978 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11979 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11980 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11981 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11982 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11983 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11984 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11985 dwarf2out_virtual_call): Remove.
11986 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11987 copy_call_info and virtual_call hooks.
11988 (dwarf2out_init): Don't initialize vcall_insn_table,
11989 debug_dcall_section and debug_vcall_section.
11990 (prune_unused_types): Don't mark nodes from dcall_table.
11991 (dwarf2out_finish): Don't output dcall or vcall tables.
11992 * final.c (final_scan_insn): Don't call direct_call or
11993 virtual_call debug hooks.
11994 * debug.h (struct gcc_debug_hooks): Remove direct_call,
11995 virtual_call_token, copy_call_info and virtual_call hooks.
11996 (debug_nothing_uid): Remove prototype.
11997 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11998 copy_call_info and virtual_call hooks.
11999 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12000 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
12001 * debug.c (do_nothing_debug_hooks): Likewise.
12002 (debug_nothing_uid): Remove.
12003 * doc/invoke.texi (-fenable-icf-debug): Remove.
12004 * common.opt (-fenable-icf-debug): Likewise.
12005
12006 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
12007 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
12008 call's MEM. Handle functions returning aggregate through a hidden
12009 first pointer. For virtual calls add clobbered pc to call arguments
12010 chain.
12011 * dwarf2out.c (gen_subprogram_die): Emit
12012 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
12013 can't be emitted.
12014
12015 PR debug/45882
12016 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
12017 * rtl.h (ENTRY_VALUE_EXP): Define.
12018 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
12019 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12020 * print-rtl.c (print_rtx): Likewise.
12021 * gengtype.c (adjust_field_rtx_def): Likewise.
12022 * var-tracking.c (vt_add_function_parameter): Adjust
12023 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
12024 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
12025 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
12026 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
12027 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
12028
12029 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
12030 Call var_location debug hook even on CALL_INSNs.
12031 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
12032 * rtl.def (ENTRY_VALUE): New.
12033 * dwarf2out.c: Include cfglayout.h.
12034 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
12035 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
12036 (struct call_arg_loc_node): New type.
12037 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
12038 tail_call_site_count): New variables.
12039 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
12040 DW_TAG_GNU_call_site_parameter.
12041 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
12042 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
12043 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
12044 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
12045 and DW_AT_GNU_all_source_call_sites.
12046 (mem_loc_descriptor): Handle ENTRY_VALUE.
12047 (add_src_coords_attributes): Don't add enything if
12048 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
12049 (dwarf2out_abstract_function): Save and clear call_arg_location,
12050 call_site_count and tail_call_site_count around dwarf2out_decl call.
12051 (gen_call_site_die): New function.
12052 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
12053 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
12054 (dwarf2out_function_decl): Clear call_arg_locations,
12055 call_arg_loc_last, set call_site_count and tail_call_site_count
12056 to -1 and free block_map.
12057 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
12058 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
12059 followed by any real instructions.
12060 (dwarf2out_begin_function): Set call_site_count and
12061 tail_call_site_count to 0.
12062 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
12063 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
12064 attempt to force a DIE for it and worst case remove the attribute.
12065 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
12066 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
12067 the decl itself.
12068 * var-tracking.c: Include tm_p.h.
12069 (vt_stack_adjustments): For calls call note_register_arguments.
12070 (argument_reg_set): New variable.
12071 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
12072 ensure the VALUE is resolved.
12073 (call_arguments): New variable.
12074 (prepare_call_arguments): New function.
12075 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
12076 (struct expand_loc_callback_data): Add ignore_cur_loc field.
12077 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
12078 always use the best expression.
12079 (vt_expand_loc): Add ignore_cur_loc argument.
12080 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
12081 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
12082 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
12083 note for all calls.
12084 (vt_add_function_parameter): Use cselib_lookup_from_insn.
12085 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
12086 argument. Don't call cselib_preserve_only_values and
12087 cselib_reset_table.
12088 (note_register_arguments): New function.
12089 (vt_initialize): Compute argument_reg_set. Call
12090 vt_add_function_parameters before processing basic blocks instead of
12091 afterwards. For calls call prepare_call_arguments before calling
12092 cselib_process_insn.
12093 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
12094 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
12095 (var-tracking.o): Depend on $(TM_P_H).
12096 * cfglayout.h (insn_scope): New prototype.
12097 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
12098 * cfglayout.c (insn_scope): No longer static.
12099 * insn-notes.def (CALL_ARG_LOCATION): New.
12100 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
12101 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
12102 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
12103 nothing for DECL_EXTERNAL BLOCK_VARS.
12104
12105 2011-03-16 Alan Modra <amodra@gmail.com>
12106
12107 PR target/45844
12108 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
12109 create invalid offset address for vsx splat insn.
12110 * config/rs6000/predicates.md (splat_input_operand): New.
12111 * config/rs6000/vsx.md (vsx_splat_*): Use it.
12112
12113 2011-03-15 Xinliang David Li <davidxl@google.com>
12114
12115 PR c/47837
12116 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
12117 (normalize_preds): New function.
12118 (is_use_properly_guarded): Normalize def predicates.
12119
12120 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12121
12122 PR target/46788
12123 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
12124 in the output template.
12125
12126 2011-03-15 Richard Guenther <rguenther@suse.de>
12127
12128 PR middle-end/47650
12129 * tree-pretty-print.c (dump_function_declaration): Properly
12130 dump unprototyped and varargs function types.
12131
12132 2011-03-15 Richard Guenther <rguenther@suse.de>
12133
12134 PR tree-optimization/13954
12135 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
12136 and friends.
12137
12138 2011-03-15 Richard Guenther <rguenther@suse.de>
12139
12140 PR tree-optimization/48037
12141 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
12142 selects into BIT_FIELD_REFs.
12143 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
12144 vector select.
12145
12146 2011-03-15 Jakub Jelinek <jakub@redhat.com>
12147
12148 PR tree-optimization/48129
12149 * builtins.c (fold_builtin_snprintf): Convert to type of
12150 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
12151 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
12152
12153 2011-03-15 Richard Guenther <rguenther@suse.de>
12154
12155 PR tree-optimization/41490
12156 * tree-ssa-dce.c (propagate_necessity): Handle returns without
12157 value but with VUSE.
12158 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
12159 return statements.
12160 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
12161 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
12162 * tree-tailcall.c (find_tail_calls): Ignore returns.
12163
12164 2011-03-15 Richard Guenther <rguenther@suse.de>
12165
12166 PR middle-end/48031
12167 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
12168 or variable-indexed array accesses when in gimple form.
12169
12170 2011-03-15 Richard Guenther <rguenther@suse.de>
12171
12172 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
12173
12174 2011-03-15 Alan Modra <amodra@gmail.com>
12175
12176 PR target/48032
12177 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
12178 presume symbol_refs without a symbol_ref_decl are suitably
12179 aligned, nor other trees we may see here. Handle anchor symbols.
12180 (legitimate_constant_pool_address_p): Comment. Add mode param.
12181 Check cmodel=medium addresses. Adjust all calls.
12182 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
12183 creating cmodel=medium optimized access to locals.
12184 * config/rs6000/constraints.md (R): Pass QImode to
12185 legitimate_constant_pool_address_p.
12186 * config/rs6000/predicates.md (input_operand): Pass mode to
12187 legitimate_constant_pool_address_p.
12188 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
12189 Update prototype.
12190
12191 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12192
12193 PR target/48053
12194 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
12195 64-bit constants being loaded into registers other than GPRs such
12196 as loading 0 into a VSX register.
12197
12198 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12199
12200 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
12201
12202 2011-03-14 Jakub Jelinek <jakub@redhat.com>
12203
12204 PR middle-end/47917
12205 * builtins.c (fold_builtin_snprintf): New function.
12206 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
12207 (fold_builtin_4): Likewise.
12208
12209 PR middle-end/38878
12210 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
12211 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
12212 and C - X == X also strip nops from +/-/p+ operand.
12213 When optimizing -X == C, fold C to arg0's type.
12214
12215 PR debug/47946
12216 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
12217 emit it as add_AT_int instead of add_AT_unsigned.
12218
12219 2011-03-14 Tom Tromey <tromey@redhat.com>
12220
12221 * unwind-dw2.c: Include sys/sdt.h if it exists.
12222 (_Unwind_DebugHook): Use STAP_PROBE2.
12223 * config.in, configure: Rebuild.
12224 * configure.ac: Check for sys/sdt.h.
12225
12226 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
12227
12228 * config/i386/i386.md (ROUND_FLOOR): New constant.
12229 (ROUND_CEIL): Ditto.
12230 (ROUND_TRUNC): Ditto.
12231 (ROUND_MXCSR): Ditto.
12232 (ROUND_NO_EXC): Ditto.
12233 (rint<mode>2): Use new defines instead of numerical constants.
12234 (floor<mode>2): Ditto.
12235 (ceil<mode>2): Ditto.
12236 (btrunc<mode>2): Ditto.
12237 * config/i386/i386-builtin-types.def: Define ROUND function type
12238 aliases.
12239 * config/i386/i386.c (enum ix86_builtins): Add
12240 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
12241 (struct builtin_description): Add
12242 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
12243 (ix86_expand_sse_round): New static function.
12244 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
12245 function types.
12246 (ix86_builtin_vectorized_function): Handle
12247 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
12248
12249 2011-03-14 Tom Tromey <tromey@redhat.com>
12250
12251 * c-parser.c (c_parser_asm_string_literal): Clear
12252 warn_overlength_strings.
12253
12254 2011-03-14 Tom Tromey <tromey@redhat.com>
12255
12256 * c-parser.c (disable_extension_diagnostics): Save
12257 warn_overlength_strings.
12258 (restore_extension_diagnostics): Restore warn_overlength_strings.
12259
12260 2011-03-14 Jakub Jelinek <jakub@redhat.com>
12261
12262 * BASE-VER: Change to 4.7.0.
12263
12264 2011-03-14 Richard Guenther <rguenther@suse.de>
12265
12266 PR middle-end/48098
12267 * tree.c (build_vector_from_val): Adjust assert to requirements
12268 and reality.
12269
12270 2011-03-14 Jakub Jelinek <jakub@redhat.com>
12271
12272 PR bootstrap/48102
12273 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
12274
12275 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
12276
12277 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
12278 terms of target_flags_explicit. Adjust copyright year.
12279
12280 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
12281 * config/rs6000/t-freebsd: New file. Add override for
12282 LIB2FUNCS_EXTRA.
12283
12284 2011-03-13 Chris Demetriou <cgd@google.com>
12285
12286 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
12287 (-fno-diagnostics-show-option): this, to reflect current default.
12288 (-Werror=): Update text about -fno-diagnostics-show-option.
12289
12290 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
12291
12292 PR target/48053
12293 * config/rs6000/predicates.md (easy_vector_constant_add_self,
12294 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
12295 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
12296 mode is not V2DImode or V2DFmode.
12297 (vspltis_constant): Do not handle V2DImode and V2DFmode.
12298 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
12299 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
12300 registers to 0.
12301 (movdi_internal64): Likewise.
12302
12303 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
12304
12305 PR tree-optimization/47127
12306 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
12307 parameter.
12308 (set_cloog_options): Same.
12309 (scop_to_clast): Same.
12310 (print_clast_stmt): Do not call cloog_state_malloc and
12311 cloog_state_free.
12312 (print_generated_program): Same.
12313 (gloog): Same.
12314 * graphite-clast-to-gimple.h (cloog_state): Declared.
12315 (scop_to_clast): Adjust declaration.
12316 * graphite.c (cloog_state): Defined here.
12317 (graphite_initialize): Call cloog_state_malloc.
12318 (graphite_finalize): Call cloog_state_free.
12319
12320 2011-03-11 Jason Merrill <jason@redhat.com>
12321
12322 * attribs.c (lookup_attribute_spec): Take const_tree.
12323 * tree.h: Adjust.
12324
12325 2011-03-11 Joseph Myers <joseph@codesourcery.com>
12326
12327 * config/sparc/sparc.c (sparc_option_override): Use
12328 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
12329
12330 2011-03-11 Richard Guenther <rguenther@suse.de>
12331
12332 PR tree-optimization/48067
12333 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
12334 multiplication result will be only used once on the target
12335 stmt.
12336
12337 2011-03-11 Richard Guenther <rguenther@suse.de>
12338
12339 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
12340
12341 2011-03-11 Richard Guenther <rguenther@suse.de>
12342
12343 PR lto/48073
12344 * tree.c (find_decls_types_r): Do not walk types only reachable
12345 from IDENTIFIER_NODEs.
12346
12347 2011-03-11 Jakub Jelinek <jakub@redhat.com>
12348
12349 PR middle-end/48044
12350 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
12351 all vnode->force_output nodes as needed.
12352
12353 2011-03-11 Jason Merrill <jason@redhat.com>
12354
12355 PR c++/48069
12356 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
12357 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
12358
12359 2011-03-11 Martin Jambor <mjambor@suse.cz>
12360
12361 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
12362 cgraph_node.
12363
12364 2011-03-11 Jakub Jelinek <jakub@redhat.com>
12365
12366 PR tree-optimization/48063
12367 * ipa-inline.c (cgraph_decide_inlining): Don't try to
12368 inline functions called once if !tree_can_inline_p (node->callers).
12369
12370 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
12371
12372 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
12373 extra_objs.
12374 * config/score/score3.c: Delete.
12375 * config/score/score3.h: Delete.
12376 * config/score/mul-div.S: Delete.
12377 * config/score/sfp-machine.h: Add new file.
12378 * config/score/constraints.md: Add new file.
12379 * config/score/t-score-softfp: Add new file.
12380 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
12381 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
12382 (score7_extra_constraint): Delete.
12383 (score7_option_override): Remove unused code.
12384 * config/score/score.c: Remove score3 and score5 define and code.
12385 * config/score/score.h: Remove score3 and score5 define and code.
12386 * config/score/score.md: Remove score3 template and unusual insn.
12387 * config/score/score.opt: Remove score3 and score5 options.
12388
12389 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12390
12391 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
12392 when _HPUX_SOURCE is defined.
12393 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
12394
12395 2011-03-10 Jason Merrill <jason@redhat.com>
12396
12397 PR c++/48029
12398 * stor-layout.c (layout_type): Don't set structural equality
12399 on arrays of incomplete type.
12400 * tree.c (type_hash_eq): Handle comparing them properly.
12401
12402 2011-03-10 Jakub Jelinek <jakub@redhat.com>
12403
12404 PR debug/48043
12405 * config/s390/s390.c (s390_delegitimize_address): Make sure the
12406 result mode matches original rtl mode.
12407
12408 2011-03-10 Nick Clifton <nickc@redhat.com>
12409
12410 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
12411 (andsi3, andsi3_flags): Fix timings for three operand alternative.
12412
12413 2011-03-09 Jakub Jelinek <jakub@redhat.com>
12414
12415 PR rtl-optimization/47866
12416 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
12417 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
12418 if target wasn't scalar.
12419 * function.c (assign_stack_temp_for_type): Assert that neither
12420 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
12421 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
12422 macro.
12423 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
12424
12425 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12426
12427 * config/s390/s390-protos.h (s390_label_align): New prototype.
12428 * config/s390/s390.c (s390_label_align): New function.
12429 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
12430
12431 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
12432
12433 PR target/47755
12434 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
12435 V2DI/V2DF constants. Only all 0's or all 1's are easy.
12436 (output_vec_const_move): Ditto.
12437
12438 2011-03-08 Anatoly Sokolov <aesok@post.ru>
12439
12440 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
12441 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
12442 * config/mips/mips.c (mips_preferred_reload_class): Make static.
12443 Change 'rclass' argument and result type to reg_class_t.
12444 (TARGET_PREFERRED_RELOAD_CLASS): Define.
12445
12446 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
12447
12448 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12449 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
12450 (TARGET_MEMORY_MOVE_COST): Define.
12451 (avr_register_move_cost, avr_memory_move_cost): New Functions.
12452
12453 2011-03-08 Jakub Jelinek <jakub@redhat.com>
12454
12455 PR debug/47881
12456 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
12457 removed anything.
12458
12459 PR tree-optimization/48022
12460 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
12461 for EQ/NE_EXPR.
12462
12463 2011-03-07 Jakub Jelinek <jakub@redhat.com>
12464
12465 PR debug/47991
12466 * var-tracking.c (find_use_val): Return NULL for
12467 cui->sets && cui->store_p BLKmode MEMs.
12468
12469 2011-03-07 Anatoly Sokolov <aesok@post.ru>
12470
12471 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
12472 Remove.
12473 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
12474 xstormy16_print_operand_address): Remove.
12475 * config/stormy16/stormy16.c (xstormy16_print_operand,
12476 xstormy16_print_operand_address): Make static.
12477 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12478
12479 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
12480
12481 PR target/47862
12482 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12483 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
12484 before definition.
12485
12486 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
12487
12488 PR bootstrap/48000
12489 * cfgloopmanip.c (fix_bb_placements): Return immediately
12490 if FROM is BASE_LOOP's header.
12491
12492 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
12493
12494 * gimplify.c (gimplify_function_tree): Fix building calls
12495 to __builtin_return_address.
12496
12497 2011-03-07 Alan Modra <amodra@gmail.com>
12498
12499 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
12500 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
12501 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
12502 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
12503 return_mode args.
12504 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
12505 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
12506 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
12507 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
12508 * config/rs6000/rs6000.c
12509 (rs6000_elf_end_indicate_exec_stack): Rename to..
12510 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
12511 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
12512 (rs6000_file_start): ..here.
12513 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
12514 file scope variables.
12515 (call_ABI_of_interest): New function.
12516 (init_cumulative_args): Set above vars when function return value
12517 is a float, vector, or small struct.
12518 (rs6000_function_arg_advance_1): Likewise for function args.
12519 (rs6000_va_start): Set rs6000_passes_float if variable arg function
12520 references float args.
12521
12522 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
12523
12524 * doc/cfg.texi: Remove "See" before @ref.
12525 * doc/invoke.texi: Likewise.
12526
12527 2011-03-05 Jason Merrill <jason@redhat.com>
12528
12529 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
12530
12531 2011-03-05 Anthony Green <green@moxielogic.com>
12532
12533 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
12534
12535 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
12536
12537 PR rtl-optimization/47899
12538 * cfgloopmanip.c (fix_bb_placements): Fix first argument
12539 to flow_loop_nested_p when moving the loop upward.
12540
12541 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
12542
12543 PR target/47719
12544 * arm.md (movhi_insn_arch4): Accept any immediate constant.
12545
12546 2011-03-05 Jakub Jelinek <jakub@redhat.com>
12547
12548 PR tree-optimization/47967
12549 * ipa-cp.c (build_const_val): Return NULL instead of creating
12550 VIEW_CONVERT_EXPR for mismatching sizes.
12551 (ipcp_create_replace_map): Return NULL if build_const_val failed.
12552 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
12553 give up on versioning.
12554
12555 2011-03-05 Alan Modra <amodra@gmail.com>
12556
12557 PR target/47986
12558 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12559 full cmodel medium/large lo_sum + high addresses.
12560
12561 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12562
12563 * config/s390/s390.c (s390_decompose_address): Reject non-literal
12564 pool references in UNSPEC_LTREL_OFFSET.
12565
12566 2011-03-04 Jan Hubicka <jh@suse.cz>
12567
12568 PR lto/47497
12569 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
12570 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
12571 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
12572 Add node pointers.
12573 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
12574 cgraph_add_thunk): Add node pointers.
12575 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
12576 associated to right node.
12577 (input_node): Update use of cgraph_same_body_alias
12578 and cgraph_add_thunk.
12579
12580 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
12581
12582 * config/i386/i386.opt (mprefer-avx128): New flag.
12583 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
12584 modes when the flag -mprefer-avx128 is on.
12585
12586 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
12587
12588 * dwarf2out.c (compare_loc_operands): Fix address handling.
12589
12590 2011-03-04 Alan Modra <amodra@gmail.com>
12591
12592 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
12593
12594 2011-03-04 Richard Guenther <rguenther@suse.de>
12595
12596 PR middle-end/47968
12597 * expmed.c (extract_bit_field_1): Prefer vector modes that
12598 vec_extract patterns can handle.
12599
12600 2011-03-04 Richard Guenther <rguenther@suse.de>
12601
12602 PR middle-end/47975
12603 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
12604
12605 2011-03-04 Richard Henderson <rth@redhat.com>
12606
12607 * explow.c (emit_stack_save): Remove 'after' parameter.
12608 (emit_stack_restore): Likewise.
12609 * expr.h: Update to match.
12610 * builtins.c, calls.c, stmt.c: Likewise.
12611 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
12612 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
12613 * function.c (expand_function_end): Insert the emit_stack_save
12614 sequence before parm_birth_insn instead of after.
12615
12616 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
12617
12618 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
12619 (ssse3_pmaddubsw128): Ditto.
12620 (ssse3_pmaddubsw): Ditto.
12621
12622 2011-03-03 Steve Ellcey <sje@cup.hp.com>
12623
12624 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
12625
12626 2011-03-03 Jakub Jelinek <jakub@redhat.com>
12627
12628 PR c/47963
12629 * gimplify.c (omp_add_variable): Only call omp_notice_variable
12630 on TYPE_SIZE_UNIT if it is a DECL.
12631
12632 PR debug/47283
12633 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
12634 first operand is not is_gimple_mem_ref_addr, try to fold it.
12635 If the operand still isn't is_gimple_mem_ref_addr, clear
12636 MEM_EXPR on op0.
12637
12638 2011-03-03 Richard Guenther <rguenther@suse.de>
12639
12640 PR middle-end/47283
12641 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
12642 match comment.
12643 (refs_may_alias_p_1): For release branches return true if
12644 we are confused by our input.
12645
12646 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12647
12648 * config/s390/s390.c (s390_function_value): Rename to ...
12649 (s390_function_and_libcall_value): ... this.
12650 (s390_function_value): New function.
12651 (s390_libcall_value): New function.
12652 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
12653 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
12654 target macro definitions.
12655 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
12656
12657 2011-03-02 Joseph Myers <joseph@codesourcery.com>
12658
12659 * config/i386/freebsd64.h (CC1_SPEC): Define.
12660 * config/i386/linux64.h (CC1_SPEC): Define.
12661 * config/i386/x86-64.h (CC1_SPEC): Don't define.
12662
12663 2011-03-02 Anatoly Sokolov <aesok@post.ru>
12664
12665 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12666 Remove.
12667 * config/stormy16/stormy16.c: Include reload.h.
12668 (xstormy16_memory_move_cost): New function.
12669 (TARGET_MEMORY_MOVE_COST): Define.
12670
12671 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
12672
12673 PR rtl-optimization/47925
12674 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
12675 with side effects. Remove the more-specific check for volatile asms.
12676
12677 2011-03-02 Alan Modra <amodra@gmail.com>
12678
12679 PR target/47935
12680 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
12681 toc relative addresses for valid offsets.
12682
12683 2011-03-01 Richard Guenther <rguenther@suse.de>
12684
12685 PR tree-optimization/47890
12686 * tree-vect-loop.c (get_initial_def_for_induction): Set
12687 related stmt properly.
12688
12689 2011-03-01 Richard Guenther <rguenther@suse.de>
12690
12691 PR lto/47924
12692 * lto-streamer.c (lto_record_common_node): Also register
12693 the canonical type.
12694
12695 2011-03-01 Richard Guenther <rguenther@suse.de>
12696
12697 PR lto/46911
12698 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12699 Do not stream DECL_ABSTRACT_ORIGIN.
12700 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12701 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12702 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12703 Do not stream DECL_ABSTRACT_ORIGIN.
12704 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12705 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12706
12707 2011-02-28 Anatoly Sokolov <aesok@post.ru>
12708
12709 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
12710 FUNCTION_VALUE_REGNO_P): Remove.
12711 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
12712 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
12713 Add 'outgoing' argument.
12714 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
12715 function.
12716 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12717 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12718
12719 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
12720
12721 PR debug/28047
12722 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12723 (lookup_filename): Likewise.
12724 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
12725
12726 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
12727 Jakub Jelinek <jakub@redhat.com>
12728
12729 PR middle-end/47893
12730 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12731 (assign_stack_local_1): Change last argument type to int.
12732 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12733 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
12734 don't record padding space into frame_space_list nor use those areas.
12735 (assign_stack_local): Adjust caller.
12736 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12737 of assign_stack_local, pass 0 as last argument.
12738 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12739 callers.
12740
12741 2011-02-28 Jakub Jelinek <jakub@redhat.com>
12742
12743 PR debug/47283
12744 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12745 Use target address_mode and pointer_mode hooks instead of hardcoded
12746 Pmode and ptr_mode. Handle some simple cases of extending if
12747 POINTERS_EXTEND_UNSIGNED < 0.
12748 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12749 Call convert_debug_memory_address.
12750 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12751 convert_debug_memory_address.
12752
12753 PR middle-end/46790
12754 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12755 * configure: Regenerated.
12756 * config.in: Regenerated.
12757 * varasm.c (default_function_section): Return NULL
12758 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12759
12760 2011-02-28 Martin Jambor <mjambor@suse.cz>
12761
12762 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12763 the description to match the printed values.
12764
12765 2011-02-28 Richard Guenther <rguenther@suse.de>
12766
12767 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12768 of the copied scope tree.
12769
12770 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12771
12772 * doc/extend.texi (Function Attributes): Avoid deeply (and
12773 wrongly) nested tables.
12774
12775 2011-02-27 Jakub Jelinek <jakub@redhat.com>
12776
12777 PR middle-end/47903
12778 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12779 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12780 r isn't op0 nor op1.
12781
12782 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
12783
12784 * config/avr/avr.md: Remove magic comment for emacs.
12785
12786 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
12787
12788 PR target/45261
12789 * config/avr/avr.c (avr_option_override): Use error on bad options.
12790 (avr_help): New function.
12791 (TARGET_HELP): Define.
12792
12793 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
12794
12795 PR target/42240
12796 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12797 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12798
12799 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
12800
12801 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12802 (ARM Options): Ditto.
12803 (i386 and x86-64 Options): Ditto.
12804 (RX Options): Ditto.
12805 (SPARC Options): Ditto.
12806
12807 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
12808
12809 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12810 FreeBSD 6 and later. Generally use cpu generic.
12811
12812 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
12813
12814 * doc/cpp.texi: Update copyright years.
12815
12816 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
12817
12818 PR target/46898
12819 * config/lm32/lm32.md (ashrsi3): Added needed variable.
12820
12821 2011-02-25 Jon Beniston <jon@beniston.com>
12822
12823 PR target/46898
12824 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12825 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12826 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12827 (lm32_block_move_inline): Add type cast to remove warning.
12828 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12829 (gen_int_relational): Move declarations to start of function.
12830
12831 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
12832
12833 PR tree-optimization/45470
12834 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12835 can throw internally only.
12836 * tree-vect-stmts.c (vectorizable_call): Likewise.
12837
12838 2011-02-24 Anatoly Sokolov <aesok@post.ru>
12839
12840 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12841 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12842 * config/stormy16/stormy16-protos.h
12843 (xstormy16_preferred_reload_class): Remove.
12844 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12845 static. Change 'rclass' argument and return type to reg_class_t.
12846 (TARGET_PREFERRED_RELOAD_CLASS,
12847 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12848
12849 2011-02-24 Richard Guenther <rguenther@suse.de>
12850
12851 * lto-streamer-in.c (input_bb): Do not find referenced vars
12852 in debug statements.
12853
12854 2011-02-23 Jason Merrill <jason@redhat.com>
12855
12856 * common.opt (fabi-version): Document v5 and v6.
12857
12858 2011-02-23 Richard Guenther <rguenther@suse.de>
12859
12860 PR tree-optimization/47849
12861 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12862
12863 2011-02-23 Jie Zhang <jie@codesourcery.com>
12864
12865 * opts-common.c (decode_cmdline_option): Print empty string
12866 argument as "" in decoded->orig_option_with_args_text.
12867 * gcc.c (execute): Print empty string argument as ""
12868 in the verbose output.
12869 (do_spec_1): Keep empty string argument.
12870
12871 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
12872
12873 * config.gcc: Declare score-* and crx-* obsolete.
12874
12875 2011-02-23 Jie Zhang <jie@codesourcery.com>
12876
12877 PR rtl-optimization/47763
12878 * web.c (web_main): Ignore naked clobber when replacing register.
12879
12880 2011-02-22 Anatoly Sokolov <aesok@post.ru>
12881
12882 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12883 Remove.
12884
12885 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
12886
12887 PR doc/47848
12888 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12889
12890 2011-02-22 Mike Stump <mikestump@comcast.net>
12891
12892 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12893 assembler.
12894 * configure: Regenerate.
12895
12896 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
12897
12898 PR rtl-optimization/46002
12899 * ira-color.c (update_copy_costs): Change class intersection
12900 test to reg_class_contents[] test of 'hard_regno'.
12901
12902 2011-02-21 Joseph Myers <joseph@codesourcery.com>
12903
12904 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12905 than Driver option.
12906 * config/hpux11.opt (mt): Likewise.
12907 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12908 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12909 * config/vax/elf.opt (mno-asm-pic): Likewise.
12910 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12911
12912 2011-02-21 Mike Stump <mikestump@comcast.net>
12913
12914 PR target/47822
12915 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12916 tree so we can get save the type.
12917 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12918 for CFString instead of trying to use past the end of the builtins.
12919 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12920 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12921 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12922 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12923 Rename to darwin_builtin_cfstring.
12924 (darwin_init_cfstring_builtins): Return the built type.
12925
12926 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
12927
12928 PR target/47840
12929 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12930 (_mm256_insert_epi64): Use _mm_insert_epi64.
12931
12932 2011-02-21 Anatoly Sokolov <aesok@post.ru>
12933
12934 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12935 * config/stormy16/stormy16-protos.h
12936 (xstormy16_mode_dependent_address_p): Remove.
12937 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12938 Make static. Change return type to bool. Change argument type to
12939 const_rtx. Remove dead code.
12940 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12941
12942 2011-02-21 Richard Guenther <rguenther@suse.de>
12943
12944 PR lto/47820
12945 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12946 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12947 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12948 TUs context.
12949 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12950 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12951
12952 2011-02-20 Richard Guenther <rguenther@suse.de>
12953
12954 PR lto/47822
12955 * tree.c (free_lang_data_in_decl): Clean builtins from
12956 the TU decl BLOCK_VARS.
12957
12958 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
12959
12960 PR debug/47620
12961 PR debug/47630
12962 * haifa-sched.c (fix_tick_ready): Skip tick computation
12963 for debug insns.
12964
12965 2011-02-19 Richard Guenther <rguenther@suse.de>
12966
12967 PR lto/47647
12968 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12969 Remove lazy BLOCK_VARS streaming.
12970 (lto_input_ts_block_tree_pointers): Likewise.
12971 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12972
12973 2011-02-19 Joseph Myers <joseph@codesourcery.com>
12974
12975 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12976
12977 2011-02-19 Joseph Myers <joseph@codesourcery.com>
12978
12979 * config/i386/biarch32.h, config/i386/mach.h,
12980 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12981
12982 2011-02-19 Jakub Jelinek <jakub@redhat.com>
12983
12984 PR target/47800
12985 * config/i386/i386.md (peephole2 for shift and plus): Use
12986 operands[1] original mode in the first insn.
12987
12988 2011-02-18 Mike Stump <mikestump@comcast.net>
12989
12990 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
12991
12992 2011-02-18 Jan Hubicka <jh@suse.cz>
12993
12994 PR middle-end/47788
12995 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12996 to zero when the function is not inlinable at all.
12997
12998 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12999
13000 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
13001 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13002 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
13003 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
13004 * config/pa/t-pa64: Likewise.
13005 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
13006
13007 2011-02-18 Jakub Jelinek <jakub@redhat.com>
13008
13009 PR driver/47787
13010 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
13011
13012 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13013
13014 PR target/47792
13015 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
13016
13017 2011-02-18 Anatoly Sokolov <aesok@post.ru>
13018
13019 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
13020 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
13021 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
13022 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
13023 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
13024 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
13025 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
13026 m32r_load_postinc_p, m32r_store_preinc_predec_p,
13027 m32r_legitimate_address_p): New functions.
13028 * config/m32r/constraints.md (constraint "S"): Don't use
13029 STORE_PREINC_PREDEC_P.
13030 (constraint "U"): Don't use LOAD_POSTINC_P.
13031
13032 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
13033
13034 PR rtl-optimization/46178
13035 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
13036 compute ira_hard_regno_cover_class[].
13037
13038 2011-02-18 Richard Guenther <rguenther@suse.de>
13039
13040 PR lto/47798
13041 * lto-streamer.h (lto_global_var_decls): Declare.
13042 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
13043 statics for global var processing.
13044
13045 2011-02-18 Richard Guenther <rguenther@suse.de>
13046
13047 PR tree-optimization/47737
13048 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
13049 edge dominance check.
13050
13051 2011-02-18 Jakub Jelinek <jakub@redhat.com>
13052
13053 PR debug/47780
13054 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
13055 avoid invalid rtx sharing.
13056
13057 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
13058
13059 * doc/cpp.texi (Obsolete Features): Add background on the
13060 origin of assertions.
13061
13062 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
13063
13064 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
13065 objc_abi == 2.
13066 * config/darwin.c (output_objc_section_asm_op): Added support for
13067 ABI v1 and v2.
13068 (is_objc_metadata): New.
13069 (darwin_objc2_section): New.
13070 (darwin_objc1_section): New.
13071 (machopic_select_section): Added support for ABI v1 and v2.
13072 (darwin_emit_objc_zeroed): New.
13073 (darwin_output_aligned_bss): Detect objc metadata and treat it
13074 appropriately.
13075 (darwin_asm_output_aligned_decl_common): Same.
13076 (darwin_asm_output_aligned_decl_local): Same.
13077 * config/darwin-sections.def: Updated for ABI v1 and v2.
13078 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
13079 compiling Objective-C code for the NeXT runtime, default to using
13080 ABI version 0 for 32-bit, and version 2 for 64-bit.
13081
13082 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13083
13084 * common.opt (optimize_fast): New Variable.
13085 * opts.c (default_options_optimization): Use opts->x_optimize_fast
13086 instead of local variable ofast.
13087
13088 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
13089
13090 * doc/invoke.texi (fobjc-abi-version): Documented.
13091 (fobjc-nilcheck): Documented.
13092 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
13093 version.
13094
13095 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13096
13097 PR driver/47390
13098 * common.opt (export-dynamic): New Driver option.
13099 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
13100
13101 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13102
13103 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
13104
13105 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
13106 Jan Hubicka <jh@suse.cz>
13107
13108 PR debug/47106
13109 PR debug/47402
13110 * cfgexpand.c (account_used_vars_for_block): Remove.
13111 (estimated_stack_frame_size): Use referenced vars.
13112 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
13113 that were referenced in the original function. Test src_fn
13114 rather than cfun. Drop redundant get_var_ann.
13115 (setup_one_parameter): Drop redundant get_var_ann.
13116 (declare_return_variable): Likewise.
13117 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
13118 (copy_arguments_for_versioning): Drop redundant get_var_ann.
13119 * ipa-inline.c (compute_inline_parameters): Do not compute
13120 disregard_inline_limits here.
13121 (compute_inlinable_for_current, pass_inlinable): New.
13122 (pass_inline_parameters): Require PROP_referenced_vars.
13123 * cgraphunit.c (cgraph_process_new_functions): Don't run
13124 compute_inline_parameters explicitly unless function is in SSA form.
13125 (cgraph_analyze_function): Set .disregard_inline_limits.
13126 * tree-sra.c (convert_callers): Compute inliner parameters
13127 only for functions already in SSA form.
13128
13129 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13130
13131 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
13132 -mlittle-endian-data.
13133
13134 2011-02-17 Joseph Myers <joseph@codesourcery.com>
13135
13136 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
13137 -mno-fpu, not -fpu and -no-fpu.
13138 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
13139 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
13140
13141 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
13142
13143 PR target/43653
13144 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
13145 input reload with PLUS RTX.
13146
13147 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13148
13149 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
13150 of InverseVar(MDMX).
13151
13152 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13153
13154 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
13155 --m4-340.
13156
13157 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13158
13159 * config/mn10300/mn10300.opt (mno-crt0): New.
13160
13161 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13162
13163 * config/m68k/uclinux.opt (static-libc): New Driver option.
13164
13165 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13166
13167 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
13168
13169 2011-02-16 Joseph Myers <joseph@codesourcery.com>
13170
13171 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
13172 %{muser-extend-enabled}.
13173
13174 2011-02-16 Richard Guenther <rguenther@suse.de>
13175
13176 PR tree-optimization/47738
13177 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
13178 the TODO from tree_predictive_commoning.
13179
13180 2011-02-15 Jeff Law <law@redhat.com>
13181
13182 Revert
13183 2011-01-25 Jeff Law <law@redhat.com>
13184
13185 PR rtl-optimization/37273
13186 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13187 handle them like argument loads from stack slots. Do not double
13188 count memory for memory constants and argument loads from stack slots.
13189
13190 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
13191
13192 PR middle-end/47725
13193 * combine.c (cant_combine_insn_p): Revert the last change.
13194
13195 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
13196
13197 PR target/47755
13198 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
13199 mode for vector constants. Remove code that checks for TImode.
13200
13201 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
13202
13203 PR debug/47106
13204 PR debug/47402
13205 * cgraph.h (compute_inline_parameters): Return void.
13206 * ipa-inline.c (compute_inline_parameters): Adjust.
13207
13208 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
13209
13210 PR debug/47106
13211 PR debug/47402
13212 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
13213 rather than decl.
13214 * cfgexpand.c (estimated_stack_frame_size): Likewise.
13215 * ipa-inline.c (compute_inline_parameters): Adjust.
13216
13217 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
13218
13219 PR debug/47106
13220 PR debug/47402
13221 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
13222 Adjust all users. Pass FN to...
13223 * tree-flow-inline.h (first_referenced_var): ... this. Add
13224 fn argument.
13225 * ipa-struct-reorg.c: Adjust.
13226 * tree-dfa.c: Adjust.
13227 * tree-into-ssa.c: Adjust.
13228 * tree-sra.c: Adjust.
13229 * tree-ssa-alias.c: Adjust.
13230 * tree-ssa-live.c: Adjust.
13231 * tree-ssa.c: Adjust.
13232 * tree-ssanames.c: Adjust.
13233 * tree-tailcall.c: Adjust.
13234
13235 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
13236
13237 PR debug/47106
13238 PR debug/47402
13239 * tree-flow.h (referenced_var_lookup): Add fn parameter.
13240 Adjust all callers.
13241 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
13242 * tree-flow-inline.h: Adjust.
13243 * gimple-pretty-print.c: Adjust.
13244 * tree-into-ssa.c: Adjust.
13245 * tree-ssa.c: Adjust.
13246 * cfgexpand.c: Adjust.
13247
13248 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
13249
13250 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
13251 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13252 (EXTRA_CONSTRAINT): Delete.
13253 * config/iq2000/constraints.md: New file.
13254 * config/iq2000/iq2000.md: Include it.
13255 (define_insn ""): Delete.
13256 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
13257 unsupported constraint letters from patterns.
13258 (call_value, call_value_internal1): Likewise.
13259 (call_value_multiple_internal1): Likewise.
13260
13261 2011-02-15 Nick Clifton <nickc@redhat.com>
13262
13263 * config/mn10300/mn10300.c: Include tm-constrs.h.
13264 (struct liw_data): New data structure describing an LIW candidate
13265 instruction.
13266 (extract_bundle): Use struct liw_data. Allow small integer
13267 operands for some instructions.
13268 (check_liw_constraints): Use struct liw_data. Remove swapped
13269 parameter. Add comments describing the checks. Fix bug when
13270 assigning the source of liw1 to the source of liw2.
13271 (liw_candidate): Delete. Code moved into extract_bundle.
13272 (mn10300_bundle_liw): Use struct liw_data. Check constraints
13273 before swapping.
13274 * config/mn10300/predicates.md (liw_operand): New predicate.
13275 Allows registers and small integer constants.
13276 * config/mn10300/constraints.md (O): New constraint. Accetps
13277 integers in the range -8 to +7 inclusive.
13278 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
13279 for moving a small integer into a register. Give this alternative
13280 LIW attributes.
13281 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
13282 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
13283 using the J,K,L and M constraints,
13284 (liw): Remove SI mode on second operands to allow for HI and QI
13285 mode values.
13286 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
13287 instruction.
13288
13289 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
13290
13291 PR middle-end/47725
13292 * combine.c (cant_combine_insn_p): Check zero/sign extended
13293 hard registers.
13294
13295 2011-02-15 Richard Guenther <rguenther@suse.de>
13296
13297 PR tree-optimization/47743
13298 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
13299 for a non-type-compatible VN lookup bail out.
13300
13301 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
13302
13303 * config/fr30/constraints.md: New file.
13304 * config/fr30/fr30.md: Include it.
13305 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
13306 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13307 (EXTRA_CONSTRAINT): Delete.
13308
13309 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
13310
13311 * config/frv/constraints.md: New file.
13312 * config/frv/predicates.md: Include it.
13313 * config/frv/frv.c (reg_class_from_letter): Delete.
13314 (frv_option_override): Don't initialize it.
13315 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
13316 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
13317 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
13318 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
13319 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
13320 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13321 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
13322 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
13323 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
13324 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
13325 (REG_CLASS_FROM_CONSTRAINT): Delete.
13326
13327 2011-02-15 Jakub Jelinek <jakub@redhat.com>
13328
13329 PR middle-end/47581
13330 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
13331 if frame size is 0 in a leaf function.
13332
13333 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13334
13335 PR pch/14940
13336 * config/alpha/host-osf.c: New file.
13337 * config/alpha/x-osf: New file.
13338 * config.host (alpha*-dec-osf*): Use it.
13339
13340 2011-02-14 Anatoly Sokolov <aesok@post.ru>
13341
13342 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13343 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
13344 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
13345 (rx_mode_dependent_address_p): ...this. Make static. Change argument
13346 type to const_rtx.
13347 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13348
13349 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
13350
13351 * config/stormy16/constraints.md: New file.
13352 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
13353 Use satisfies_constraint_Q and satisfies_constraint_R.
13354 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
13355 Delete.
13356 (xstormy16_legitiamte_address_p): Declare.
13357 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
13358 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13359 (EXTRA_CONSTRAINT): Delete.
13360 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
13361 Un-staticize.
13362 (xstormy16_extra_constraint_p): Delete.
13363
13364 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
13365
13366 PR tree-optimization/46494
13367 * loop-unroll.c (split_edge_and_insert): Adjust comment.
13368 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
13369 (pass_rtl_loop_done): Add TODO_verify_flow.
13370 * fwprop.c (pass_rtl_fwprop): Likewise.
13371 * modulo-sched.c (pass_sms): Likewise.
13372 * tree-ssa-dom.c (pass_dominator): Likewise.
13373 * tree-ssa-loop-ch.c (pass_ch): Likewise.
13374 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
13375 (pass_tree_loop_done): Likewise.
13376 * tree-ssa-pre.c (execute_pre): Likewise.
13377 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
13378 * tree-ssa-sink.c (pass_sink_code): Likewise.
13379 * tree-vrp.c (pass_vrp): Likewise.
13380
13381 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
13382
13383 * config/v850/constraints.md: New file.
13384 * config/v850/v850.md: Include it.
13385 * config/v850/predicates.md (reg_or_0_operand): Use
13386 satisfies_constraint_G.
13387 (special_symbolref_operand): Use satisfies_constraint_K.
13388 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
13389 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13390 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
13391 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
13392 (EXTRA_CONSTRAINT): Delete.
13393 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
13394 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
13395 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
13396
13397 2011-02-14 Anatoly Sokolov <aesok@post.ru>
13398
13399 PR target/47696
13400 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
13401 description.
13402
13403 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
13404
13405 * config/mcore/constraints.md: New file.
13406 * config/mcore/mcore.md: Include it.
13407 * config/mcore/mcore.c (reg_class_from_letter): Delete.
13408 * config/mcore/mcore.h (reg_class_from_letter): Delete.
13409 (REG_CLASS_FROM_LETTER): Delete.
13410 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
13411 insn_const_int_ok_for_constraint.
13412 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
13413 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
13414 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
13415 (EXTRA_CONSTRAINT): Delete.
13416
13417 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13418
13419 PR ada/41929
13420 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
13421 (IS_SIGHANDLER): Define.
13422 (sparc64_is_sighandler): New function, split off from
13423 sparc64_fallback_frame_state.
13424 (sparc_is_sighandler): New function, split off from
13425 sparc_fallback_frame_state.
13426 (sparc64_fallback_frame_state): Merge with ...
13427 (sparc_fallback_frame_state): ... this into ...
13428 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
13429 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
13430 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
13431 stack instead of hardcoded offsets.
13432
13433 2011-02-14 Andriy Gapon <avg@freebsd.org>
13434
13435 PR target/45808
13436 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
13437
13438 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13439
13440 * configure: Regenerate.
13441
13442 2011-02-12 Joseph Myers <joseph@codesourcery.com>
13443
13444 PR driver/45731
13445 * gcc.c (asm_options): Correct spec matching --target-help.
13446
13447 2011-02-12 Martin Jambor <mjambor@suse.cz>
13448
13449 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
13450 to gimple call error.
13451
13452 2011-02-12 Mike Stump <mikestump@comcast.net>
13453
13454 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
13455 comments in backslash regions.
13456
13457 2011-02-12 Mike Stump <mikestump@comcast.net>
13458 Jakub Jelinek <jakub@redhat.com>
13459 Iain Sandoe <iains@gcc.gnu.org>
13460
13461 PR target/47324
13462 * dwarf2out.c (output_cfa_loc): When required, apply the
13463 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
13464 (output_loc_sequence): Likewise.
13465 (output_loc_operands_raw): Likewise.
13466 (output_loc_sequence_raw): Likewise.
13467 (output_cfa_loc): Likewise.
13468 (output_loc_list): Suppress register number adjustment when
13469 calling output_loc_sequence()
13470 (output_die): Likewise.
13471
13472 2011-02-12 Anatoly Sokolov <aesok@post.ru>
13473
13474 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13475 Remove macros.
13476 * config/xtensa/xtensa.c (xtensa_register_move_cost,
13477 xtensa_memory_move_cost): New functions.
13478 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
13479
13480 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
13481
13482 PR lto/47225
13483 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
13484 in the current directory.
13485 * configure: Rebuilt.
13486
13487 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
13488
13489 * config/darwin.c (darwin_override_options): Add a hunk missed
13490 from the commit of r168571. Trim comment line lengths and
13491 correct indents of the preceding block.
13492
13493 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
13494
13495 * gcc.c (driver_handle_option): Concatenate the argument to -F with
13496 the switch.
13497
13498 2011-02-11 Joseph Myers <joseph@codesourcery.com>
13499
13500 * common.opt (nostartfiles): New Driver option.
13501
13502 2011-02-11 Xinliang David Li <davidxl@google.com>
13503
13504 PR tree-optimization/47707
13505 * tree-chrec.c (convert_affine_scev): Keep type precision.
13506
13507 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
13508
13509 PR tree-optimization/47420
13510 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
13511
13512 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
13513
13514 PR rtl-optimization/47614
13515 * rtl.h (check_for_inc_dec): Declare.
13516 * dse.c (check_for_inc_dec): Externalize...
13517 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
13518 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
13519
13520 2011-02-11 Joseph Myers <joseph@codesourcery.com>
13521
13522 PR driver/47678
13523 * gcc.c (main): Do not compile inputs if there were errors in
13524 option handling.
13525 * opts-common.c (read_cmdline_option): Check for wrong language
13526 after other error checks.
13527
13528 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
13529
13530 * cgraph.c: Fix comment typos.
13531 * cgraph.h: Likewise.
13532 * cgraphunit.c: Likewise.
13533 * ipa-cp.c: Likewise.
13534 * ipa-inline.c: Likewise.
13535 * ipa-prop.c: Likewise.
13536 * ipa-pure-const.c: Likewise.
13537 * ipa-ref.c: Likewise.
13538 * ipa-reference.c: Likewise.
13539
13540 2011-02-11 Jakub Jelinek <jakub@redhat.com>
13541
13542 PR debug/47684
13543 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
13544
13545 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13546
13547 PR testsuite/47400
13548 * doc/sourcebuild.texi (Require Support): Document
13549 dg-require-ascii-locale.
13550
13551 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
13552
13553 * doc/lto.texi (Write summary): Fix missing parentheses.
13554
13555 2011-02-10 DJ Delorie <dj@redhat.com>
13556
13557 * config/m32c/m32c.c (m32c_option_override): Disable
13558 -fcombine-stack-adjustments until flag value tracking and compare
13559 optimization can be rewritten.
13560
13561 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
13562
13563 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
13564 PROCESSOR_POWER7.
13565 (PROCESSOR_DEFAULT64): Likewise.
13566
13567 2011-02-10 Richard Henderson <rth@redhat.com>
13568
13569 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
13570 change from 2011-02-03.
13571 * config/rx/rx.c (flags_from_code): Likewise.
13572 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
13573 is valid, n/pz otherwise.
13574 (rx_select_cc_mode): Return CCmode if Y is not zero.
13575
13576 2011-02-10 Richard Guenther <rguenther@suse.de>
13577
13578 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
13579
13580 2011-02-10 Richard Guenther <rguenther@suse.de>
13581
13582 PR tree-optimization/47677
13583 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
13584
13585 2011-02-10 Jakub Jelinek <jakub@redhat.com>
13586
13587 PR target/47665
13588 * combine.c (make_compound_operation): Only change shifts into
13589 multiplication for SCALAR_INT_MODE_P.
13590
13591 2011-02-10 Jie Zhang <jie@codesourcery.com>
13592
13593 PR testsuite/47622
13594 Revert
13595 2011-02-05 Jie Zhang <jie@codesourcery.com>
13596 PR debug/42631
13597 * web.c (entry_register): Don't clobber the number of the
13598 first uninitialized reference in used[].
13599
13600 2011-02-09 Richard Guenther <rguenther@suse.de>
13601
13602 PR tree-optimization/47664
13603 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
13604 all edges again.
13605
13606 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
13607
13608 PR target/46481
13609 PR target/47032
13610 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
13611 PROCESSOR_POWER7.
13612 (PROCESSOR_DEFAULT64): Same.
13613 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
13614
13615 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13616
13617 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
13618
13619 2011-02-09 Martin Jambor <mjambor@suse.cz>
13620
13621 PR middle-end/45505
13622 * tree-sra.c (struct access): New flags grp_scalar_read and
13623 grp_scalar_write. Changed description of assignment read and write
13624 flags.
13625 (dump_access): Dump new flags, reorder all of them.
13626 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
13627 to detect multiple scalar reads.
13628 (analyze_access_subtree): Use the new scalar read write flags instead
13629 of the old flags. Adjusted comments.
13630
13631 2011-02-08 DJ Delorie <dj@redhat.com>
13632
13633 PR target/47548
13634 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
13635 patterns.
13636
13637 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13638
13639 * config/m68k/uclinux.opt: New.
13640 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
13641
13642 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13643
13644 * config/cris/elf.opt (sim): New Driver option.
13645
13646 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13647
13648 * config/xtensa/elf.opt: New.
13649 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
13650
13651 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13652
13653 * config/vax/elf.opt: New.
13654 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
13655
13656 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13657
13658 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
13659
13660 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13661
13662 * config/gnu-user.opt: New.
13663 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
13664 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
13665 *-*-uclinux*): Use gnu-user.opt.
13666
13667 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
13668
13669 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
13670 * config/i386/gnu.h (CPP_SPEC): Likewise.
13671
13672 2011-02-08 Ian Lance Taylor <iant@google.com>
13673
13674 * common.opt (fcx-limited-range): Add SetByCombined flag.
13675 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
13676 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
13677 (fassociative-math, freciprocal-math): Likewise.
13678 (funsafe-math-optimizations): Likewise.
13679 * opth-gen.awk: Handle SetByCombined.
13680 * optc-gen.awk: Likewise.
13681 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
13682 (set_unsafe_math_optimizations_flags): Likewise.
13683 * doc/options.texi (Option properties): Document SetByCombined.
13684
13685 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13686
13687 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
13688 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
13689 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
13690 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
13691 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
13692
13693 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
13694
13695 PR tree-optimization/46834
13696 PR tree-optimization/46994
13697 PR tree-optimization/46995
13698 * graphite-sese-to-poly.c (used_outside_reduction): New.
13699 (detect_commutative_reduction): Call used_outside_reduction.
13700 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
13701 translate_scalar_reduction_to_array only when at least one
13702 loop-phi/close-phi tuple has been detected.
13703
13704 2011-02-08 Richard Guenther <rguenther@suse.de>
13705
13706 PR middle-end/47639
13707 * tree-vect-generic.c (expand_vector_operations_1): Update
13708 stmts here ...
13709 (expand_vector_operations): ... not here. Cleanup EH info
13710 and the CFG if required.
13711
13712 2011-02-08 Richard Guenther <rguenther@suse.de>
13713
13714 PR tree-optimization/47641
13715 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
13716 require type compatibility.
13717
13718 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13719
13720 * gimple-low.c (lower_function_body): Don't remove the location of
13721 the return statement here.
13722 (lower_gimple_return): Do it here instead but only if the return
13723 statement is actually used twice.
13724
13725 2011-02-08 Richard Guenther <rguenther@suse.de>
13726
13727 PR tree-optimization/47632
13728 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13729 unused up_to_stmt parameter, return whether cfg-cleanup is
13730 necessary, remove EH info properly.
13731 (forward_propagate_into_gimple_cond): Adjust caller.
13732 (forward_propagate_into_cond): Likewise.
13733 (forward_propagate_comparison): Likewise.
13734 (tree_ssa_forward_propagate_single_use_vars): Make
13735 forward_propagate_comparison case similar to the two others.
13736
13737 2011-02-08 Nick Clifton <nickc@redhat.com>
13738
13739 * config/mn10300/mn10300.opt (mliw): New command line option.
13740 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13741 (liw_bundling): New automaton.
13742 (liw): New attribute.
13743 (liw_op): New attribute.
13744 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13745 (movsi_internal): Add LIW attributes.
13746 (andsi3): Likewise.
13747 (iorsi3): Likewise.
13748 (xorsi3): Likewise.
13749 (addsi3): Separate register and immediate alternatives.
13750 Add LIW attributes.
13751 (subsi3): Likewise.
13752 (cmpsi): Likewise.
13753 (aslsi3): Likewise.
13754 (lshrsi3): Likewise.
13755 (ashrsi3): Likewise.
13756 (liw): New pattern.
13757 * config/mn10300/mn10300.c (liw_op_names): New
13758 (mn10300_print_operand): Handle 'W' operand descriptor.
13759 (extract_bundle): New function.
13760 (check_liw_constraints): New function.
13761 (liw_candidate): New function.
13762 (mn10300_bundle_liw): New function.
13763 (mn10300_reorg): New function.
13764 (TARGET_MACHINE_DEPENDENT_REORG): Define.
13765 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13766 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13767 __LIW__ or __NO_LIW__.
13768 * doc/invoke.texi: Describe the -mliw command line option.
13769
13770 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13771
13772 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13773 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13774 pthread_mutex_unlock): Remove.
13775 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13776 * config/pa/t-pa64: Likewise.
13777 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13778 shared libc if not linking against libpthread.
13779 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13780
13781 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
13782
13783 PR target/47558
13784 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13785 on 10.6 and later to ensure that we always use the unwinder from
13786 the system. Only add -no_compact_unwind when tarteting darwin
13787 10.6 or later.
13788
13789 2011-02-07 Steve Ellcey <sje@cup.hp.com>
13790
13791 PR target/46997
13792 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13793 (vec_interleave_lowv2sf): Ditto.
13794 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13795 (vec_extract_oddv2sf): Ditto.
13796
13797 2011-02-07 Mike Stump <mikestump@comcast.net>
13798
13799 PR target/42333
13800 Add __ieee_divdc3 entry point.
13801 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13802 entry point.
13803 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13804 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13805 * config/darwin.c (darwin_rename_builtins): Add.
13806 * config/darwin-protos.h (darwin_rename_builtins): Add.
13807
13808 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
13809
13810 PR target/47636
13811 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13812 for the condition.
13813
13814 2011-02-07 Mike Stump <mikestump@comcast.net>
13815
13816 * config/darwin.opt (mmacosx-version-min): Update default OS version.
13817
13818 2011-02-07 Denis Chertykov <chertykov@gmail.com>
13819
13820 PR target/47534
13821 * config/avr/libgcc.S (exit): Move .endfunc
13822
13823 2011-02-07 Richard Guenther <rguenther@suse.de>
13824
13825 PR tree-optimization/47615
13826 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13827 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13828 (run_scc_vn): Initialize it.
13829 (visit_reference_op_load): Use it.
13830 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13831
13832 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13833
13834 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13835 DImode trapping arithmetic libfuncs.
13836
13837 2011-02-07 Richard Guenther <rguenther@suse.de>
13838
13839 PR tree-optimization/47621
13840 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13841 two duplicates ...
13842 (execute_update_addresses_taken): ... here. Make it more
13843 conservative in what we accept.
13844
13845 2011-02-06 Joseph Myers <joseph@codesourcery.com>
13846
13847 * config/sparc/freebsd.h (ASM_SPEC): Define.
13848 * config/sparc/vxworks.h (ASM_SPEC): Define.
13849
13850 2011-02-06 Joseph Myers <joseph@codesourcery.com>
13851
13852 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13853
13854 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
13855
13856 * doc/invoke.texi: Remove reference to compiler internals from
13857 user documentation.
13858
13859 * reg-notes.def: Remove REG_VALUE_PROFILE.
13860 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13861
13862 2011-02-05 Jakub Jelinek <jakub@redhat.com>
13863
13864 PR middle-end/47610
13865 * varasm.c (default_section_type_flags): If decl is NULL,
13866 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13867
13868 2011-02-05 Jie Zhang <jie@codesourcery.com>
13869
13870 PR debug/42631
13871 * web.c (entry_register): Don't clobber the number of the
13872 first uninitialized reference in used[].
13873
13874 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
13875
13876 PR tree-optimization/46194
13877 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13878 (build_classic_dist_vector_1): Do not represent classic distance
13879 vectors when the access functions are variating in different loops.
13880
13881 2011-02-04 Joseph Myers <joseph@codesourcery.com>
13882
13883 * config/mips/iris6.opt: New.
13884 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13885
13886 2011-02-04 Richard Henderson <rth@redhat.com>
13887 Steve Ellcey <sje@cup.hp.com>
13888
13889 PR target/46997
13890 * config/ia64/predicates.md (mux1_brcst_element): New.
13891 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13892 * config/ia64/ia64.c (ia64_unpack_assemble): New.
13893 (ia64_unpack_sign): New.
13894 (ia64_expand_unpack): Rewrite using new routines.
13895 (ia64_expand_widen_sum): Ditto.
13896 (ia64_expand_dot_prod_v8qi): Ditto.
13897 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13898 routines, add endian check.
13899 (pmpy2_even): Rename from pmpy2_r, add endian check.
13900 (pmpy2_odd): Rename from pmpy2_l, add endian check.
13901 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13902 (vec_widen_smult_hi_v4hi): Ditto.
13903 (vec_widen_umult_lo_v4hi): Ditto.
13904 (vec_widen_umult_hi_v4hi): Ditto.
13905 (mulv2si3): Change endian checks.
13906 (sdot_prodv4hi): Rewrite with new calls.
13907 (udot_prodv4hi): New.
13908 (vec_pack_ssat_v4hi): Add endian check.
13909 (vec_pack_usat_v4hi): Ditto.
13910 (vec_pack_ssat_v2si): Ditto.
13911 (max1_even): Rename from max1_r, add endian check.
13912 (max1_odd): Rename from max1_l, add endian check.
13913 (*mux1_rev): Format change.
13914 (*mux1_mix): Ditto.
13915 (*mux1_shuf): Ditto.
13916 (*mux1_alt): Ditto.
13917 (*mux1_brcst_v8qi): Use new predicate.
13918 (vec_extract_evenv8qi): Remove endian check.
13919 (vec_extract_oddv8qi): Ditto.
13920 (vec_interleave_lowv4hi): Format change.
13921 (vec_interleave_highv4hi): Ditto.
13922 (mix2_even): Rename from mix2_r, add endian check.
13923 (mix2_odd): Rename from mux2_l, add endian check.
13924 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13925 (vec_extract_evenodd_helper): Format change.
13926 (vec_extract_evenv4hi): Remove endian check.
13927 (vec_extract_oddv4hi): Remove endian check.
13928 (vec_interleave_lowv2si): Format change.
13929 (vec_interleave_highv2si): Format change.
13930 (vec_initv2si): Remove endian check.
13931 (vecinit_v2si): Add endian check.
13932 (reduc_splus_v2sf): Add endian check.
13933 (reduc_smax_v2sf): Ditto.
13934 (reduc_smin_v2sf): Ditto.
13935 (vec_initv2sf): Remove endian check.
13936 (fpack): Add endian check.
13937 (fswap): Add endian check.
13938 (vec_interleave_highv2sf): Add endian check.
13939 (vec_interleave_lowv2sf): Add endian check.
13940 (fmix_lr): Add endian check.
13941 (vec_setv2sf): Format change.
13942 (*vec_extractv2sf_0_be): Use shift to extract operand.
13943 (*vec_extractv2sf_1_be): New.
13944 (vec_pack_trunc_v4hi): Add endian check.
13945 (vec_pack_trunc_v2si): Format change.
13946
13947 2011-02-04 Jakub Jelinek <jakub@redhat.com>
13948
13949 PR inline-asm/23200
13950 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
13951 do bb, locus and block comparison and disallow loads if it is not set.
13952 (stmt_is_replaceable_p): New function.
13953 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13954 callers.
13955 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13956 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13957 SSA_NAME_DEF_STMT.
13958 * tree-flow.h (stmt_is_replaceable_p): New prototype.
13959
13960 2011-02-04 Joseph Myers <joseph@codesourcery.com>
13961
13962 * config/rs6000/xilinx.opt: New.
13963 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13964
13965 2011-02-04 Joseph Myers <joseph@codesourcery.com>
13966
13967 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13968
13969 2011-02-03 Anatoly Sokolov <aesok@post.ru>
13970
13971 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13972 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13973 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13974 secondary_reload_info, xtensa_secondary_reload): Remove.
13975 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13976 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13977 (xtensa_preferred_reload_class): Make static. Change return and
13978 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13979 Use CONST_DOUBLE_P predicate.
13980 (xtensa_preferred_output_reload_class): New function.
13981 (xtensa_secondary_reload): Make static.
13982
13983 2011-02-03 Joseph Myers <joseph@codesourcery.com>
13984
13985 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13986 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13987 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13988
13989 2011-02-03 Jakub Jelinek <jakub@redhat.com>
13990
13991 PR middle-end/31490
13992 * output.h (SECTION_RELRO): Define.
13993 (SECTION_MACH_DEP): Adjust.
13994 (get_variable_section): New prototype.
13995 * varpool.c (varpool_finalize_named_section_flags): New function.
13996 (varpool_assemble_pending_decls): Call it.
13997 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13998 * cgraphunit.c (cgraph_output_in_order): Call
13999 varpool_finalize_named_section_flags.
14000 * varasm.c (get_section): Allow section flags conflicts between
14001 relro and read-only sections if the section hasn't been declared yet.
14002 Set SECTION_OVERRIDE after diagnosing section type conflict.
14003 (get_variable_section): No longer static.
14004 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
14005 readonly sections that need relocations.
14006 (decl_readonly_section_1): New function.
14007 (decl_readonly_section): Use it.
14008
14009 Revert:
14010 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
14011 Steve Ellcey <sje@cup.hp.com>
14012
14013 PR middle-end/31490
14014 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
14015 if section attribute used.
14016
14017 2011-02-03 Jakub Jelinek <jakub@redhat.com>
14018
14019 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
14020 * config/darwin.c (SECTION_NO_ANCHOR): Define.
14021 (darwin_init_sections): Remove assertion.
14022
14023 2011-02-03 Nick Clifton <nickc@redhat.com>
14024
14025 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
14026 lt and ge.
14027 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
14028 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
14029 instead of "n" and "pz".
14030 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
14031 CC_FLAG_S.
14032
14033 2011-02-03 Jakub Jelinek <jakub@redhat.com>
14034
14035 PR target/47312
14036 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
14037 fma, expand FMA_EXPR as fma{,f,l} call.
14038
14039 PR lto/47274
14040 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
14041 copy them into a unsigned char variable and pass address of it to
14042 lto_output_data_stream.
14043
14044 PR target/47564
14045 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
14046 around backend_init_target and lang_dependent_init_target calls.
14047 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
14048 (verify_cgraph_node): Don't call set_cfun here. Use
14049 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
14050 Set error_found for incorrectly represented calls to thunks.
14051
14052 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
14053
14054 PR debug/43092
14055 PR rtl-optimization/43494
14056 * rtl.h (for_each_inc_dec_fn): New type.
14057 (for_each_inc_dec): Declare.
14058 * rtlanal.c (struct for_each_inc_dec_ops): New type.
14059 (for_each_inc_dec_find_inc_dec): New fn.
14060 (for_each_inc_dec_find_mem): New fn.
14061 (for_each_inc_dec): New fn.
14062 * dse.c (struct insn_size): Remove.
14063 (replace_inc_dec, replace_inc_dec_mem): Remove.
14064 (emit_inc_dec_insn_before): New fn.
14065 (check_for_inc_dec): Use it, along with for_each_inc_dec.
14066 (canon_address): Pass mem modes to cselib_lookup.
14067 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
14068 (cselib_lookup_from_insn): Likewise.
14069 (cselib_subst_to_values): Likewise.
14070 * cselib.c (find_slot_memmode): New var.
14071 (cselib_find_slot): New fn. Use it instead of
14072 htab_find_slot_with_hash everywhere.
14073 (entry_and_rtx_equal_p): Use find_slot_memmode.
14074 (autoinc_split): New fn.
14075 (rtx_equal_for_cselib_p): Rename and implement in terms of...
14076 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
14077 Deal with autoinc. Special-case recursion into MEMs.
14078 (cselib_hash_rtx): Likewise.
14079 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
14080 address and MEM modes.
14081 (cselib_subst_to_values): Add memmode, pass it on.
14082 Deal with autoinc.
14083 (cselib_lookup): Add memmode argument, pass it on.
14084 (cselib_lookup_from_insn): Add memmode.
14085 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
14086 (struct cselib_record_autoinc_data): New.
14087 (cselib_record_autoinc_cb): New fn.
14088 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
14089 mode to cselib_lookup. Reset autoinced REGs here instead of...
14090 (cselib_process_insn): ... here.
14091 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
14092 to cselib_lookup.
14093 (add_uses): Likewise, also to cselib_subst_to_values.
14094 (add_stores): Likewise.
14095 * sched-deps.c (add_insn_mem_dependence): Pass mode to
14096 cselib_subst_to_values.
14097 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
14098 * gcse.c (do_local_cprop): Adjusted.
14099 * postreload.c (reload_cse_simplify_set): Adjusted.
14100 (reload_cse_simplify_operands): Adjusted.
14101 * sel-sched-dump (debug_mem_addr_value): Pass mode.
14102
14103 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
14104
14105 PR tree-optimization/45122
14106 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
14107 unsafe assumptions when there's more than one loop exit.
14108
14109 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
14110
14111 PR target/47272
14112 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14113 Document using vector double with the load/store builtins, and
14114 that the load/store builtins always use Altivec instructions.
14115
14116 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
14117 to use altivec memory instructions, even on VSX.
14118 (vector_altivec_store_<mode>): Ditto.
14119
14120 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
14121 function.
14122
14123 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14124 V2DF, V2DI support to load/store overloaded builtins.
14125
14126 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
14127 altivec load/store builtins for V2DF/V2DI types.
14128
14129 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14130 set avoid indexed addresses on power6 if -maltivec.
14131 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
14132 vector_altivec_load/vector_altivec_store builtins.
14133 (altivec_expand_st_builtin): Ditto.
14134 (altivec_expand_builtin): Add VSX memory builtins.
14135 (rs6000_init_builtins): Add V2DI types to internal types.
14136 (altivec_init_builtins): Add support for V2DF/V2DI altivec
14137 load/store builtins.
14138 (rs6000_address_for_altivec): Insure memory address is appropriate
14139 for Altivec.
14140
14141 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
14142 vec_vsx_ld and vec_vsx_st.
14143 (vsx_store_<mode>): Ditto.
14144
14145 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
14146 variables to hold long long types for VSX vector memory builtins.
14147 (RS6000_BTI_unsigned_long_long): Ditto.
14148 (long_long_integer_type_internal_node): Ditti.
14149 (long_long_unsigned_type_internal_node): Ditti.
14150
14151 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
14152 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
14153 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
14154
14155 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
14156 short cuts.
14157 (vec_vsx_st): Ditto.
14158
14159 2011-02-02 Joseph Myers <joseph@codesourcery.com>
14160
14161 * config/pa/pa-hpux10.opt: New.
14162 * config/hpux11.opt (pthread): New Driver option.
14163 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
14164 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
14165
14166 2011-02-02 Joseph Myers <joseph@codesourcery.com>
14167
14168 * config/ia64/vms.opt: New.
14169 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
14170
14171 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
14172
14173 PR target/47580
14174 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
14175 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
14176 generator functions.
14177 (vsx_floatuns<VSi><mode>2): Ditto.
14178 (vsx_fix_trunc<mode><VSi>2): Ditto.
14179 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
14180
14181 2011-02-02 Joseph Myers <joseph@codesourcery.com>
14182
14183 * config/i386/djgpp.opt (posix): New Driver option.
14184
14185 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
14186
14187 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
14188 Move to the unsupported targets list.
14189
14190 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
14191
14192 PR rtl-optimization/47525
14193 * df-scan.c: Update copyright years.
14194 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
14195 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
14196
14197 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14198
14199 * config/i386/sysv4.h (TARGET_VERSION): Remove.
14200 (SUBTARGET_RETURN_IN_MEMORY): Remove.
14201 (ASM_OUTPUT_ASCII): Remove.
14202 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
14203
14204 2011-02-02 Jeff Law <law@redhat.com>
14205
14206 PR middle-end/47543
14207 * reload.c (find_reloads_address): Handle reg+d address where both
14208 components are invalid by reloading the entire address.
14209
14210 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
14211 Richard Guenther <rguenther@suse.de>
14212
14213 PR tree-optimization/40979
14214 PR bootstrap/47044
14215 * passes.c (init_optimization_passes): After LIM call copy_prop
14216 and DCE to clean up.
14217 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
14218
14219 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
14220
14221 PR tree-optimization/47576
14222 PR tree-optimization/47555
14223 * doc/invoke.texi (scev-max-expr-complexity): Documented.
14224 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14225 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
14226 * tree-scalar-evolution.c (follow_ssa_edge): Use
14227 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
14228
14229 2011-02-02 Richard Guenther <rguenther@suse.de>
14230
14231 PR tree-optimization/47566
14232 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
14233
14234 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
14235
14236 PR debug/47106
14237 PR debug/47402
14238 * tree-inline.c (declare_return_variable): Remove unused caller
14239 variable.
14240
14241 PR debug/47106
14242 PR debug/47402
14243 * tree-flow-inline.h (clear_is_used, is_used_p): New.
14244 * cfgexpand.c (account_used_vars_for_block): Use them.
14245 * tree-nrv.c (tree_nrv): Likewise.
14246 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
14247 (dump_scope_block): Likewise.
14248 (remove_unused_locals): Likewise.
14249
14250 PR debug/47106
14251 PR debug/47402
14252 * tree-inline.c (declare_return_variable): Add result decl to
14253 local decls only once.
14254 * gimple-low.c (record_vars_into): Mark newly-created variables
14255 as referenced.
14256
14257 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
14258
14259 PR debug/47498
14260 PR debug/47501
14261 PR debug/45136
14262 PR debug/45130
14263 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14264 debug insns.
14265 (no_real_insns_p, schedule_block, set_priorities): Drop special
14266 treatment of boundary debug insns.
14267 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14268 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
14269 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14270 (BOUNDARY_DEBUG_INSN_P): Likewise.
14271 (SCHEDULE_DEBUG_INSN_P): Likewise.
14272 * sched-rgn.c (init_ready_list): Drop special treatment of
14273 boundary debug insns.
14274 * final.c (rest_of_clean_state): Clear notes' BB.
14275
14276 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14277
14278 * config/openbsd.opt (assert=): New Driver option.
14279
14280 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14281
14282 * config/i386/nto.opt: New.
14283 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
14284
14285 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14286
14287 * config/i386/netware.opt: New.
14288 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
14289
14290 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14291
14292 * config/interix.opt (posix): New Driver option.
14293
14294 2011-02-01 DJ Delorie <dj@redhat.com>
14295
14296 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
14297
14298 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
14299 class for A0/A1.
14300
14301 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
14302
14303 PR tree-optimization/47561
14304 * toplev.c (process_options): Print the Graphite flags. Add
14305 flag_loop_flatten to the list of options requiring Graphite.
14306
14307 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14308
14309 * config/i386/cygming.opt (posix): New Driver option.
14310
14311 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14312
14313 * config/arm/vxworks.opt: New.
14314 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
14315
14316 2011-02-01 Joseph Myers <joseph@codesourcery.com>
14317
14318 * config/alpha/elf.opt: New.
14319 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
14320 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
14321
14322 2011-02-01 Richard Guenther <rguenther@suse.de>
14323
14324 PR tree-optimization/47559
14325 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
14326 store-motion on references that can throw.
14327
14328 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
14329
14330 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
14331 * tree-pass.h (TDF_CSELIB): New macro.
14332 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
14333 cselib_lookup): Check for it rather than for TDF_DETAILS.
14334
14335 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
14336
14337 PR driver/47547
14338 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
14339 is HOST_BIT_BUCKET.
14340
14341 * opts.c (finish_options): Don't add x_aux_base_name if it is
14342 HOST_BIT_BUCKET.
14343
14344 2011-02-01 Richard Guenther <rguenther@suse.de>
14345
14346 PR tree-optimization/47555
14347 Revert
14348 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
14349
14350 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14351
14352 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
14353
14354 PR gcc/46692
14355 * config/lm32/t-lm32: Add multilib for all CPU options.
14356
14357 2011-02-01 Richard Guenther <rguenther@suse.de>
14358
14359 PR tree-optimization/47541
14360 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
14361 sure to have a field at offset zero.
14362
14363 2011-01-31 Joseph Myers <joseph@codesourcery.com>
14364
14365 * config/arc/arc.opt (EB, EL): New Driver options.
14366
14367 2011-01-31 Joseph Myers <joseph@codesourcery.com>
14368
14369 * config/alpha/osf5.opt: New.
14370 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
14371
14372 2011-01-31 Joseph Myers <joseph@codesourcery.com>
14373
14374 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
14375
14376 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
14377
14378 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
14379 -floop-interchange.
14380 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
14381 is an alias of -floop-interchange and that it requires the
14382 Graphite infrastructure.
14383 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
14384 flag_loop_interchange based on the value of flag_tree_loop_linear.
14385
14386 2011-01-31 Jakub Jelinek <jakub@redhat.com>
14387 Richard Guenther <rguenther@suse.de>
14388
14389 PR tree-optimization/47538
14390 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
14391 type instead of r1type, except for comparisons. For right
14392 shifts and comparisons punt if there are mismatches in
14393 sizetype vs. non-sizetype types.
14394
14395 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14396
14397 * doc/sourcebuild.texi (Effective-Target Keywords): Document
14398 avx_runtime.
14399
14400 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14401
14402 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
14403 version number.
14404 * configure: Regenerate.
14405
14406 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14407
14408 * configure.ac (gcc_cv_ld_static_option): Define.
14409 (gcc_cv_ld_dynamic_option): Define.
14410 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
14411 instead.
14412 (HAVE_LD_STATIC_DYNAMIC): Update message.
14413 (LD_STATIC_OPTION): Define.
14414 (LD_DYNAMIC_OPTION): Define.
14415 * configure: Regenerate.
14416 * config.in: Regenerate.
14417 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
14418 HAVE_LD_STATIC_DYNAMIC]: Use them.
14419
14420 2011-01-31 Nick Clifton <nickc@redhat.com>
14421
14422 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
14423 registers inside interrupt handlers if the handler is not a leaf
14424 function.
14425
14426 2011-01-31 Nick Clifton <nickc@redhat.com>
14427
14428 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
14429 reg_renumber returning an INVALID_REGNUM.
14430
14431 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
14432
14433 PR libgcj/44341
14434 * doc/install.texi: Document host options discarded when cross
14435 configuring target libraries.
14436
14437 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
14438
14439 Reverted:
14440 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
14441 PR debug/45136
14442 PR debug/45130
14443 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14444 debug insns.
14445 (no_real_insns_p, schedule_block, set_priorities): Drop special
14446 treatment of boundary debug insns.
14447 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14448 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14449 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14450 (BOUNDARY_DEBUG_INSN_P): Likewise.
14451 (SCHEDULE_DEBUG_INSN_P): Likewise.
14452 * sched-rgn.c (init_ready_list): Drop special treatment of
14453 boundary debug insns.
14454 * final.c (rest_of_clean-state): Clear notes' BB.
14455
14456 2011-01-31 Alan Modra <amodra@gmail.com>
14457
14458 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
14459 toc relative expressions as we do in print_operand_address.
14460
14461 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
14462
14463 * doc/extend.texi: Follow spelling conventions.
14464 * doc/invoke.texi: Fix a typo.
14465
14466 2011-01-30 Joseph Myers <joseph@codesourcery.com>
14467
14468 * config/hpux11.opt: New.
14469 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
14470 ia64*-*-hpux*): Use hpux11.opt.
14471
14472 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
14473
14474 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
14475 to tmake_file.
14476
14477 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14478
14479 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
14480 support sites.
14481
14482 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14483
14484 * doc/install.texi (Binaries): Remove outdated reference for
14485 Motorola 68HC11/68HC12 downloads.
14486
14487 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14488
14489 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
14490 Drepper's paper.
14491
14492 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
14493
14494 PR bootstrap/47147
14495 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
14496 used by NetBSD.
14497
14498 2011-01-28 Ahmad Sharif <asharif@google.com>
14499
14500 * value-prof.c (check_counter): Corrected error message.
14501
14502 2011-01-29 Jie Zhang <jie@codesourcery.com>
14503
14504 * config/arm/arm.c (arm_legitimize_reload_address): New.
14505 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14506 arm_legitimize_reload_address.
14507 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
14508
14509 2011-01-28 Ian Lance Taylor <iant@google.com>
14510
14511 * godump.c (go_define): Ignore macros whose definitions include
14512 two adjacent operands.
14513
14514 2011-01-28 Jakub Jelinek <jakub@redhat.com>
14515
14516 PR target/42894
14517 * varasm.c (force_const_mem): Store copy of x in desc->constant
14518 instead of x itself.
14519 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
14520 itself into REG_EQUAL note.
14521
14522 2011-01-28 Joseph Myers <joseph@codesourcery.com>
14523
14524 * config/freebsd.opt (posix, rdynamic): New Driver options.
14525
14526 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14527
14528 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
14529 -Bstatic/-Bdynamic.
14530 * configure: Regenerate.
14531
14532 2011-01-27 Joseph Myers <joseph@codesourcery.com>
14533
14534 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
14535 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
14536
14537 2011-01-27 Anatoly Sokolov <aesok@post.ru>
14538
14539 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
14540 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
14541 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14542 (s390_preferred_reload_class): Make static. Change return and
14543 'rclass' argument type to reg_class_t.
14544
14545 2011-01-27 Jan Hubicka <jh@suse.cz>
14546
14547 PR middle-end/46949
14548 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
14549 (process_function_and_variable_attributes): Check defined weakrefs.
14550
14551 2011-01-27 Martin Jambor <mjambor@suse.cz>
14552
14553 PR tree-optimization/47228
14554 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
14555 build_ref_for_offset.
14556
14557 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14558
14559 * config/spu/spu-elf.h (ASM_SPEC): Remove.
14560
14561 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
14562
14563 PR rtl-optimization/46856
14564 * postreload.c (reload_combine_recognize_const_pattern): Do not
14565 separate cc0 setter and user on cc0 targets.
14566
14567 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
14568
14569 PR c/43082
14570 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
14571 passed a VOID_TYPE expression, immediately emit an error and
14572 return error_mark_node.
14573
14574 2011-01-26 Jeff Law <law@redhat.com>
14575
14576 PR rtl-optimization/47464
14577 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
14578 rather than may_trap_p as needed.
14579
14580 2011-01-26 DJ Delorie <dj@redhat.com>
14581
14582 PR rtl-optimization/46878
14583 * combine.c (insn_a_feeds_b): Check for the implicit cc0
14584 setter/user dependency as well.
14585
14586 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
14587
14588 PR rtl-optimization/44469
14589 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
14590 after removing trivially dead basic blocks.
14591
14592 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14593
14594 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
14595 * config/frv/frv.h (LINK_SPEC): Likewise.
14596 * config/i386/netware.h (LINK_SPEC): Likewise.
14597 * config/m68k/linux.h (ASM_SPEC): Likewise.
14598 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
14599 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14600 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14601 * config/sparc/linux.h (ASM_SPEC): Likewise.
14602 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14603 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14604
14605 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14606
14607 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
14608 * config/frv/frv.h (ASM_SPEC): Likewise.
14609 * config/m68k/linux.h (ASM_SPEC): Likewise.
14610 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14611 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
14612 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14613 * config/sparc/linux.h (ASM_SPEC): Likewise.
14614 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14615 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14616
14617 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14618
14619 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
14620 * config/frv/frv.h (LINK_SPEC): Likewise.
14621 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14622
14623 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14624
14625 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
14626 * config/frv/frv.h (ASM_SPEC): Likewise.
14627 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
14628 * config/m68k/linux.h (ASM_SPEC): Likewise.
14629 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14630 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
14631 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14632 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
14633 * config/sparc/linux.h (ASM_SPEC): Likewise.
14634 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14635 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14636 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
14637
14638 2011-01-26 Steve Ellcey <sje@cup.hp.com>
14639
14640 PR target/46997
14641 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
14642 (*mux2): Ditto.
14643 (vec_extract_evenodd_help): Ditto.
14644 (vec_extract_evenv4hi): Ditto.
14645 (vec_extract_oddv4hi): Ditto.
14646 (vec_interleave_lowv2si): Ditto.
14647 (vec_interleave_highv2si): Ditto.
14648 (vec_extract_evenv2si): Ditto.
14649 (vec_extract_oddv2si: Ditto.
14650 (vec_pack_trunc_v2si): Ditto.
14651
14652 2011-01-22 Jan Hubicka <jh@suse.cz>
14653
14654 PR target/47237
14655 * cgraph.h (cgraph_local_info): New field can_change_signature.
14656 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
14657 signature can change.
14658 (ipcp_estimate_growth): Call sequence simplify only if calle signature
14659 can change.
14660 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
14661 (cgraph_function_versioning): We can not change signature of functions
14662 that don't allow that.
14663 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
14664 (lto_input_node): Likewise.
14665 * ipa-inline.c (compute_inline_parameters): Compute
14666 local.can_change_signature.
14667 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
14668 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
14669 functions that can not change signature.
14670 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
14671 init_cumulative_args): Do not use local calling conventions
14672 for functions that can not change signature.
14673
14674 2011-01-22 Jan Hubicka <jh@suse.cz>
14675
14676 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
14677
14678 2011-01-26 Richard Guenther <rguenther@suse.de>
14679
14680 PR tree-optimization/47190
14681 * cgraphunit.c (process_common_attributes): New function.
14682 (process_function_and_variable_attributes): Use it.
14683
14684 2011-01-26 Richard Guenther <rguenther@suse.de>
14685
14686 PR lto/47423
14687 * cgraphbuild.c (record_eh_tables): Record reference to personality
14688 function.
14689
14690 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
14691
14692 PR debug/45454
14693 * sel-sched.c (moveup_expr): Don't let debug insns prevent
14694 non-debug insns from moving up.
14695
14696 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14697
14698 PR target/40125
14699 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
14700 t-dlldir{,-x} fragment for build and add it to tmake_file.
14701 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14702 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
14703 * config/i386/t-dlldir: New file.
14704 (SHLIB_DLLDIR): Define.
14705 * config/i386/t-dlldir-x: New file.
14706 (SHLIB_DLLDIR): Define.
14707 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
14708 (SHLIB_INSTALL): Use it.
14709
14710 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
14711
14712 PR target/47246
14713 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
14714 lower bound of the allowed Thumb-2 coprocessor load/store
14715 index range to -256. Add explaining comment.
14716
14717 2011-01-25 Ian Lance Taylor <iant@google.com>
14718
14719 * godump.c (go_define): Improve lexing of macro expansion to only
14720 accept expressions which match Go spec.
14721
14722 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14723
14724 PR c++/43601
14725 * tree.c (handle_dll_attribute): Handle it.
14726 * doc/extend.texi (@item dllexport): Mention it.
14727 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14728
14729 2011-01-25 Ian Lance Taylor <iant@google.com>
14730
14731 PR tree-optimization/26854
14732 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14733 (decl_jump_unsafe): Move higher in file, with no other change.
14734 (bind): Set has_jump_unsafe_decl if appropriate.
14735 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14736 (check_earlier_gotos): Likewise.
14737 (c_check_switch_jump_warnings): Likewise.
14738
14739 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
14740
14741 * doc/invoke.texi (Warning Options): Add missing hyphen.
14742 (-fprofile-dir): Minor grammatical fixes.
14743 (-fbranch-probabilities): Likewise.
14744
14745 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
14746
14747 PR debug/45136
14748 PR debug/45130
14749 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14750 debug insns.
14751 (no_real_insns_p, schedule_block, set_priorities): Drop special
14752 treatment of boundary debug insns.
14753 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14754 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14755 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14756 (BOUNDARY_DEBUG_INSN_P): Likewise.
14757 (SCHEDULE_DEBUG_INSN_P): Likewise.
14758 * sched-rgn.c (init_ready_list): Drop special treatment of
14759 boundary debug insns.
14760 * final.c (rest_of_clean-state): Clear notes' BB.
14761
14762 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14763
14764 * Makefile.in (LAMBDA_H): Removed.
14765 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14766 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14767 lambda-trans.o, and tree-loop-linear.o.
14768 (lto-symtab.o): Remove dependence on LAMBDA_H.
14769 (tree-loop-linear.o): Remove rule.
14770 (lambda-mat.o): Same.
14771 (lambda-trans.o): Same.
14772 (lambda-code.o): Same.
14773 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14774 (tree-vect-slp.o): Same.
14775 * hwint.h (gcd): Moved here.
14776 (least_common_multiple): Same.
14777 * lambda-code.c: Removed.
14778 * lambda-mat.c: Removed.
14779 * lambda-trans.c: Removed.
14780 * lambda.h: Removed.
14781 * tree-loop-linear.c: Removed.
14782 * lto-symtab.c: Do not include lambda.h.
14783 * omega.c (gcd): Removed.
14784 * passes.c (init_optimization_passes): Remove pass_linear_transform.
14785 * tree-data-ref.c (print_lambda_vector): Moved here.
14786 (lambda_vector_copy): Same.
14787 (lambda_matrix_copy): Same.
14788 (lambda_matrix_id): Same.
14789 (lambda_vector_first_nz): Same.
14790 (lambda_matrix_row_add): Same.
14791 (lambda_matrix_row_exchange): Same.
14792 (lambda_vector_mult_const): Same.
14793 (lambda_vector_negate): Same.
14794 (lambda_matrix_row_negate): Same.
14795 (lambda_vector_equal): Same.
14796 (lambda_matrix_right_hermite): Same.
14797 * tree-data-ref.h: Do not include lambda.h.
14798 (lambda_vector): Moved here.
14799 (lambda_matrix): Same.
14800 (dependence_level): Same.
14801 (lambda_transform_legal_p): Removed declaration.
14802 (lambda_collect_parameters): Same.
14803 (lambda_compute_access_matrices): Same.
14804 (lambda_vector_gcd): Same.
14805 (lambda_vector_new): Same.
14806 (lambda_vector_clear): Same.
14807 (lambda_vector_lexico_pos): Same.
14808 (lambda_vector_zerop): Same.
14809 (lambda_matrix_new): Same.
14810 * tree-flow.h (least_common_multiple): Removed declaration.
14811 * tree-parloops.c (lambda_trans_matrix): Moved here.
14812 (LTM_MATRIX): Same.
14813 (LTM_ROWSIZE): Same.
14814 (LTM_COLSIZE): Same.
14815 (LTM_DENOMINATOR): Same.
14816 (lambda_trans_matrix_new): Same.
14817 (lambda_matrix_vector_mult): Same.
14818 (lambda_transform_legal_p): Same.
14819 * tree-pass.h (pass_linear_transform): Removed declaration.
14820 * tree-ssa-loop.c (tree_linear_transform): Removed.
14821 (gate_tree_linear_transform): Removed.
14822 (pass_linear_transform): Removed.
14823 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14824 flag_loop_interchange.
14825
14826 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14827
14828 PR tree-optimization/47265
14829 PR tree-optimization/47443
14830 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14831 if name still has some uses.
14832
14833 2011-01-25 Martin Jambor <mjambor@suse.cz>
14834
14835 PR tree-optimization/47382
14836 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14837 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14838
14839 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
14840
14841 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14842 sjlj_except_unwind_info.
14843
14844 2011-01-25 Richard Guenther <rguenther@suse.de>
14845
14846 PR tree-optimization/47426
14847 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14848 visible functions results escape.
14849
14850 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14851
14852 PR target/45701
14853 * config/arm/arm.c (any_sibcall_uses_r3): New function.
14854 (arm_get_frame_offsets): Use it.
14855
14856 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14857 Jakub Jelinek <jakub@redhat.com>
14858
14859 PR tree-optimization/47271
14860 * tree-if-conv.c (bb_postdominates_preds): New.
14861 (if_convertible_bb_p): Call bb_postdominates_preds.
14862 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14863 (predicate_scalar_phi): Call bb_postdominates_preds.
14864
14865 2011-01-25 Nick Clifton <nickc@redhat.com>
14866
14867 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14868 * config/rx/rx.c (rx_function_value): Likewise.
14869 (rx_promote_function_mode): Likewise.
14870 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14871 in order to make it legitimate.
14872 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14873 make sure that the first operand is the same as the result register.
14874 (addsi3_unspec): Delete.
14875 (subdi3): Do not accept immediate operands.
14876 (subdi3_internal): Likewise.
14877
14878 2011-01-25 Jeff Law <law@redhat.com>
14879
14880 PR rtl-optimization/37273
14881 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14882 handle them like argument loads from stack slots. Do not double
14883 count memory for memory constants and argument loads from stack slots.
14884
14885 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14886
14887 PR tree-optimization/47427
14888 PR tree-optimization/47428
14889 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14890 coalesce if the new root var would be TREE_READONLY.
14891
14892 2011-01-25 Richard Guenther <rguenther@suse.de>
14893
14894 PR middle-end/47414
14895 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14896 correct type for TBAA.
14897
14898 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14899
14900 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14901 (close_phi_written_to_memory): Call for_each_index with
14902 dr_indices_valid_in_loop.
14903
14904 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14905
14906 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14907 when it is initialized.
14908
14909 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14910
14911 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14912 call to graphite_find_data_references_in_stmt.
14913 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14914 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
14915 call to graphite_find_data_references_in_stmt.
14916 (analyze_drs_in_stmts): Same.
14917 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14918 in which the scalar analysis of indices is performed.
14919 (create_data_ref): Same. Update call to dr_analyze_indices.
14920 (find_data_references_in_stmt): Update call to create_data_ref.
14921 (graphite_find_data_references_in_stmt): Same.
14922 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14923 declaration.
14924 (create_data_ref): Same.
14925 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14926 call to create_data_ref.
14927
14928 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14929
14930 * graphite-sese-to-poly.c (build_poly_scop): Move
14931 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14932
14933 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14934
14935 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14936 VAR_DECL, PARM_DECL, and RESULT_DECL.
14937
14938 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14939
14940 * graphite-dependences.c (reduction_dr_1): Allow several reductions
14941 in a reduction PBB.
14942 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14943 that have already been marked as PBB_IS_REDUCTION.
14944
14945 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14946
14947 * graphite-scop-detection.c (same_close_phi_node): New.
14948 (remove_duplicate_close_phi): New.
14949 (make_close_phi_nodes_unique): New.
14950 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14951
14952 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14953
14954 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14955 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14956 of both data references to be the same.
14957
14958 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14959
14960 * graphite-dependences.c (build_lexicographical_constraint): Remove
14961 the gdim parameter.
14962 (build_lexicographical_constraint): Adjust call to
14963 ppl_powerset_is_empty.
14964 (dependence_polyhedron): Same.
14965 (graphite_legal_transform_dr): Same.
14966 (graphite_carried_dependence_level_k): Same.
14967 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14968 parameter.
14969 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14970
14971 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14972
14973 * graphite-sese-to-poly.c
14974 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14975 (close_phi_written_to_memory): New.
14976 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14977 and unshare_expr.
14978
14979 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14980
14981 * doc/install.texi: Update the expected version number of PPL to 0.11.
14982 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14983 #if PPL_VERSION_MINOR < 11.
14984
14985 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14986
14987 * graphite-dependences.c: Include graphite-cloog-util.h.
14988 (new_poly_ddr): Inlined into dependence_polyhedron.
14989 (free_poly_ddr): Moved close by new_poly_ddr.
14990 (dependence_polyhedron_1): Renamed dependence_polyhedron.
14991 Early return NULL when ppl_powerset_is_empty returns true.
14992 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
14993 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
14994 (graphite_legal_transform_dr): Call new_poly_ddr.
14995 (graphite_carried_dependence_level_k): Same.
14996 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
14997 (dot_transformed_deps_stmt_1): Removed.
14998 (dot_deps_stmt_1): Call dot_deps_stmt_2.
14999 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
15000 (dot_deps_1): Call dot_deps_2.
15001 * Makefile.in (graphite-dependences.o): Add missing dependence on
15002 graphite-cloog-util.h.
15003
15004 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15005
15006 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
15007 (build_lexicographical_constraint): Same.
15008 (dependence_polyhedron_1): Same.
15009 (graphite_legal_transform_dr): Same.
15010 (graphite_carried_dependence_level_k): Same.
15011 * graphite-ppl.c (ppl_powerset_is_empty): New.
15012 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
15013 * tree-data-ref.c (dump_data_reference): Print the basic block index.
15014
15015 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15016
15017 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
15018 the "a followed by b" relation and document it.
15019
15020 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15021
15022 * graphite-dependences.c (build_lexicographical_constraint): Stop the
15023 iteration when the bag of constraints is empty.
15024
15025 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15026
15027 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
15028
15029 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15030
15031 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
15032 nest and two loop depths as parameters.
15033 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
15034 lst_perfect_nestify.
15035
15036 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15037
15038 * graphite-dependences.c (print_pddr): Call
15039 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
15040
15041 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
15042
15043 * graphite-ppl.c (debug_gmp_value): New.
15044 * graphite-ppl.h (debug_gmp_value): Declared.
15045
15046 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
15047
15048 * doc/install.texi: Document availability of cloog-0.16.
15049
15050 2011-01-25 Vladimir Kargov <kargov@gmail.com>
15051
15052 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
15053 invalid postdominance info.
15054
15055 2011-01-24 Jan Hubicka <jh@suse.cz>
15056
15057 PR c/21659
15058 * doc/extend.texi (weak pragma): Drop claim that it must
15059 appear before definition.
15060 * varasm.c (merge_weak, declare_weak): Only sanity check
15061 that DECL is not output at a time it is declared weak.
15062
15063 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
15064
15065 * machmode.def: Fixed comments.
15066
15067 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
15068
15069 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
15070
15071 2011-01-24 Paul Koning <ni1d@arrl.net>
15072
15073 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
15074 WORDS_BIG_ENDIAN.
15075
15076 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
15077
15078 PR target/46519
15079 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
15080 (block_info): Add scanned and prev.
15081 (move_or_delete_vzeroupper_2): Return if the basic block
15082 has been scanned and the upper 128bit state is unchanged
15083 from the last scan.
15084 (move_or_delete_vzeroupper_1): Return true if the exit
15085 state is changed.
15086 (move_or_delete_vzeroupper): Visit basic blocks using the
15087 work-list based algorithm based on vt_find_locations in
15088 var-tracking.c.
15089
15090 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
15091
15092 2011-01-24 Nick Clifton <nickc@redhat.com>
15093
15094 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
15095 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
15096 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
15097 then define __v850e1__.
15098 * doc/invoke.texi: Document -mv850es.
15099
15100 2011-01-24 Richard Henderson <rth@redhat.com>
15101
15102 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
15103 compound unordered comparisons.
15104 * config/rx/rx.c (rx_split_fp_compare): Remove.
15105 * config/rx/rx-protos.h: Update.
15106 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
15107 (cbranchsf4): Don't call rx_split_fp_compare.
15108 (*cbranchsf4): Use rx_split_cbranch.
15109 (*cmpsf): Don't accept "i" constraint.
15110 (*conditional_branch): Only valid after reload.
15111 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
15112
15113 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
15114
15115 PR target/47385
15116 * config/rs6000/altivec.md (vector constant splitters): Add
15117 support for creating vector single precision constants if -mvsx is
15118 used and we would create the constant using Altivec primitives.
15119
15120 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
15121 Richard Sandiford <rdsandiford@googlemail.com>
15122
15123 PR rtl-optimization/47166
15124 * reload1.c (emit_reload_insns): Disable the spill_reg_store
15125 mechanism for PRE_MODIFY and POST_MODIFY.
15126 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
15127 reloadreg.
15128
15129 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
15130
15131 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
15132
15133 2011-01-22 Jan Hubicka <jh@suse.cz>
15134
15135 PR lto/47333
15136 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
15137
15138 2011-01-22 Jan Hubicka <jh@suse.cz>
15139
15140 PR tree-optimization/43884
15141 PR lto/44334
15142 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
15143 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
15144
15145 2011-01-22 Anatoly Sokolov <aesok@post.ru>
15146
15147 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15148 * config/s390/s390.c (s390_register_move_cost,
15149 s390_memory_move_cost): New.
15150 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15151
15152 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15153
15154 PR middle-end/47401
15155 * except.c (sjlj_assign_call_site_values): Move setting the
15156 crtl->uses_eh_lsda flag to ...
15157 (sjlj_mark_call_sites): ... here.
15158 (sjlj_emit_function_enter): Support NULL dispatch label.
15159 (sjlj_build_landing_pads): In a function with no landing pads
15160 that still has must-not-throw regions, generate code to register
15161 a personality function with empty LSDA.
15162
15163 2011-01-21 Richard Henderson <rth@redhat.com>
15164
15165 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
15166
15167 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
15168
15169 * compare-elim.c: New file.
15170 * Makefile.in (OBJS-common): Add it.
15171 (compare-elim.o): New.
15172 * common.opt (fcompare-elim): New.
15173 * opts.c (default_options_table): Add OPT_fcompare_elim.
15174 * tree-pass.h (pass_compare_elim_after_reload): New.
15175 * passes.c (init_optimization_passes): Add it.
15176 * recog.h: Protect against re-inclusion.
15177 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
15178 * doc/invoke.texi (-fcompare-elim): Document it.
15179 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
15180 * doc/tm.texi: Rebuild.
15181
15182 2011-01-22 Nick Clifton <nickc@redhat.com>
15183
15184 * config/rx/rx.md (cstoresf4): Pass comparison operator to
15185 rx_split_fp_compare.
15186
15187 2011-01-22 Nick Clifton <nickc@redhat.com>
15188
15189 * config/rx/rx.md (UNSPEC_CONST): New.
15190 (deallocate_and_return): Wrap the amount popped off the stack in
15191 an UNSPEC_CONST in order to stop it being rejected by
15192 -mmax-constant-size.
15193 (pop_and_return): Add a "(return)" rtx.
15194 (call): Drop the immediate operand.
15195 (call_internal): Likewise.
15196 (call_value): Likewise.
15197 (call_value_internal): Likewise.
15198 (sibcall_internal): Likewise.
15199 (sibcall_value_internal): Likewise.
15200 (sibcall): Likewise. Generate an explicit call using
15201 sibcall_internal.
15202 (sibcall_value): Likewise.
15203 (mov<>): FAIL if a constant operand is not legitimate.
15204 (addsi3_unpsec): New pattern.
15205
15206 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15207 (ok_for_max_constant): New function.
15208 (gen_safe_add): New function.
15209 (rx_expand_prologue): Use gen_safe_add.
15210 (rx_expand_epilogue): Likewise.
15211 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
15212 UNSPEC CONSTs.
15213
15214 2011-01-21 Jeff Law <law@redhat.com>
15215
15216 PR tree-optimization/47053
15217 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
15218 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
15219 statements are deleted.
15220 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
15221 is nonempty, then purge dead edges and cleanup the CFG.
15222
15223 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
15224
15225 PR debug/47402
15226 Temporarily revert:
15227 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
15228 PR debug/47106
15229 * tree-dfa.c (create_var_ann): Mark variable as used.
15230
15231 2011-01-21 Jakub Jelinek <jakub@redhat.com>
15232
15233 PR middle-end/45566
15234 * except.c (convert_to_eh_region_ranges): Emit queued no-region
15235 notes from other section in hot/cold partitioning even if
15236 last_action is -3. Increment call_site_base.
15237
15238 PR rtl-optimization/47366
15239 * fwprop.c (forward_propagate_into): Return bool. If
15240 any changes are made, -fnon-call-exceptions is used and
15241 REG_EH_REGION note is present, call purge_dead_edges
15242 and return true if it purged anything.
15243 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
15244 any EH edges were purged.
15245
15246 2011-01-21 Jeff Law <law@redhat.com>
15247
15248 PR rtl-optimization/41619
15249 * caller-save.c (setup_save_areas): Break out code to determine
15250 which hard regs are live across calls by examining the reload chains
15251 so that it is always used.
15252 Eliminate code which checked REG_N_CALLS_CROSSED.
15253
15254 2011-01-21 Jakub Jelinek <jakub@redhat.com>
15255
15256 PR tree-optimization/47355
15257 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
15258 NOP has non-debug uses beyond PHIs in new_bb.
15259
15260 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
15261
15262 PR debug/47106
15263 * cfgexpand.c (account_used_vars_for_block): Only account vars
15264 that are annotated as used.
15265 (estimated_stack_frame_size): Don't set TREE_USED.
15266 * tree-dfa.c (create_var_ann): Mark variable as used.
15267
15268 2011-01-21 Richard Guenther <rguenther@suse.de>
15269
15270 PR middle-end/47395
15271 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
15272
15273 2011-01-21 Richard Guenther <rguenther@suse.de>
15274
15275 PR tree-optimization/47365
15276 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
15277 (vn_reference_lookup_pieces): Adjust.
15278 (vn_reference_lookup): Likewise.
15279 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
15280 (vn_reference_lookup_3): Only look through kills if in
15281 VN_WALKREWRITE mode.
15282 (vn_reference_lookup_pieces): Adjust.
15283 (vn_reference_lookup): Likewise.
15284 (visit_reference_op_load): Likewise.
15285 (visit_reference_op_store): Likewise.
15286 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
15287 (compute_avail): Likewise.
15288 (eliminate): Likewise.
15289
15290 2011-01-21 Jakub Jelinek <jakub@redhat.com>
15291
15292 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
15293 DECL_IGNORED_P non-reg vars if they are used.
15294
15295 PR tree-optimization/47391
15296 * varpool.c (const_value_known_p): Return false if
15297 decl is volatile.
15298
15299 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
15300
15301 PR bootstrap/47215
15302 * config/i386/i386.c (ix86_local_alignment): Handle
15303 case for va_list_type_node is nil.
15304 (ix86_canonical_va_list_type): Likewise.
15305
15306 2011-01-21 Alan Modra <amodra@gmail.com>
15307
15308 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
15309 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
15310
15311 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15312
15313 * config/arm/arm.md (define_attr type): Rename f_load
15314 and f_store to f_fpa_load and f_fpa_store. Update.
15315 (write_conflict): Deal with rename fallout.
15316 (*push_fp_multi): Likewise.
15317 * config/arm/fpa.md (f_load): Use f_fpa_load.
15318 (f_store): Use f_fpa_store.
15319 (*movsf_fpa): Likewise.
15320 (*movdf_fpa): Likewise.
15321 (*movxf_fpa): Likewise.
15322 (*thumb2_movsf_fpa): Likewise.
15323 (*thumb2_movdf_fpa): Likewise.
15324 (*thumb2_movxf_fpa): Likewise.
15325 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
15326 f_loadd and f_stored.
15327 (*thumb2_movdi_vfp): Likewise.
15328 (*thumb2_movsf_vfp): Fix attribute to f_loads.
15329 (*thumb2_movsi_vfp): Likewise.
15330 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
15331 Use f_loads instead of f_load.
15332 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
15333
15334 2011-01-20 Anatoly Sokolov <aesok@post.ru>
15335
15336 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15337 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
15338 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15339 (xtensa_mode_dependent_address_p): New function.
15340 (constantpool_address_p): Make static. Change return type to bool.
15341 Change argument type to const_rtx. Use CONST_INT_P predicate.
15342
15343 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
15344
15345 PR debug/46583
15346 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
15347
15348 2011-01-20 Jakub Jelinek <jakub@redhat.com>
15349
15350 PR debug/47283
15351 * cfgexpand.c (expand_debug_expr): Instead of generating
15352 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
15353 etc. handling.
15354
15355 2011-01-20 Richard Guenther <rguenther@suse.de>
15356
15357 PR middle-end/47370
15358 * tree-inline.c (remap_gimple_op_r): Recurse manually for
15359 the pointer operand of MEM_REFs.
15360
15361 2011-01-20 Jakub Jelinek <jakub@redhat.com>
15362
15363 PR tree-optimization/46130
15364 * ipa-split.c (consider_split): If return_bb contains non-virtual
15365 PHIs other than for retval or if split_function would not adjust it,
15366 refuse to split.
15367
15368 2011-01-20 Richard Guenther <rguenther@suse.de>
15369
15370 PR tree-optimization/47167
15371 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
15372 Revert previous change, only avoid enumeral type changes.
15373
15374 2011-01-19 Mike Stump <mikestump@comcast.net>
15375
15376 * doc/tm.texi.in (BRANCH_COST): Englishify.
15377 * doc/tm.texi (BRANCH_COST): Likewise.
15378
15379 2011-01-19 Dodji Seketeli <dodji@redhat.com>
15380
15381 PR c++/47291
15382 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
15383 (gen_scheduled_generic_parms_dies): New functions.
15384 (gen_struct_or_union_type_die): Schedule template parameters DIEs
15385 generation for the end of CU compilation.
15386 (dwarf2out_finish): Generate template parameters DIEs here.
15387
15388 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
15389
15390 PR debug/46240
15391 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
15392 debug bind stmt on merge edges.
15393
15394 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
15395
15396 PR debug/47079
15397 PR debug/46724
15398 * function.c (instantiate_expr): Instantiate incoming rtl of
15399 implicit arguments, and recurse on VALUE_EXPRs.
15400 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
15401 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
15402
15403 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
15404
15405 * c-parser.c (c_parser_for_statement): Initialize
15406 collection_expression.
15407
15408 2011-01-19 Joseph Myers <joseph@codesourcery.com>
15409
15410 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
15411
15412 2011-01-19 Joseph Myers <joseph@codesourcery.com>
15413
15414 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
15415 (LINK_SHLIB_SPEC): Don't use %(link_path).
15416 (SUBTARGET_EXTRA_SPECS): Remove link_path.
15417
15418 2011-01-19 Joseph Myers <joseph@codesourcery.com>
15419
15420 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
15421 (NO_SHARED_LIB_SUPPORT): Remove.
15422 (LINK_SHLIB_SPEC): Remove one conditional definition.
15423
15424 2011-01-19 Joseph Myers <joseph@codesourcery.com>
15425
15426 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
15427 %{call_shared}.
15428 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
15429 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
15430 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
15431 %{call_shared} and conditionals on these options not being passed.
15432 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
15433 %{call_shared}.
15434
15435 2011-01-19 Jakub Jelinek <jakub@redhat.com>
15436
15437 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
15438 simplify.
15439
15440 * ipa-split.c: Spelling fixes.
15441
15442 2011-01-19 Richard Henderson <rth@redhat.com>
15443
15444 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
15445 (*mulsi3): Likewise.
15446
15447 * longlong.h [__mn10300__] (count_leading_zeros): New.
15448 [__mn10300__] (umul_ppmm, smul_ppmm): New.
15449 [__mn10300__] (add_ssaaaa, subddmmss): New.
15450 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
15451 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
15452
15453 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15454
15455 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
15456
15457 2011-01-19 Richard Henderson <rth@redhat.com>
15458
15459 * config/mn10300/mn10300.md (addsi3_flags): New.
15460 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
15461 (subsi3_flags, subc_internal, subdi3): New.
15462 (subdi3_internal, *subdi3_degenerate): New.
15463 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
15464
15465 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
15466 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
15467 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
15468 * config/mn10300/mn10300-protos.h: Update.
15469 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
15470 (return_ret): Likewise. Rename from return_internal_regs.
15471 (return_internal): Remove.
15472
15473 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
15474 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
15475 (mn10300_legitimate_constant_p): Likewise.
15476 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
15477 (mn10300_frame_size): New.
15478 (mn10300_expand_prologue): Use it.
15479 (mn10300_expand_epilogue): Likewise.
15480 (mn10300_initial_offset): Likewise.
15481 * config/mn10300/mn10300-protos.h: Update.
15482 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
15483 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
15484 (prologue, epilogue, return_internal): Tidy output code.
15485 (mn10300_store_multiple_operation, return): Likewise.
15486 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
15487 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
15488 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
15489 (load_pic, am33_load_pic): New.
15490 (mn10300_load_pic0, mn10300_load_pic1): New.
15491
15492 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
15493 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
15494 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
15495 (cc_flags_for_mode, cc_flags_for_code): New.
15496 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
15497 overflow flag is not valid. Validate that the flags we need
15498 for the comparison are valid.
15499 (mn10300_output_cmp): Remove.
15500 (mn10300_output_add): New.
15501 (mn10300_select_cc_mode): Use cc_flags_for_code.
15502 (mn10300_split_cbranch): New.
15503 (mn10300_match_ccmode): New.
15504 (mn10300_split_and_operand_count): New.
15505 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
15506 to the function.
15507 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
15508 (addsi3): ... here. Use mn10300_output_add.
15509 (*addsi3_flags): New.
15510 (*am33_subsi3, *mn10300_subsi3): Merge...
15511 (subsi3): ... here. Use attribute isa.
15512 (*subsi3_flags): New.
15513 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
15514 when possible.
15515 (*am33_andsi3, *mn10300_andsi3): Merge...
15516 (andsi3): ... here.
15517 (*andsi3_flags): New.
15518 (andsi3 splitters): New.
15519 (*am33_iorsi3, *mn10300_iorsi3): Merge...
15520 (iorsi3): ... here.
15521 (*iorsi3_flags): New.
15522 (*am33_xorsi3, *mn10300_xorsi3): Merge...
15523 (xorsi3): ... here.
15524 (*xorsi3_flags): New.
15525 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
15526 (one_cmplsi2): ... here.
15527 (*one_cmplsi2_flags): New.
15528 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
15529 instead of "dax" in constraints. Use mn10300_split_cbranch.
15530 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
15531 use matching constraints to eliminate a self-comparison.
15532 (*integer_conditional_branch): Rename from integer_conditional_branch.
15533 Use int_mode_flags to match CC_REG.
15534 (*cbranchsi4_btst, *btstsi): New.
15535 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
15536 mn10300_split_cbranch.
15537 (*am33_cmpsf): Rename from am33_cmpsf.
15538 (*float_conditional_branch): Rename from float_conditional_branch.
15539 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
15540 (zero_extendqisi2): ... here.
15541 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
15542 (zero_extendhisi2): ... here.
15543 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
15544 (extendqisi2): ... here.
15545 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
15546 (extendhisi2): ... here.
15547 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
15548 (ashlsi3): ... here.
15549 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
15550 (lshrsi3): ... here.
15551 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
15552 (ashrsi3): ... here.
15553 (consecutive add peephole): Remove.
15554 * config/mn10300/predicates.md (label_ref_operand): New.
15555 (int_mode_flags): New.
15556 (CCZN_comparison_operator): New.
15557
15558 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
15559 (throughput_42_latency_43): New reservation.
15560 (mulsidi3, umulsidi3): New expanders.
15561 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
15562 the MDR register to allocation; separately allocate the low and
15563 high parts of the DImode result.
15564 (umulsidi3_internal): Similarly.
15565 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
15566 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
15567 (udivsi3, umodsi3): Remove.
15568 (udivmodsi4, divmodsi4): New expanders.
15569 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
15570 (*divmodsi4): Simiarly.
15571 (ext_internal): New.
15572
15573 * config/mn10300/constraints.md ("z"): New constraint.
15574 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
15575 (FIXED_REGISTERS): Don't fix MDR.
15576 (CALL_USED_REGSITERS): Reformat nicely.
15577 (REG_ALLOC_ORDER): Add MDR.
15578 (enum regclass): Add MDR_REGS.
15579 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
15580 (IRA_COVER_CLASSES): Add MDR_REGS.
15581 (REGNO_REG_CLASS): Handle MDR_REG.
15582 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
15583 (mn10300_register_move_cost): Likewise.
15584 * config/mn10300/mn10300.md (MDR_REG): New.
15585 (*movsi_internal): Handle moves to/from MDR_REGS.
15586
15587 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
15588 POST_MODIFY.
15589 (mn10300_secondary_reload): Tidy combination reload classes.
15590 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
15591 addresses for AM33. Allow symbolic offsets for reg+imm.
15592 (mn10300_regno_in_class_p): New.
15593 (mn10300_legitimize_reload_address): New.
15594 * config/mn10300/mn10300.h (enum reg_class): Remove
15595 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
15596 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
15597 SP_OR_GENERAL_REGS.
15598 (REG_CLASS_NAMES): Update to match.
15599 (REG_CLASS_CONTENTS): Likewise.
15600 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
15601 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
15602 (REGNO_IN_RANGE_P): Remove.
15603 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
15604 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
15605 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
15606 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
15607 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
15608 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
15609 (REGNO_GENERAL_P): New.
15610 (HAVE_POST_MODIFY_DISP): New.
15611 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
15612 (LEGITIMIZE_RELOAD_ADDRESS): New.
15613 * config/mn10300/mn10300-protos.h: Update.
15614
15615 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
15616 DATA_REGS for AM33 stack-pointer destination.
15617 (mn10300_preferred_output_reload_class): Likewise.
15618 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
15619 into a form appropriate for ...
15620 (TARGET_SECONDARY_RELOAD): New.
15621 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
15622 * config/mn10300/mn10300-protos.h: Update.
15623 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
15624 reload_insi; use the "A" constraint for the scratch; handle AM33
15625 moves of sp to non-address registers.
15626
15627 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
15628 (*movqi_internal): ... here.
15629 (*am33_movhi, *mn10300_movhi): Merge into...
15630 (*movhi_internal): ... here.
15631 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
15632 as the source/destination of moves from/to SP.
15633 (movsf): Only allow for AM33-2.
15634 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
15635 any integer constant constraint. Only allow for AM33-2. Tidy
15636 all of the alternative outputs.
15637 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
15638 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
15639 for MN103.
15640 (udivsi3, umodsi3): New patterns for MN103 only.
15641
15642 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
15643
15644 * doc/tm.texi.in: Spell out that a lack of register class unions
15645 can lead to ICEs.
15646 * doc/tm.texi: Regenerate.
15647
15648 2011-01-19 Jakub Jelinek <jakub@redhat.com>
15649
15650 PR rtl-optimization/47337
15651 * dce.c (check_argument_store): New function.
15652 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
15653
15654 PR tree-optimization/47290
15655 * tree-eh.c (infinite_empty_loop_p): New function.
15656 (cleanup_empty_eh): Use it.
15657
15658 2011-01-18 Steve Ellcey <sje@cup.hp.com>
15659
15660 PR target/46997
15661 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
15662 (a64_expand_widen_sum): Ditto.
15663 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
15664 (vec_extract_evenodd_help): Ditto.
15665 (vec_extract_evenv4hi): Ditto.
15666 (vec_extract_oddv4hi): Ditto.
15667 (vec_extract_evenv2si): Ditto.
15668 (vec_extract_oddv2si): Ditto.
15669 (vec_extract_evenv2sf): Ditto.
15670 (vec_extract_oddv2sf): Ditto.
15671 (vec_pack_trunc_v4hi: Ditto.
15672 (vec_pack_trunc_v2si): Ditto.
15673 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
15674 (vec_interleave_highv8qi): Ditto.
15675 (mix1_r): Ditto.
15676 (vec_extract_oddv8qi): Ditto.
15677 (vec_interleave_lowv4hi): Ditto.
15678 (vec_interleave_highv4hi): Ditto.
15679 (vec_interleave_lowv2si): Ditto.
15680 (vec_interleave_highv2si): Ditto.
15681
15682 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15683
15684 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
15685 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
15686 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
15687 (pa_c_mode_for_suffix): New.
15688 (TARGET_EXPAND_BUILTIN): Define.
15689 (TARGET_C_MODE_FOR_SUFFIX): Define.
15690 (pa_builtins): Define.
15691 (pa_init_builtins): Register __float128 type and init new support
15692 builtins.
15693 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
15694 * config/pa/quadlib.c (_U_Qfcopysign): New.
15695
15696 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
15697
15698 PR middle-end/46894
15699 * explow.c (allocate_dynamic_stack_space): Do not assume more than
15700 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
15701 are defined.
15702
15703 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15704
15705 PR tree-optimization/47179
15706 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
15707 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
15708
15709 2011-01-18 Richard Guenther <rguenther@suse.de>
15710
15711 PR rtl-optimization/47216
15712 * emit-rtl.c: Include tree-flow.h.
15713 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
15714 of replicating it with different semantics.
15715 * Makefile.in (emit-rtl.o): Adjust.
15716
15717 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15718
15719 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
15720 (cortex_a9_dp): Handle neon types correctly.
15721
15722 2011-01-18 Jakub Jelinek <jakub@redhat.com>
15723
15724 PR rtl-optimization/47299
15725 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
15726 subtarget. Use normal multiplication if both operands are constants.
15727 * expmed.c (expand_widening_mult): Don't try to optimize constant
15728 multiplication if op0 has VOIDmode. Convert op1 constant to mode
15729 before using it.
15730
15731 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15732
15733 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
15734 spacing after 'e.g.', typos, comma, hyphenation.
15735
15736 2011-01-17 Richard Henderson <rth@redhat.com>
15737
15738 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15739 (rx_restricted_mem_operand): New.
15740 (rx_shift_operand): Use register_operand.
15741 (rx_source_operand, rx_compare_operand): Likewise.
15742 * config/rx/rx.md (addsi3_flags): New expander.
15743 (adddi3): Rewrite as expander.
15744 (adc_internal, *adc_flags, adddi3_internal): New patterns.
15745 (subsi3_flags): New expander.
15746 (subdi3): Rewrite as expander.
15747 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15748
15749 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15750 (rx_init_builtins): Remove sat builtin.
15751 (rx_expand_builtin): Likewise.
15752 * config/rx/rx.md (ssaddsi3): New.
15753 (*sat): Rename from sat. Represent the CC_REG input.
15754
15755 * config/rx/predicates.md (rshift_operator): New.
15756 * config/rx/rx.c (rx_expand_insv): Remove.
15757 * config/rx/rx-protos.h: Update.
15758 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
15759 operand to the canonical position.
15760 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15761 (*bitclr, *bitclr_in_memory): Similarly.
15762 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15763 (insv): Retain the zero_extract in the expansion.
15764
15765 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15766 (bswaphi2, bitinvert, revw): Likewise.
15767
15768 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15769 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15770 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15771 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15772 (bitset, bitset_in_memory): Likewise.
15773 (bitinvert, bitinvert_in_memory): Likewise.
15774 (bitclr, bitclr_in_memory): Likewise.
15775 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15776 (rx_strend, rx_cmpstrn): Likewise.
15777 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
15778 (bitop peep2 patterns): Remove.
15779
15780 * config/rx/rx.c (rx_match_ccmode): New.
15781 * config/rx/rx-protos.h: Update.
15782 * config/rx/rx.md (abssi2): Clobber, don't set flags.
15783 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15784 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15785 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15786 (fix_truncsfsi2, floatsisf2): Likewise.
15787 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15788 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15789 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15790 (*subsi3_flags, *xorsi3_flags): New.
15791
15792 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15793
15794 * config/rx/rx.c (rx_print_operand): Remove workaround for
15795 unsplit comparison operations.
15796
15797 * config/rx/rx.md (movsicc): Split after reload.
15798 (*movsicc): Merge *movsieq and *movsine via match_operator.
15799 (*stcc): New pattern.
15800
15801 * config/rx/rx.c (rx_float_compare_mode): Remove.
15802 * config/rx/rx.h (rx_float_compare_mode): Remove.
15803 * config/rx/rx.md (cstoresi4): Split after reload.
15804 (*sccc): New pattern.
15805
15806 * config/rx/predicates.md (label_ref_operand): New.
15807 (rx_z_comparison_operator): New.
15808 (rx_zs_comparison_operator): New.
15809 (rx_fp_comparison_operator): New.
15810 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15811 Validate that the flags are set properly for the comparison.
15812 (rx_gen_cond_branch_template): Remove.
15813 (rx_cc_modes_compatible): Remove.
15814 (mode_from_flags): New.
15815 (flags_from_code): Rename from flags_needed_for_conditional.
15816 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15817 (rx_select_cc_mode): Likewise.
15818 (rx_split_fp_compare): New.
15819 (rx_split_cbranch): New.
15820 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15821 (*cbranchsi4): Use match_operator and rx_split_cbranch.
15822 (*cbranchsf4): Similarly.
15823 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
15824 match_operator and rx_split_cbranch.
15825 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15826 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
15827 (*cmpsi): Rename from cmpsi.
15828 (*tstsi): Rename from tstsi.
15829 (*cmpsf): Rename from cmpsf; use CC_Fmode.
15830 (*conditional_branch): Rename from conditional_branch.
15831 (*reveresed_conditional_branch): Remove.
15832 (b<code>): Remove expander.
15833 * config/rx/rx-protos.h: Update.
15834
15835 * config/rx/rx.c (rx_compare_redundant): Remove.
15836 * config/rx/rx.md (cmpsi): Don't use it.
15837 * config/rx/rx-protos.h: Update.
15838
15839 * config/rx/rx-modes.def (CC_F): New mode.
15840 * config/rx/rx.c (rx_select_cc_mode): New.
15841 * config/rx/rx.h (SELECT_CC_MODE): Use it.
15842 * config/rx/rx-protos.h: Update.
15843
15844 2011-01-17 Richard Henderson <rth@redhat.com>
15845
15846 * except.c (dump_eh_tree): Fix stray ; after for statement.
15847
15848 2011-01-17 Richard Guenther <rguenther@suse.de>
15849
15850 PR tree-optimization/47313
15851 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15852 handling before copying the body. Properly deal with
15853 by-reference result in SSA form.
15854
15855 2011-01-17 Ian Lance Taylor <iant@google.com>
15856
15857 PR target/47219
15858 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15859 (struct_value_alias_set): Don't define.
15860 (sparc_option_override): Don't set sparc_sr_alias_set and
15861 struct_value_alias_set.
15862 (save_or_restore_regs): Use gen_frame_mem rather than calling
15863 set_mem_alias_set.
15864 (sparc_struct_value_rtx): Likewise.
15865
15866 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
15867
15868 PR target/47318
15869 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15870 (_mm_maskstore_pd): Likewise.
15871 (_mm_maskload_ps): Likewise.
15872 (_mm_maskstore_ps): Likewise.
15873 (_mm256_maskload_pd): Change mask to __m256i.
15874 (_mm256_maskstore_pd): Likewise.
15875 (_mm256_maskload_ps): Likewise.
15876 (_mm256_maskstore_ps): Likewise.
15877
15878 * config/i386/i386-builtin-types.def: Updated.
15879 (ix86_expand_special_args_builtin): Likewise.
15880
15881 * config/i386/i386.c (bdesc_special_args): Update
15882 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15883 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15884 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15885 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15886
15887 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15888 Use <avxpermvecmode> on mask register.
15889 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15890
15891 2011-01-17 Olivier Hainque <hainque@adacore.com>
15892 Michael Haubenwallner <michael.haubenwallner@salomon.at>
15893 Eric Botcazou <ebotcazou@adacore.com>
15894
15895 PR target/46655
15896 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15897 if <= USHRT_MAX in 32-bit mode.
15898
15899 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15900
15901 * doc/install.texi (Configuration, Specific): Wrap long
15902 lines in examples. Allow line wrapping in long options
15903 and URLs where beneficial for PDF output.
15904
15905 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
15906
15907 * config/mips/mips.c (mips_classify_symbol): Don't return
15908 SYMBOL_PC_RELATIVE for nonlocal labels.
15909
15910 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
15911
15912 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15913
15914 2011-01-15 Jan Hubicka <jh@suse.cz>
15915
15916 PR tree-optimization/47276
15917 * ipa.c (function_and_variable_visibility): Do not try to mark alias
15918 declarations as needed.
15919
15920 2011-01-15 Martin Jambor <mjambor@suse.cz>
15921
15922 * common.opt (fdevirtualize): New flag.
15923 * doc/invoke.texi (Option Summary): Document it.
15924 * opts.c (default_options_table): Add devirtualize flag.
15925 * ipa-prop.c (detect_type_change): Return immediately if
15926 devirtualize flag is not set.
15927 (detect_type_change_ssa): Likewise.
15928 (compute_known_type_jump_func): Likewise.
15929 (ipa_analyze_virtual_call_uses): Likewise.
15930
15931 2011-01-14 Martin Jambor <mjambor@suse.cz>
15932
15933 PR tree-optimization/45934
15934 PR tree-optimization/46302
15935 * ipa-prop.c (type_change_info): New type.
15936 (stmt_may_be_vtbl_ptr_store): New function.
15937 (check_stmt_for_type_change): Likewise.
15938 (detect_type_change): Likewise.
15939 (detect_type_change_ssa): Likewise.
15940 (compute_complex_assign_jump_func): Check for dynamic type change.
15941 (compute_complex_ancestor_jump_func): Likewise.
15942 (compute_known_type_jump_func): Likewise.
15943 (compute_scalar_jump_functions): Likewise.
15944 (ipa_analyze_virtual_call_uses): Likewise.
15945 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15946
15947 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15948
15949 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15950 * config/i386/i386.opt (msse5): New Alias.
15951
15952 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15953
15954 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15955 * config/sparc/linux64.h (CC1_SPEC): Likewise.
15956 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15957 * config/sparc/sparc.h (CC1_SPEC): Likewise.
15958
15959 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15960
15961 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15962 -mcpu options.
15963 * config/sparc/linux64.h (CC1_SPEC): Likewise.
15964 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15965 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15966 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15967 Likewise.
15968 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15969
15970 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15971
15972 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
15973
15974 2011-01-14 Mike Stump <mikestump@comcast.net>
15975
15976 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15977 * config/fr30/fr30.md: Likweise
15978 (movsi_push): Likewise.
15979 (movsi_pop): Likewise.
15980 (enter_func): Likewise.
15981 * config/moxie/moxie.md (movsi_push): Likewise.
15982 (movsi_pop): Likewise.
15983
15984 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15985
15986 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15987 %{no_archive} %{exact_version}.
15988 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15989 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15990 %{no_archive} %{exact_version}.
15991 * config/mips/openbsd.h (LINK_SPEC): Likewise.
15992 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15993 * config/mips/vxworks.h: Likewise.
15994
15995 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15996
15997 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
15998
15999 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16000
16001 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
16002 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
16003
16004 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16005
16006 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
16007 -nodefaultlib.
16008
16009 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16010
16011 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
16012 for mcpu not cpu.
16013 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
16014 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
16015 not cpu.
16016 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
16017 Don't handle -shlib.
16018
16019 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16020
16021 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
16022 (CC1_SPEC): Don't handle -profile.
16023
16024 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16025
16026 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
16027 * config/mips/mips.h (CC1_SPEC): Likewise.
16028
16029 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16030
16031 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
16032 * config/mips/mips.h (CC1_SPEC): Likewise.
16033
16034 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16035
16036 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
16037 * config/m32r/linux.h (LINK_SPEC): Likewise.
16038 * config/mips/linux.h (LINK_SPEC): Likewise.
16039 * config/mips/linux64.h (LINK_SPEC): Likewise.
16040 * config/sparc/linux.h (LINK_SPEC): Likewise.
16041 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
16042 LINK_SPEC): Likewise.
16043 * config/xtensa/linux.h (LINK_SPEC): Likewise.
16044
16045 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16046
16047 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
16048 %{version:-v}.
16049 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
16050
16051 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16052
16053 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
16054 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
16055
16056 2011-01-14 Joseph Myers <joseph@codesourcery.com>
16057
16058 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
16059
16060 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16061
16062 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
16063 supports -Bstatic/-Bdynamic.
16064 * configure: Regenerate.
16065
16066 2011-01-14 Jan Hubicka <jh@suse.cz>
16067 Jack Howarth <howarth@bromo.med.uc.edu>
16068
16069 PR target/46037
16070 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
16071 when checking debug_info_level. Test write_symbols instead of
16072 debug_hooks->var_location when setting flag_var_tracking_uninit.
16073
16074 2011-01-14 Richard Guenther <rguenther@suse.de>
16075
16076 PR tree-optimization/47179
16077 * target.def (ref_may_alias_errno): New target hook.
16078 * targhooks.h (default_ref_may_alias_errno): Declare.
16079 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
16080 (default_ref_may_alias_errno): New function.
16081 * target.h (struct ao_ref_s): Declare.
16082 * tree-ssa-alias.c: Include target.h.
16083 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
16084 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
16085 (targhooks.o): Likewise.
16086 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
16087 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
16088
16089 2011-01-14 Richard Guenther <rguenther@suse.de>
16090
16091 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
16092
16093 2011-01-14 Richard Guenther <rguenther@suse.de>
16094
16095 PR tree-optimization/47280
16096 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
16097 return CFG changes.
16098 (tree_ssa_forward_propagate_single_use_vars): Deal with
16099 CFG changes from associate_plusminus.
16100
16101 2011-01-14 Richard Guenther <rguenther@suse.de>
16102
16103 PR middle-end/47281
16104 Revert
16105 2011-01-11 Richard Guenther <rguenther@suse.de>
16106
16107 PR tree-optimization/46076
16108 * tree-ssa.c (useless_type_conversion_p): Conversions from
16109 unprototyped to empty argument list function types are useless.
16110
16111 2011-01-14 Richard Guenther <rguenther@suse.de>
16112
16113 PR tree-optimization/47286
16114 * tree-ssa-structalias.c (new_var_info): Register variables are global.
16115
16116 2011-01-14 Martin Jambor <mjambor@suse.cz>
16117
16118 PR middle-end/46823
16119 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
16120
16121 2011-01-13 Anatoly Sokolov <aesok@post.ru>
16122
16123 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
16124 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16125 * config/xtensa/xtensa.c (xtensa_libcall_value,
16126 xtensa_function_value_regno_p): New functions.
16127 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16128
16129 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
16130
16131 PR c++/47213
16132 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
16133 PE specific hook.
16134 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
16135 New function prototype.
16136 * config/i386/winnt.c (i386_pe_assemble_visibility):
16137 Warn only if attribute was specified by user.
16138
16139 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
16140
16141 PR target/47251
16142 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
16143 floating point.
16144 (floatunsdidf2_fcfidu): Ditto.
16145
16146 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16147
16148 * config/s390/s390.c (print_operand_address): Replace 'error' with
16149 'output_operand_lossage'.
16150 (print_operand): Likewise.
16151
16152 2011-01-13 Jeff Law <law@redhat.com>
16153
16154 PR rtl-optimization/39077
16155 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
16156 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
16157 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
16158 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
16159 * gcse.c (prune_insertions_deletions): New function.
16160 (compute_pre_data): Use it.
16161
16162 2011-01-13 Dodji Seketeli <dodji@redhat.com>
16163
16164 PR debug/PR46973
16165 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
16166 static function.
16167 (prune_unused_types_mark): Use it.
16168
16169 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
16170
16171 PR rtl-optimization/45352
16172 * sel-sched.c: Update copyright years.
16173 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
16174 in the advancing loop when we have issued issue_rate insns.
16175
16176 2011-01-12 Richard Henderson <rth@redhat.com>
16177
16178 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
16179 (TARGET_MD_ASM_CLOBBERS): New.
16180
16181 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
16182 (TARGET_DELEGITIMIZE_ADDRESS): New.
16183
16184 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
16185 (clzsi2, *bsch): New patterns.
16186
16187 * config/mn10300/mn10300.md (INT): New mode iterator.
16188 (*mov<INT>_clr): New pattern, and peep2 to generate it.
16189
16190 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
16191 flag_split_wide_types.
16192
16193 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
16194 (mn10300_trampoline_init): Rewrite without a template, an immediate
16195 load and a direct branch.
16196 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
16197
16198 2011-01-12 Anatoly Sokolov <aesok@post.ru>
16199
16200 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16201 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
16202 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
16203 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16204
16205 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
16206
16207 PR debug/47209
16208 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
16209 of type.
16210
16211 2011-01-12 Jan Hubicka <jh@suse.cz>
16212
16213 PR driver/47244
16214 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
16215 (PLUGIN_COND_CLOSE): New macro.
16216 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
16217
16218 2011-01-12 Richard Guenther <rguenther@suse.de>
16219
16220 PR lto/47259
16221 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
16222 register variables in a MEM_REF.
16223
16224 2011-01-12 Joseph Myers <joseph@codesourcery.com>
16225
16226 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
16227 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
16228 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
16229 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
16230 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
16231 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
16232 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
16233 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
16234 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
16235 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
16236 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
16237 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
16238 * config/gnu-user.h: New. Copied from linux.h.
16239 (LINUX_TARGET_STARTFILE_SPEC): Rename to
16240 GNU_USER_TARGET_STARTFILE_SPEC.
16241 (LINUX_TARGET_ENDFILE_SPEC): Rename to
16242 GNU_USER_TARGET_ENDFILE_SPEC.
16243 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
16244 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
16245 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
16246 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
16247 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
16248 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
16249 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
16250 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
16251 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
16252 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
16253 * config/arm/linux-eabi.h (CC1_SPEC): Use
16254 GNU_USER_TARGET_CC1_SPEC.
16255 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
16256 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
16257 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
16258 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
16259 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
16260 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
16261 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
16262 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
16263
16264 2011-01-12 Richard Guenther <rguenther@suse.de>
16265
16266 PR other/46946
16267 * doc/invoke.texi (ffast-math): Document it is turned on
16268 with -Ofast.
16269
16270 2011-01-12 Jan Hubicka <jh@suse.cz>
16271
16272 PR tree-optimization/47233
16273 * opts.c (common_handle_option): Disable ipa-reference with profile
16274 feedback.
16275
16276 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
16277
16278 * c-parser.c (c_parser_objc_at_property_declaration): Improved
16279 error message.
16280
16281 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
16282
16283 * c-parser.c (c_lex_one_token): Updated and reindented some
16284 comments. No changes in code.
16285
16286 2011-01-11 Ian Lance Taylor <iant@google.com>
16287
16288 * godump.c (go_output_var): Don't output the variable if there is
16289 already a type with the same name.
16290
16291 2011-01-11 Ian Lance Taylor <iant@google.com>
16292
16293 * godump.c (go_format_type): Don't generate float80.
16294
16295 2011-01-11 Richard Henderson <rth@redhat.com>
16296
16297 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
16298 declaration. Rewrite for both speed and size.
16299 (mn10300_address_cost_1): Remove.
16300 (mn10300_register_move_cost): New.
16301 (mn10300_memory_move_cost): New.
16302 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
16303 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
16304 extensions, shifts, BSWAP, CLZ.
16305 (mn10300_wide_const_load_uses_clr): Remove.
16306 (TARGET_REGISTER_MOVE_COST): New.
16307 (TARGET_MEMORY_MOVE_COST): New.
16308 * config/mn10300/mn10300-protos.h: Update.
16309 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
16310
16311 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
16312 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
16313 * config/mn10300/mn10300-protos.h: Update.
16314 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
16315 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
16316 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
16317 (*test_int_bitfield, *test_byte_bitfield): Remove.
16318 (*bit_test, *subreg_bit_test): Remove.
16319 * config/mn10300/predicates.md (const_8bit_operand): Remove.
16320
16321 * config/mn10300/constraints.md ("c"): Rename from "A".
16322 ("A", "D"): New constraint letters.
16323 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
16324 (fmssf4, fnmasf4, fnmssf4): Likewise.
16325
16326 * config/mn10300/mn10300.md (isa): New attribute.
16327 (enabled): New attribute.
16328
16329 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
16330 (abssf2, negsf2): Define only for hardware fp.
16331 (sqrtsf2): Reformat.
16332 (addsf3, subsf3, mulsf3): Merge expander and insn.
16333
16334 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
16335 (DEBUGGER_AUTO_OFFSET): Remove.
16336 (DEBUGGER_ARG_OFFSET): Remove.
16337
16338 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
16339 Emit register stores with the same offsets as the hardware.
16340 (mn10300_store_multiple_operation): Don't check that the register
16341 save offsets are monotonic.
16342 * config/mn10300/mn10300-protos.h: Update.
16343
16344 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
16345
16346 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
16347 in terms of the value on the stack, not the MDR register.
16348
16349 2011-01-11 Jan Hubicka <jh@suse.cz>
16350
16351 PR lto/45721
16352 PR lto/45375
16353 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
16354 (symbol_alias_set_destroy, symbol_alias_set_contains,
16355 propagate_aliases_backward): Declare.
16356 * lto-streamer-out.c (struct sets): New sturcture.
16357 (trivally_defined_alias): New function.
16358 (output_alias_pair_p): Rewrite.
16359 (output_unreferenced_globals): Fix output of alias pairs.
16360 (produce_symtab): Likewise.
16361 * ipa.c (function_and_variable_visibility): Set weak alias destination
16362 as needed in lto.
16363 * varasm.c (symbol_alias_set_t): Remove.
16364 (symbol_alias_set_destroy): Export.
16365 (propagate_aliases_forward, propagate_aliases_backward): New functions
16366 based on ...
16367 (compute_visible_aliases): ... this one; remove.
16368 (trivially_visible_alias): New
16369 (trivially_defined_alias): New.
16370 (remove_unreachable_alias_pairs): Rewrite.
16371 (finish_aliases_1): Reorganize code checking if alias is defined.
16372 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
16373 in LTO mode.
16374
16375 2011-01-11 Richard Guenther <rguenther@suse.de>
16376
16377 PR tree-optimization/46076
16378 * tree-ssa.c (useless_type_conversion_p): Conversions from
16379 unprototyped to empty argument list function types are useless.
16380
16381 2011-01-11 Richard Guenther <rguenther@suse.de>
16382
16383 PR middle-end/45235
16384 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
16385 volatile MEMs as MEM_READONLY_P.
16386
16387 2011-01-11 Richard Guenther <rguenther@suse.de>
16388
16389 PR tree-optimization/47239
16390 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
16391
16392 2011-01-11 Jeff Law <law@redhat.com>
16393
16394 PR tree-optimization/47086
16395 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
16396 IVs from statements that might throw.
16397
16398 2011-01-10 Jan Hubicka <jh@suse.cz>
16399
16400 PR lto/45375
16401 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
16402
16403 2011-01-10 Jan Hubicka <jh@suse.cz>
16404
16405 PR lto/45375
16406 * profile.c (read_profile_edge_counts): Ignore profile inconistency
16407 when correcting profile.
16408
16409 2011-01-10 Jan Hubicka <jh@suse.cz>
16410
16411 PR lto/46083
16412 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
16413 DECL_FINI_PRIORITY.
16414 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
16415 Restore DECL_FINI_PRIORITY.
16416
16417 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16418
16419 * doc/gimple.texi: Fix quoting of multi-word return values in
16420 @deftypefn statements. Ensure presence of return value. Wrap
16421 overlong @deftypefn lines.
16422 (is_gimple_operand, is_gimple_min_invariant_address): Remove
16423 descriptions of removed functions.
16424 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
16425 of multi-word return value in @deftypefn statement.
16426
16427 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16428
16429 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
16430 (Conditional Expressions, Logical Operators)
16431 (Statement and operand traversals): Do not indent smallexample
16432 code. Fix duplicate function argument in example.
16433
16434 2011-01-10 Jeff Law <law@redhat.com>
16435
16436 PR tree-optimization/47141
16437 * ipa-split.c (split_function): Handle case where we are
16438 returning a value and the return block has a virtual operand phi.
16439
16440 2011-01-10 Jan Hubicka <jh@suse.cz>
16441
16442 PR tree-optimization/47234
16443 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
16444 (pass_feedback_split_functions): Declare.
16445 * passes.c (init_optimization_passes): Add ipa-split as subpass of
16446 tree-profile.
16447 * ipa-split.c (gate_split_functions): Update comments; disable
16448 split-functions for profile_arc_flag and branch_probabilities.
16449 (gate_feedback_split_functions): New function.
16450 (execute_feedback_split_functions): New function.
16451 (pass_feedback_split_functions): New global var.
16452
16453 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
16454
16455 PR lto/46760
16456 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
16457 calling gimple_call_set_cannot_inline.
16458
16459 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
16460
16461 * config/darwin-sections.def: Remove unused section.
16462
16463 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
16464
16465 PR c++/47218
16466 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
16467
16468 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
16469
16470 PR objc/47232
16471 * c-parser.c (c_parser_declaration_or_fndef): Improved
16472 error message.
16473
16474 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
16475
16476 * config/i386/winnt.c (i386_pe_start_function): Make sure
16477 to switch back to function's section.
16478
16479 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
16480
16481 PR gcc/46902
16482 PR testsuite/46912
16483 * plugin.c: Move include of dlfcn.h from here...
16484 * system.h: ... to here.
16485
16486 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16487
16488 * doc/cpp.texi (C++ Named Operators): Fix markup for header
16489 file name.
16490 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
16491 two extra empty pages in PDF output.
16492
16493 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
16494
16495 PR objc/47078
16496 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
16497 for error recovery purposes behave as if it was not specified so
16498 that the default type is usd.
16499
16500 2011-01-07 Jan Hubicka <jh@suse.cz>
16501
16502 PR tree-optmization/46469
16503 * ipa.c (function_and_variable_visibility): Clear needed flags on
16504 nodes with external decls; handle weakrefs merging correctly.
16505
16506 2011-01-07 Joseph Myers <joseph@codesourcery.com>
16507
16508 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
16509 not false.
16510
16511 2011-01-07 Jan Hubicka <jh@suse.cz>
16512
16513 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
16514 and no longer claim that gold is required for linker plugin.
16515 * configure: Regenerate.
16516 * gcc.c (PLUGIN_COND): New macro.
16517 (LINK_COMMAND_SPEC): Use it.
16518 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
16519 * config.in (HAVE_LTO_PLUGIN): New.
16520 * configure.ac (--with-lto-plugin): New parameter; autodetect
16521 HAVE_LTO_PLUGIN.
16522
16523 2011-01-07 Jan Hubicka <jh@suse.cz>
16524
16525 PR tree-optimization/46367
16526 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
16527 when we can update original.
16528 (cgraph_mark_inline_edge): Sanity check.
16529 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
16530
16531 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16532
16533 * config/spu/spu.h (ASM_COMMENT_START): Define.
16534
16535 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
16536
16537 PR driver/42445
16538 * gcc.c (%>S): New.
16539 (SWITCH_KEEP_FOR_GCC): Likewise.
16540 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
16541 (do_spec_1): Handle "%>".
16542
16543 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
16544
16545 2011-01-07 Jakub Jelinek <jakub@redhat.com>
16546
16547 PR target/47201
16548 * config/i386/i386.c (ix86_delegitimize_address): If
16549 simplify_gen_subreg fails, return orig_x.
16550
16551 PR bootstrap/47187
16552 * value-prof.c (gimple_stringop_fixed_value): Handle
16553 lhs of the call properly.
16554
16555 2011-01-07 Jan Hubicka <jh@suse.cz>
16556
16557 PR lto/45375
16558 * lto-opt.c (lto_reissue_options): Set flag_shlib.
16559
16560 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
16561
16562 * target.def (function_switched_text_sections): New hook.
16563 * doc/tm.texi: Regenerated.
16564 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16565 * final.c (default_function_switched_text_sections): New.
16566 (final_scan_insn): Call function_switched_text_sections when a
16567 mid-function section change occurs.
16568 * output.h (default_function_switched_text_sections): Declare.
16569 * config/darwin-protos.h (darwin_function_switched_text_sections):
16570 Likewise.
16571 * config/darwin.c (darwin_function_switched_text_sections): New.
16572 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16573
16574 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
16575
16576 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
16577 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
16578 the secondary code fragment when outputting for DWARF == 2.
16579
16580 2011-01-07 Anatoly Sokolov <aesok@post.ru>
16581
16582 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16583 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
16584 Remove.
16585 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
16586 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16587
16588 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
16589
16590 PR debug/46704
16591 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
16592 when it is not empty.
16593
16594 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
16595
16596 Bobcat Enablement
16597 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
16598 (case ${target}): Add btver1.
16599 * config/i386/driver-i386.c (host_detect_local_cpu): Let
16600 -march=native recognize btver1 processors.
16601 * config/i386/i386-c.c (ix86_target_macros_internal): Add
16602 btver1 def_and_undef
16603 * config/i386/i386.c (struct processor_costs btver1_cost): New
16604 btver1 cost table.
16605 (m_BTVER1): New definition.
16606 (m_AMD_MULTIPLE): Includes m_BTVER1.
16607 (initial_ix86_tune_features): Add btver1 tune.
16608 (processor_target_table): Add btver1 entry.
16609 (static const char *const cpu_names): Add btver1 entry.
16610 (software_prefetching_beneficial_p): Add btver1.
16611 (ix86_option_override_internal): Add btver1 instruction sets.
16612 (ix86_issue_rate): Add btver1.
16613 (ix86_adjust_cost): Add btver1.
16614 * config/i386/i386.h (TARGET_BTVER1): New definition.
16615 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
16616 (enum processor_type): Add PROCESSOR_BTVER1.
16617 * config/i386/i386.md (define_attr "cpu"): Add btver1.
16618
16619 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16620
16621 PR target/43309
16622 * config/i386/i386.c (legitimize_tls_address)
16623 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
16624 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
16625 (tls_initial_exec_64_sun): New pattern.
16626
16627 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16628
16629 * doc/invoke.texi (Overall Options): Improve wording and markup
16630 of the description of -wrapper.
16631
16632 2011-01-06 Joseph Myers <joseph@codesourcery.com>
16633
16634 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
16635 rdynamic, threads): New Driver options.
16636
16637 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16638
16639 PR target/38118
16640 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
16641 if coming from .tdata.
16642 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16643
16644 2011-01-06 Jan Hubicka <jh@suse.cz>
16645
16646 PR lto/47188
16647 * collect2.c (main): Do not enable LTOmode when plugin is active.
16648
16649 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16650
16651 PR other/45915
16652 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
16653 --version output if supported.
16654 * configure: Regenerate.
16655
16656 2011-01-06 Joseph Myers <joseph@codesourcery.com>
16657
16658 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
16659 Driver options.
16660
16661 2011-01-06 Jakub Jelinek <jakub@redhat.com>
16662
16663 PR c/47150
16664 * c-convert.c (convert): When converting a complex expression
16665 other than COMPLEX_EXPR to a different complex type, ensure
16666 c_save_expr is called instead of save_expr, unless in_late_binary_op.
16667 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
16668 when converting COMPLEX_TYPE.
16669
16670 2011-01-06 Ira Rosen <irar@il.ibm.com>
16671
16672 PR tree-optimization/47139
16673 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
16674 only the last reduction value is used outside the loop. Update
16675 documentation.
16676
16677 2011-01-05 Joseph Myers <joseph@codesourcery.com>
16678
16679 * config/rtems.opt: New.
16680 * config.gcc (*-*-rtems*): Use rtems.opt.
16681
16682 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
16683
16684 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
16685 processors do not support 3DNow instructions.
16686
16687 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16688
16689 * config/spu/spu.c (spu_option_override): Set parameter
16690 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
16691
16692 2011-01-05 Jan Hubicka <jh@suse.cz>
16693
16694 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
16695 at the command line.
16696
16697 2011-01-05 Martin Jambor <mjambor@suse.cz>
16698
16699 PR lto/47162
16700 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
16701 deltas on streamed outgoing edges.
16702 (output_node_opt_summary): Output info for outgoing edges only when
16703 the node is in new parameter set.
16704 (output_cgraph_opt_summary): New parameter set, passed to the two
16705 aforementioned functions. Update its forward declaration and its
16706 callee too.
16707
16708 2011-01-05 Tom Tromey <tromey@redhat.com>
16709
16710 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
16711 operator to c_finish_omp_atomic.
16712 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
16713 (build_unary_op): Update.
16714 (build_modify_expr): Update.
16715 (build_asm_expr): Update.
16716
16717 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16718
16719 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
16720 newly inserted insns.
16721 (pad_bb): Likewise.
16722 (spu_emit_branch_hint): Likewise.
16723 (insert_hbrp_for_ilb_runout): Likewise.
16724 (spu_machine_dependent_reorg): Call df_finish_pass after
16725 schedule_insns returns.
16726
16727 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16728
16729 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16730
16731 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
16732
16733 PR tree-optimization/47005
16734 * tree-sra.c (struct access): Add 'non_addressable' bit.
16735 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16736 (decide_one_param_reduction): Return 0 if the parameter is passed by
16737 reference and one of the accesses in the group is non_addressable.
16738
16739 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16740
16741 PR tree-optimization/47056
16742 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16743 (mark_load): Likewise. Handle FUNCTION_DECL specially.
16744 (mark_store): Likewise. Pass STMT to ipa_record_reference.
16745
16746 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16747
16748 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16749 initializer. Skip view conversions from aggregate types.
16750
16751 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
16752
16753 PR bootstrap/47055
16754 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16755
16756 2011-01-04 Philipp Thomas <pth@suse.de>
16757
16758 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16759 obvious typo.
16760
16761 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16762
16763 * function.c (thread_prologue_and_epilogue_insns): Do not crash
16764 on empty epilogue sequences.
16765
16766 2011-01-04 Joseph Myers <joseph@codesourcery.com>
16767
16768 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16769 non-static): New Driver options.
16770
16771 2011-01-04 Jie Zhang <jie@codesourcery.com>
16772
16773 PR driver/47137
16774 * gcc.c (default_compilers[]): Set combinable field to 0
16775 for all assembly languages.
16776
16777 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
16778
16779 * config/mips/loongson3a.md: New file.
16780 * config/mips/mips.md: Include loongson3a.md.
16781 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16782 TUNE_LOONGSON_3A.
16783
16784 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
16785
16786 PR middle-end/47017
16787 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16788 instead of convert_memory_address_addr_space on the base expression.
16789
16790 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16791
16792 * config/spu/spu.c (spu_option_override): Update error text
16793 for bad -march= / -mtune= values.
16794
16795 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16796
16797 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16798 if branch-hint optimization will be performed.
16799
16800 2011-01-03 Jakub Jelinek <jakub@redhat.com>
16801
16802 PR tree-optimization/47148
16803 * ipa-split.c (split_function): Convert arguments to
16804 DECL_ARG_TYPE if possible.
16805
16806 PR tree-optimization/47155
16807 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16808 when computing uns.
16809
16810 PR rtl-optimization/47157
16811 * combine.c (try_combine): If undobuf.other_insn becomes
16812 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16813 and set *new_direct_jump_p too.
16814
16815 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
16816
16817 PR tree-optimization/47021
16818 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16819
16820 2011-01-03 Jakub Jelinek <jakub@redhat.com>
16821
16822 * gcc.c (process_command): Update copyright notice dates.
16823 * gcov.c (print_version): Likewise.
16824 * gcov-dump.c (print_version): Likewise.
16825 * mips-tfile.c (main): Likewise.
16826 * mips-tdump.c (main): Likewise.
16827
16828 2011-01-03 Martin Jambor <mjambor@suse.cz>
16829
16830 PR tree-optimization/46801
16831 * tree-sra.c (type_internals_preclude_sra_p): Check whether
16832 aggregate fields start at byte boundary instead of the bit-field flag.
16833
16834 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
16835
16836 PR driver/47137
16837 * gcc.c (main): Revert revision 168407.
16838
16839 2011-01-03 Martin Jambor <mjambor@suse.cz>
16840
16841 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16842
16843 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16844
16845 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16846 vector optab to expand vector/scalar shift, update gimple to vector.
16847
16848 2011-01-03 Martin Jambor <mjambor@suse.cz>
16849
16850 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16851 a thunk.
16852
16853 2011-01-03 Martin Jambor <mjambor@suse.cz>
16854
16855 PR tree-optimization/46984
16856 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16857 HOST_WIDE_INT.
16858 (cgraph_create_indirect_edge): Fixed line length.
16859 (cgraph_indirect_call_info): Declare.
16860 (cgraph_make_edge_direct) Update declaration.
16861 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16862 (cgraph_create_indirect_edge): Use it.
16863 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
16864 callees.
16865 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16866 the new thunk_delta representation.
16867 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16868 HOST_WIDE_INT.
16869 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16870 (ipa_read_indirect_edge_info): Likewise.
16871 * lto-cgraph.c (output_edge_opt_summary): New function.
16872 (output_node_opt_summary): Call it on all outgoing edges.
16873 (input_edge_opt_summary): New function.
16874 (input_node_opt_summary): Call it on all outgoing edges.
16875
16876 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
16877
16878 PR driver/47137
16879 * gcc.c (main): Don't check have_o when settting combine_inputs.
16880
16881 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
16882
16883 * regrename.c: Add general comment describing the pass.
16884 (struct du_head): Remove 'length' field.
16885 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16886 (regrename_optimize): Do not sort chains. Rework comments, add others.
16887 Force renaming to the preferred class (if any) in the first pass and do
16888 not consider registers that belong to it in the second pass.
16889 (create_new_chain): Do not set 'length' field.
16890 (scan_rtx_reg): Likewise.
16891
16892 2011-01-02 Jakub Jelinek <jakub@redhat.com>
16893
16894 PR tree-optimization/47140
16895 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16896 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16897 to bit_value_binop.
16898
16899 PR rtl-optimization/47028
16900 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16901 parm_birth_insn instead of at the beginning of first bb.
16902
16903 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
16904
16905 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16906 Remove the word "see" before "@pxref".
16907 * doc/rtl.texi: Remove the word "see" before "@pxref".
16908
16909 2011-01-01 Jan Hubicka <jh@suse.cz>
16910
16911 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16912 memory.
16913
16914 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
16915
16916 PR target/38662
16917 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16918
16919 \f
16920 Copyright (C) 2011 Free Software Foundation, Inc.
16921
16922 Copying and distribution of this file, with or without modification,
16923 are permitted in any medium without royalty provided the copyright
16924 notice and this notice are preserved.