re PR target/39431 (ICE in spill_failure, at reload1.c:2093)
[gcc.git] / gcc / ChangeLog
1 2008-03-12 Jakub Jelinek <jakub@redhat.com>
2
3 PR target/39431
4 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
5 predicate.
6 * config/i386/sync.md (sync_compare_and_swap<mode>,
7 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
9 into a register.
10 (sync_double_compare_and_swapdi_pic,
11 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13
14 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
15
16 PR target/39445
17 * config/i386/i386.c (ix86_expand_push): Don't set memory
18 alignment.
19
20 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
21
22 PR target/39327
23 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
24 (avx_addsubv4df3): Likewise.
25 (*avx_addsubv4sf3): Likewise.
26 (sse3_addsubv4sf3): Likewise.
27
28 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
29
30 PR target/38824
31 * config/i386/i386.md: Compare REGNO on the new peephole2
32 patterns.
33
34 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
35
36 PR debug/39432
37 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
38 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
39 registers for allocnos created from user-defined variables.
40
41 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
42
43 PR target/39181
44 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
45 of non-integer mode as well.
46
47 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
48
49 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
50 for functions for which the parameter types are unknown.
51
52 2009-03-11 Jakub Jelinek <jakub@redhat.com>
53
54 PR target/39137
55 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT
56 macro.
57 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
58 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
59 * config/i386/i386.c (ix86_local_alignment): For
60 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
61 long long variables on the stack to avoid dynamic realignment.
62 Allow the first argument to be a decl rather than type.
63 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
64
65 2009-03-11 Nick Clifton <nickc@redhat.com>
66
67 PR target/5362
68 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
69 options.
70 Add description to mno-lsim option.
71 * config/mcore/mcore.h: Remove comment about deprecated m4align
72 option.
73 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
74 * doc/invoke.texi: Add description of mno-lsim and
75 mstack-increment options.
76
77 * config/fr30/fr30.opt: Document the -mno-lsim option.
78 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
79 and -mno-lsim options.
80
81 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
82
83 * fold-const.c (fold_comparison): Only call fold_inf_compare
84 if the mode supports infinities.
85
86 2009-03-11 Jason Merrill <jason@redhat.com>
87
88 PR debug/39086
89 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
90 end already did. Notice GIMPLE_CALL modifications of the result.
91 Don't copy debug information from an ignored decl or a decl from
92 another function.
93
94 2009-03-10 Richard Guenther <rguenther@suse.de>
95 Nathan Froyd <froydnj@codesourcery.com>
96
97 PR middle-end/37850
98 * libgcc2.c (__mulMODE3): Use explicit assignments to form the
99 result.
100 (__divMODE3): Likewise.
101
102 2009-03-09 Jakub Jelinek <jakub@redhat.com>
103
104 PR tree-optimization/39394
105 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
106 DECL_SIZE_UNIT of variable length FIELD_DECLs.
107
108 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
109
110 * recog.c (verfiy_changes): Disallow renaming of hard regs in
111 inline asms for register asm ("") declarations.
112
113 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
114
115 * fold-const.c (fold_unary): Fix comment.
116
117 2009-03-07 Jan Hubicka <jh@suse.cz>
118
119 PR target/39361
120 * tree-inline.c (setup_one_parameter): Do replacement of const argument
121 by constant in SSA form.
122
123 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
124
125 PR middle-end/38028
126 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
127 determine alignment passed to assign_stack_local.
128 (assign_parms_unsplit_complex): Likewise.
129 * except.c (sjlj_build_landing_pads): Likewise.
130
131 2009-03-06 Jakub Jelinek <jakub@redhat.com>
132
133 PR middle-end/39360
134 * tree-flow.h (add_referenced_var): Return bool instead of void.
135 * tree-dfa.c (add_referenced_var): Return result of
136 referenced_var_check_and_insert call.
137 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
138 of referenced_var_check_and_insert.
139
140 PR debug/39372
141 * dwarf2out.c (add_abstract_origin_attribute): Return
142 origin_die.
143 (gen_variable_die): Emit DW_AT_location on abstract static variable's
144 DIE, don't emit it if abstract origin already has it.
145 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
146 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
147
148 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
149
150 * genpreds.c: (needs_variable): Fix parentheses at variable name
151 detection.
152 (write_tm_constrs_h): Indent generated code.
153
154 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
155
156 * doc/extend.texi (Function Attributes): Add documentation
157 for isr attributes.
158
159 2009-03-06 Jakub Jelinek <jakub@redhat.com>
160
161 PR debug/39387
162 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
163 take locus from its DECL_SOURCE_LOCATION instead of input_location.
164
165 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
166
167 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
168 the loop as bad.
169
170 2009-03-05 Jakub Jelinek <jakub@redhat.com>
171
172 PR debug/39379
173 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
174 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
175
176 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
177
178 * config/i386/i386.md (R8_REG, R9_REG): New constants.
179 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
180 constants instead of magic numbers.
181 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
182 (QI_REG_P): Ditto.
183 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
184 (x86_64_ms_abi_int_parameter_registers): Ditto.
185 (x86_64_int_return_registers): Ditto.
186 (ix86_maybe_switch_abi): Ditto.
187 (ix86_expand_call): Ditto for clobbered_registers array.
188 (ix86_hard_regno_mode_ok): Ditto.
189 (x86_extended_QIreg_mentioned_p): Ditto.
190
191 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
192
193 PR tree-optimization/39349
194 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
195
196 * combine.c (gen_lowpart_for_combine): Use omode when generating
197 clobber.
198
199 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
200
201 PR rtl-optimization/39235
202 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
203
204 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
205
206 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
207
208 2009-03-04 Richard Guenther <rguenther@suse.de>
209
210 PR tree-optimization/39362
211 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
212 that occur in abnormal PHIs should be varying.
213
214 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
215
216 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
217 Extend comments.
218 (simple_iv): Take loop as an argument instead of statement.
219 * tree-scalar-evolution.h (simple_iv): Declaration changed.
220 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
221 to simple_iv.
222 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
223 Ditto.
224 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
225 * matrix-reorg.c (analyze_transpose): Ditto.
226 * tree-data-ref.c (dr_analyze_innermost): Ditto.
227 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
228 * tree-predcom.c (ref_at_iteration): Ditto.
229 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
230
231 2009-03-04 Richard Guenther <rguenther@suse.de>
232
233 PR tree-optimization/39358
234 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
235 escaped_id and callused_id.
236 (solve_graph): Likewise.
237
238 2009-03-04 Richard Guenther <rguenther@suse.de>
239
240 PR tree-optimization/39339
241 * tree-sra.c (try_instantiate_multiple_fields): Make it
242 no longer ICE on the above.
243
244 2009-03-03 Joseph Myers <joseph@codesourcery.com>
245
246 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
247 that fits within Pmode.
248
249 2009-03-03 Steve Ellcey <sje@cup.hp.com>
250
251 PR middle-end/10109
252 * tm.texi (LIBCALL_VALUE): Update description.
253
254 2009-03-03 Steve Ellcey <sje@cup.hp.com>
255
256 PR middle-end/34443
257 * doc/extend.texi (section): Update description.
258
259 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
260
261 PR middle-end/39345
262 * tree-inline.c (remapped_type): New.
263 (can_be_nonlocal): Call remapped_type instead of remap_type.
264
265 2009-03-03 Jakub Jelinek <jakub@redhat.com>
266
267 PR fortran/39354
268 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
269 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
270
271 2009-03-03 Richard Guenther <rguenther@suse.de>
272
273 PR middle-end/39272
274 * tree.c (tree_nonartificial_location): New function.
275 * tree.h (tree_nonartificial_location): Declare.
276 * builtins.c (expand_builtin_memory_chk): Provide location
277 of the call location for artificial function pieces.
278 (maybe_emit_chk_warning): Likewise.
279 (maybe_emit_sprintf_chk_warning): Likewise.
280 (maybe_emit_free_warning): Likewise.
281 * expr.c (expand_expr_real_1): Likewise.
282
283 2009-03-03 Jakub Jelinek <jakub@redhat.com>
284
285 PR tree-optimization/39343
286 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
287 COMPONENT_REF t has ARRAY_TYPE.
288
289 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
290
291 PR middle-end/39335
292 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
293 when the type precision of the induction variable should be
294 larger than the type precision of nit.
295 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
296 * graphite.c (graphite_loop_normal_form): Same.
297 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
298
299 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
300
301 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
302 (*call_1_rex64_ms_sysv): Use named constants instead of magic
303 numbers to describe clobbered registers.
304 (*call_value_0_rex64_ms_sysv): Ditto.
305 * config/i386/mmx.md (mmx_emms): Ditto.
306 (mmx_femms): Ditto.
307
308 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
309
310 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
311 of ABI_64.
312
313 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
314
315 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
316 (spu_section_type_flags): New function.
317
318 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
319
320 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
321 reg_class_contents of FLOAT_REGS into a temporary.
322
323 2009-03-02 Richard Guenther <rguenther@suse.de>
324 Ira Rosen <irar@il.ibm.com>
325
326 PR tree-optimization/39318
327 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
328 information to the vectorized statement.
329
330 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
331
332 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
333 variable. Use defined names instead of magic constants for REX SSE
334 registers.
335
336 2009-03-01 Richard Guenther <rguenther@suse.de>
337
338 PR tree-optimization/39331
339 * omp-low.c (lower_send_shared_vars): Do not receive new
340 values for the reference of DECL_BY_REFERENCE parms or results.
341
342 2009-03-01 Jan Hubicka <jh@suse.cz>
343
344 PR debug/39267
345 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
346 BLOCK_NONLOCALIZED_VAR): New macros.
347 (tree_block): Add nonlocalized_vars.
348 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
349 gen_decl_die): Add origin argument. Allow generation of die with
350 origin at hand only.
351 (gen_member_die, gen_type_die_with_usage, force_decl_die,
352 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
353 of gen_*.
354 (gen_block_die): Fix checking for unused blocks.
355 (process_scope_var): Break out from .... ; work with origins only.
356 (decls_for_scope) ... here; process nonlocalized list.
357 (dwarf2out_ignore_block): Look for nonlocalized vars.
358 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
359 vars.
360 (dump_scope_block): Dump them.
361 * tree-inline.c (remap_decls): Handle nonlocalized vars.
362 (remap_block): Likewise.
363 (can_be_nonlocal): New predicate.
364 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
365
366 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
367
368 * configure: Regenerate.
369
370 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
371
372 * optc-gen.awk: No need to duplicate option flags twice.
373 Reuse help texts for duplicate options which do not have
374 any.
375
376 * gcc.c (display_help): Document --version.
377
378 * gcc.c (main): If print_help_list and verbose_flag, ensure
379 driver output comes before subprocess output.
380
381 * optc-gen.awk: Assign all remaining fields to help string,
382 space-separated, for multi-line help in *.opt.
383
384 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
385 -Wno-pedantic-ms-format is for MinGW targets only.
386
387 * doc/options.texi (Option file format): Fix bad indentation,
388 restoring dropped sentence.
389
390 2009-02-28 Jan Hubicka <jh@suse.cz>
391
392 * tree-inline.c (tree_function_versioning): Output debug info.
393
394 2009-02-28 Jan Hubicka <jh@suse.cz>
395
396 PR debug/39267
397 * tree-inline.c (setup_one_parameter): Do not copy propagate
398 arguments when not optimizing.
399
400 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
401
402 PR target/39327
403 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
404 (avx_addsubv4df3): Likewise.
405 (*avx_addsubv4sf3): Likewise.
406 (sse3_addsubv4sf3): Likewise.
407 (*avx_addsubv2df3): Likewise.
408 (sse3_addsubv2df3): Likewise.
409 (avx_unpckhps256): Correct item selectors.
410 (avx_unpcklps256): Likewise.
411 (avx_unpckhpd256): Likewise.
412 (avx_unpcklpd256): Likewise.
413
414 2009-02-28 Jan Hubicka <jh@suse.cz>
415
416 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
417 static vars.
418 (copy_arguments_for_versioning): If var is declared don't declare it.
419 (tree_function_versioning): First setup substitutions and then copy
420 args.
421
422 2009-02-27 Jan Hubicka <jh@suse.cz>
423
424 PR debug/39267
425 * cgraph.h (varpool_output_debug_info): Remove.
426 * cgraphunit.c (varpool_output_debug_info): Remove.
427 * dwarf2out.c (deferred_locations_struct): New struct
428 (deferred_locations): New type.
429 (deferred_locations_list): New static var.
430 (deffer_location): New function.
431 (gen_variable_die): Use it.
432 (decls_for_scope): Output info on local static vars.
433 (dwarf2out_finish): Process deferred locations.
434 * varpool.c (varpool_output_debug_info): Remove.
435
436 2009-02-27 Jan Hubicka <jh@suse.cz>
437
438 PR debug/39267
439 * tree.h (TREE_PROTECTED): Fix comment.
440 (BLOCK_HANDLER_BLOCK): Remove.
441 (struct tree_block): Remove handler_block add body_block.
442 (inlined_function_outer_scope_p): New.
443 (is_body_block): Remove.
444 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
445 * dwarf2out.c (is_inlined_entry_point): Remove.
446 (add_high_low_attributes): Use inlined_function_outer_scope_p.
447 (gen_block_die): Use is_inlined_entry_point check. Remove body block
448 code.
449 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
450 * gimplify.c (gimplify_expr): Gimplify body blocks.
451 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
452 block with multiple subblocks.
453 (dump_scope_block): Prettier output; dump more flags and info.
454 (dump_scope_blocks): New.
455 (remove_unused_locals): Use dump_scope_blocks.
456 * tree-flow.h (dump_scope_blocks): Declare.
457 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
458 * stmt.c (is_body_block): Remove.
459 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
460 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
461
462 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
463
464 PR middle-end/39308
465 * graphite.c (graphite_loop_normal_form): Do not call
466 number_of_iterations_exit from a gcc_assert.
467
468 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
469
470 * gcc/config/s390/s390.c: (s390_swap_cmp): Look for conditional
471 jumps if COND is NULL.
472 (find_cond_jump): New function.
473 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
474 * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
475
476 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
477
478 * config/alpha/alpha.h (alpha_expand_mov): Return false if
479 force_const_mem returns NULL_RTX.
480
481 2009-02-26 Jan Hubicka <jh@suse.cz>
482
483 PR debug/39267
484 * cgraph.h (varpool_output_debug_info): Remove.
485 * cgraphunit.c (varpool_output_debug_info): Remove.
486 * dwarf2out.c (deferred_locations_struct): New struct
487 (deferred_locations): New type.
488 (deferred_locations_list): New static var.
489 (deffer_location): New function.
490 (gen_variable_die): Use it.
491 (decls_for_scope): Output info on local static vars.
492 (dwarf2out_finish): Process deferred locations.
493 * varpool.c (varpool_output_debug_info): Remove.
494
495 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
496
497 PR rtl-optimization/39241
498 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
499 to subreg_offset_representable_p.
500
501 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
502
503 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
504 execute function prototype. Get f and nregs from max_reg_num
505 and get_insns. Remove the first backward pass as it's dead,
506 guard the forward pass by flag_expensive_optimizations.
507 (rest_of_handle_regmove): Delete.
508 (pass_regmove): Replace it with regmove_optimize.
509
510 2009-02-25 Martin Jambor <mjambor@suse.cz>
511
512 PR tree-optimization/39259
513 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
514 calls_alloca function flags.
515 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
516 calls are detected.
517
518 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
519
520 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
521 flags_set_1_rtx, flags_set_1_set): Delete.
522 (regmove_optimize): Do not call mark_flags_life_zones.
523
524 2009-02-24 Julian Brown <julian@codesourcery.com>
525
526 PR target/35965
527 * config/arm/arm.c (require_pic_register): Only set
528 cfun->machine->pic_reg once per function.
529
530 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
531
532 * doc/invoke.texi (Link Options): Document an easier way to pass
533 options that take arguments to the GNU linker using -Xlinker and -Wl.
534
535 2009-02-24 Steve Ellcey <sje@cup.hp.com>
536
537 PR target/33785
538 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
539
540 2009-02-24 Richard Guenther <rguenther@suse.de>
541
542 PR debug/39285
543 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
544
545 2009-02-24 Richard Guenther <rguenther@suse.de>
546 Zdenek Dvorak <ook@ucw.cz>
547
548 PR tree-optimization/39233
549 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
550 from converting them to a generic type.
551
552 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
553
554 PR tree-optimization/39260
555 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
556 contains a condition with a real type.
557 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
558
559 2009-02-23 Jason Merrill <jason@redhat.com>
560
561 PR c++/38880
562 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
563 narrowing_initializer_constant_valid_p.
564 (narrowing_initializer_constant_valid_p): Don't return
565 null_pointer_node for adding a pointer to itself.
566
567 2009-02-23 Jan Hubicka <jh@suse.cz>
568
569 PR c/12245
570 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
571 resizing.
572
573 2009-02-23 Jan Hubicka <jh@suse.cz>
574
575 PR tree-optimization/37709
576 * tree.c (block_ultimate_origin): Move here from dwarf2out.
577 * tree.h (block_ultimate_origin): Declare.
578 * dwarf2out.c (block_ultimate_origin): Move to tree.c
579 * tree-ssa-live.c (remove_unused_scope_block_p):
580 Eliminate blocks containig no instructions nor live variables nor
581 nested blocks.
582 (dump_scope_block): New function.
583 (remove_unused_locals): Enable removal of dead blocks by default;
584 enable dumping at TDF_DETAILS.
585
586 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
587
588 * config/i386/i386.c (classify_argument): Don't allow COImode
589 and OImode.
590 (function_arg_advance_32): Don't allow OImode.
591 (function_arg_32): Likewise.
592 (function_value_32): Likewise.
593 (return_in_memory_32): Likewise.
594 (function_arg_64): Remove OImode comment.
595
596 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
597
598 PR target/39261
599 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
600 ix86_expand_vector_set for V4DImode in 64bit mode only.
601 (ix86_expand_vector_init_one_var): Likewise.
602
603 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
604
605 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
606
607 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
608
609 PR bootstrap/39257
610 * loop-iv.c: Revert last change.
611 * emit-rtl.c: Likewise.
612
613 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
614
615 PR target/39256
616 * config/i386/i386.c (type_natural_mode): Remove an extra
617 space in the warning message.
618 (function_value_32): Handle 32-byte vector modes.
619 (return_in_memory_32): Likewise.
620
621 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
622
623 * loop-iv.c (truncate_value): New function.
624 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
625 of lowpart_subreg.
626 (lowpart_subreg): Move to...
627 * emit-rtl.c: ...here.
628
629 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
630
631 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
632 accidental and undocumented change at revision 140860.
633
634 2009-02-21 Joseph Myers <joseph@codesourcery.com>
635
636 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
637 take gimple_seq * arguments.
638 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
639 types_compatible_p langhook.
640
641 2009-02-20 Mark Mitchell <mark@codesourcery.com>
642 Joseph Myers <joseph@codesourcery.com>
643
644 * config/arm/arm.c (arm_builtin_va_list): New function.
645 (arm_expand_builtin_va_start): Likewise.
646 (arm_gimplify_va_arg_expr): Likewise.
647 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
648 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
649 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
650 (va_list_type): New variable.
651 (arm_mangle_type): Mangle va_list_type appropriately.
652
653 2009-02-20 Jakub Jelinek <jakub@redhat.com>
654
655 PR middle-end/39157
656 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
657 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
658 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
659 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
660 parameter to 1000 for -O1 by default.
661 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
662 parameter.
663 * loop-invariant.c: Include params.h.
664 (move_loop_invariants): Don't call move_single_loop_invariants on
665 very large loops.
666
667 2009-02-20 Jaka Mocnik <jaka@xlab.si>
668
669 * calls.c (emit_library_call_value_1): Use slot_offset instead of
670 offset when calculating bounds for indexing stack_usage_map. Fixes
671 a buffer overflow with certain target setups.
672
673 2009-02-20 Jakub Jelinek <jakub@redhat.com>
674
675 PR target/39240
676 * calls.c (expand_call): Clear try_tail_call if caller and callee
677 disagree in promotion of function return value.
678
679 2009-02-19 Jakub Jelinek <jakub@redhat.com>
680
681 PR target/39175
682 * c-common.c (c_determine_visibility): If visibility changed and
683 DECL_RTL has been already set, call make_decl_rtl to update symbol
684 flags.
685
686 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
687
688 PR c++/39188
689 * varasm.c (assemble_variable): Don't check DECL_NAME when
690 globalizing a variable.
691
692 2009-02-19 Joseph Myers <joseph@codesourcery.com>
693
694 PR c/38483
695 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
696 expression before any __builtin_trap call.
697 * c-typeck.c (build_function_call): Convert and check function
698 arguments before generating a call to a trap. Evaluate the
699 function arguments before the trap.
700
701 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
702
703 PR target/39228
704 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
705 (UNSPEC_FXAM_MEM): New unspec.
706 (fxam<mode>2_i387_with_temp): New insn and split pattern.
707 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
708 memory using fxam<mode>2_i387_with_temp to remove excess precision.
709
710 2009-02-19 Richard Guenther <rguenther@suse.de>
711
712 PR tree-optimization/39207
713 PR tree-optimization/39074
714 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
715 storedanything_tree): New.
716 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
717 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
718 (build_succ_graph): Add edges from STOREDANYTHING to all
719 non-direct nodes.
720 (init_base_vars): Initialize STOREDANYTHING.
721 (compute_points_to_sets): Free substitution info after
722 building the succ graph.
723 (ipa_pta_execute): Likewise.
724
725 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
726 field.
727 (do_ds_constraint): Do not add to special var or non-pointer
728 field solutions.
729 (type_could_have_pointers): Split out from ...
730 (could_have_pointers): ... here. For arrays use the element type.
731 (create_variable_info_for): Initialize may_have_pointers.
732 (new_var_info): Likewise.
733 (handle_lhs_call): Make the HEAP variable unknown-sized.
734 (intra_create_variable_infos): Use a type with pointers for
735 PARM_NOALIAS, make it unknown-sized.
736
737 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
738
739 PR target/39224
740 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
741
742 2009-02-18 Jason Merrill <jason@redhat.com>
743
744 PR target/39179
745 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
746 value if DECL_EXTERNAL.
747 * tree-sra.c (sra_walk_gimple_assign): Likewise.
748 * target.h (gcc_target::binds_local_p): Clarify "module".
749 * tree.h (TREE_PUBLIC): Clarify "module".
750
751 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
752
753 PR target/38891
754 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
755 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
756
757 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
758
759 PR target/39082
760 * c.opt (Wabi): Support C and ObjC.
761 (Wpsabi): New.
762
763 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
764
765 * config/i386/i386.c (classify_argument): Warn once about the ABI
766 change when passing union with long double.
767
768 * doc/invoke.texi: Update -Wabi for warning psABI changes.
769
770 2009-02-18 Joseph Myers <joseph@codesourcery.com>
771
772 PR c/35447
773 * c-parser.c (c_parser_compound_statement): Always enter and leave
774 a scope.
775
776 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
777
778 PR target/34587
779 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
780
781 2009-02-18 Jakub Jelinek <jakub@redhat.com>
782
783 PR tree-optimization/36922
784 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
785 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
786 Likewise.
787
788 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
789
790 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
791 to 0 for EABI64.
792
793 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
794
795 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
796
797 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
798
799 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
800 tree sharing.
801
802 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
803 Richard Sandiford <rdsandiford@googlemail.com>
804
805 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
806 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
807 (loongson_biadd): ...this.
808
809 2009-02-17 Richard Guenther <rguenther@suse.de>
810
811 PR tree-optimization/39202
812 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
813 a var make sure to follow existing collapses.
814
815 2009-02-17 Richard Guenther <rguenther@suse.de>
816
817 PR middle-end/39214
818 * langhooks.c (lhd_print_error_function): Check for NULL block.
819
820 2009-02-17 Richard Guenther <rguenther@suse.de>
821
822 PR tree-optimization/39204
823 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
824 of the PHI arg.
825
826 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
827
828 * config/soft-fp/double.h: Update from glibc CVS.
829
830 2009-02-17 Richard Guenther <rguenther@suse.de>
831
832 PR tree-optimization/39207
833 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
834 strict-aliasing warnings for pointers pointing to NULL.
835
836 2009-02-16 Joseph Myers <joseph@codesourcery.com>
837
838 PR c/35446
839 * c-parser.c (c_parser_braced_init): Call pop_init_level when
840 skipping until next close brace.
841
842 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
843
844 PR target/37049
845 * config/i386/i386.c (ix86_expand_push): Set memory alignment
846 to function argument boundary.
847
848 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
849
850 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
851 in the lea_add. Reload eventually constraints it properly.
852 * config/picochip/constraints.md : Remove the target constraint
853 "b", since it is not needed anymore.
854
855 2009-02-16 Jakub Jelinek <jakub@redhat.com>
856
857 * gthr-dce.h: Uglify function parameter and local variable names.
858 * gthr-gnat.h: Likewise.
859 * gthr-mipssde.h: Likewise.
860 * gthr-nks.h: Likewise.
861 * gthr-posix95.h: Likewise.
862 * gthr-posix.h: Likewise.
863 * gthr-rtems.h: Likewise.
864 * gthr-single.h: Likewise.
865 * gthr-solaris.h: Likewise.
866 * gthr-tpf.h: Likewise.
867 * gthr-vxworks.h: Likewise.
868 * gthr-win32.h: Likewise.
869
870 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
871
872 PR target/39196
873 * config/i386/i386.md: Restrict the new peephole2 to move
874 between MMX/SSE registers.
875
876 2009-02-15 Richard Guenther <rguenther@suse.de>
877
878 Revert
879 2009-02-13 Richard Guenther <rguenther@suse.de>
880
881 * configure.ac: Enable LFS.
882 * configure: Re-generate.
883 * config.in: Likewise.
884
885 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
886
887 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
888 spu_srqwbyte, spu_srqwbytebc): Define.
889 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
890 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
891 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
892 "shrqby_<mode>"): New insn-and-split patterns.
893 * config/spu/spu.c (expand_builtin_args): Determine and return
894 number of operands using spu_builtin_description data.
895 (spu_expand_builtin_1): Use it.
896
897 2009-02-13 Steve Ellcey <sje@cup.hp.com>
898
899 PR target/38056
900 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
901 TARGET_CONST_GP.
902
903 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
904
905 PR target/39149
906 * config/i386/i386.c (override_options): Correct warning
907 messages for -malign-loops, -malign-jumps and -malign-functions.
908
909 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
910
911 PR target/39152
912 * config/i386/i386.md: Restrict the new peephole2 to move
913 between the general purpose registers.
914
915 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
916
917 PR target/39162
918 * config/i386/i386.c (type_natural_mode): Add a new argument.
919 Return the original mode and warn ABI change if vector size is 32byte.
920 (function_arg_advance): Updated.
921 (function_arg): Likewise.
922 (ix86_function_value): Likewise.
923 (ix86_return_in_memory): Likewise.
924 (ix86_sol10_return_in_memory): Likewise.
925 (ix86_gimplify_va_arg): Likewise.
926 (function_arg_32): Don't warn ABX ABI change here.
927 (function_arg_64): Likewise.
928
929 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
930
931 * loop-iv.c (implies_p): In the final case, test that operands 0
932 of the two comparisons match.
933
934 * config/bfin/bfin.c (find_prev_insn_start): New function.
935 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
936 (find_next_insn_start): Move.
937
938 2009-02-13 Richard Guenther <rguenther@suse.de>
939
940 * configure.ac: Enable LFS.
941 * configure: Re-generate.
942 * config.in: Likewise.
943
944 2009-02-13 Joseph Myers <joseph@codesourcery.com>
945
946 PR c/35444
947 * c-parser.c (c_parser_parms_list_declarator): Discard pending
948 sizes on syntax error after some arguments have been parsed.
949
950 2009-02-12 Jakub Jelinek <jakub@redhat.com>
951
952 * doc/invoke.texi (-fira): Remove.
953
954 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
955
956 * caller-save.c: Replace regclass.c with reginfo.c in comments.
957 * recog.c: Likewise.
958 * rtl.h: Likewise.
959
960 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
961
962 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
963 (umul_ppmm): Likewise.
964 (count_leading_zeros): Likewise.
965 (count_trailing_zeros): Likewise.
966 (UMUL_TIME): Likewise.
967
968 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
969
970 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
971 soft-fp/t-softfp to tmake_file.
972
973 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
974 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
975 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
976 IA64_BUILTIN_INFQ]: New.
977 (ia64_init_builtins): Initialize __builtin_infq,
978 __builtin_fabsq and __builtin_copysignq if not HPUX.
979 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
980 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
981
982 * config/ia64/lib1funcs.asm (__divtf3): Define only if
983 SHARED is defined.
984 (__fixtfti): Likewise.
985 (__fixunstfti): Likewise.
986 (__floattitf): Likewise.
987
988 * config/ia64/libgcc-glibc.ver: New.
989 * config/ia64/t-fprules-softfp: Likewise.
990 * config/ia64/sfp-machine.h: Likewise.
991
992 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
993 (LIBGCC2_TF_CEXT): Likewise.
994 (TF_SIZE): Likewise.
995 (TARGET_INIT_LIBFUNCS): Likewise.
996
997 * config/ia64/t-glibc (SHLINB_MAPFILES):
998 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
999
1000 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
1001
1002 * config/i386/i386.c (construct_container): Rewrite processing
1003 BLKmode with X86_64_SSE_CLASS.
1004
1005 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
1006
1007 PR target/39152
1008 * config/i386/i386.md: Replace simplify_replace_rtx with
1009 replace_rtx in the new peephole2.
1010
1011 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
1012
1013 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
1014 loop unrolling do not happen at -O2.
1015
1016 2009-02-12 Michael Matz <matz@suse.de>
1017
1018 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
1019
1020 2009-02-12 Jakub Jelinek <jakub@redhat.com>
1021
1022 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
1023 for -g3.
1024
1025 2009-02-12 Ben Elliston <bje@au.ibm.com>
1026
1027 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
1028 patterns when updating the back chain. Missed in the 2009-02-10
1029 change.
1030
1031 2009-02-11 Janis Johnson <janis187@us.ibm.com>
1032
1033 * doc/extend.texi (Decimal Floating Types): Update identifier of
1034 draft TR and list of missing support.
1035
1036 2009-02-11 Jakub Jelinek <jakub@redhat.com>
1037
1038 PR middle-end/39154
1039 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
1040 bit to variable length decl's flags, add it also to its
1041 pointer replacement variable.
1042
1043 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
1044 Jakub Jelinek <jakub@redhat.com>
1045
1046 PR target/39118
1047 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
1048 (memory_blockage): New expander.
1049 (*memory_blockage): New insn pattern.
1050 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
1051 instead of general blockage at the end of function prologue when
1052 frame pointer is used to access red zone area. Do not emit blockage
1053 when profiling, it is emitted in generic code.
1054 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
1055 function epilogue when frame pointer is used to access red zone area.
1056
1057 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
1058
1059 PR target/38824
1060 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
1061 by arithmetic with memory operands.
1062 * config/i386/predicates.md (commutative_operator): New.
1063
1064 2009-02-10 Janis Johnson <janis187@us.ibm.com>
1065
1066 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
1067 bulleted lists.
1068
1069 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
1070
1071 * alias.h (record_alias_subset): Declare.
1072 * alias.c (record_alias_subset): Make global.
1073
1074 2009-02-10 Nick Clifton <nickc@redhat.com>
1075
1076 * tree-parloops.c: Change license to GPLv3.
1077 * ipa-struct-reorg.c: Change license to GPLv3.
1078 * ipa-struct-reorg.h: Change license to GPLv3.
1079
1080 2009-02-10 Steve Ellcey <sje@cup.hp.com>
1081
1082 PR c/39084
1083 * c-decl.c (start_struct): Return NULL on error.
1084
1085 2009-02-10 Jakub Jelinek <jakub@redhat.com>
1086
1087 PR middle-end/39124
1088 * cfgloopmanip.c (remove_path): Call remove_bbs after
1089 cancel_loop_tree, not before it.
1090
1091 PR target/39139
1092 * function.h (struct function): Add has_local_explicit_reg_vars bit.
1093 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
1094 VAR_DECLs were seen.
1095 * tree-ssa-live.c (remove_unused_locals): Recompute
1096 cfun->has_local_explicit_reg_vars.
1097 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
1098 copies or clearings if cfun->has_local_explicit_reg_vars.
1099
1100 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
1101
1102 PR target/39118
1103 * config/i386/i386.c (expand_prologue): Emit blockage at the end
1104 of function prologue when frame pointer is used to access
1105 red zone area.
1106
1107 2009-02-10 Richard Guenther <rguenther@suse.de>
1108
1109 PR middle-end/39127
1110 * gimplify.c (gimple_regimplify_operands): Always look if
1111 we need to create a temporary.
1112
1113 2009-02-10 Richard Guenther <rguenther@suse.de>
1114
1115 PR tree-optimization/39132
1116 * tree-loop-distribution.c (todo): New global var.
1117 (generate_memset_zero): Trigger TODO_rebuild_alias.
1118 (tree_loop_distribution): Return todo.
1119
1120 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
1121
1122 PR target/39119
1123 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
1124 (x86_64_reg_class_name): Removed.
1125 (classify_argument): Return 0 if bytes > 32. Return 0 if the
1126 first one isn't X86_64_SSE_CLASS or any other ones aren't
1127 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
1128 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
1129 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
1130 and 3 X86_64_SSEUP_CLASS.
1131 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
1132 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
1133
1134 2009-02-10 Ben Elliston <bje@au.ibm.com>
1135
1136 * config/rs6000/rs6000.md (allocate_stack): Always use an update
1137 form instruction to update the stack back chain word, even if the
1138 user has disabled the generation of update instructions.
1139 (movdi_<mode>_update_stack): New.
1140 (movsi_update_stack): Likewise.
1141 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
1142 always use an update form instruction to update the stack back
1143 chain word.
1144
1145 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
1146
1147 PR middle-end/38953
1148 * graphite.c (if_region_set_false_region): After moving a region in
1149 the false branch of a condition, remove the empty dummy basic block.
1150 (gloog): Remove wrong fix for PR38953.
1151
1152 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1153
1154 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
1155 generation due to implicit sign extension.
1156
1157 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
1158
1159 PR middle-end/38981
1160 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
1161 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
1162
1163 2009-02-09 Richard Guenther <rguenther@suse.de>
1164
1165 PR middle-end/35202
1166 * convert.c (convert_to_real): Disable (float)fn((double)x)
1167 to fnf(x) conversion if errno differences may occur and
1168 -fmath-errno is set.
1169
1170 2009-02-07 Anatoly Sokolov <aesok@post.ru>
1171
1172 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
1173 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1174 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1175
1176 2009-02-06 Joseph Myers <joseph@codesourcery.com>
1177
1178 PR c/35434
1179 * c-common.c (handle_alias_attribute): Disallow attribute for
1180 anything not a FUNCTION_DECL or VAR_DECL.
1181
1182 2009-02-06 Janis Johnson <janis187@us.ibm.com>
1183
1184 PR c/39035
1185 * real.c (do_compare): Special-case compare of zero against
1186 decimal float value.
1187
1188 2009-02-06 Joseph Myers <joseph@codesourcery.com>
1189
1190 PR c/36432
1191 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
1192 as indicating flexible array members unless the field itself is
1193 being declarared as the incomplete array.
1194
1195 2009-02-06 Jan Hubicka <jh@suse.cz>
1196
1197 PR tree-optimization/38844
1198 * ipa-inline.c (try_inline): Stop inlining recursion when edge
1199 is already inlined.
1200
1201 2009-02-06 Richard Guenther <rguenther@suse.de>
1202
1203 PR middle-end/38977
1204 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
1205 fork because we may expand it as __gcov_fork.
1206
1207 2009-02-06 Nick Clifton <nickc@redhat.com>
1208
1209 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
1210
1211 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
1212
1213 PR tree-optimization/35659
1214 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
1215 vn_phi_eq): Shortcut if hashcode does not match.
1216 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
1217 NULL operands.
1218 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
1219 and avoid iterative_hash_expr.
1220 (FOR_EACH_VALUE_ID_IN_SET): New.
1221 (value_id_compare): Remove.
1222 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
1223 sort expressions by value id.
1224
1225 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
1226
1227 PR target/38991
1228 * config/sh/predicates.md (general_movsrc_operand): Don't check
1229 the subreg of system registers here.
1230
1231 2009-02-05 Jakub Jelinek <jakub@redhat.com>
1232
1233 PR c++/39106
1234 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
1235 on the copied decl.
1236
1237 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
1238
1239 PR rtl-optimization/39110
1240 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
1241 addresses, not aligned ones.
1242
1243 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
1244 Richard Guenther <rguenther@suse.de>
1245
1246 PR tree-optimization/39100
1247 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
1248 comment says and add edges.
1249
1250 2009-02-05 Joseph Myers <joseph@codesourcery.com>
1251
1252 PR c/35435
1253 * c-common.c (handle_tls_model_attribute): Ignore attribute for
1254 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
1255
1256 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
1257
1258 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
1259 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
1260 register_bb_in_sese, new_sese, free_sese): Moved.
1261 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
1262 outermost_loop_in_scop, build_scop_iteration_domain,
1263 expand_scalar_variables_ssa_name, get_vdef_before_scop,
1264 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
1265 Use loop_in_sese_p instead of loop_in_scop_p.
1266 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
1267 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
1268 (scopdet_basic_block_info): Fix bug in scop detection.
1269 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
1270 eq_loop_to_cloog_loop): Remove.
1271 (nb_loops_around_loop_in_scop, nb_loop
1272 ref_nb_loops): Moved here...
1273 * graphite.h (ref_nb_loops): ... from here.
1274 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
1275 (loop_domain_dim, loop_iteration_vector_dim): Remove.
1276 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
1277 * testsuite/gcc.dg/graphite/scop-19.c: New
1278
1279 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
1280 Hans-Peter Nilsson <hp@axis.com>
1281
1282 PR rtl-optimization/37889
1283 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
1284 Move offset handling from PLUS to before the switch. Use new
1285 arguments when considering SYMBOL_REFs too.
1286 (rtx_addr_can_trap_p): Pass dummy offset and size.
1287 (enum may_trap_p_flags): Remove.
1288 (may_trap_p_1): Pass size from MEM_SIZE.
1289
1290 PR rtl-optimization/38921
1291 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
1292 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
1293 * rtlanal.c (may_trap_after_code_motion_p): Delete.
1294 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
1295
1296 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
1297
1298 AVX Programming Reference (January, 2009)
1299 * config/i386/sse.md (*vpclmulqdq): New.
1300
1301 2009-02-04 Jakub Jelinek <jakub@redhat.com>
1302
1303 PR tree-optimization/38977
1304 PR gcov-profile/38292
1305 * calls.c (special_function_p): Disregard __builtin_ prefix.
1306
1307 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
1308
1309 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
1310 non-indexable addresses even before reload.
1311
1312 2009-02-03 Joseph Myers <joseph@codesourcery.com>
1313
1314 PR c/29129
1315 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
1316 as having variable size. Do not give an error for unnamed
1317 parameters with [*] declarators. Give a warning for type names
1318 with [*] declarators and mark them as variable size.
1319 * c-parser.c (c_parser_sizeof_expression): Do not give an error
1320 for sizeof applied to [*] type names.
1321
1322 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1323
1324 PR C++/36607
1325 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
1326
1327 2009-02-03 Jakub Jelinek <jakub@redhat.com>
1328
1329 * gcc.c (process_command): Update copyright notice dates.
1330 * gcov.c (print_version): Likewise.
1331 * gcov-dump.c (print_version): Likewise.
1332 * mips-tfile.c (main): Likewise.
1333 * mips-tdump.c (main): Likewise.
1334
1335 2009-02-03 Joseph Myers <joseph@codesourcery.com>
1336
1337 PR c/35433
1338 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
1339 for composite type involving a zero-length array type.
1340
1341 2009-02-03 Jakub Jelinek <jakub@redhat.com>
1342
1343 PR target/35318
1344 * function.c (match_asm_constraints_1): Skip over
1345 initial optional % in the constraint.
1346
1347 PR inline-asm/39059
1348 * c-parser.c (c_parser_postfix_expression): If fixed point is not
1349 supported, don't accept FIXED_CSTs.
1350 * c-decl.c (finish_declspecs): Error if fixed point is not supported
1351 and _Sat is used without _Fract/_Accum. Set specs->type to
1352 integer_type_node for cts_fract/cts_accum if fixed point is not
1353 supported.
1354
1355 2009-02-02 Catherine Moore <clm@codesourcery.com>
1356
1357 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
1358
1359 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
1360
1361 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
1362 (ABI_HAS_64BIT_SYMBOLS): Use it.
1363 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
1364
1365 2009-02-02 Paul Brook <paul@codesourcery.com>
1366
1367 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
1368
1369 2009-02-02 Jakub Jelinek <jakub@redhat.com>
1370
1371 PR inline-asm/39058
1372 * recog.h (asm_operand_ok): Add constraints argument.
1373 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
1374 recurse on matching constraint.
1375 (check_asm_operands): Pass constraints as 3rd argument to
1376 asm_operand_ok. Don't look up matching constraint here.
1377 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
1378 to asm_operand_ok.
1379
1380 2009-02-02 Ben Elliston <bje@au.ibm.com>
1381
1382 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
1383 TARGET_NARROW_VOLATILE_BITFIELD macro names.
1384
1385 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1386
1387 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
1388 information. Remove some obsolete information. Reorganize.
1389
1390 * config/pa/fptr.c: Revert license to GPL 2.
1391 * config/pa/milli64.S: Likewise.
1392
1393 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
1394
1395 PR target/38904
1396 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
1397 LIBRARY name in, instead of hard-coding it.
1398 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
1399 extra target make frag to tmake_files according to EH model.
1400 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
1401 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
1402 frags that define makefile variable EH_MODEL appropriately.
1403 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
1404 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
1405 to "-sjlj" according to type of EH configured.
1406 (LIBGCC_SONAME): Concatenate it to shared library base name.
1407 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
1408 to "_sjlj" according to type of EH configured.
1409 (LIBGCC_SONAME): Concatenate it to shared library base name.
1410 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
1411 (SHLIB_LINK): Add missing semicolon to if-else construct.
1412 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
1413 string value of "pe_dll" command-line option.
1414 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
1415 (SHLIB_SONAME): Use it when overriding t-cygming default.
1416 (SHLIB_IMPLIB): Override t-cygming default.
1417 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
1418 string value of "pe_dll" command-line option.
1419
1420 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
1421
1422 PR target/38952
1423 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
1424 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
1425
1426 2009-01-31 Richard Guenther <rguenther@suse.de>
1427
1428 PR tree-optimization/38937
1429 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
1430 computing the transitive closure.
1431
1432 2009-01-30 Richard Guenther <rguenther@suse.de>
1433
1434 PR tree-optimization/39041
1435 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1436 Propagate variable indices only if the types match for this stmt.
1437
1438 2009-01-30 Jakub Jelinek <jakub@redhat.com>
1439
1440 PR target/39013
1441 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
1442 inline but never defined.
1443
1444 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
1445
1446 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
1447 (*insv_h_di_reg_extimm): New insn.
1448 (*insv_l<mode>_reg_extimm): New insn.
1449
1450 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
1451
1452 * config/picochip/picochip.c (flag_conserve_stack): set
1453 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
1454 fconserve-stack. Reduce call-overhead used by inliner.
1455
1456 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
1457
1458 PR/38157
1459 * common.opt (flag_conserve_stack): Initialised to zero.
1460
1461 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
1462
1463 PR/39002
1464 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
1465 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
1466 method.
1467
1468 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
1469
1470 * ira-color.c (allocno_reload_assign): Update comments.
1471 * regmove.c (regmove_optimize): Likewise.
1472
1473 * ra.h: Removed.
1474
1475 2009-01-29 Robert Millan <rmh@aybabtu.com>
1476
1477 * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
1478 * gcc/config/i386/kopensolaris-gnu.h: New file. Undefine
1479 `MD_UNWIND_SUPPORT'.
1480 * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
1481
1482 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
1483
1484 PR tree-optimization/39007
1485 * tree-loop-distribution.c (generate_builtin): Use
1486 recompute_dominator to compute the immediate dominator of the
1487 basic block just after the loop.
1488
1489 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1490
1491 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
1492 (ASM_OUTPUT_DWARF_PCREL): Define.
1493
1494 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
1495
1496 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
1497 * doc/passes.texi: Remove entries about regclass, local-alloc, and
1498 global. Modify entries about regmove and IRA.
1499
1500 * ra-conflict.c: Remove the file.
1501
1502 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
1503
1504 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
1505 (pass_regclass_init): Rename to pass_reginfo_init.
1506
1507 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
1508
1509 * toplev.h (flag_ira): Remove.
1510
1511 * caller-save.c (setup_save_areas): Remove flag_ira.
1512
1513 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
1514
1515 * global.c: Remove the file.
1516
1517 * opts.c: (decode_options): Remove flag_ira.
1518
1519 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
1520
1521 * regmove.c: Modify file description.
1522 (find_use_as_address, try_auto_increment): Define them only if
1523 AUTO_INC_DEC is defined.
1524 (replacement_quality, replace_in_call_usage, fixup_match_1,
1525 stable_and_no_regs_but_for_p): Remove.
1526 (reg_set_in_bb): Make it static.
1527 (regmove_optimize): Remove flag_ira and code which worked for
1528 !flag_ira.
1529
1530 * local-alloc.c: Remove the file.
1531
1532 * common.opt (fira): Remove.
1533
1534 * ira.c: Include except.h.
1535 (eliminable_regset): Move from global.c.
1536 (mark_elimination): Ditto. Remove flag_ira.
1537 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
1538 equiv_mem_modified, validate_equiv_mem_from_store,
1539 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
1540 contains_replace_regs, memref_referenced_p, memref_used_between_p,
1541 no_equiv, recorded_label_ref): Move from local-alloc.c.
1542 (update_equiv_regs): Ditto. Make it static.
1543 (print_insn_chain, print_insn_chains): Move it from global.c.
1544 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
1545 (build_insn_chain): Ditto. Make it static.
1546 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
1547 Rename to init_live_subregs.
1548 (gate_ira): Remove flag_ira.
1549
1550 * regclass.c: Rename reginfo.c. Change file description.
1551 (FORBIDDEN_INC_DEC_CLASSES): Remove.
1552 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
1553 (init_reg_sets_1): Remove code for evaluation of
1554 reg_class_superclasses and losing_caller_save_reg_set.
1555 (init_regs): Remove init_reg_autoinc.
1556 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
1557 ok_for_base_p_nonstrict): Remove.
1558 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
1559 (pass_regclass_init): Rename to pass_reginfo_init. Modify
1560 corresponding entries.
1561 (dump_regclass, record_operand_costs, scan_one_insn,
1562 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
1563 record_address_regs, auto_inc_dec_reg_p): Remove.
1564 (gt-regclass.h): Rename to gt-reginfo.h.
1565
1566 * rtl.h (dump_global_regs, retry_global_alloc,
1567 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
1568
1569 * Makefile.in (RA_H): Remove.
1570 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
1571 Rename regclass.o to reginfo.o.
1572 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
1573 gt-reginfo.h.
1574 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
1575 (GTFILES): Rename regclass.c to reginfo.c.
1576
1577 * passes.c (init_optimization_passes): Remove pass_local_alloc and
1578 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
1579
1580 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
1581 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
1582 Remove flag_ira.
1583 (finish_spills): Ditto. Remove code for !flag_ira.
1584
1585 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
1586
1587 PR middle-end/35854
1588 * doc/invoke.texi (rtl debug options): Complete rewrite.
1589 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
1590 to auto_inc_dec".
1591 * mode-switching.c (pass_mode_switching): Rename pass from
1592 "mode-sw" to "mode_sw".
1593 * except.c (pass_convert_to_eh_ranges): Rename pass from
1594 "eh-ranges" to "eh_ranges".
1595 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
1596 to "subreg1".
1597
1598
1599 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
1600 Alexander Monakov <amonakov@ispras.ru>
1601
1602 PR middle-end/38857
1603 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
1604 register.
1605 (move_exprs_to_boundary): Change return type and pass through
1606 should_move from move_op. Relax assert. Update usage ...
1607 (schedule_expr_on_boundary): ... here. Use should_move instead of
1608 cant_move.
1609 (move_op_orig_expr_found): Indicate that insn was disconnected from
1610 stream.
1611 (code_motion_process_successors): Do not call after_merge_succs
1612 callback if original expression was not found when traversing any of
1613 the branches.
1614 (code_motion_path_driver): Change return type. Update prototype.
1615 (move_op): Update comment. Add a new parameter (should_move). Update
1616 prototype. Set *should_move based on indication provided by
1617 move_op_orig_expr_found.
1618
1619 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
1620
1621 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
1622 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
1623 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
1624 * config/rs6000/rs6000.c (rs6000_override_options): Default
1625 avoid-indexed-addresses on for Power6, off for everything else.
1626 (avoiding_indexed_address_p): New function.
1627 (rs6000_legitimize_address): Use it.
1628 (rs6000_legitimate_address): Likewise.
1629 * config/rs6000/rs6000.md (movXX_updateX): Likewise
1630
1631 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
1632
1633 PR tree-optimization/38997
1634 * tree-loop-distribution.c (generate_memset_zero): Use
1635 POINTER_PLUS_EXPR for a pointer addition.
1636
1637 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
1638
1639 * config/s390/s390.md (bswap<mode>2): New pattern added.
1640
1641 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
1642
1643 * config/s390/s390.md (*tls_load_31): Added type attribute.
1644
1645 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
1646
1647 * config/s390/s390.md: Fix a few comments.
1648
1649 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
1650
1651 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
1652 (*tm<mode>_full): Fixed z10prop attribute.
1653 (*tst<mode>_extimm): Fixed z10prop attribute.
1654 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
1655 (*tstqiCCT_cconly): Fixed z10prop attribute.
1656 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
1657 (*movsi_larl): Fixed z10prop attribute.
1658 (*movsi_zarch): Fixed z10prop attribute.
1659 (*movsi_eas): Fixed z10prop attribute.
1660 (*movhi): Fixed z10prop attribute.
1661 (*movqi): Fixed z10prop attribute.
1662 (*movstrictqi): Fixed z10prop attribute.
1663 (*mov<mode>): Fixed z10prop attribute.
1664 (*movcc): Fixed z10prop attribute.
1665 (*sethighpartdi_64): Fixed z10prop attribute.
1666 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
1667 (*negdi2_sign_cc): Fixed z10prop attribute.
1668 (*negdi2_sign): Fixed z10prop attribute.
1669 (*absdi2_sign_cc): Fixed z10prop attribute.
1670 (*absdi2_sign): Fixed z10prop attribute.
1671 (*negabsdi2_sign_cc): Fixed z10prop attribute.
1672 (*negabsdi2_sign): Fixed z10prop attribute.
1673 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
1674 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
1675 (doloop_si64): Fixed z10prop attribute.
1676 (doloop_si31): Fixed z10prop attribute.
1677 (doloop_long): Fixed z10prop attribute.
1678 (indirect_jump): Fixed z10prop attribute.
1679 (nop): Fixed z10prop attribute.
1680 (main_base_64): Fixed z10prop attribute.
1681 (reload_base_64): Fixed z10prop attribute.
1682
1683 2009-01-28 Jakub Jelinek <jakub@redhat.com>
1684
1685 PR rtl-optimization/38740
1686 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
1687 if !optimize.
1688 * config/mips/mips.c (mips_reorg): Likewise.
1689
1690 2009-01-28 Richard Guenther <rguenther@suse.de>
1691
1692 PR tree-optimization/38926
1693 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
1694 with the correct value id to a value.
1695 (do_regular_insertion): Use the value number of edoubleprime
1696 for the value number of the expr.
1697
1698 Revert
1699 2008-08-21 Richard Guenther <rguenther@suse.de>
1700
1701 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
1702 a PHI ask VN if it is already available.
1703 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
1704 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
1705
1706 2009-01-28 Jakub Jelinek <jakub@redhat.com>
1707
1708 PR middle-end/38934
1709 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
1710 set to varying whenever max has TREE_OVERFLOW set, similarly
1711 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
1712
1713 2009-01-28 Richard Guenther <rguenther@suse.de>
1714
1715 PR middle-end/38908
1716 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
1717 uninitialized aggregate uses in call arguments.
1718
1719 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
1720
1721 PR tree-optimization/38984
1722 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
1723 the nothing_id variable if -fno-delete-null-pointer-checks.
1724
1725 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
1726
1727 PR target/38988
1728 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
1729 (set_got_offset_rex64): Ditto.
1730
1731 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
1732
1733 PR target/38941
1734 * doc/extend.texi: Improve local variable with asm reg.
1735
1736 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
1737
1738 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
1739 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
1740 was not supplied then set warn_packed_bitfield_compat to the
1741 default value of 1.
1742 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
1743 against 1.
1744
1745 2009-01-27 Richard Guenther <rguenther@suse.de>
1746
1747 PR tree-optimization/38503
1748 * cfgexpand.c (expand_gimple_basic_block): Ignore
1749 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
1750 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
1751 variables that cannot have TBAA applied.
1752 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
1753 statements.
1754
1755 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
1756
1757 PR middle-end/38969
1758 * calls.c (initialize_argument_information): Do not wrap complex
1759 arguments in SAVE_EXPR.
1760
1761 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
1762
1763 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
1764 (INSTALL_LIBGCC): Revert typo commit.
1765
1766 2009-01-26 Richard Guenther <rguenther@suse.de>
1767
1768 PR tree-optimization/38745
1769 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
1770 from special handling.
1771
1772 2009-01-26 Richard Guenther <rguenther@suse.de>
1773
1774 PR tree-optimization/38745
1775 * tree-ssa.c (execute_update_addresses_taken): Do not include
1776 variables that cannot possibly be a register in not_reg_needs.
1777 Do not clear TREE_ADDRESSABLE on vars that may not become
1778 registers.
1779 * tree-ssa.c (update_alias_info_1): Include those in the set
1780 of addressable vars.
1781
1782 2009-01-26 Richard Guenther <rguenther@suse.de>
1783
1784 PR middle-end/38851
1785 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
1786 * tree-ssa-dse.c: Include langhooks.h
1787 (execute_simple_dse): Remove stores with zero size.
1788
1789 2009-01-24 Jakub Jelinek <jakub@redhat.com>
1790
1791 PR c/38957
1792 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
1793 as PLUS_EXPR.
1794
1795 2009-01-24 Julian Brown <julian@codesourcery.com>
1796
1797 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
1798 config/arm/linux-atomic.c.
1799 * config/arm/linux-atomic.c: New.
1800
1801 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
1802
1803 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
1804 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
1805 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
1806
1807 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
1808
1809 PR c/38938
1810 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
1811 properly.
1812
1813 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
1814
1815 PR tree-optimization/38953
1816 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
1817 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
1818 (gloog): Split the exit of the scop when the scop exit is a loop exit.
1819 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
1820 changed the CFG.
1821
1822 2009-01-24 Paul Brook <paul@codesourcery.com>
1823
1824 * config/arm/neon.md (neon_type): Move to arm.md.
1825 (neon_mov<VSTRUCT>): Add neon_type attribute.
1826 * config/arm/arm.md (neon_type): Move to here.
1827 (conds): Add "unconditioal" and use as default for NEON insns.
1828
1829 2009-01-24 Ben Elliston <bje@au.ibm.com>
1830
1831 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
1832 void *' warning from -Wc++-compat.
1833 * Makefile.in (dominance.o-warn): Remove.
1834
1835 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
1836
1837 PR tree-optimization/38932
1838 * fold-const.c (fold_unary_ignore_overflow): New.
1839 * tree.h (fold_unary_ignore_overflow): Declare.
1840 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
1841 * tree-ssa-sccvn.c (visit_reference_op_load,
1842 simplify_unary_expression): Likewise.
1843
1844 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
1845
1846 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
1847 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
1848 regardless of their type.
1849 * c-common.c (handle_packed_attribute): Don't ignore packed on
1850 bitfields.
1851 * c.opt (Wpacked-bitfield-compat): New warning option.
1852 * stor-layout.c (place_field): Warn if offset of a field changed.
1853 * doc/extend.texi (packed): Mention the ABI change.
1854 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
1855 (Warning Options): Add it to the list.
1856
1857 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
1858
1859 * c-opts.c (c_common_post_options): Fix a typo in comments.
1860
1861 2009-01-22 Steve Ellcey <sje@cup.hp.com>
1862
1863 PR middle-end/38615
1864 * gimplify.c (gimplify_init_constructor): Fix promotion of const
1865 variables to static.
1866 * doc/invoke.texi (-fmerge-all-constants): Update description.
1867
1868 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
1869
1870 PR target/38931
1871 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
1872 (*movdi_1_rex64): Use type "mmx" for alternative 5.
1873
1874 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
1875
1876 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
1877 a word boundary.
1878 (LOCAL_ALIGNMENT): Similarly.
1879
1880 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
1881 Joseph Myers <joseph@codesourcery.com>
1882
1883 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
1884 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
1885 * config/arm/arm-tune.md: Regenerate.
1886 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
1887 -march=iwmmxt2.
1888
1889 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
1890
1891 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
1892 version number to five.
1893
1894 2009-01-22 Dodji Seketeli <dodji@redhat.com>
1895
1896 PR c++/38930
1897 * c-decl.c: (clone_underlying_type): Revert PR c++/26693 changes.
1898 * c-common.c (set_underlying_type): Likewise.
1899 (is_typedef_decl ): Likewise
1900 * tree.h: Likewise
1901 (set_underlying_type): Likewise.
1902 (is_typedef_type): Likewise.
1903
1904 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
1905
1906 PR middle-end/38587
1907 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
1908 crossing setjmps.
1909
1910 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
1911
1912 PR bootstrap/37660
1913 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
1914 (LIBGCC_SPEC): Don't define.
1915 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
1916
1917 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
1918
1919 PR rtl-optimization/38879
1920 * alias.c (base_alias_check): Unaligned access via AND address can
1921 alias all surrounding object types except those with sizes equal
1922 or wider than the size of unaligned access.
1923
1924 2009-01-21 Dodji Seketeli <dodji@redhat.com>
1925
1926 PR c++/26693
1927 * c-decl.c: (clone_underlying_type): Move this ...
1928 * c-common.c (set_underlying_type): ... here.
1929 Also, make sure the function properly sets TYPE_STUB_DECL() on
1930 the newly created typedef variant type.
1931 (is_typedef_decl ): New entry point.
1932 * tree.h: Added a new member member_types_needing_access_check to
1933 struct tree_decl_non_common.
1934 (set_underlying_type): New entry point.
1935 (is_typedef_type): Likewise.
1936
1937 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
1938
1939 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
1940 Check whether two instructions have memory references that
1941 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
1942 are helper functions for traversing.
1943 * alias.h (insn_alias_sets_confilict_p): New prototypes.
1944 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
1945 not to draw dependency edge for instructions with non-conflicting
1946 alias sets.
1947
1948 2009-01-20 Joseph Myers <joseph@codesourcery.com>
1949
1950 PR other/38758
1951 * longlong.h: Update copyright years. Use soft-fp license notice.
1952 Sync __clz_tab declaration with glibc.
1953
1954 2009-01-20 Steve Ellcey <sje@cup.hp.com>
1955
1956 PR target/30687
1957 * doc/extend.texi (syscall_linkage): New.
1958 (version_id): Modify.
1959
1960 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
1961 Richard Guenther <rguenther@suse.de>
1962
1963 PR tree-optimization/38747
1964 PR tree-optimization/38748
1965 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
1966 conversion if the base address is an indirect reference and the
1967 aliasing sets could cause issues.
1968
1969 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
1970
1971 * common.opt (fgraphite, fgraphite-identity): Add comment for
1972 explaining why these options are not documented.
1973
1974 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
1975
1976 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
1977 gimple_call_lhs is NULL.
1978
1979 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
1980
1981 PR target/38868
1982 * emit-rtl.c (adjust_address_1): Make sure memref is never
1983 overwritten.
1984
1985 2009-01-20 Ben Elliston <bje@au.ibm.com>
1986
1987 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
1988 const qualifier from arg parameter. Remove unnecessary cast to char *.
1989 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
1990 const qualifier from arg 2.
1991
1992 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1993
1994 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
1995
1996 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
1997
1998 PR c/38869
1999 * rtl.h (reinit_regs): New prototype.
2000 * regclass.c: Include ira.h.
2001 (reinit_regs): New.
2002 * Makefile.in (regclass.o): Add ira.h.
2003 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
2004
2005 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
2006
2007 PR target/38736
2008 * c-common.c (handle_aligned_attribute): Use
2009 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
2010 default alignment value.
2011
2012 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
2013
2014 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
2015 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
2016
2017 * doc/extend.texi: Update __attribute__ ((aligned)). Document
2018 __BIGGEST_ALIGNMENT__.
2019
2020 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
2021
2022 2009-01-18 Richard Guenther <rguenther@suse.de>
2023
2024 PR tree-optimization/38819
2025 * tree-flow.h (operation_could_trap_helper_p): Declare.
2026 * tree-eh.c (operation_could_trap_helper_p): Export.
2027 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
2028 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
2029 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
2030 are about to insert a possibly trapping instruction and fail
2031 in this case.
2032
2033 2009-01-18 Andreas Schwab <schwab@suse.de>
2034
2035 * doc/install.texi (Configuration): Remove obsolete paragraph
2036 about use of --with-gnu-ld with --with-gnu-as.
2037
2038 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
2039
2040 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
2041 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
2042 Follow spelling conventions.
2043
2044 2009-01-18 Ben Elliston <bje@au.ibm.com>
2045
2046 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
2047 C++ warning about implicit conversion from void * to struct
2048 bitmap_head_def *.
2049 (bitmap_obstack_free): Likewise for bitmap_element *.
2050 * Makefile.in (bitmap.o-warn): Remove.
2051
2052 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
2053
2054 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
2055
2056 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
2057 Tobias Grosser <tobi.grosser@amd.com>
2058
2059 * graphite.c (graphite_trans_scop_block): Do not block single
2060 nested loops.
2061
2062 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
2063
2064 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
2065 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
2066 test with assertion.
2067
2068 2009-01-16 Richard Guenther <rguenther@suse.de>
2069
2070 PR tree-optimization/38835
2071 PR middle-end/36227
2072 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
2073 and INT + PTR -> (INT)(PTR p+ INT) folding.
2074 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
2075
2076 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
2077
2078 PR target/38554
2079 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
2080 the subreg from a lowpart subreg if it is also casting the value.
2081
2082 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
2083 Tobias Grosser <tobi.grosser@amd.com>
2084
2085 * graphite.c (compare_prefix_loops): New.
2086 (build_scop_canonical_schedules): Rewritten.
2087 (graphite_transform_loops): Move build_scop_canonical_schedules
2088 after build_scop_iteration_domain.
2089
2090 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
2091 Tobias Grosser <tobi.grosser@amd.com>
2092
2093 * graphite.c (add_conditions_to_domain): Add the loops to
2094 the dimension of the iteration domain. Do copy the domain
2095 only when it exists.
2096 (build_scop_conditions_1): Do not call add_conditions_to_domain.
2097 (add_conditions_to_constraints): New.
2098 (can_generate_code_stmt, can_generate_code): Removed.
2099 (gloog): Do not call can_generate_code.
2100 (graphite_transform_loops): Call add_conditions_to_constraints
2101 after building the iteration domain.
2102
2103 2009-01-16 Jakub Jelinek <jakub@redhat.com>
2104
2105 PR tree-optimization/38789
2106 * tree-ssa-threadedge.c
2107 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2108 __builtin_constant_p.
2109
2110 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2111
2112 * dce.c (delete_unmarked_insns): Reversed the order that insns are
2113 examined before deleting them.
2114
2115 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
2116
2117 * function.c (aggregate_value_p): Correctly extract the function
2118 type from CALL_EXPR_FN lookup.
2119
2120 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
2121
2122 * config/picochip/picochip.c (picochip_override_options): Revert
2123 CFI asm flag disable commited previously.
2124
2125 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
2126 Tobias Grosser <tobi.grosser@amd.com>
2127 Jan Sjodin <jan.sjodin@amd.com>
2128
2129 * graphite.c (scan_tree_for_params): On substractions negate
2130 all the coefficients of the term.
2131 (clast_to_gcc_expression_red): New. Handle reduction expressions
2132 of more than two operands.
2133 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
2134 (get_vdef_before_scop): Handle also the case of default definitions.
2135
2136 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
2137
2138 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
2139 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
2140 Also use them when walking CALL_INSN_FUNCTION_USAGE.
2141
2142 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
2143 Joey Ye <joey.ye@intel.com>
2144
2145 PR middle-end/37843
2146 * cfgexpand.c (expand_stack_alignment): Don't update stack
2147 boundary nor check incoming stack boundary here.
2148 (gimple_expand_cfg): Update stack boundary and check incoming
2149 stack boundary here.
2150
2151 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
2152
2153 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2154
2155 2009-01-14 Jakub Jelinek <jakub@redhat.com>
2156
2157 PR rtl-optimization/38245
2158 * calls.c (expand_call): Add stack arguments to
2159 CALL_INSN_FUNCTION_USAGE even for pure calls (when
2160 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
2161 in regs and partially in memory or BLKmode arguments.
2162 (emit_library_call_value_1): Add stack arguments to
2163 CALL_INSN_FUNCTION_USAGE even for pure calls (when
2164 ACCUMULATE_OUTGOING_ARGS).
2165 * dce.c: Include tm_p.h.
2166 (find_call_stack_args): New function.
2167 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
2168 argument.
2169 (mark_insn): Call find_call_stack_args for CALL_Ps.
2170 (prescan_insns_for_dce): Walk insns backwards in bb rather than
2171 forwards. Allocate and free arg_stores bitmap if needed, pass it
2172 down to deletable_insn_p, don't mark stores set in arg_stores
2173 bitmap, clear the bitmap at the beginning of each bb.
2174 * Makefile.in (dce.o): Depend on $(TM_P_H).
2175
2176 2009-01-14 Michael Meissner <gnu@the-meissners.org>
2177
2178 PR target/22599
2179 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
2180 to make sure the insn is a conditional test (bug 22599). Reformat a
2181 few long lines.
2182
2183 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
2184
2185 PR middle-end/38431
2186 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
2187 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
2188 (gloog): Do not call cleanup_tree_cfg.
2189 (graphite_transform_loops): Call cleanup_tree_cfg after all
2190 scops have been code generated.
2191
2192 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
2193 * doc/gty.texi (Invoking the garbage collector): Added new node
2194 and section documenting ggc_collect.
2195
2196 2009-01-14 Richard Guenther <rguenther@suse.de>
2197
2198 PR tree-optimization/38826
2199 PR middle-end/38477
2200 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
2201 initialization notes only if we actually emitted a warning.
2202 (intra_create_variable_infos): Add constraints for a result decl
2203 that is passed by hidden reference.
2204 (build_pred_graph): Mark all related variables non-direct on
2205 address-taking.
2206
2207 2009-01-14 Nick Clifton <nickc@redhat.com>
2208
2209 * ira-conflicts.c: Include addresses.h for the definition of
2210 base_reg_class.
2211 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
2212 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
2213
2214 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
2215
2216 PR target/38811
2217 * Makefile.in (ira-lives.o): Add except.h.
2218
2219 * ira-lives.c: Include except.h.
2220 (process_bb_node_lives): Process can_throw_internal.
2221
2222 2009-01-13 Jakub Jelinek <jakub@redhat.com>
2223
2224 PR rtl-optimization/38774
2225 * combine.c (simplify_set): When undoing cc_use change, don't do
2226 PUT_CODE on the newly created comparison, but instead put back the
2227 old comparison.
2228
2229 2009-01-13 Joseph Myers <joseph@codesourcery.com>
2230
2231 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
2232 values. Remove duplicate arm8 entry.
2233
2234 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
2235
2236 PR tree-optimization/38786
2237 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
2238 the SSA_NAME case of expand_scalar_variables_expr.
2239 Set the type of an expression to the type of its assign statement.
2240 (expand_scalar_variables_expr): Also gather the scalar computation
2241 used to index the memory access. Do not pass loop_p.
2242 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
2243 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
2244 the gimple_stmt_iterator where it inserts new code.
2245 Do not pass loop_p.
2246 (copy_bb_and_scalar_dependences): Do not pass loop_p.
2247 (translate_clast): Update call to copy_bb_and_scalar_dependences.
2248
2249 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
2250
2251 * graphite.h (debug_value): Removed.
2252 * graphite.c (debug_value): Removed.
2253
2254 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
2255
2256 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
2257 ldrd/strd with two 32-bit instructions.
2258
2259 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
2260
2261 * config/arm/arm.c (struct processors): Pass for speed down into
2262 cost helper functions.
2263 (const_ok_for_op): Handle COMPARE and inequality nodes.
2264 (arm_rtx_costs_1): Rewrite.
2265 (arm_size_rtx_costs): Update prototype.
2266 (arm_rtx_costs): Pass speed down to helper functions.
2267 (arm_slowmul_rtx_costs): Rework cost calculations.
2268 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
2269 (arm_9e_rtx_costs): Likewise.
2270
2271 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
2272
2273 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
2274 relocations of local symbols wider than UNITS_PER_WORD are not valid.
2275 (alpha_legitimize_address): Do not split local symbols wider than
2276 UNITS_PER_WORD into HIGH/LO_SUM parts.
2277
2278 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
2279
2280 PR bootstrap/38580
2281 * gcc.c (process_command): Replace call to execvp with calls
2282 to pex_one and exit.
2283
2284 2009-01-03 Anatoly Sokolov <aesok@post.ru>
2285
2286 PR target/29141
2287 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
2288 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
2289 variant for devices with 3-byte PC.
2290 (__tablejump_elpm__) : New.
2291
2292 2009-01-12 Jakub Jelinek <jakub@redhat.com>
2293
2294 PR c/32041
2295 * c-parser.c (c_parser_postfix_expression): Allow `->' in
2296 offsetof member-designator, handle it as `[0].'.
2297
2298 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2299
2300 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
2301 function when not using named sections on targets with named sections
2302 if branch distance is less than 262132.
2303
2304 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
2305
2306 * combine.c (combine_instructions): Recompute
2307 optimize_this_for_speed_p for each BB in the main combine loop.
2308
2309 2009-01-12 Tomas Bily <tbily@suse.cz>
2310
2311 PR middlend/38385
2312 * tree-loop-distribution.c (prop_phis): New function.
2313 (generate_builtin): Call prop_phis.
2314 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
2315
2316 2009-01-12 Jakub Jelinek <jakub@redhat.com>
2317
2318 PR tree-optimization/38807
2319 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
2320 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
2321
2322 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
2323
2324 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
2325 subreg of op0 to the original op0.
2326
2327 2009-01-11 Laurent GUERBY <laurent@guerby.net>
2328
2329 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2330
2331 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
2332
2333 PR debug/7055
2334 * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
2335 starting with digits.
2336
2337 2009-01-10 Jakub Jelinek <jakub@redhat.com>
2338
2339 PR target/38695
2340 * config/arm/arm.c (arm_is_long_call_p): Don't call
2341 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
2342
2343 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
2344
2345 * regrename.c (regrename_optimize): Fix dumping.
2346 (find_oldest_value_reg): Preserve REG_POINTER.
2347 (copy_hardreg_forward_1): Likewise.
2348
2349 2009-01-09 Diego Novillo <dnovillo@google.com>
2350
2351 * gimple.h (struct gimple_statement_base) <uid>: Document
2352 the restrictions on its use.
2353 (gimple_uid): Tidy.
2354 (gimple_set_uid): Tidy.
2355
2356 2009-01-09 Jakub Jelinek <jakub@redhat.com>
2357
2358 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
2359 zero guard even if align_bytes != 0 and count is smaller than
2360 size_needed.
2361
2362 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
2363
2364 PR rtl-optimization/38495
2365 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
2366 (add_range_and_copies_from_move_list): Print all added ranges.
2367 Add ranges to memory optimized destination.
2368
2369 2009-01-09 Jakub Jelinek <jakub@redhat.com>
2370
2371 PR target/38686
2372 PR target/38708
2373 * config/i386/i386.c (override_options): Reject
2374 -mstringop-strategy=rep_8byte with -m32.
2375 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
2376 to 1. Do count comparison against epilogue_size_needed at compile
2377 time even when count_exp was constant forced into register. For
2378 size_needed don't jump to epilogue, instead just avoid aligning
2379 and invoke the body algorithm. If need_zero_guard, add zero guard
2380 even if count is non-zero, but smaller than size_needed + number of
2381 bytes that could be stored for alignment.
2382 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
2383 to 1. If need_zero_guard, add zero guard even if count is non-zero,
2384 but smaller than size_needed + number of bytes that could be stored
2385 for alignment. Compare size_needed with epilogue_size_needed instead
2386 of desired_align - align, don't adjust size_needed, pass
2387 epilogue_size_needed to the epilogue expanders.
2388
2389 PR c/35742
2390 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
2391
2392 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2393
2394 * pa.c (last_address): Change to unsigned.
2395 (update_total_code_bytes): Change argument to unsigned. Don't
2396 check if insn addresses are set.
2397 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
2398 addresses are not set.
2399 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
2400
2401 2009-01-09 Nick Clifton <nickc@redhat.com>
2402
2403 * config/sh/symbian.c: Replace uses of DECL_INLINE with
2404 DECL_DECLARED_INLINE_P.
2405
2406 2009-01-09 Jakub Jelinek <jakub@redhat.com>
2407
2408 PR middle-end/38347
2409 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
2410 GET_MODE (op0) in operand_subword_force calls.
2411
2412 PR middle-end/38771
2413 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
2414 fold_convert arg0 operands to TREE_TYPE (op0) first.
2415
2416 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
2417
2418 * params.def (ira-max-conflict-table-size): Decrease default value
2419 to 1000.
2420
2421 2009-01-08 Jakub Jelinek <jakub@redhat.com>
2422
2423 PR tree-optimization/37031
2424 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
2425 on parameter_set.
2426 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
2427 allocate it using gc instead of heap, use VEC_quick_push instead of
2428 VEC_safe_push.
2429 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
2430 instead of heap, use VEC_quick_push instead of VEC_safe_push.
2431 * tree-data-ref.h (struct access_matrix): Change matrix to gc
2432 allocated vector from heap allocated.
2433 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
2434 * tree-loop-linear.c (linear_transform_loops): Allocate nest
2435 vector only after perfect_loop_nest_depth call.
2436
2437 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
2438 Jan Sjodin <jan.sjodin@amd.com>
2439
2440 PR tree-optimization/38559
2441 * graphite.c (debug_value, copy_constraint,
2442 swap_constraint_variables, scale_constraint_variable, ): New.
2443 (get_lower_bound, get_upper_bound): Removed.
2444 (graphite_trans_bb_strip_mine): Clean up this code that works
2445 only for constant number of iterations. Fully copy upper and
2446 lower bound constraints, not only the constant part of them.
2447 * graphite.h (debug_value): Declared.
2448
2449 2009-01-08 Ira Rosen <irar@il.ibm.com>
2450
2451 PR tree-optimization/37194
2452 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2453 Don't add the cost of cost model guard in prologue to scalar
2454 outside cost in case of known number of iterations.
2455
2456 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
2457 Alan Modra <amodra@bigpond.net.au>
2458
2459 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
2460 non-word-aligned REG+CONST addressing.
2461
2462 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
2463
2464 PR target/38706
2465 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
2466 free_after_compilation when outputting a thunk.
2467 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
2468 Do not call free_after_compilation here.
2469
2470 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
2471
2472 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
2473 (ix86_valid_target_attribute_inner_p): Ditto.
2474
2475 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
2476
2477 PR tree-optimization/38492
2478 PR tree-optimization/38498
2479 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
2480 * tree-chrec.h (scev_is_linear_expression): Declared.
2481 * graphite.c (graphite_cannot_represent_loop_niter): New.
2482 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
2483 (graphite_loop_normal_form): Use gcc_assert.
2484 (scan_tree_for_params): Use CASE_CONVERT.
2485 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
2486 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
2487 Use gcc_assert. Discard scops that contain unhandled cases.
2488 (build_scop_conditions): Return a boolean status for unhandled cases.
2489 (strip_mine_profitable_p): Print the loop number, not its depth.
2490 (is_interchange_valid): Pass the depth of the loop nest, don't
2491 recompute it wrongly.
2492 (graphite_trans_bb_block): Same.
2493 (graphite_trans_bb_block): Print tentative of loop blocking.
2494 (graphite_trans_scop_block): Do not print that the loop has been
2495 blocked.
2496 (graphite_transform_loops): Do not handle scops that contain condition
2497 scalar phi nodes.
2498
2499 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
2500
2501 AVX Programming Reference (December, 2008)
2502 * config/i386/avxintrin.h (_mm256_stream_si256): New.
2503 (_mm256_stream_pd): Likewise.
2504 (_mm256_stream_ps): Likewise.
2505
2506 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
2507 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
2508 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
2509 (bdesc_special_args): Add __builtin_ia32_movntdq256,
2510 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
2511 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
2512 (ix86_expand_special_args_builtin): Likewise.
2513
2514 * config/i386/sse.md (AVXMODEDI): New.
2515 (avx_movnt<mode>): Likewise.
2516 (avx_movnt<mode>): Likewise.
2517 (<sse>_movnt<mode>): Remove AVX support.
2518 (sse2_movntv2di): Likewise.
2519
2520 2009-01-07 Richard Guenther <rguenther@suse.de>
2521
2522 PR middle-end/38751
2523 * fold-const.c (extract_muldiv): Remove obsolete comment.
2524 (fold_plusminus_mult_expr): Undo MINUS_EXPR
2525 to PLUS_EXPR canonicalization for the canonicalization.
2526
2527 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
2528
2529 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
2530 hosted cross-compilers generating less efficient code.
2531
2532 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
2533
2534 * function.h (rtl_data): Add a dbr_scheduled_p field.
2535 * reorg.c (dbr_schedule): Set it.
2536 (gate_handle_delay_slots): Check it.
2537 * config/mips/mips.c (mips_base_delayed_branch): Delete.
2538 (mips_reorg): Check flag_delayed_branch instead of
2539 mips_base_delayed_branch.
2540 (mips_override_options): Don't set mips_base_delayed_branch
2541 or flag_delayed_branch.
2542
2543 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
2544
2545 PR rtl-optimization/38426.
2546 * ira.c (ira): Set current_function_is_leaf earlier.
2547
2548 2009-01-06 Jakub Jelinek <jakub@redhat.com>
2549
2550 PR rtl-optimization/38722
2551 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
2552 too early, only set a flag and modify after last possible
2553 undo_all point.
2554
2555 2009-01-06 Janis Johnson <janis187@us.ibm.com>
2556
2557 PR c/34252
2558 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
2559 * real.c (decimal_single_format): Correct values of emin and emax.
2560 (decimal_double_format): Ditto.
2561 (decimal_quad_format): Ditto.
2562 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
2563 computation of DECnn_MIN and DECnn_MAX for corrected values of
2564 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
2565 __DECnn_MIN__, and adjust its computation for the corrected value
2566 of emin.
2567
2568 2009-01-06 Jan Hubicka <jh@suse.cz>
2569
2570 PR target/38744
2571 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
2572
2573 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
2574
2575 * doc/contrib.texi (Contributors): Slightly adjust the end note.
2576 Add Robert Clark to the list of testers.
2577
2578 2009-01-06 Jan Hubicka <jh@suse.cz>
2579 Kai Tietz <kai.tietz@onevision.com>
2580
2581 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
2582 * config/i386/i386.c (ix86_expand_call): Add clobbers.
2583
2584 2009-01-06 Jan Hubicka <jh@suse.cz>
2585 Kai Tietz <kai.tietz@onevision.com>
2586
2587 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
2588 for w64 ABI.
2589 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
2590 (ix86_nsaved_regs): Count only general purpose regs.
2591 (ix86_nsaved_sseregs): New.
2592 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
2593 to 16 for w64; compute padding and size of sse reg save area.
2594 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
2595 general purpose regs.
2596 (ix86_emit_save_sse_regs_using_mov): New.
2597 (ix86_expand_prologue): Save SSE regs if needed.
2598 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
2599 (ix86_emit_restore_sse_regs_using_mov): New.
2600 (ix86_expand_epilogue): Save SSE regs if needed.
2601
2602 2009-01-06 Jan Hubicka <jh@suse.cz>
2603 Kai Tietz <kai.tietz@onevision.com>
2604
2605 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
2606 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
2607 functions when accumulate outgoing args is off.
2608
2609 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
2610
2611 PR bootstrap/38742
2612 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
2613 before using pseudos_have_intersected_live_ranges_p.
2614
2615 * ira-int.h (ira_assert): Always define.
2616
2617 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
2618
2619 AVX Programming Reference (December, 2008)
2620 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
2621 (_mm256_permute2_pd): Likewise.
2622 (_mm_permute2_ps): Likewise.
2623 (_mm256_permute2_ps): Likewise.
2624 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
2625 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
2626
2627 * config/i386/i386.c (ix86_builtins): Remove
2628 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
2629 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
2630 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
2631 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
2632 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
2633 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
2634 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
2635 __builtin_ia32_vpermil2ps256.
2636 (ix86_init_mmx_sse_builtins): Updated.
2637 (ix86_expand_args_builtin): Likewise.
2638
2639 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2640
2641 * pa.c (output_call): Relocate non-jump insns in the delay slot of
2642 long absolute calls when generating PA 2.0 code.
2643
2644 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
2645
2646 PR rtl-optimization/38583
2647 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
2648
2649 * params.def (ira-max-conflict-table-size): New.
2650
2651 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2652
2653 * ira.h (ira_conflicts_p): New external definition.
2654
2655 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
2656 table. Report this. Return result of building.
2657 (ira_build_conflicts): Use ira_conflicts_p. Check result of
2658 building conflict table.
2659
2660 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
2661 (ira_color): Use ira_conflicts_p.
2662
2663 * global.c: Include ira.h.
2664 (pseudo_for_reload_consideration_p, build_insn_chain): Use
2665 ira_conflicts_p.
2666
2667 * Makefile.in (global.o): Add ira.h.
2668
2669 * ira-build.c (mark_all_loops_for_removal,
2670 propagate_some_info_from_allocno): New.
2671 (remove_unnecessary_allocnos): Call
2672 propagate_some_info_from_allocno.
2673 (remove_low_level_allocnos): New.
2674 (remove_unnecessary_regions): Add parameter. Call
2675 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
2676 parameter to remove_unnecessary_regions.
2677 (ira_build): Remove all regions but root if the conflict table was
2678 not built. Update conflict hard regs for allocnos crossing calls.
2679
2680 * ira.c (ira_conflicts_p): New global.
2681 (ira): Define and use ira_conflicts_p.
2682
2683 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
2684 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
2685 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2686
2687 2009-01-06 Ben Elliston <bje@au.ibm.com>
2688
2689 * gengtype-lex.l (YY_NO_INPUT): Define.
2690
2691 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
2692
2693 PR c/34911
2694 * c-common.c (handle_vector_size_attribute): Also reject
2695 BOOLEAN_TYPE types.
2696
2697 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
2698
2699 PR tree-optimization/38492
2700 * graphite.c (rename_map_elt, debug_rename_elt,
2701 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
2702 rename_map_elt_info, eq_rename_map_elts,
2703 get_new_name_from_old_name, bb_in_sese_p): Moved around.
2704 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
2705 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
2706 (sese_build_livein_liveouts): New.
2707 (new_sese, free_sese): New.
2708 (new_scop): Call new_sese.
2709 (free_scop): Call free_sese.
2710 (rename_variables_from_edge, rename_phis_end_scop): Removed.
2711 (register_old_new_names): Renamed register_old_and_new_names.
2712 (register_scop_liveout_renames, add_loop_exit_phis,
2713 insert_loop_close_phis, struct igp,
2714 default_liveout_before_guard, add_guard_exit_phis,
2715 insert_guard_phis, copy_renames): New.
2716 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
2717 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
2718 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
2719 (scop_adjust_phis_for_liveouts): New.
2720 (gloog): Call scop_adjust_phis_for_liveouts.
2721
2722 * graphite.h (struct sese): Documented. Added fields liveout,
2723 num_ver and livein.
2724 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
2725 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
2726 (struct scop): Added field liveout_renames.
2727 (SCOP_LIVEOUT_RENAMES): New.
2728
2729 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
2730
2731 PR tree-optimization/38510
2732 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
2733 (translate_clast): Call recompute_all_dominators before
2734 graphite_verify.
2735 (gloog): Call recompute_all_dominators before graphite_verify.
2736
2737 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
2738 Jan Sjodin <jan.sjodin@amd.com>
2739
2740 PR tree-optimization/38500
2741 * graphite.c (create_sese_edges): Call fix_loop_structure after
2742 splitting blocks.
2743
2744 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
2745
2746 * config.gcc: Add m32r*-*-rtems*.
2747 * config/m32r/rtems.h: New file.
2748
2749 2009-01-05 Ben Elliston <bje@au.ibm.com>
2750
2751 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
2752 (.po.pox): Likewise.
2753 (po/gcc.pot): Likewise.
2754
2755 2009-01-04 David S. Miller <davem@davemloft.net>
2756
2757 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
2758 (STARTING_FRAME_OFFSET): Always set to zero.
2759
2760 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
2761
2762 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
2763 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
2764 fixed-point types, and vectors of the same.
2765
2766 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
2767
2768 * config/mips/sync.md (*mb_barrier): Rename to...
2769 (*memory_barrier): ...this.
2770
2771 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
2772
2773 * doc/extend.texi (Function Attributes): Move @cindex after @item
2774 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
2775 and put in alphabetical order. Fix 'target' name and put in order.
2776 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
2777 typos.
2778
2779 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
2780
2781 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
2782 (memory_barrier): Expand as unspec instead of unspec_volatile.
2783 Remove mem:BLK from insn operands. Use Pmode scratch register.
2784 (*memory_barrier): Define as unspec instead of unspec_volatile.
2785 Use (match_dup 0) as input operand.
2786
2787 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
2788 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
2789 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
2790 scratch register. Remove operand 1.
2791 (*stbar): Define as unspec instead of unspec_volatile.
2792 Use (match_dup 0) as input operand, remove (const_int 8).
2793 (*membar): Define as unspec instead of unspec_volatile.
2794 Use (match_dup 0) as input operand, remove input operand 2.
2795
2796 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
2797 (memory_barrier): Expand as unspec instead of unspec_volatile.
2798 Remove mem:BLK from insn operands. Use Pmode scratch register.
2799 (*memory_barrier): Define as unspec instead of unspec_volatile.
2800 Use (match_dup 0) as input operand.
2801
2802 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
2803 Remove mem:BLK from insn operands. Use Pmode scratch register.
2804 Set volatile flag on operand 0.
2805 (*memory_barrier): New insn pattern.
2806
2807 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
2808 insn operands.
2809 (*memory_barrier): Use (match_dup 0) as input operand.
2810
2811 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
2812 Remove mem:BLK from insn operands. Use Pmode scratch register.
2813 Set volatile flag on operand 0.
2814 (*mb_internal): New insn pattern.
2815
2816 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
2817
2818 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
2819
2820 PR middle-end/38586
2821 * function.c (struct temp_slot): Move to the section of the file
2822 that deals with temp slots. Remove field 'address'.
2823 (temp_slot_address_table): New hash table of address -> temp slot.
2824 (struct temp_slot_address_entry): New struct, items for the table.
2825 (temp_slot_address_compute_hash, temp_slot_address_hash,
2826 temp_slot_address_eq, insert_temp_slot_address): Support functions
2827 for the new table.
2828 (find_temp_slot_from_address): Rewrite to use the new hash table.
2829 (remove_unused_temp_slot_addresses): Remove addresses of temp
2830 slots that have been made available.
2831 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
2832 worker function for remove_unused_temp_slot_addresses.
2833 (assign_stack_temp_for_type): Don't clear the temp slot address list.
2834 Add the temp slot address to the address -> temp slot map.
2835 (update_temp_slot_address): Update via insert_temp_slot_address.
2836 (free_temp_slots): Call remove_unused_temp_slot_addresses.
2837 (pop_temp_slots): Likewise.
2838 (init_temp_slots): Allocate the address -> temp slot map, or empty
2839 the map if it is already allocated.
2840 (prepare_function_start): Initialize temp slot processing.
2841
2842 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
2843
2844 PR middle-end/38584
2845 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
2846 Calculate the size of all stack vars assuming no packing of stack
2847 vars will happen, replacing a quadratic algorithm with a linear one.
2848
2849 2009-01-03 Jakub Jelinek <jakub@redhat.com>
2850
2851 PR target/38707
2852 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
2853 can't be used.
2854
2855 2009-01-03 Diego Novillo <dnovillo@google.com>
2856
2857 * doc/contrib.texi: Update contributions.
2858
2859 2009-01-03 Jakub Jelinek <jakub@redhat.com>
2860
2861 PR c++/38705
2862 * builtins.c (fold_builtin_memory_op): Give up if either operand
2863 is volatile. Set srctype or desttype to non-qualified version
2864 of the other type.
2865
2866 PR c/38700
2867 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
2868 and FUNCTION_DECLs.
2869
2870 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
2871
2872 PR rtl-optimization/35805
2873 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
2874 problem if fast dce is able to remove any instructions.
2875 * dce.c (dce_process_block): Fix dump message.
2876
2877 2009-01-02 Mark Mitchell <mark@codesourcery.com>
2878
2879 PR 33649
2880 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
2881
2882 2009-01-02 Jakub Jelinek <jakub@redhat.com>
2883
2884 PR middle-end/38690
2885 * tree-flow.h (op_code_prio, op_prio): New prototypes.
2886 * tree-pretty-print.c (op_code_prio): New function.
2887 (op_prio): No longer static. Use op_code_prio.
2888 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
2889 Use op_prio and op_code_prio to determine if () should be
2890 printed around operand(s) or not.
2891
2892 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
2893 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
2894 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
2895 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
2896 pp_character instead of pp_string for single letter printing.
2897
2898 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2899
2900 * doc/extend.texi: Fix '#pragma GCC option' typo.
2901
2902 2009-01-02 Richard Guenther <rguenther@suse.de>
2903
2904 * doc/install.texi (--enable-checking): Mention different
2905 default for stage1.
2906 (--enable-stage1-checking): Document.
2907
2908 2009-01-01 Andrew Pinski <pinskia@gmail.com>
2909
2910 PR middle-end/30142
2911 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
2912 case to be an error.
2913
2914 2009-01-02 Ben Elliston <bje@au.ibm.com>
2915
2916 * config/fp-bit.h (pack_d): Constify argument.
2917 * config/fp-bit.c (makenan): Constify return type. Remove casts.
2918 (isnan): Constify argument.
2919 (isinf): Likewise.
2920 (iszero): Likewise.
2921 (pack_d): Likewise.
2922 (_fpadd_parts): Constify return type.
2923 (_fpmul_parts): Likewise.
2924 (_fpdiv_parts): Likewise.
2925
2926 2009-01-01 Jakub Jelinek <jakub@redhat.com>
2927
2928 PR c/36489
2929 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
2930 warn about overwriting initializer with side-effects or
2931 -Woverride-init if !IMPLICIT.
2932 (output_init_element): Likewise. Pass IMPLICIT down to
2933 add_pending_init.
2934 (process_init_element): Add IMPLICIT argument. Pass it down
2935 to output_init_element.
2936 (push_init_element, pop_init_level, set_designator): Adjust
2937 process_init_element callers.
2938 (set_nonincremental_init, set_nonincremental_init_from_string):
2939 Adjust add_pending_init callers.
2940 (output_pending_init_elements): Adjust output_init_element callers.
2941 * c-tree.h (process_init_element): Adjust prototype.
2942 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
2943 process_init_element callers.