1 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
3 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
5 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
9 gcc_cv_as_cfi_directive.
10 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
11 merging read-only and read-write sections or assembler emits
12 read-write .eh_frame sections.
13 * configure: Regenerate.
15 2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
18 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
20 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
22 (rs6000_emit_prologue): Invert logic.
23 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
24 (reg:P 11) instead of match_operand.
25 (*save_fpregs_<mode>): Likewise.
26 (*restore_gpregs_<mode>): Likewise.
27 (*return_and_restore_gpregs_<mode>): Likewise.
28 (*return_and_restore_fpregs_<mode>): Likewise.
29 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
30 (reg:P 11) insted of match_operand.
31 (*restore_gpregs_spe): Likewise.
32 (*return_and_restore_gpregs_spe): Likewise.
34 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
36 PR tree-optimization/37684
37 * gcc.dg/graphite/pr37684.c: New.
38 * graphite.c (exclude_component_ref): New.
39 (is_simple_operand): Call exclude_component_ref.
41 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
43 PR tree-optimization/36908
44 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
45 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
46 (number_of_rw_in_partition): New.
47 (partition_contains_all_rw): New.
48 (ldist_gen): Do not distribute when one of the partitions
49 contains all the memory operations.
51 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
53 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
54 EDGE_IRREDUCIBLE_LOOP.
56 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
58 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
59 where we have one entry point in the loop which isn't the head.
61 2008-11-03 Richard Guenther <rguenther@suse.de>
64 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
66 2008-11-03 Jakub Jelinek <jakub@redhat.com>
69 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
70 for ipa and simple ipa passes.
72 2008-11-02 Richard Guenther <rguenther@suse.de>
74 PR tree-optimization/37542
75 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
76 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
77 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
78 (vn_nary_op_insert_stmt): Likewise.
79 (visit_use): Likewise.
81 2008-11-02 Anatoly Sokolov <aesok@post.ru>
83 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
85 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
86 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
87 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
88 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
89 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
90 peephole2's): Replace unspec with rotate.
91 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
93 2008-11-02 Richard Guenther <rguenther@suse.de>
95 PR tree-optimization/37991
96 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
97 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
98 (set_ssa_val_to): Print if the value changed.
99 (simplify_binary_expression): Strip useless conversions.
101 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
104 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
107 2008-11-01 Richard Guenther <rguenther@suse.de>
110 * builtins.c (fold_builtin_strspn): Return a size_t.
111 (fold_builtin_strcspn): Likewise.
113 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
115 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
116 attribute for struct return convention.
118 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
120 * config/rs6000/crtsavres.asm: Really, really delete.
122 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
124 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
126 (rs6000_emit_prologue): Invert logic.
127 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
128 (reg:P 11) instead of match_operand.
129 (*save_fpregs_<mode>): Likewise.
130 (*restore_gpregs_<mode>): Likewise.
131 (*return_and_restore_gpregs_<mode>): Likewise.
132 (*return_and_restore_fpregs_<mode>): Likewise.
133 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
134 (reg:P 11) insted of match_operand.
135 (*restore_gpregs_spe): Likewise.
136 (*return_and_restore_gpregs_spe): Likewise.
138 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
140 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
141 list of word switches that take args.
143 2008-10-30 Jakub Jelinek <jakub@redhat.com>
145 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
146 (s390_output_pool_entry): Call it through for_each_rtx.
149 * expr.c (store_constructor): For vectors, if target is a MEM, use
150 target's MEM_ALIAS_SET instead of elttype alias set.
152 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
155 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
158 2008-10-29 David Edelsohn <edelsohn@gnu.org>
161 * config/rs6000/predicates.md (word_offset_memref_operand):
162 Restructure code and look inside auto-inc/dec addresses.
164 2008-10-29 Steve Ellcey <sje@cup.hp.com>
167 * libgcov.c ( __gcov_indirect_call_profiler): Check
168 TARGET_VTABLE_USES_DESCRIPTORS.
170 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
172 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
173 (INITIAL_FRAME_POINTER_OFFSET): Remove.
174 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
175 offset if eliminating soft frame pointer.
176 * config/spu/spu.md (stack_protect_set, stack_protect_test)
177 (stack_protect_test_si): Add initial machine description
178 for Stack Smashing Protector
180 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
183 * c-common.c (min_precision): Move to...
184 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
185 * tree.h (tree_int_cst_min_precision): Declare.
186 * c-common.h (min_precision): Delete declaration.
187 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
188 multiplication of non-negative integer constants.
189 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
190 tree_int_cst_min_precision.
191 (finish_enum): Likewise.
193 2008-10-29 Joseph Myers <joseph@codesourcery.com>
196 * convert.c (convert_to_real): Do not optimize conversions of
197 binary arithmetic operations between binary and decimal
198 floating-point types. Consider mode of target type in determining
199 decimal type for arithmetic. Unless
200 flag_unsafe_math_optimizations, do not optimize binary conversions
201 where this may change rounding behavior.
202 * real.c (real_can_shorten_arithmetic): New.
203 * real.h (real_can_shorten_arithmetic): Declare.
205 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
207 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
208 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
209 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
211 (must_save_p): For some workarounds, interrupts need to clobber a
213 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
214 and LC1 for WA_05000257.
215 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
216 WA_05000283 and WA_05000315.
217 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
218 (movbi): Add alternative to set CC to 1; improve code for setting
220 (dummy_load): New pattern.
222 2008-10-29 Jakub Jelinek <jakub@redhat.com>
225 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
226 BLKmode for non-memory, convert using a wider MODE_INT mode
230 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
231 that haven't been removed yet.
233 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
235 * config/bfin/bfin.c (struct machine_function): New member
237 (bfin_expand_movmem): Set it when generating memcpy insns.
238 (n_regs_saved_by_prologue, expand_prologue_reg_save,
239 expand_epilogue_reg_restore): If we have hardware loops,
240 memcpy insns (indicated by has_loopreg_clobber) or function
241 calls, we need to save the loop registers.
243 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
245 * config/i386/i386.c (core2_cost): Fix typos in comments.
247 2008-10-28 Jakub Jelinek <jakub@redhat.com>
250 * combine.c (make_compound_operation): Don't call make_extraction with
252 (simplify_shift_const_1): Canonicalize count even if complement_p.
254 2008-10-28 Joseph Myers <joseph@codesourcery.com>
256 * convert.c (strip_float_extensions): Do not remove or introduce
257 conversions between binary and decimal floating-point types.
259 2008-10-28 Jakub Jelinek <jakub@redhat.com>
262 * fold-const.c (distribute_bit_expr): Convert common, left and
263 right arguments to type.
265 2008-10-28 Nick Clifton <nickc@redhat.com>
267 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
268 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
269 call_really_used_regs array rather than the call_used_regs array.
270 (mn10300_get_live_callee_saved_regs, expand_prologue,
271 expand_epilogue, output_tst): Likewise.
273 2008-10-27 Jakub Jelinek <jakub@redhat.com>
276 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
277 (df_get_entry_block_def_set): Neither here.
278 (df_get_regular_block_artificial_uses): Add EH_USES registers.
280 PR tree-optimization/37879
281 * predict.c (tree_estimate_probability): Check if last_stmt is
282 non-NULL before dereferencing it.
284 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
286 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
287 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
288 (ira_fast_allocation): Remove the prototype.
290 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
291 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
292 (color_pass): Modify the updated costs.
293 (ira_color): Rename to color. Make it static.
294 (ira_fast_allocation): Rename to fast_allocation. Make it static.
295 (ira_color): New function.
297 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
300 * ira-lives.c (last_call_num, allocno_saved_at_call): New
302 (set_allocno_live, clear_allocno_live, mark_ref_live,
303 mark_ref_dead): Invalidate corresponding element of
304 allocno_saved_at_call.
305 (process_bb_node_lives): Increment last_call_num. Setup
306 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
307 allocno was already saved.
308 (ira_create_allocno_live_ranges): Initiate last_call_num and
309 allocno_saved_at_call.
311 * ira-build.c (ira_create_allocno): Initiate
312 ALLOCNO_UPDATED_COVER_CLASS_COST.
313 (create_cap_allocno, propagate_allocno_info,
314 remove_unnecessary_allocnos): Remove setting updated costs.
315 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
317 * ira.c (ira): Don't call ira_fast_allocation.
319 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
322 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
325 * ira-conflicts.c (process_regs_for_copy): Remove class subset
328 * ira-int.h (ira_hard_regno_cover_class): New.
330 * ira-lives.c (mark_reg_live, mark_reg_dead,
331 process_bb_node_lives): Use ira_hard_regno_cover_class.
333 * ira.c (reg_class ira_hard_regno_cover_class): New global
335 (setup_hard_regno_cover_class): New function.
336 (ira_init): Call setup_hard_regno_cover_class.
338 * ira-costs.c (cost_class_nums): Add comment.
339 (find_allocno_class_costs): Initiate cost_class_nums.
340 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
342 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
345 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
346 Rename to copy_info_to_removed_store_destinations. Propagate
347 conflict hard regs and register stack attribute.
349 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
352 * pa.c (function_arg_padding): Pad complex and vector types upward in
354 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
356 2008-10-26 Matthias Klose <doko@ubuntu.com>
358 * doc/install.texi: Document requirements on antlr.
360 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
362 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
365 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
368 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
369 is defined, use it to modify the constant offset.
371 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
373 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
374 and short arguments to the correct location as mandated by the
377 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
379 PR rtl-optimization/37769
380 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
382 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
384 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
385 unwind-dw2-Os-4-200.o.
387 2008-10-24 Joseph Myers <joseph@codesourcery.com>
389 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
390 (convert_for_assignment): Remove ic_argpass_nonproto cases.
392 2008-10-24 Jakub Jelinek <jakub@redhat.com>
394 PR tree-optimization/36038
395 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
396 add sizetype IV with initial value zero instead of pointer type.
398 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
401 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
402 around bit operation.
403 * profile.c (is_edge_inconsistent): Likewise.
404 * fold-const.c (truth_value_p): Move from here...
405 * tree.h (truth_value_p): ... to here.
406 * c-tree.h (c_expr): Update description of original_code.
407 * c-typeck.c (parser_build_unary_op): Set original_code.
408 (parser_build_binary_op): Update call to warn_about_parentheses.
409 * c-common.c (warn_about_parentheses): Take two additional
410 arguments of the operands. Use a switch. Quote operators
411 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
412 Add warning about !x | y and !x & y.
413 * c-common.h (warn_about_parentheses): Update declaration.
415 2008-10-24 Jakub Jelinek <jakub@redhat.com>
417 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
418 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
419 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
421 (check-subtargets, check-%-subtargets, check-parallel-%): New
423 (check-%): For test targets listed in lang_checks_parallelized
424 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
425 run the testing in multiple make goals, possibly parallel, and
426 afterwards run dg-extract-results.sh to merge the sum and log files.
428 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
430 * config/mips/mips.c (mips_canonicalize_move_class): New function.
431 (mips_move_to_gpr_cost): Likewise.
432 (mips_move_from_gpr_cost): Likewise.
433 (mips_register_move_cost): Make more fine-grained.
435 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
437 * graphite.c (graphite_apply_transformations): Check for
439 * toplev.c (process_options): Add graphite_identity.
440 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
442 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
444 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
445 mulhisihl and mulhisihh builtins.
447 From Jie Zhang <jie.zhang@analog.com>
448 * config/bfin/bfin.md (composev2hi): Put operands into vector
451 2008-10-22 Chao-ying Fu <fu@mips.com>
453 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
455 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
457 From Mike Frysinger <michael.frysinger@analog.com>
458 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
459 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
460 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
461 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
462 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
463 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
464 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
465 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
466 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
467 __ADSPBF51x__ for all of them.
468 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
469 -mcpu bf512, bf514, bf516, and bf518.
470 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
471 bf512-none, bf514-none, bf516-none, and bf518-none.
472 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
473 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
474 * doc/invoke.texi (Blackfin Options): Document that
475 -mcpu now accepts bf512, bf514, bf516, and bf518.
477 2008-10-22 Jakub Jelinek <jakub@redhat.com>
480 * fold-const.c (build_range_type): For 1 .. signed_max
481 range call build_nonstandard_inter_type if signed_type_for
482 returned a type with bigger precision.
484 2008-10-22 Richard Guenther <rguenther@suse.de>
486 * tree.def (COMPLEX_TYPE): Constrain element type.
487 * tree.c (build_complex_type): Assert that.
488 * tree-ssa-structalias.c (could_have_pointers): Complex types
489 cannot have pointers.
491 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
494 * c-typeck.c (convert_for_assignment): Do not give declaration's
495 location for builtins. Spell out which type was expected and which
498 2008-10-22 Nick Clifton <nickc@redhat.com>
500 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
501 the fdpic register to be a target when running in fdpic mode.
503 2008-10-22 Rafael Espindola <espindola@google.com>
505 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
506 newly created statements.
508 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
511 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
512 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
513 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
515 2008-10-22 Jakub Jelinek <jakub@redhat.com>
518 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
519 Adjust -mcmodel=medium description for 2005-07-31 changes.
521 2008-10-22 Jan Hubicka <jh@suse.cz>
522 Jakub Jelinek <jakub@redhat.com>
525 * doc/invoke.texi: Remove references to obsoleted -d dumps.
527 2008-10-21 Richard Henderson <rth@redhat.com>
530 * emit-rtl.c (get_spill_slot_decl): Export.
531 * emit-rtl.h (get_spill_slot_decl): Declare.
532 * var-tracking.c (vt_add_function_parameters): Relax assertion
533 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
535 2008-10-21 Bob Wilson <bob.wilson@acm.org>
537 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
538 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
541 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
544 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
545 processed by get_maxval_strlen.
547 2008-10-21 David Edelsohn <edelsohn@gnu.org>
550 * tree.c (get_file_function_name): Copy first_global_object_name.
551 Centralize call to clean_symbol_name.
553 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
555 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
556 * config/svr4.h (SVR4_ASM_SPEC): New.
557 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
558 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
560 * doc/invoke.texi (Option Summary): Add -T to linker options.
561 (Link Options): Document -T.
563 2008-10-21 Jakub Jelinek <jakub@redhat.com>
565 * tree-inline.c (tree_inlinable_function_p): Remove tuples
568 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
572 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
574 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
576 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
579 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
581 * doc/install.texi: Fix typos in previous patch.
583 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
585 * doc/install.texi: Document in-tree building of gcc and mpfr.
587 2008-10-19 Richard Guenther <rguenther@suse.de>
589 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
591 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
594 * c-decl.c (finish_enum): Convert non-integer enumerators to enum
596 (build_enumerator): Convert enumerators that fit in integer to
599 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
601 * config/i386/i386.md (unnamed peephole2): Do not force memory
602 operands of arith or logical instructions into registers for
603 non-TARGET_READ_MODIFY targets.
605 (ffs_cmove): Change operand 0 predicate to register_operand.
606 Change operand 1 predicate to nonimmediate_operand.
608 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
610 2008-10-18 Richard Guenther <rguenther@suse.de>
612 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
613 VIEW_CONVERT_EXPR case against invalid gimple.
615 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
617 * c-parser.c (c_parser_binary_expression): Silence the
618 uninitialized variable warning emitted for binary_loc.
620 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
622 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
625 2008-10-16 Joseph Myers <joseph@codesourcery.com>
628 * c-typeck.c (build_unary_op): Use omit_one_operand for
629 IMAGPART_EXPR of real argument.
631 2008-10-16 Jakub Jelinek <jakub@redhat.com>
633 PR tree-optimization/37664
634 * fold-const.c (fold_binary): When optimizing comparison with
635 highest or lowest type's value, don't consider TREE_OVERFLOW.
637 2008-10-16 David Edelsohn <edelsohn@gnu.org>
640 * Makefile.in (coverage.o): Depend on $(TM_P_H).
641 * coverage.c: Include tm_p.h.
642 * config/rs6000/x-aix (jc1): Override LDFLAGS.
643 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
644 dollar signs from PREFIX.
645 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
646 instead of manual strip_name_encoding.
648 2008-10-16 Richard Guenther <rguenther@suse.de>
651 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
652 volatile qualified functions or methods as relevant.
654 2008-10-16 Jakub Jelinek <jakub@redhat.com>
656 PR tree-optimization/37525
657 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
658 sizetype unsigned constants, both in the case of C and bounds.
660 2008-10-15 Jan Hubicka <jh@suse.cz>
662 * ira-emit.c (change_regs): Return false when replacing reg by
665 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
668 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
669 HARD_REGNO_CALL_PART_CLOBBERED.
671 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
674 * ira-lives.c (mark_early_clobbers): Remove.
675 (make_pseudo_conflict, check_and_make_def_use_conflicts,
676 check_and_make_def_conflicts,
677 make_early_clobber_and_input_conflicts,
678 mark_hard_reg_early_clobbers): New functions.
679 (process_bb_node_lives): Call
680 make_early_clobber_and_input_conflicts and
681 mark_hard_reg_early_clobbers. Make hard register inputs live again.
683 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
684 early clobbers of pseudo-registers.
686 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
689 * ira-build.c (ira_flattening): Recalculate
690 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
691 from the scratch instead of the propagation.
693 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
695 * doc/rtl.texi (const_double): Remove the "addr" operand.
696 Describe CONST_DOUBLE_* macros under const_double rather
698 (const_fixed): Fix the operand description.
699 (const): Add an @findex directive.
700 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
701 after the constant rtl table.
702 (fix): Combine floating-point and fixed-point descriptions.
704 * sched-deps.c (sched_analyze_2): Remove reference to
707 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
709 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
711 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
712 for UNSPEC_GOTSYM_OFFs.
713 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
714 (add_GOT_to_pic_reg): Use it.
715 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
717 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
718 Harsha Jagasia <harsha.jagasia@amd.com>
720 PR tree-optimization/37485
721 * graphite.c (gmp_cst_to_tree): Moved.
722 (iv_stack_entry_is_constant): New.
723 (iv_stack_entry_is_iv): New.
724 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
725 (loop_iv_stack_insert_constant): New.
726 (loop_iv_stack_pop): Use new datatpype.
727 (loop_iv_stack_get_iv): Same.
728 (loop_iv_stack_get_iv_from_name): Same.
729 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
730 (loop_iv_stack_patch_for_consts): New.
731 (loop_iv_stack_remove_constants): New.
732 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
733 (translate_clast): Call loop_iv_stack_patch_for_consts and
734 loop_iv_stack_remove_constants.
735 (gloog): Use new datatype. Redirect construction edge to end
736 block to avoid accidental deletion.
737 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
739 (union iv_stack_entry_data): New. Data in iv stack entry.
740 (struct iv_stack_entry): New. Datatype for iv stack entries.
742 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
744 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
745 * graphite.c (free_scop): Same.
747 (free_scattering): New.
748 (build_cloog_prog): Call free_scattering.
749 (patch_phis_for_virtual_defs): Fix memleak.
750 (graphite_trans_bb_strip_mine): Same.
753 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
754 Harsha Jagasia <harsha.jagasia@amd.com>
756 PR tree-optimization/37828
757 * graphite.c (graphite_trans_loop_block): Do not loop block
760 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
762 PR tree-optimization/37686
763 * tree-loop-linear.c (linear_transform_loops): Build a
764 loop nest vector. Pass it to lambda_compute_access_matrices.
765 * tree-data-ref.h (struct access_matrix): Store the loop nest
766 relative to which it encodes the information.
767 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
768 (am_vector_index_for_loop): Reimplemented: iterate over the
769 loop nest for finding the loop index in the access matrix.
770 (lambda_compute_access_matrices): Update declaration.
771 * lambda-code.c (build_access_matrix): Pass the loop nest and
773 (lambda_compute_access_matrices): Same.
775 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
777 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
778 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
779 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
780 already implies hard float. Also fix several insn condition
781 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
783 2008-10-15 David Edelsohn <edelsohn@gnu.org>
786 Based on patches by Laurent Vivier.
787 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
788 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
789 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
790 dollar sign to underscore.
791 (ASM_OUTPUT_EXTERNAL): Same.
792 (ASM_OUTPUT_LABELREF): New.
793 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
795 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
796 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
797 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
798 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
800 2008-10-15 Jakub Jelinek <jakub@redhat.com>
802 PR tree-optimization/36881
803 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
804 that each value doesn't need runtime relocations, for !flag_pic
805 check that each value is just a valid initializer constant.
807 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
809 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
810 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
811 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
812 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
814 (REG_CLASS_NAMES): Update accordingly.
815 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
816 rather than an unpredictable descriptive string.
817 * config/mips/mips.c (mips_register_move_cost): Remove comment.
818 (mips_register_move_cost): Check for specific COP*_REGS classes,
819 instead of ALL_COP_AND_GR_REGS.
820 (mips_ira_cover_classes): New function.
821 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
822 (TARGET_IRA_COVER_CLASSES): Define.
824 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
827 * tree.c (build_type_attribute_qual_variant): Hash on the
828 unqualified type, and don't overwrite an existing
829 (type_hash_eq): Make the TYPE_NAME of the types significant, to
830 allow distinguishing between wchar_t and its underlying type. This
831 also means that we'll retain a little more typedef information.
833 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
834 Dmitry Melnik <dm@ispras.ru>
835 Dmitry Zhurikhin <zhur@ispras.ru>
836 Alexander Monakov <amonakov@ispras.ru>
837 Maxim Kuvyrkov <maxim@codesourcery.com>
839 * target.h (struct gcc_target): Update prototypes of needs_block_p
841 * haifa-sched.c (create_check_block_twin): Update calls to the above.
842 * sel-sched.c (create_speculation_check): Likewise.
843 * doc/tm.texi: Provide documentation for new target hooks.
845 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
846 (ia64_gen_spec_insn): Removed.
847 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
848 ia64_gen_spec_check): New static functions.
849 (ia64_alloc_sched_context, ia64_init_sched_context,
850 ia64_set_sched_context, ia64_clear_sched_context,
851 ia64_free_sched_context, ia64_get_insn_spec_ds,
852 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
853 (ia64_needs_block_p): Change prototype.
854 (ia64_gen_check): Rename to ia64_gen_spec_check.
855 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
856 into declaration, add special memory dependencies handling.
857 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
858 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
859 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
860 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
861 Define new target hooks.
862 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
863 (ia64_optimization_options): Turn on selective scheduling with -O3,
864 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
865 with selective scheduling.
866 (ia64_override_options): Initialize align_loops and align_functions
867 to 32 and 64, respectively. Set global selective scheduling flags
868 according to target-dependent flags.
869 (rtx_needs_barrier): Support UNSPEC_LDS_A.
870 (group_barrier_needed): Use new mstop-bit-before-check flag.
872 (dfa_state_size): Make global.
873 (spec_check_no, max_uid): Remove.
874 (mem_ops_in_group, current_cycle): New variables.
875 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
876 Initialize new variables.
877 (is_load_p, record_memory_reference): New functions.
878 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
880 (ia64_variable_issue): Change use of current_sched_info to
881 sched_deps_info. Update comment. Note if a load or a store is issued.
882 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
883 advance if maximal number of loads or stores was issued on current
885 (scheduled_good_insn): New static helper function.
886 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
887 a group barrier is needed. Fix vertical spacing. Guard the code
888 doing state transition with last_scheduled_insn check.
889 Mark that a stop bit should be before current insn if there was a
890 cycle advance. Update current_cycle and mem_ops_in_group.
891 (ia64_h_i_d_extended): Change use of current_sched_info to
892 sched_deps_info. Reallocate stops_p by larger chunks.
893 (struct _ia64_sched_context): New structure.
894 (ia64_sched_context_t): New typedef.
895 (ia64_alloc_sched_context, ia64_init_sched_context,
896 ia64_set_sched_context, ia64_clear_sched_context,
897 ia64_free_sched_context): New static functions.
898 (gen_func_t): New typedef.
899 (get_spec_load_gen_function): New function.
900 (SPEC_GEN_EXTEND_OFFSET): Declare.
901 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
902 (get_mode_no_for_insn): Change the condition that prevents use of
903 special hardware registers so it can now handle pseudos.
904 (get_spec_unspec_code): New function.
905 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
906 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
907 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
908 during selective scheduling.
909 (ia64_speculate_insn): Use ds_get_speculation_types when
910 determining whether we need to change the pattern.
911 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
912 (ia64_spec_check_src_p): Support new speculation/check codes.
913 (struct bundle_state): New field.
914 (issue_nops_and_insn): Initialize it.
915 (insert_bundle_state): Minimize mid-bundle stop bits.
916 (important_for_bundling_p): New function.
917 (get_next_important_insn): Use important_for_bundling_p.
918 (bundling): When shifting TImode from unimportant insns, ignore
919 also group barriers. Assert that best state is found before
920 the backward bundling pass. Print number of mid-bundle stop bits.
921 Minimize mid-bundle stop bits. Check correct calculation of
922 mid-bundle stop bits.
923 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
924 (final_emit_insn_group_barriers): Emit stop bits before insns starting
926 (sel2_run): New variable.
927 (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
928 scheduling pass instead of schedule_ebbs.
930 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
931 (UNSPEC_LDS_A): New UNSPEC.
932 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
933 movti_internal, movsf_internal, movdf_internal,
934 movxf_internal): Make visible. Add speculable* attributes.
935 (output_c_nc): New mode attribute.
936 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
937 mov<mode>_nc, zero_extend<mode>di2_nc,
938 advanced_load_check_nc_<mode>): New insns.
939 (zero_extend*): Add speculable* attributes.
941 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
942 (msched-stop-bits-after-every-cycle): Likewise.
943 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
945 (msched-spec-verbose): Remove.
946 (msched-prefer-non-data-spec-insns,
947 msched-prefer-non-control-spec-insns,
948 msched-count-spec-in-critical-path,
949 msel-sched-dont-check-control-spec): Use Target Report Var
950 instead of Common Report Var.
952 * config/ia64/itanium2.md: Remove incorrect bypass.
954 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
956 2008-10-14 Jakub Jelinek <jakub@redhat.com>
959 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
962 2008-10-14 Ben Elliston <bje@au.ibm.com>
964 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
966 2008-10-13 Joseph Myers <joseph@codesourcery.com>
968 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
971 2008-10-13 Matthias Klose <doko@ubuntu.com>
973 * config/pa/linux-atomic.c: Work around missing header file
974 for hppa64-linux-gnu targets.
976 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
977 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
978 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
979 Grace Cao <grace_cao@playstation.sony.com>
981 * doc/invoke.texi (-mgen-cell-microcode): Document.
982 (-mwarn-cell-microcode): Document.
983 * cfglayout.c (locator_location): Export.
984 * rtl.h (locator_location): Define prototype.
985 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
987 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
988 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
989 (mwarn-cell-microcode): New option.
990 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
991 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
992 cell and not already set.
993 Turn off string instructions if not generating cell microcode.
994 (rs6000_final_prescan_insn): New function that warns about microcoded
996 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
997 * config/rs6000/rs6000.md
998 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
999 the instruction would have been microcoded on the Cell. Set cell_micro
1000 to always on unnamed patterns for the string instructions.
1001 (cell_micro): Update definition, remove load/store conditional
1003 (sign_extend:DI): Define new pattern for non microcoded version.
1004 (sign_extend:SI): Likewise.
1005 (compare (div:P)): Set cell_micro to not.
1006 (andsi3): Define as an expand.
1007 (andsi3_mc): New pattern.
1008 (andsi3_nomc): New pattern.
1009 (andsi3_internal0_nomc): New pattern.
1010 (andsi3_internal2): Rename to ...
1011 (andsi3_internal2_mc): this and enable iff generating microcode.
1012 (andsi3_internal3): Rename to ...
1013 (andsi3_internal3_mc): this and enable iff generating microcode.
1014 (andsi3_internal4): Enable iif generating microcode.
1015 (andsi3_internal5): Rename to ..
1016 (andsi3_internal5_mc): this and enable iff generating microcode.
1017 (andsi3_internal5_nomc): New pattern.
1018 (extzvdi_internal1): Enable iff generating microcode.
1019 (extzvdi_internal2): Likewise.
1020 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
1021 (anddi3): Change to expand.
1022 (anddi3_mc): Rename from anddi3.
1023 (anddi3_no_mc): New pattern.
1024 (anddi3_internal2): Rename to ..
1025 (anddi3_internal2_mc): this and enable iff generating microcode.
1026 (anddi3_internal2_nomc): New pattern.
1027 (anddi3_internal3): Rename to ..
1028 (anddi3_internal3_mc): this and enable iff generating microcode.
1029 (anddi3_internal3_nomc): New pattern.
1030 (movti_string): Set cell_micro to always if TARGET_STRING.
1031 (stmsi8): Set cell_micro to always.
1037 (stmsi8_power): Likewise.
1038 (stmsi7_power): Likewise.
1039 (stmsi6_power): Likewise.
1040 (stmsi5_power): Likewise.
1041 (stmsi4_power): Likewise.
1042 (stmsi3_power): Likewise.
1043 (movsi_update2): Enable iff generating microcode.
1044 (movhi_update3): Likewise.
1045 (lmw): Set cell_micro to always.
1047 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
1049 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
1050 * config/s390/s390.c (machine_function): Remove
1051 decomposed_literal_pool_addresses_ok_p.
1052 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
1053 the difference of two labels.
1054 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
1055 (s390_pool_offset): New function.
1056 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
1057 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
1059 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
1061 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
1062 (powerpc*-*-linux-gnu*): Describe.
1063 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
1064 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1065 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1066 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1067 config/rs6000/e500crtres32gpr.asm,
1068 config/rs6000/e500crtres64gpr.asm,
1069 config/rs6000/e500crtres64gprctr.asm,
1070 config/rs6000/e500crtrest32gpr.asm,
1071 config/rs6000/e500crtrest64gpr.asm,
1072 config/rs6000/e500crtresx32gpr.asm,
1073 config/rs6000/e500crtresx64gpr.asm,
1074 config/rs6000/e500crtsav32gpr.asm,
1075 config/rs6000/e500crtsav64gpr.asm,
1076 config/rs6000/e500crtsav64gprctr.asm,
1077 config/rs6000/e500crtsavg32gpr.asm,
1078 config/rs6000/e500crtsavg64gpr.asm,
1079 config/rs6000/e500crtsavg64gprctr.asm: Use it.
1080 * config/rs6000/crtsavres.asm: Really remove.
1082 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
1085 * c-format.c (convert_format_name_to_system_name): Use
1086 TARGET_OVERRIDES_FORMAT_INIT.
1087 * config.gcc (extra_options): Add for mingw targets mingw.opt.
1088 * config/i386/mingw.opt: New.
1089 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
1090 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
1091 (ms_printf_length_specs): Removed const specifier.
1092 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1093 * doc/invoke.texi (Wno-pedantic-ms-format): New.
1095 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1097 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1098 * doc/install.texi: Bump recommended MPFR to 2.3.2.
1100 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
1103 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1104 sure that ref has valid bb.
1106 2008-10-12 Richard Henderson <rth@redhat.com>
1109 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1110 * alias.c (value_addr_p, stack_addr_p): Remove.
1111 (nonoverlapping_memrefs_p): Remove IRA special case.
1112 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1113 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1114 * reload1.c (alter_reg): Use it.
1116 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
1118 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1119 of registers instead of eax, ebx, ecx and edx. Use for loop
1120 and check register for non-zero value before the call
1121 to decode_caches_intel.
1123 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1125 PR rtl-optimization/37448
1126 * df.h: (df_ref_class): New enum.
1127 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1128 (struct df_ref): Replaced with union df_ref_d.
1129 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1130 New members of df_ref_d union.
1131 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1132 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1133 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1134 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1135 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
1136 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1137 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
1138 (df_scan_bb_info, df_bb_regno_first_def_find,
1139 df_bb_regno_last_def_find, df_find_def, df_find_use,
1140 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1141 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1142 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1143 df_get_artificial_defs, df_get_artificial_uses, union_defs)
1144 Replaced struct df_ref * with df_ref.
1145 * df-scan.c (df_collection_rec, df_null_ref_rec,
1146 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1147 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1148 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1149 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1150 df_reorganize_refs_by_reg_by_reg,
1151 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1152 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1153 df_sort_and_compress_refs, df_install_ref, df_install_refs,
1154 df_ref_record, df_get_conditional_uses, df_get_call_refs,
1155 df_bb_refs_record, df_exit_block_uses_collect,
1156 df_record_exit_block_uses, df_reg_chain_mark,
1157 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1158 df_ref * with df_ref.
1159 (df_ref_record, df_uses_record, df_ref_create_structure): Added
1160 df_ref_class parameter.
1161 (df_scan_problem_data): Added new pools for different types of refs.
1162 (df_scan_free_internal, df_scan_alloc, df_free_ref,
1163 df_ref_create_structure): Processed new ref pools.
1164 (df_scan_start_dump): Added counts of refs and insns.
1165 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1166 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1167 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1168 code to pass df_ref_class down to ref creation functions.
1169 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1170 df_reg_chain_mark): Use macros to hide references to df_refs.
1171 (df_ref_chain_change_bb): Removed.
1172 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1173 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1174 Enhanced to understand df_ref union structure.
1175 * fwprop.c (local_ref_killed_between_p, use_killed_between,
1176 all_uses_available_at, update_df, try_fwprop_subst,
1177 forward_propagate_subreg, forward_propagate_and_simplify,
1178 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1179 df_ref * with df_ref.
1180 (use_killed_between, all_uses_available_at): Use macros to hide
1181 references to df_refs.
1182 * regstat.c (regstat_bb_compute_ri,
1183 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1185 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1186 see_handle_relevant_refs, see_analyze_one_def,
1187 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1188 struct df_ref * with df_ref.
1189 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1190 global_conflicts): Replaced struct df_ref * with df_ref.
1191 * ddg.c (create_ddg_dep_from_intra_loop_link,
1192 add_cross_iteration_register_deps, build_inter_loop_deps):
1193 Replaced struct df_ref * with df_ref.
1194 (create_ddg_dep_from_intra_loop_link,
1195 add_cross_iteration_register_deps): Use macros to hide references
1197 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1198 df_ref * with df_ref.
1199 * df-core.c (df_bb_regno_first_def_find,
1200 df_bb_regno_last_def_find, df_find_def, df_find_use,
1201 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1202 debug_df_ref): Replaced struct df_ref * with df_ref.
1203 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
1204 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1206 * web.c (union_defs, entry_register, replace_ref, web_main):
1207 Replaced struct df_ref * with df_ref.
1208 (union_defs, replace_ref): Use macros to hide references to df_refs.
1209 * global.c (compute_regs_asm_clobbered, build_insn_chain):
1210 Replaced struct df_ref * with df_ref.
1211 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
1212 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1213 Replaced struct df_ref * with df_ref.
1214 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1215 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1217 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
1218 * df-byte-scan.c (df_compute_accessed_bytes_extract,
1219 df_compute_accessed_bytes_strict_low_part,
1220 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1221 Replaced struct df_ref * with df_ref.
1222 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
1223 * init-regs.c (initialize_uninitialized_regs): Replaced struct
1224 df_ref * with df_ref.
1225 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1226 check_dependency, check_dependencies, record_uses): Replaced
1227 struct df_ref * with df_ref.
1228 (invariant_for_use, check_dependency): Use macros to hide
1229 references to df_refs.
1230 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1231 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1232 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1233 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1234 references to df_refs.
1235 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1237 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1238 * df-problems.c (df_rd_bb_local_compute_process_def,
1239 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1240 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1241 df_chain_remove_problem, df_chain_create_bb_process_use,
1242 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1243 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1244 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1245 df_byte_lr_simulate_artificial_refs_at_top,
1246 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1247 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1248 df_simulate_uses, df_simulate_artificial_refs_at_end,
1249 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1251 (df_chain_dump): Use macros to hide references to df_refs.
1252 * config/mips/mips.c (r10k_simplify_address): Replaced struct
1253 df_ref * with df_ref.
1254 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1255 mark_artificial_uses, mark_reg_dependencies,
1256 byte_dce_process_block): Replaced struct df_ref * with df_ref.
1258 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
1260 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1262 (array_ref_element_size): Likewise.
1263 (array_ref_low_bound): Likewise.
1264 (array_ref_up_bound): Likewise.
1265 * expr.c (contains_packed_reference): Likewise.
1266 (array_ref_element_size): Likewise.
1267 (array_ref_low_bound): Likewise.
1268 (array_ref_up_bound): Likewise.
1269 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1270 with ARRAY_RANGE_REF.
1271 (idx_find_step): Likewise.
1272 (idx_record_use): Likewise.
1273 (strip_offset_1): Likewise.
1274 (idx_remove_ssa_names): Likewise.
1276 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
1277 Andi Kleen <ak@linux.intel.com>
1279 * config/i386/cpuid.h (__cpuid_count): New defines.
1280 * config/i386/driver-i386.c (struct cache_desc): New structure.
1281 (describe_cache): Use struct cache_desc to pass cache descriptions.
1282 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1283 (detect_caches_amd): Use struct cache_desc to describe caches.
1284 (decode_caches_intel): Use struct cache_desc to pass cache
1285 descriptions. Update descriptions to match latest (rev -032,
1286 December 2007) CPUID documentation. Do not check valid bit here.
1287 Check for Xeon MP value 0x49 problems.
1288 (detect_caches_cpuid2): New function, split from detect_caches_intel.
1289 Check valid bit before calling decode_caches_intel. Detect number
1290 of times to repeat CPUID instruction.
1291 (detect_caches_cpuid4): New function.
1292 (detect_caches_intel): Depending on max_level, call
1293 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
1294 only when other methods fail to provide valid L2 cache description.
1296 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1299 * pa.md (call, call_value): Generate an rtx for register r4 and pass
1300 it to PIC call patterns.
1301 (call_symref_pic): Revise pattern to expose PIC register save. Remove
1302 code generation and attributes from pattern. Change peephole2 to split
1303 for noreturn case. Revise split pattern for non noreturn case.
1304 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1305 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1306 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
1309 2008-10-11 David Edelsohn <edelsohn@gnu.org>
1311 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1312 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1314 (divdf3): Reformat long line.
1316 2008-10-11 Michael J. Eager <eager@eagercon.com>
1318 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1320 (rs6000_handle_option): Process -mfpu options.
1321 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1322 (enum fpu_type_t): New.
1323 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
1324 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1326 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1327 (floatdidf2): Add TARGET_SINGLE_FPU condition.
1328 * config/rs6000/rs6000.opt (-mfpu): New.
1329 (-mxilinx-fpu): New.
1330 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1331 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1332 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1333 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1334 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1336 2008-10-11 Jakub Jelinek <jakub@redhat.com>
1339 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1340 LO_SUM on Darwin if mode has just one unit.
1342 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
1345 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1346 has been optimized out.
1348 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
1350 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1351 instead of PIC_DIRECT_ADDR_P.
1352 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1353 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1354 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1355 (PIC_OFFSET_P): Rename to...
1356 (PCREL_SYMOFF_P): ...this.
1357 (PIC_DIRECT_ADDR_P): Delete.
1358 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1360 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1361 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1362 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1363 * config/sh/sh.c (print_operand): Remove CONST handling.
1364 (unspec_caller_rtx_p): Rewrite to use split_const and check
1365 the operands of UNSPEC bases.
1366 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1367 with (unspec [A B] UNSPEC_SYMOFF).
1368 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1369 UNSPEC_PCREL_SYMOFF.
1370 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1371 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1372 (UNSPEC_EXTRACT_U16): Likewise.
1373 (UNSPEC_SYMOFF): Likewise.
1374 (UNSPEC_PCREL_SYMOFF): Likewise.
1375 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1377 (movsi_const_16bit): Likewise.
1378 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1379 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1380 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1381 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1382 with (unspec [A B] UNSPEC_SYMOFF).
1383 (symPLT_label2reg): Replace (minus A (minus B pc)) with
1384 (unspec [A B] PCREL_UNSPEC_SYMOFF).
1385 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1386 (Csu): Likewise UNSPEC_EXTRACT_U16.
1387 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1388 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1390 2008-10-10 Stepan Kasal <skasal@redhat.com>
1392 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1393 for loop strip mining and loop blocking.
1395 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
1397 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1398 vary types depending on debug info.
1400 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
1402 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1403 before ensuring it's already computed.
1405 2008-10-09 Jakub Jelinek <jakub@redhat.com>
1407 * rtl.h (locator_eq): New decl.
1408 * cfglayout.c (locator_scope): New function.
1409 (insn_scope): Use it.
1410 (locator_eq): New function.
1411 (fixup_reorder_chain): Search for last insn in src bb
1412 that has locator set or first insn in dest bb. Use
1413 locator_eq instead of == to compare locators.
1414 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1415 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1416 == to compare locators.
1418 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1420 * gimple-low.c (lower_function_body, lower_gimple_return,
1421 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1422 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1423 goto_block on edges if goto_locus is known.
1426 * tree.h (get_object_alignment): Declare.
1427 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1428 get_object_alignment if needed.
1429 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
1431 (get_object_alignment): ... here. New function. Try harder to
1432 determine alignment from get_inner_reference returned offset.
1434 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1436 * graphite.c (gloog): Don't call find_unreachable_blocks
1437 before delte_unreachable_blocks.
1439 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1440 goto_locus of true_edge into RTL locator.
1442 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
1444 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1445 (*jcc_btdi_mask_rex64): Ditto.
1447 (*jcc_btsi_mask): Ditto.
1448 (*jcc_btsi_1): Ditto.
1449 (*jcc_btsi_mask_1): Ditto.
1451 2008-10-08 Paul Brook <paul@codesourcery.com>
1453 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1454 compatible profiler (__gnu_mcount_nc).
1455 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1457 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1459 * config/i386/i386.c (initial_ix86_tune_features): Add
1460 X86_TUNE_USE_VECTOR_FP_CONVERTS.
1461 * config/i386/i386.h (ix86_tune_indices): Likewise.
1462 (TARGET_USE_VECTOR_FP_CONVERTS): New.
1464 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1465 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1466 for FP to FP splitters.
1468 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1470 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1473 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1477 PR rtl-optimization/37341
1478 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1479 to ORIG_BB, pass through ORIG_BB recursively.
1480 (cse_condition_code_reg): Adjust caller.
1482 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
1484 * sdbout.c (sdbout_one_type): Treat the value type
1485 CONST_DECL for enumerals.
1487 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1489 * config/i386/i386.md: Remove trailing white spaces.
1491 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1493 PR rtl-optimization/37448
1494 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1495 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1497 (struct output_info) [count]: Renamed total_created and made
1499 (struct output_info) [size]: Renamed total_allocated and made
1501 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1502 Properly keep track of desc->size.
1503 (print_statistics, dump_alloc_pool_statistics): Enhance the
1504 printing of statistics to print the number of elements and to use
1507 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1510 * opts.h (CL_SAVE): Move up to flags range.
1511 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1512 CL_COMMON): Renumber.
1513 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1514 * opts.c (common_handle_option): Revert last change.
1516 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1518 * config/i386/i386-protos.h (ix86_schedule): New.
1520 * config/i386/i386.c (ix86_schedule): New.
1521 (override_options): Add schedule to processor_alias_table. Set
1522 ix86_schedule from the schedule field in processor_alias_table.
1523 (ix86_function_specific_save): Save ix86_schedule.
1524 (ix86_function_specific_restore): Restore ix86_schedule.
1526 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1527 ix86_tune. Add none and remove i386, i486, pentium4, nocona
1530 * config/i386/i386.opt: Add schedule.
1532 * config/i386/ppro.md: Remove generic32.
1534 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
1537 * expr.c (count_type_elements): Handle ERROR_MARK.
1539 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1544 * basic-block.h (struct edge_def): Add goto_block field.
1545 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1546 one insn with locus corresponding to edge's goto_locus if !optimize.
1547 * profile.c (branch_prob): Copy edge's goto_block.
1548 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1550 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1551 locator in between the merged basic blocks if !optimize and needed.
1552 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1553 goto_locus into RTL locator. For unconditional jump use that
1554 locator for the jump insn.
1555 (expand_gimple_cond): Convert goto_block and goto_locus into
1556 RTL locator for all remaining edges. For unconditional jump
1557 use that locator for the jump insn.
1558 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1559 there is more than one edge or insn locator along the forwarding
1560 edges and !optimize. If there is just one, set e->goto_locus.
1561 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1563 (move_block_to_fn): Adjust edge's goto_block.
1565 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1568 * expmed.c (expand_mult): Properly check DImode constant in
1571 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1574 * dwarf2out.c (common_block_die_table): New variable.
1575 (common_block_die_table_hash, common_block_die_table_eq): New
1577 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1578 COMMON block in the current scope rather than globally. Optimize
1579 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1580 DW_OP_addr SYMBOL_REF+off.
1582 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1584 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1585 Return true for non-addressable GIMPLE operands.
1587 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1590 * config/i386/i386.c (initial_ix86_tune_features): Remove
1591 X86_TUNE_USE_BIT_TEST.
1592 * config/i386/i386.h (ix86_tune_indices): Likewise.
1593 (TARGET_USE_BIT_TEST): Removed.
1595 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1597 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1599 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
1601 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1602 (mul<mode>3_mul3): ... into this new template.
1604 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1606 * gimplify.c (gimplify_arg): Add location argument. Use it.
1607 (gimplify_call_expr): Pass location to gimplify_arg.
1608 (gimplify_modify_expr_to_memcpy): Same.
1609 (gimplify_modify_expr_to_memset): Same.
1611 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1613 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1614 Update calls to build_unary_op and build_indirect_ref for location
1617 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1620 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1621 * c-typeck.c (array_to_pointer_conversion): Pass location to
1623 (function_to_pointer_conversion): Use error_at and warning_at.
1624 (build_indirect_ref): Same.
1625 (build_array_ref): Pass location to build_binary_op.
1626 (parser_build_unary_op): Do not set location after calling
1628 (build_unary_op): Add location argument. Use it throughout. Set
1629 EXPR_LOCATION before returning new tree.
1630 (build_modify_expr): Same.
1631 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
1633 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1634 build_indirect_ref, build_modify_expr.
1635 (c_finish_omp_for): Same. Use error_at instead of error.
1636 * c-common.c (c_common_truthvalue_conversion): Pass location to
1638 (warn_for_div_by_zero): Add location argument.
1639 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1640 build_unary_op, warn_for_div_by_zero.
1641 * c-parser.c (c_parser_typeof_specifier): Use
1642 protected_set_expr_location.
1643 (c_parser_statement_after_labels): Same.
1644 (c_parser_condition): Same.
1645 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1646 (c_parser_conditional_expression): Use protected_set_expr_location.
1647 (c_parser_unary_expression): Pass location to build_indirect_ref.
1648 (c_parser_postfix_expression_after_primary): Pass location to
1649 build_indirect_ref, build_unary_op.
1650 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1652 2008-10-06 Joshua Kinard <kumba@gentoo.org>
1654 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1655 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1656 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1658 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1659 (mips_issue_rate): Handle PROCESSOR_R10000.
1660 * config/mips/mips.md (cpu): Add r10000.
1662 * config/mips/10000.md: New file.
1664 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1666 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1667 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1668 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1670 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1672 * config/darwin-protos.h (machopic_function_base_name): Delete.
1673 (machopic_function_base_sym): Likewise.
1674 (machopic_gen_offset): Declare.
1675 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1676 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1677 * config/darwin.c (machopic_function_base_name): Delete.
1678 (machopic_function_base_sym): Likewise.
1679 (gen_pic_offset): Rename to...
1680 (machopic_gen_offset): ...this and remove the pic_base argument.
1681 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1682 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1683 crtl->uses_pic_offset_table.
1684 (machopic_indirect_data_reference): Use new machopic_gen_offset
1686 (machopic_legitimize_pic_address): Likewise.
1687 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1689 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1690 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1691 * config/i386/i386.c (output_set_got): Likewise.
1692 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1694 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1695 (legitimate_address_p): Likewise.
1696 (output_pic_addr_const): Likewise.
1697 (output_addr_const_extra): Likewise.
1698 (ix86_delegitimize_address): Expect darwin_local_data_pic to
1699 match an UNSPEC rather than a MINUS.
1700 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1701 (builtin_setjmp_receiver): Use machopic_gen_offset.
1702 * config/i386/predicates.md (pic_symbolic_operand): Handle
1703 UNSPEC_MACHOPIC_OFFSET.
1705 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1706 Use machopic_gen_offset and machopic_operand_p.
1707 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1708 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1709 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1710 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1711 Set crtl->uses_pic_offset_table.
1713 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1715 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1717 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1718 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1719 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1720 (constant_pool_expr_p): Use split_const and check the base.
1721 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1723 (legitimate_constant_pool_address_p): Check toc_relative_p
1724 instead of constant_pool_expr_p.
1725 (print_operand_address): Always use output_addr_const for
1726 constant pool addresses.
1727 (rs6000_output_addr_const_extra): New function.
1728 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1730 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
1734 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1735 (mark_ref_live, mark_ref_dead): Use them.
1736 (def_conflicts_with_inputs_p): Remove.
1737 (mark_early_clobbers): New function.
1738 (process_bb_node_lives): Call preprocess_constraints and
1739 mark_early_clobbers.
1741 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1743 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1745 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1746 lib with -mthread switch.
1748 2008-10-05 Dodji Seketeli <dodji@redhat.com>
1751 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1752 function in two, making it call a new and reusable
1753 dwarf2out_imported_module_or_decl() that takes the containing
1754 BLOCK of the declaration in argument.
1755 (dwarf2out_imported_module_or_decl_real): New function.
1756 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1757 IMPORTED_DECL in account.
1758 * tree.def: Added IMPORTED_DECL node type.
1759 * tree.h: Added accessors for IMPORTED_DECL nodes.
1760 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1762 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1764 * doc/gimple.texi: Fix some typos, wrap some long lines,
1765 fix some broken wraps with continuations.
1766 * tree-ssa-reassoc.c: Fix comment typos.
1768 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1771 * pa.c (legitimize_pic_address): Force function labels to memory in
1774 2008-10-04 Anton Blanchard <anton@samba.org>
1776 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1777 (rs6000_split_atomic_op): Same.
1778 (rs6000_split_compare_and_swap): Same.
1779 (rs6000_split_compare_and_swapqhi): Same.
1781 2008-10-04 Richard Guenther <rguenther@suse.de>
1783 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1784 instead of pointer equality.
1785 (vn_nary_op_eq): Likewise.
1787 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1789 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
1791 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1792 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1794 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
1796 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1797 Revert previous change.
1799 2008-10-03 Tom Tromey <tromey@redhat.com>
1801 * stringpool.c (ggc_alloc_string): Terminate string.
1803 2008-10-03 Jakub Jelinek <jakub@redhat.com>
1805 * gimplify.c (gimplify_function_tree): For -finstrument-functions
1806 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1807 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1810 * gimplify.c (declare_vars): Use gimple_bind_block instead of
1813 2008-10-03 Pascal Obry <obry@adacore.com>
1815 * gcov.c (create_file_names): Properly handle UNIX and DOS
1816 directory separators.
1817 (make_gcov_file_name): Likewise + convert the ':' DOS drive
1818 separator to '~' to ensure clean filenames on Windows.
1820 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1822 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1823 Add a null terminator to the stripped name.
1825 2008-10-02 David Edelsohn <edelsohn@gnu.org>
1827 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1828 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1829 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1830 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
1831 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1832 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1833 TARGET_SINGLE_FLOAT.
1835 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
1837 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1839 2008-10-02 Richard Guenther <rguenther@suse.de>
1842 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1843 and VECTOR_TYPE recurse with useless_type_conversion_p which
1844 properly handles void pointer conversion.
1846 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1849 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1850 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
1852 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1854 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1855 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1856 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1857 they translate to non builtins.
1858 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1859 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
1860 __builtin_vec_promote, __builtin_vec_extract, and
1861 __builtin_vec_insert.
1862 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1863 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1864 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1865 * config/rs6000/altivec.h (vec_extract): Define
1866 (vec_insert): Define.
1867 (vec_splats): Define.
1868 (vec_promote): Define.
1870 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1871 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
1872 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1874 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1876 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1877 prototype. Add new parameter, blk.
1878 Use BLKmode for the MEM if blk is true.
1879 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1880 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1881 ALTIVEC_BUILTIN_STVRXL.
1882 Update usage of altivec_expand_lv_builtin.
1883 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1884 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1885 (altivec_init_builtins): If compiling for the Cell, also define the
1887 * config/rs6000/rs6000.h (rs6000_builtins): Define
1888 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1889 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1890 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1891 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1892 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1893 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1894 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1895 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1896 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1897 UNSPEC_STVRX, and UNSPEC_STVRXL.
1898 (altivec_lvlx): New pattern.
1899 (altivec_lvlxl): New pattern.
1900 (altivec_lvrx): New pattern.
1901 (altivec_lvrxl): New pattern.
1902 (altivec_stvlx): New pattern.
1903 (altivec_stvlxl): New pattern.
1904 (altivec_stvrx): New pattern.
1905 (altivec_stvrxl): New pattern.
1906 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1907 (vec_lvlxl): Likewise.
1908 (vec_lvrx): Define if PPU is defined.
1909 (vec_lvrxl): Likewise.
1910 (vec_stvlx): Define if PPU is defined.
1911 (vec_stvlxl): Likewise.
1912 (vec_stvrx): Define if PPU is defined.
1913 (vec_stvrxl): Likewise.
1915 2008-10-01 Geert Bosch <bosch@adacore.com>
1917 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1919 2008-10-01 Richard Guenther <rguenther@suse.de>
1921 PR tree-optimization/37617
1922 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1923 do not add to the NEW_SETS.
1925 2008-10-01 Richard Guenther <rguenther@suse.de>
1928 * tree-vrp.c (execute_vrp): If we optimized away the default
1929 case make sure to promote the label that got in place of it
1930 to a default case label.
1932 2008-10-01 Richard Henderson <rth@redhat.com>
1935 * tree-complex.c (set_component_ssa_name): Don't optimize
1936 is_gimple_min_invariant values with ssa_names in abnormal phis.
1938 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
1940 PR tree-optimization/37662
1941 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1942 commutative binary operation if they are in the wrong order and
1943 fold_build2 produces non-GIMPLE.
1945 2008-09-30 Jakub Jelinek <jakub@redhat.com>
1947 PR tree-optimization/37662
1948 PR tree-optimization/37663
1949 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1950 get_value_range with non-SSA_NAME. Don't assert operands have been
1951 folded, instead just bail out.
1953 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1955 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1957 2008-09-30 Richard Guenther <rguenther@suse.de>
1960 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1961 build restrict-qualified pointers.
1962 (vectorizable_store): Move alias check later.
1963 (vectorizable_load): Likewise.
1965 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
1967 * c-common.c (empty_if_body_warning): Remove.
1968 * c-common.h (empty_if_body_warning): Remove.
1969 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1970 here the -Wempty-body warning for `if' and `else' statements.
1971 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1973 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
1975 * config/i386/i386.opt: Add msse2avx.
1977 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
1978 * config/i386/linux64.h (ASM_SPEC): Likewise.
1980 * doc/invoke.texi: Document -msse2avx.
1982 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1984 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1986 2008-09-29 Joseph Myers <joseph@codesourcery.com>
1988 * ifcvt.c (noce_emit_store_flag): If using condition from original
1989 jump, reverse it if if_info->cond was reversed.
1991 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1993 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1994 non-constant memory if it cannot be forced to constant memory.
1995 Overhaul surrounding code and factor out common condition.
1997 2008-09-29 Jeff Law <law@redhat.com>
1999 * reload1.c (alter_reg): Add missing curly braces.
2001 2008-09-29 Michael J. Eager <eager@eagercon.com>
2003 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2005 * config/rs6000/rs6000.c (rs6000_override_options): Move
2006 rs6000_init_hard_regno_mode_ok after all options changed.
2007 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2008 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2009 -msimple-fpu flags. Add warning messages if single FP not configured.
2010 (rs6000_file_start): Output gnu_attribute for single-float.
2011 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2012 (rs6000_legitimize_address): Likewise.
2013 (rs6000_legitimize_reload_address): Likewise.
2014 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2015 TARGET_SINGLE_FLOAT.
2016 (function_arg_advance): Likewise (partial conversion).
2017 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2018 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2019 TARGET_SINGLE_FLOAT.
2020 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2021 (rs6000_emit_prologue): Likewise.
2022 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2023 TARGET_SINGLE_FLOAT.
2024 (rs6000_libcall_value): Likewise.
2025 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2026 (TARGET_DOUBLE_FLOAT): New default to 1
2027 (TARGET_SIMPLE_FPU): New default to 0
2028 (TARGET_SINGLE_FPU): New default to 0
2029 (TARGET_SINGLE_FLOAT_MODE): New.
2030 (TARGET_DOUBLE_FLOAT_MODE): New.
2031 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2032 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2034 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2035 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2036 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2037 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2038 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2039 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2040 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2041 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2042 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2043 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2044 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2045 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2046 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2047 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2048 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2049 cmptf_internal1, *cmptf_internal2): Condition on
2050 TARGET_DOUBLE_FLOAT.
2051 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2052 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2053 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2054 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2055 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2056 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2057 TARGET_SINGLE_FLOAT.
2058 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2059 * config/rs6000/rs6000.opt (-msingle-float): New.
2060 (-mdouble-float): New.
2061 (-msimple-fpu): New.
2062 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2063 -msingle-float, -mdouble-float, -msimple-fpu options.
2064 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2065 _SOFT_DOUBLE for -msingle-float.
2066 * config.gcc: New config for target=powerpc-xilinx-eabi.
2068 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
2070 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
2071 have exit and entry.
2072 (new_scop): Take entry and exit edge to define new SCoP.
2073 (sd_region_p): New structure used during SCoP detection.
2074 (move_scops): Delete.
2075 (move_sd_regions): New.
2076 (scopdet_info): Change the definition from edges back to basic_blocks.
2077 (scopdet_edge_info): Work on basic_blocks and rename to
2078 scopdet_basic_block_info.
2079 (split_difficult_bb): At the moment removed. We should later
2080 add it at another place.
2081 (build_scops_1): Work on basic_blocks.
2082 (bb_in_sd_region): New.
2083 (find_single_entry_edge): New.
2084 (find_single_exit_edge): New.
2085 (create_single_entry_edge): New.
2086 (sd_region_without_exit): New.
2087 (create_single_exit_edge): New.
2088 (unmark_exit_edges): New.
2089 (mark_exit_edges): New.
2090 (create_sese_edges): New.
2091 (build_graphite_scops): New.
2092 (build_scops): Make SCoPs SESE.
2093 (limit_scops): Use the new functions.
2095 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
2097 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2099 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2102 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2103 address to a register before taking the lower part.
2105 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
2107 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2110 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2111 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
2114 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2115 the newly created variable.
2116 Create a VECTOR_CST of all 1s for vector types.
2118 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2121 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
2123 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2125 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2126 order to convert between modes.
2127 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2129 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
2131 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2134 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
2137 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2141 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
2143 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2144 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2145 them to yield false with MIPS16.
2147 2008-09-26 Jakub Jelinek <jakub@redhat.com>
2150 * dwarf2out.c (tls_mem_loc_descriptor): New function.
2151 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
2152 mem_loc_descriptor failed. Accept UNSPEC.
2153 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
2154 fail if one of the loc_descriptor calls for pieces failed.
2155 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2156 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
2157 if loc_descriptor_from_tree_1 on offset failed.
2160 * opts.c (common_handle_option): Don't call print_specific_help with
2161 CL_SAVE as first argument.
2163 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
2164 Steve Ellcey <sje@cup.hp.com>
2166 * configure: Regenerate for new libtool.
2167 * aclocal.m4: Ditto.
2169 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
2171 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2172 alias set on MEM when saving stack pointer.
2173 * config/rs6000/rs6000.md (allocate_stack): Likewise
2175 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
2177 PR tree-optimization/37574
2178 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2179 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2180 instead of vector_type for constants. Take computation out of loop.
2181 (vect_get_vec_def_for_operand): Use only vectype for constant case,
2182 and use only vector_type for invariant case.
2183 (get_initial_def_for_reduction): Use vectype instead of vector_type.
2185 2008-09-25 Jakub Jelinek <jakub@redhat.com>
2188 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2189 the decl is a VAR_DECL or FUNCTION_DECL.
2191 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2194 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2195 (mark_ref_live, mark_ref_dead): Use them.
2196 (def_conflicts_with_inputs_p): Remove.
2197 (mark_early_clobbers): New function.
2198 (process_bb_node_lives): Call preprocess_constraints and
2199 mark_early_clobbers.
2201 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2203 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2206 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2207 (ira_compress_allocno_live_ranges): New prototype.
2209 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2210 (coalesced_allocnos_living_at_program_points): New.
2211 (coalesced_allocnos_live_at_points_p,
2212 set_coalesced_allocnos_live_points): New functions.
2213 (coalesce_spill_slots): Rewrite.
2215 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2216 ira_compress_allocno_live_ranges): New functions.
2218 * ira-build.c (ira_flattening): Call
2219 ira_compress_allocno_live_ranges.
2222 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
2224 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2227 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
2229 * combine.c (make_compound_operation): Handle the 'E' format.
2230 (count_rtxs): Likewise.
2231 (update_table_tick): Likewise.
2232 (get_last_value_validate): Likewise.
2234 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
2236 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2238 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2240 * matrix-reorg.c (transform_allocation_sites): Initializers
2241 added to avoid the warning.
2243 2008-09-25 Martin Jambor <mjambor@suse.cz>
2245 * cgraph.c (free_nodes): New variable.
2246 (NEXT_FREE_NODE): New macro.
2247 (cgraph_create_node): Reuse nodes from the free list. Do not
2248 update uid if doing so.
2249 (cgraph_remove_node): Add the node to the free list.
2251 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
2253 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2255 2008-09-24 Richard Henderson <rth@redhat.com>
2257 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2258 * unwind-dw2.c (execute_stack_op): Handle it.
2260 2008-09-24 David Edelsohn <edelsohn@gnu.org>
2263 2008-09-24 Michael J. Eager <eager@eagercon.com>
2265 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
2267 * c-common.c (fname_decl): New location argument.
2268 * c-common.h (fname_decl): Same.
2269 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2271 (c_parser_typeof_specifier): Same.
2272 (c_parser_parms_list_declarator): Same.
2273 (c_parser_asm_string_literal): Same.
2274 (c_parser_compound_statement_nostart): Same.
2275 (c_parser_label): Same.
2276 (c_parser_do_statement): Same.
2277 (c_parser_asm_statement): Same.
2278 (c_parser_unary_expression): Same.
2279 (c_parser_sizeof_expression): Same.
2280 (c_parser_postfix_expression): Same.
2281 (c_parser_pragma): Same.
2282 (c_parser_omp_clause_collapse): Same.
2283 (c_parser_omp_clause_num_threads): Same.
2284 (c_parser_omp_clause_schedule): Same.
2285 (c_parser_omp_all_clauses): Same.
2286 (c_parser_omp_sections_scope): Same.
2287 (c_parser_omp_for_loop): Same. Pass condition's location to
2288 c_objc_common_truthvalue_conversion.
2289 (c_parser_enum_specifier): Remove comment.
2291 2008-09-24 Michael J. Eager <eager@eagercon.com>
2293 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2295 * config/rs6000/rs6000.c (rs6000_override_options): Move
2296 rs6000_init_hard_regno_mode_ok after all options changed.
2297 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2298 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2299 -msimple-fpu flags. Add warning messages if single FP not configured.
2300 (rs6000_file_start): Output gnu_attribute for single-float.
2301 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2302 (rs6000_legitimize_address): Likewise.
2303 (rs6000_legitimize_reload_address): Likewise.
2304 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2305 TARGET_SINGLE_FLOAT.
2306 (function_arg_advance): Likewise.
2307 (function_arg): Likewise.
2308 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2309 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2310 TARGET_SINGLE_FLOAT.
2311 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2312 (rs6000_emit_prologue): Likewise.
2313 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2314 TARGET_SINGLE_FLOAT.
2315 (rs6000_libcall_value): Likewise.
2316 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2317 (TARGET_DOUBLE_FLOAT): New default to 1
2318 (TARGET_SIMPLE_FPU): New default to 0
2319 (TARGET_SINGLE_FPU): New default to 0
2320 (TARGET_SINGLE_FLOAT_MODE): New.
2321 (TARGET_DOUBLE_FLOAT_MODE): New.
2322 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2323 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2325 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2326 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2327 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2328 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2329 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2330 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2331 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2332 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2333 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2334 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2335 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2336 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2337 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2338 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2339 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2340 cmptf_internal1, *cmptf_internal2): Condition on
2341 TARGET_DOUBLE_FLOAT.
2342 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2343 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2344 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2345 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2346 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2347 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2348 TARGET_SINGLE_FLOAT.
2349 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2350 * config/rs6000/rs6000.opt (-msingle-float): New.
2351 (-mdouble-float): New.
2352 (-msimple-fpu): New.
2353 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2354 -msingle-float, -mdouble-float, -msimple-fpu options.
2355 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2356 _SOFT_DOUBLE for -msingle-float.
2357 * config.gcc: New config for target=powerpc-xilinx-eabi.
2359 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2361 * config/sparc/constraints.md: New file.
2362 * config/sparc/sparc.md: Include it.
2363 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2364 (sparc_extra_constraint_check): Delete.
2365 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2366 (memory_ok_for_ldd): New predicate.
2367 (sparc_extra_constraint_check): Delete.
2368 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2369 (CONST_OK_FOR_LETTER_P): Likewise.
2370 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2371 (EXTRA_CONSTRAINT): Likewise.
2373 2008-08-23 Steve Ellcey <sje@cup.hp.com>
2375 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2377 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2379 * alias.c (find_base_value): Use FIND_BASE_TERM.
2380 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2382 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2384 * config/i386/i386.c: Include cselib.h.
2385 (ix86_pic_register_p): New function.
2386 (ix86_delegitimize_address): Use it to check for the PIC register.
2388 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2390 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2391 * config/i386/i386.c (ix86_find_base_term): Don't check for
2392 SYMBOL_REF and LABEL_REF.
2394 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2396 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2397 constant PLUS in a CONST.
2399 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
2401 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
2402 check for sibcall support for w64.
2404 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2406 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2408 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
2410 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2411 parser_build_binary_op.
2412 * c-decl.c (build_enumerator): Pass location to build_binary_op.
2413 * c-typeck.c (build_array_ref): Same.
2414 (parser_build_unary_op): New location argument.
2415 (pointer_diff): Pass location to build_binary_op,
2416 c_objc_common_truthvalue_conversion.
2417 (build_modify_expr): Same.
2418 (build_unary_op): New location argument.
2419 (build_binary_op): New location argument.
2420 (c_objc_common_truthvalue_conversion): Pass location to
2421 c_*common_truthvalue_conversion.
2422 * c-convert.c (convert): Same.
2423 * c-common.c (binary_op_error): New location argument.
2424 (pointer_int_sum): Pass location to build_binary_op.
2425 (c_common_truthvalue_conversion): New location argument.
2426 (warn_for_sign_compare): Same.
2427 * c-common.h: Add location argument to c_common_truthvalue_conversion,
2428 binary_op_error, build_binary_op, warn_for_sign_compare.
2429 * c-parser.c (c_parser_condition): Pass location to
2430 c_*common_truthvalue_conversion.
2431 (c_parser_conditional_expression): Save condition's location and pass
2433 (c_parser_binary_expression): Same, but for the binary operator's
2435 (c_parser_omp_for_loop): Pass location to
2436 c_objc_common_truthvalue_conversion.
2438 2008-09-23 Martin Jambor <mjambor@suse.cz>
2440 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2441 (cgraph_node_remove_callees): New temporary f. Hold the next item
2443 (cgraph_node_remove_callers): Likewise.
2445 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2446 (ipa_node_removal_hook): Likewise.
2448 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2449 gimple_call_copy_skip_args and moved to the gimple_call section.
2450 * gimple.c (gimple_copy_call_skip_args): Renamed to
2451 gimple_call_copy_skip_args. Changed al users.
2453 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
2455 * ira-color.c (start_allocno_priorities): Rename to
2456 setup_allocno_priorities. Use costs and
2457 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2458 range lengths. Get rid off doubles.
2459 (ira_fast_allocations): Call start_allocno_priorities.
2461 2008-09-22 David Daney <ddaney@avtrex.com>
2464 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2465 register if TARGET_LONG_CALLS.
2467 2008-09-22 Richard Guenther <rguenther@suse.de>
2469 PR tree-optimization/37145
2470 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2471 value-numbering union accesses with their offset and size only.
2472 (visit_reference_op_load): Fix simplification of inserted conversions.
2473 * tree-ssa-pre.c (find_or_generate_expression): Do not
2474 recursively generate expressions if running FRE.
2476 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
2478 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2479 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2482 2008-09-22 Richard Guenther <rguenther@suse.de>
2484 PR tree-optimization/37145
2485 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2486 (phi_translate_1): Constant fold references.
2488 2008-09-22 Ira Rosen <irar@il.ibm.com>
2490 PR tree-optimization/37482
2491 * tree-vectorizer.h (struct _slp_instance): Add new field.
2492 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2493 (get_earlier_stmt): New function.
2494 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2496 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2497 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2498 asserts that GSI points to the scalar statement being vectorized.
2499 Set new statement location according to GSI.
2500 (vect_schedule_slp_instance): Use GSI of
2501 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2503 2008-09-21 Jan Hubicka <jh@suse.cz>
2505 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2506 (ipcp_insert_stage): Update dead_nodes bitmap.
2508 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
2511 * config/i386/t-cygming (SHLIB_LC): Remove.
2512 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2513 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2515 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
2519 * final.c (mark_symbol_ref_as_used): New helper function.
2520 (output_operand): Instead of just looking inside MEMs for
2521 SYMBOL_REFs, use new helper function and for_each_rtx.
2522 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2523 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
2524 Make head comment more general.
2525 * config/darwin.c (machopic_output_indirection): Handle weak
2526 references here, like in assemble_external.
2528 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
2530 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2531 (sparc_emit_float_lib_cmp): Change return type.
2532 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2533 (gen_compare_operator): New function.
2534 (sparc_emit_float_lib_cmp): Return the new operator to be used in
2535 the comparison sequence. Minor tweaks.
2536 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2537 that the final operator and the result of sparc_emit_float_lib_cmp
2538 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2539 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2540 buneq, bunge, bunle, bltgt): Assert that the final operator and the
2541 result of sparc_emit_float_lib_cmp match for software TFmode.
2542 (movqicc, movhicc, movsicc, movdicc): Merge into...
2543 (mov<I:mode>cc): ...this.
2544 (movsfcc, movdfcc, movtfcc): Merge into...
2545 (mov<F:mode>cc): ...this.
2546 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2548 (mov<I:mode>_cc_v9): ...this.
2549 (movdi_cc_sp64_trunc): Delete.
2550 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2551 movdi_cc_reg_sp64): Merge into...
2552 (mov<I:mode>_cc_reg_sp64): ...this.
2553 (movsf_cc_sp64): Rename into...
2554 (movsf_cc_v9): ...this.
2555 (movdf_cc_sp64): Rename into...
2556 (movdf_cc_v9): ...this.
2557 (movtf_cc_hq_sp64): Rename into...
2558 (movtf_cc_hq_v9): ...this.
2559 (movtf_cc_sp64): Rename into...
2560 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
2562 2008-09-21 Diego Novillo <dnovillo@google.com>
2564 * doc/gccint.texi: Include generic.texi and gimple.texi.
2566 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2567 (GIMPLE): Move to gimple.texi.
2568 (Annotations): Remove references to to stmt_ann_t and
2570 (SSA Operands): Rename from 'Statement Operands'.
2571 * doc/generic.texi: New.
2572 * doc/gimple.texi: New.
2573 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2574 * Makefile.in (TEXI_GCCINT_FILES):
2575 * gimple.c (gimple_copy_call_skip_args): Rename from
2576 giple_copy_call_skip_args. Update all users.
2577 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2579 2008-09-21 Ira Rosen <irar@il.ibm.com>
2581 PR tree-optimization/37539
2582 * tree-vect-transform.c (vect_transform_strided_load): Save vector
2583 statement in related statement field only for the first load of the
2584 group of loads with the same data reference.
2586 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
2588 * config/mips/mips.h (TUNE_OCTEON): New macro.
2589 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2590 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2591 * config/mips/octeon.md: New file.
2592 * config/mips/mips.md: Include octeon.md. Restore
2593 semi-alphabetical order of include files.
2595 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
2598 * config/i386/i386.md (*jcc_fused_1): Removed.
2599 (*jcc_fused_2): Likewise.
2600 (*jcc_fused_3): Likewise.
2601 (*jcc_fused_4): Likewise.
2603 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
2605 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2606 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2607 * target.h (gcc_target): Add ira_cover_classes.
2608 * ira.c: Remove IRA_COVER_CLASSES guards.
2609 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2610 instead of IRA_COVER_CLASSES.
2611 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2612 (setup_class_translate): Likewise.
2613 (setup_reg_class_intersect_union): Likewise.
2614 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2615 test of targetm.ira_cover_classes.
2616 * opts.c (decode_options): Use targetm.ira_cover_classes instead
2617 of IRA_COVER_CLASSES.
2618 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2619 (TARGET_INITIALIZER): Include it.
2620 * targhooks.h (default_ira_cover_classes): Declare.
2621 * targhooks.c (default_ira_cover_classes): New function.
2623 2008-09-19 Bob Wilson <bob.wilson@acm.org>
2625 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2627 2008-09-19 Ian Lance Taylor <iant@google.com>
2629 * varasm.c (narrowing_initializer_constant_valid_p): Return
2630 NULL_TREE if ENDTYPE is not an integer.
2632 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2635 * tree-ssa.c (execute_update_addresses_taken): Also update
2636 DECL_GIMPLE_REG_P for vector and complex types.
2638 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
2639 Jan Hubicka <jh@suse.cz>
2642 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2643 empty before freeing them.
2644 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2646 2008-09-18 Bob Wilson <bob.wilson@acm.org>
2648 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2649 * config/xtensa/predicates.md (tls_symbol_operand): New.
2650 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2651 (TARGET_CANNOT_FORCE_MEM): Define.
2652 (xtensa_tls_symbol_p): New.
2653 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2654 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2655 (xtensa_tls_module_base): New.
2656 (xtensa_call_tls_desc): New.
2657 (xtensa_legitimize_tls_address): New.
2658 (xtensa_legitimize_address): Handle TLS symbols.
2659 (xtensa_tls_referenced_p_1): New.
2660 (xtensa_tls_referenced_p): New.
2661 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2663 (XTENSA_BUILTIN_THREAD_POINTER): New.
2664 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2665 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2666 builtin. Add declarations for __builtin_thread_pointer and
2667 __builtin_set_thread_pointer.
2668 (xtensa_fold_builtin): Recognize new builtins.
2669 (xtensa_expand_builtin): Expand new builtins.
2670 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2671 (TARGET_THREADPTR): Define.
2672 (HAVE_AS_TLS): Define default value.
2673 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2674 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2675 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2676 (UNSPECV_SET_TP): New.
2677 (sym_TPOFF, sym_DTPOFF): New.
2678 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2679 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2680 * configure: Regenerated.
2682 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
2685 * config/ia64/ia64.c (ia64_optimization_options): Move
2686 checking and setting flag_schedule_insns_after_reload and
2687 ia64_flag_schedule_insns2 back to ...
2688 (ia64_override_options): Here.
2690 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2693 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2694 zero extend count after the correction to it is done.
2695 (doloop_optimize): Update call to doloop_modify, don't zero extend
2698 2008-09-18 Martin Jambor <mjambor@suse.cz>
2700 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2702 * ipa-prop.c: Correct comments.
2703 * ipa-prop.h: Likewise.
2705 2008-09-18 Jan Hubicka <jh@suse.cz>
2708 * ipa-reference.c (ipa_reference_local_vars_info_d,
2709 ipa_reference_global_vars_info_d,
2710 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2711 ipa_reference_vars_info_t): Move here from ipa-reference.h
2712 (node_duplication_hook_holder, node_removal_hook_holder): New.
2713 (get_reference_vars_info_from_cgraph): Rename to ...
2714 (get_reference_vars_info): ... this one, use cgraph uids.
2715 (get_local_reference_vars_info, get_global_reference_vars_info):
2716 Use cgraph instead of decl.
2717 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2719 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2720 ipa_reference_get_written_global,
2721 ipa_reference_get_not_written_global): Use cgraph argument.
2722 (check_call): Simplify avail check.
2723 (scan_stmt_for_static_refs): Update.
2724 (propagate_bits): Update.
2725 (merge_callee_local_info): Remove.
2726 (init_function_info): Use cgraph nodes.
2727 (clean_function_local_data): Break out from ...
2728 (clean_function): ... here.
2729 (copy_local_bitmap, copy_global_bitmap): New functions.
2730 (duplicate_node_data, remove_node_data): New functions.
2731 (generate_summary): Register hooks; use visibility instead of
2733 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2734 * ipa-reference.h (ipa_reference_local_vars_info_d,
2735 ipa_reference_global_vars_info_d,
2736 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2737 ipa_reference_vars_info_t): Move to ipa-reference.c
2738 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2740 (ipa_reference_get_read_global, ipa_reference_get_written_global,
2741 ipa_reference_get_not_read_global,
2742 ipa_reference_get_not_written_global): Update prototype.
2743 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2744 (init_state): Remove.
2745 (node_duplication_hook_holder, node_removal_hook_holder): New.
2746 (get_function_state, set_function_state): Use VECtor.
2747 (analyze_function): Check body availability.
2748 (add_new_function): Likewise.
2749 (duplicate_node_data, remove_node_data): New.
2750 (generate_summary): Register hooks; do not care about clones.
2751 (propafate): Do not care about clones; recursive functions are
2753 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2754 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2755 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2757 * tree-flow.h (function_ann_d): Remove reference_vars_info.
2758 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2759 Update call of ipa-reference accesors.
2761 2008-09-18 Simon Baldwin <simonb@google.com>
2763 * c-opts.c (c_common_handle_option): Add handling for
2764 -Wbuiltin-macro-redefined command line option.
2765 * c.opt: Added builtin-macro-redefined option.
2766 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2769 2008-09-18 Richard Guenther <rguenther@suse.de>
2771 PR tree-optimization/37258
2772 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2773 and signedness for integral types.
2774 (vn_phi_eq): Require compatible types.
2776 2008-09-18 Jakub Jelinek <jakub@redhat.com>
2779 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2780 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2782 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2783 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2784 ggc_free other TREE_LIST nodes from that chain.
2785 * function.c (instantiate_decls): Instantiate also DECL_RTL
2786 of vars in cfun->local_decls, free that list afterwards.
2788 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
2790 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2791 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2793 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2795 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2796 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2798 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2800 PR tree-optimization/37102
2801 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2802 from a node. Check to see if another PHI is dead.
2803 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
2804 remove real PHIs which have no uses.
2805 (rewrite_out_of_ssa): Call eliminate_useless_phis.
2807 2008-09-18 Richard Guenther <rguenther@suse.de>
2810 * tree-cfg.c (remove_useless_stmts_1): Remove
2811 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2813 2008-09-18 Nick Clifton <nickc@redhat.com>
2815 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2816 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2817 to frv_secondary_reload_class.
2818 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2819 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2820 (frv_secondary_reload_class): Omit unused parameter.
2821 (frv_secondary_reload): New function. Handle the case when
2822 secondary_reload_class() is called before the reload_(in|out)
2823 _optabs have been initialised.
2824 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2826 * config/frv/frv.md: Define an exclusion set between fr550_m0
2829 2008-09-18 Richard Guenther <rguenther@suse.de>
2831 PR tree-optimization/37456
2832 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2833 want to insert after ends a BB insert on the single fallthru
2836 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
2838 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2839 Mention -march=z9-109, z9-ec and z10.
2841 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
2843 PR rtl-optimization/37544
2844 * regrename.c (maybe_mode_change): Exit early when copy_mode
2845 is narrower than orig_mode and narrower than new_mode.
2847 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
2850 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2852 * sched-rgn.c (ref_counts): Remove.
2853 (insn_referenced): New static variable.
2854 (INSN_REF_COUNT): Remove.
2855 (sched_run_compute_dependencies): Use insn_referenced instead of
2857 (add_branch_dependences): Likewise. Delete dead assignment.
2859 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
2861 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2862 consumer is an asm. Add comment why this is important.
2863 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2864 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
2866 2008-09-17 Joseph Myers <joseph@codesourcery.com>
2868 * expr.c (emit_group_store): Do not shift before moving via a
2871 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
2873 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2874 from aggregate to non-aggregate type if the bit pattern is not fully
2875 preserved afterwards.
2877 2008-09-17 Richard Guenther <rguenther@suse.de>
2879 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2880 (verify_gimple_assign): ... this. Split into ...
2881 (verify_gimple_assign_unary): ... this,
2882 (verify_gimple_assign_binary): ... that,
2883 (verify_gimple_assign_single): ... and this.
2884 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2885 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2886 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2887 (verify_types_in_gimple_reference): Be forgiving with
2889 (verify_gimple_phi): Deal with virtual operands.
2891 * tree.def (PREDICT_EXPR): Change to tcc_expression.
2893 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2895 * tree.c (get_callee_fndecl): Don't call the language hook.
2896 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2897 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2898 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2900 2008-09-17 Jakub Jelinek <jakub@redhat.com>
2902 * tree.c (protected_set_expr_location): Don't unnecessarily
2903 check for error_mark_node.
2905 2008-09-17 Art Haas <ahaas@impactweather.com>
2907 * ipa-reference.c (analyze_function): Declare step only if
2908 ENABLE_CHECKING is defined.
2910 2008-09-17 Jan Hubicka <jh@suse.cz>
2913 * tree.h (DECL_INLINE): remove.
2914 (DECL_DECLARED_INLINE_P): Update docs.
2915 (DECL_NO_INLINE_WARNING_P): new.
2916 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2917 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2919 2008-09-17 Jakub Jelinek <jakub@redhat.com>
2920 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2923 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2926 2008-09-17 Jan Hubicka <jh@suse.cz>
2928 * ipa-reference.c (ipa_obstack): Remove.
2929 (local_info_obstack, global_info_obstack): New.
2930 (add_static_var): We now handle variables only.
2931 (mark_address_taken, mark_load, mark_store): New functions based on ...
2932 (check_operand): ... remove.
2933 (get_asm_stmt_operands): Rename to ...
2934 (check_asm_memory_clobber): ... this. Look only for memory clobber.
2935 (scan_stmt_for_static_refs): Rewrite.
2936 (scan_op_for_static_refs): Rename to ...
2937 (scan_initializer_for_static_refs): do not look for VAR_DECL
2938 initializers; stop recursion on types and decls.
2939 (ipa_init): Use proper obstacks.
2940 (analyze_variable): Use scan_initializer_for_static_refs.
2941 (init_function_info): Use local obstack.
2942 (analyze_function): Simplify.
2943 (add_new_function): We don't need visited_nodes obstack.
2944 (generate_summary): Use proper obstacks; cleanup after propagation.
2946 2008-09-17 Richard Guenther <rguenther@suse.de>
2949 PR tree-optimization/37491
2950 * alias.c (get_alias_set): Use the canonical type.
2951 * tree-vect-transform.c (vectorizable_store): Use the type of
2952 the lhs for the vector type. Adjust checking.
2953 (vectorizable_load): Adjust checking.
2955 2008-09-16 Jakub Jelinek <jakub@redhat.com>
2956 Adam Nemet <anemet@caviumnetworks.com>
2958 PR rtl-optimization/37483
2959 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2960 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2961 Rearrange code to better match the original comment. Check
2962 t_unconditional first. Improve comment.
2964 2008-09-16 Jakub Jelinek <jakub@redhat.com>
2967 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2968 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2971 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2972 GIMPLE_TRY if cleanup sequence is empty.
2974 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
2977 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2978 eliminate IV if the cost are the same.
2980 2008-09-16 Richard Guenther <rguenther@suse.de>
2983 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2986 2008-09-16 Richard Guenther <rguenther@suse.de>
2988 PR tree-optimization/37508
2989 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2991 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
2993 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2995 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2997 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2998 use gen_floatdidf2 directly.
2999 (floatunssidf2): Likewise.
3000 (floatsidf_ppc64_mfpgpr): Remove.
3001 (floatsidf_ppc64): Remove.
3002 (floatunssidf_ppc64): Remove.
3004 2008-09-15 Jakub Jelinek <jakub@redhat.com>
3006 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
3007 rather than update_cost_queue.
3009 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
3010 in every call starting with the second one, instead of only when
3011 alias_bitmap_obstack.elements != NULL.
3013 * tree-predcom.c (filter_suitable_components): Free all refs in
3014 act->refs vector before calling release_component.
3015 (add_ref_to_chain): Free ref if not adding it to chain->refs.
3017 * tree-data-ref.c (free_subscripts): Free all subscript objects.
3019 * tree-loop-linear.c (linear_transform_loops): Initialize
3020 lambda_obstack only after calling perfect_loop_nest_depth.
3021 Goto free_and_continue instead of just continue for later failures.
3024 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
3027 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
3029 2008-09-14 Andreas Schwab <schwab@suse.de>
3031 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
3033 2008-09-14 Jan Hubicka <jh@suse.cz>
3035 * invoke.texi (-fconserve-stack): Document.
3036 * opts.c (decode_options): Handle conserve_stack.
3037 * common.opt (fconvserve_stack): New.
3039 2008-09-14 David Edelsohn <edelsohn@gnu.org>
3041 * config.host: Add x-aix to host_xmake_file.
3042 * config/rs6000/t-aix52: Do not override LDFLAGS.
3043 * config/rs6000/x-aix: New file.
3045 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
3051 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
3052 is not recognized as a valid register usage. Allow REG_X to be used
3054 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
3055 forces a reload when using a base register.
3057 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
3059 * config/i386/cygming-crtend.c (register_frame_ctor): If
3060 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
3061 directly with atexit.
3062 (deregister_frame_ctor): Rename to ...
3063 (deregister_frame_dtor): Use to call __gcc_deregister_frame
3064 if !DEFAULT_USE_CXA_ATEXIT.
3066 2008-09-13 Jan Hubicka <jh@suse.cz>
3068 * cgraph.c: Include value-prof.h
3069 * Makefile.in (cgraph.o): Add value-prof.h dependency.
3071 2008-09-13 Jan Hubicka <jh@suse.cz>
3074 * tree-profile.c (add_abnormal_goto_call_edges): New function.
3075 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3076 tree_gen_one_value_profiler, tree_gen_average_profiler,
3077 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
3079 2008-09-13 Jan Hubicka <jh@suse.cz>
3081 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
3082 too many bytes on misalligned blocks.
3084 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3086 * doc/cfg.texi: Fix some typos.
3087 * doc/extend.texi: Likewise.
3088 * doc/install.texi: Likewise.
3089 * doc/invoke.texi: Likewise.
3090 * doc/rtl.texi: Likewise.
3091 * doc/tree-ssa.texi: Likewise.
3093 2008-09-13 Richard Guenther <rguenther@suse.de>
3096 * tree-nested.c (finalize_nesting_tree_1): Generate valid
3097 gimple stores for memory rhs.
3099 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
3101 PR rtl-optimization/37489
3102 * cse.c (fold_rtx): Don't return const_true_rtx for float
3103 compare if FLOAT_STORE_FLAG_VALUE is undefined.
3105 2008-09-13 Jan Hubicka <jh@suse.cz>
3107 PR tree-optimization/37392
3108 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
3110 2008-09-13 Martin Jambor <mjambor@suse.cz>
3111 Jan Hubicka <jh@suse.cz>
3113 * cgraph.c (free_edges): New variable.
3114 (NEXT_FREE_EDGE): New macro.
3115 (cgraph_free_edge): New function.
3116 (cgraph_remove_edge): Call cgraph_remove_edge_1.
3117 (cgraph_node_remove_callees): Likewise.
3118 (cgraph_node_remove_callers): Likewise.
3119 (cgraph_create_edge): Reuse edges from the free list. Do not
3120 update uid if doing so.
3121 (cgraph_remove_*_hook): Add free call.
3123 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
3125 * ira-color.c (conflict_allocno_vec): Delete.
3126 (update_cost_queue_elem): New structure.
3127 (update_cost_queue): New variable.
3128 (update_cost_queue_tail): Likewise.
3129 (update_cost_queue_elems): Likewise.
3130 (allocno_update_cost_check): Delete.
3131 (initiate_cost_update): Allocate update_cost_queue_elems
3132 instead of allocno_update_cost_check.
3133 (finish_cost_update): Update the free()s accordingly.
3134 (start_update_cost): New function.
3135 (queue_update_cost): Likewise.
3136 (get_next_update_cost): Likewise.
3137 (update_copy_costs_1): Inline into...
3138 (update_copy_costs): ...here. Use a queue instead of recursive calls.
3139 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
3140 once we've established they are equal. Don't allocate update
3141 costs if there is nothing to add to them.
3142 (update_conflict_hard_regno_costs): Remove ALLOCNO and
3143 DIVISOR arguments. Use a queue instead of recursive calls;
3144 process all the allocnos in the initial queue, rather than
3146 (assign_hard_reg): Use queue_update_cost instead of
3147 conflict_allocno_vec. Queue coalesced allocnos instead
3148 of calling update_conflict_hard_regno_costs for each one.
3149 Just call update_conflict_hard_regno_costs once for the
3151 (ira_color): Remove conflict_allocno_vec handling.
3153 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3155 PR tree-optimization/37484
3156 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
3157 (save_var_name): Same.
3158 (initialize_cloog_names): Same.
3159 (initialize_cloog_names): Same.
3161 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3163 * tree-scalar-evolution.c (set_instantiated_value): Set
3166 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
3170 * ira-build.c (common_loop_tree_node_dominator): Remove.
3171 (copy_live_ranges_to_removed_store_destinations): New function.
3172 (regno_top_level_allocno_map): Move to top level from ...
3173 (ira_flattening): ... here. Use
3174 copy_live_ranges_to_removed_store_destinations.
3176 * ira-emit.c (generate_edge_moves): Fix a comment.
3178 2008-09-12 Anatoly Sokolov <aesok@post.ru>
3181 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
3182 scratch register after 'set' pattern.
3184 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3186 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
3187 information passed to mark_reg_pointer.
3188 * explow.c (force_reg): Likewise.
3190 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3192 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3193 when building for the celledp architecture.
3195 2008-09-12 Richard Guenther <rguenther@suse.de>
3197 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3199 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
3201 PR rtl-optimization/37424
3202 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3203 the regnos instead of the addresses.
3205 2008-09-11 Janis Johnson <janis187@us.ibm.com>
3207 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3209 2008-09-11 Richard Guenther <rguenther@suse.de>
3211 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3212 entering the weaker equivalence recording.
3214 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3216 2008-09-11 Jeff Law <law@redhat.com>
3218 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3219 by assign_stack_local on the IRA path for stack slot sharing
3220 as well as the non-IRA path.
3222 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
3224 * config/i386/i386.h: Fix whitespace issues.
3226 2008-09-11 Martin Jambor <mjambor@suse.cz>
3228 * ipa-prop.h (struct ipa_param_flags): Removed.
3229 (struct ipa_param_descriptor): New structure.
3230 (struct ipa_node_params): ipcp_lattices, param_decls and
3231 param_flags moved to ipa_param_description.
3232 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3233 descriptors. Renamed all users.
3234 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3235 changed to access descriptors. Renamed all users.
3236 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3237 to access descriptors. Renamed all users.
3238 * ipa-cp.c (ipcp_init_cloned_node): Call
3239 ipa_initialize_node_params instead of ipa_count_formal_params and
3240 ipa_create_param_decls_array.
3241 (ipcp_analyze_node): Likewise.
3242 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3243 descriptors. Renamed all users.
3244 (ipcp_initialize_node_lattices): Remove allocation.
3245 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3246 ipa_initialize_node_params instead of ipa_count_formal_params and
3247 ipa_create_param_decls_array.
3248 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3249 ipa_populate_param_decls, made static, added parameter info,
3250 renamed mt to node, removed allocation, changed to use
3252 (ipa_count_formal_params): Made static, added parameter info,
3254 (ipa_initialize_node_params): New function.
3255 (ipa_check_stmt_modifications): Changed to use descriptors.
3256 (ipa_detect_param_modifications): Removed allocation, changed to
3258 (ipa_note_param_call): Changed to use descriptors.
3259 (ipa_analyze_params_uses): Removed allocation.
3260 (ipa_free_node_params_substructures): Changed to use descriptors.
3261 (ipa_edge_duplication_hook): Use the unused attribute.
3262 (ipa_node_duplication_hook): Use the unused attribute, changed to
3263 use descriptors, changed to duplicate descriptors.
3265 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3266 changed all callers. Call ipa_propagate_indirect_call_infos if doing
3267 indirect inlining. Made static.
3268 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
3269 functions called only once.
3270 (cgraph_decide_recursive_inlining): Don't call
3271 ipa_propagate_indirect_call_infos, pass new_edges to
3272 cgraph_mark_inline_edge instead.
3273 (cgraph_decide_inlining_of_small_functions): Don't call
3274 ipa_propagate_indirect_call_infos, pass new_edges to
3275 cgraph_mark_inline_edge instead.
3276 (cgraph_decide_inlining): Don't call
3277 ipa_propagate_indirect_call_infos.
3278 * ipa-prop.c: Check that vectors are allocated.
3280 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
3281 iff a new cgraph edges have been created.
3282 (cgraph_decide_inlining): New variable redo_always_inline.
3283 Flattening and always_inlining loop until callgraph stabilizes.
3284 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
3285 true iff new cgraph edges have been created.
3286 (propagate_info_to_inlined_callees): Likewise.
3287 (ipa_propagate_indirect_call_infos): Likewise.
3289 2008-09-11 Richard Guenther <rguenther@suse.de>
3291 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
3292 (set_prologue_iterations): Likewise.
3293 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3295 (vect_update_init_of_dr): Likewise.
3296 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
3298 * fold-const.c (fold_unary): Do not generate calculations
3301 2008-09-11 Paolo Bonzini <bonzini@gnu.org>
3303 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
3304 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
3305 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
3307 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
3309 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
3310 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
3311 before finalizing the changes.
3312 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
3314 (simplify_truth_ops_using_ranges): New.
3315 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
3316 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
3317 whether a simplification was made.
3318 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
3319 use a switch statement and also call simplify_truth_ops_using_ranges.
3321 2008-09-11 Jan Hubicka <jh@suse.cz>
3323 * ggc-common.c (loc_array): Make static.
3324 * dce.c (rest_of_handle_ud_dce): Free worklist.
3326 2008-09-11 Jan Hubicka <jh@suse.cz>
3328 * cgraph.c (cgraph_release_function_body): Plug memory leak on
3329 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
3330 function so we are sure we do not dangle it forever.
3331 * function.c (outer_function_chain, find_function_data): Remove.
3332 (function_context_stack): New.
3333 (push_function_context, pop_function_context): Update.
3334 * function.h (struct function): Remove pointer outer.
3335 (outer_function_chain, find_function_data): Remove.
3336 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
3338 2008-09-11 Jan Hubicka <jh@suse.cz>
3341 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
3343 2008-09-11 Jan Hubicka <jh@suse.cz>
3345 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
3347 2008-09-11 Jan Hubicka <jh@suse.cz>
3349 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
3350 (free_var_map_entry): New function.
3351 (redirect_edge_var_map_destroy): Use it.
3353 2008-09-11 Jan Hubicka <jh@suse.cz>
3356 * tree-inline.c (add_lexical_block): Replace with ...
3357 (prepend_lexical_block): ... prepend at begginig.
3358 (remap_blocks): Use it and reverse later.
3359 (expand_call_inline): Use prepend_lexical_block.
3361 2008-09-11 Jan Hubicka <jh@suse.cz>
3363 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
3365 2008-09-11 Jan Hubicka <jh@suse.cz>
3367 * function.c (free_after_compilation): Call insn_locators_free.
3368 * cfglayout.c (insn_locators_free): New function.
3369 * rtl.h (insn_locators_free): Declare.
3371 2008-09-11 Jan Hubicka <jh@suse.cz>
3373 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
3375 (cond_move_process_if_block): Update call.
3377 2008-09-11 Jan Hubicka <jh@suse.cz>
3379 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
3380 * vec.c: Include hashtab.h
3381 (vec_descriptor, ptr_hash_entry): New structures.
3382 (vec_desc_hash, vec_ptr_map): New static variables.
3383 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
3384 register_overhead, free_overhead, vec_heap_free): New functions.
3385 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
3386 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
3387 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
3390 2008-09-11 Ira Rosen <irar@il.ibm.com>
3392 PR tree-optimization/37474
3393 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
3394 length of load permutation.
3396 2008-09-11 Andreas Schwab <schwab@suse.de>
3398 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
3400 2008-09-11 Jakub Jelinek <jakub@redhat.com>
3403 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
3404 * dse.c (find_shift_sequence): Use extract_low_bits instead of
3405 simplify_gen_subreg.
3407 2008-09-11 Ira Rosen <irar@il.ibm.com>
3409 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
3412 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3415 * gimplify.c (gimplify_body): Call default_rtl_profile.
3418 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
3419 instead of tok->val.node if not expanding to something else. Handle
3420 intervening CPP_PADDING tokens.
3421 (altivec_categorize_keyword): Remove unneeded comparisons.
3423 2008-09-10 Richard Guenther <rguenther@suse.de>
3425 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
3427 2008-09-10 Richard Guenther <rguenther@suse.de>
3430 * tree-inline.c (insert_init_stmt): Make sure to not
3431 insert invalid gimple stores.
3433 2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
3435 PR tree-optimization/37388
3436 * toplev.c (process_options): Fail and warn when graphite
3437 flags are used, but the compiler has not been configured
3438 with graphite libraries.
3439 * graphite.c (graphite_transform_loops): Remove printfs
3440 to dump_file for the case when graphite is not available.
3442 2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
3445 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3446 the even element into register.
3447 (ix86_expand_vector_init_general): Don't use
3448 ix86_expand_vector_init_interleave on V16QImode and V8HImode
3449 if we can't move from GPR to SSE register directly.
3451 2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
3453 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3454 not lose track of the number of NOPs needed. Number of NOPs needed
3455 for sync vs. loads workaround was switched; corrected. Run second
3456 pass for all workarounds. No NOPs needed after call insns. Change
3457 second pass to use find_next_insn_start and find_load helpers in order
3458 to properly detect parallel insns.
3459 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3461 2008-09-10 Jan Hubicka <jh@suse.cz>
3463 * value-prof.c (gimple_ic): Fix tuplification bug.
3464 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3467 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3469 PR tree-optimization/37353
3470 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3471 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3472 calls instead of cond_dead_built_in_calls.
3473 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3474 initalize the vector only before adding first entry. Use VEC_safe_push
3475 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
3476 shrink_wrap_conditional_dead_built_in_calls call.
3478 2008-09-10 Ira Rosen <irar@il.ibm.com>
3480 PR tree-optimization/37385
3481 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3482 argument, and use it as a vector type if not NULL.
3483 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
3485 (vect_setup_realignment): Call vect_create_data_ref_ptr with
3486 additional argument.
3487 (vectorizable_load): Likewise.
3489 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3491 * config/i386/i386.md (SWI32): New mode iterator.
3492 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3495 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3497 PR rtl-optimization/37435
3498 * caller-save.c (insert_restore, insert_save): Check the mode by
3501 2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3504 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3506 (dw2_output_indirect_constant_1): Use unstripped name in symbol
3509 2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
3511 * doc/invoke.texi (ARM Options): Correct errors in discussion
3512 of -mfloat-abi, -mhard-float, and -msoft-float.
3514 2008-09-09 Jakub Jelinek <jakub@redhat.com>
3515 Jan Hubicka <jh@suse.cz>
3518 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3519 calling gimple_regimplify_operands on it. Iterate over all newly
3520 added statements, not just the last one.
3521 (insert_init_stmt): Insert stmt into seq first, then call
3522 gimple_regimplify_operands on it. Don't create new gimplification
3523 context, nor find referenced vars.
3525 2008-09-09 Jakub Jelinek <jakub@redhat.com>
3528 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3529 to pointer to vector pointer.
3530 * ipa-prop.c (ipa_propagate_indirect_call_infos,
3531 propagate_info_to_inlined_callees): Likewise.
3532 (update_call_notes_after_inlining): Likewise. Push new indirect edge
3533 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
3534 ipa_check_create_edge_args.
3535 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3536 argument to pointer to vector pointer.
3537 (cgraph_decide_inlining_of_small_function): Adjust
3538 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3542 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3543 optimizing for size, not speed.
3545 PR rtl-optimization/37408
3546 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3547 if parm is promoted.
3549 2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
3551 PR tree-optimization/37375
3552 * tree-scalar-evolution.c (scev_info_str): Add field
3554 (new_scev_info_str, eq_scev_info, find_var_scev_info,
3555 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3556 set_instantiated_value): Pass instantiated_below.
3557 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3559 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3560 the definitions are not instantiated.
3562 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3563 (block_before_loop): New.
3564 * tree-data-ref.c (dr_analyze_indices): Update uses of
3566 * graphite.c (block_before_scop): New.
3567 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
3568 basic block, not a loop for determining the parameters.
3569 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3571 (idx_record_params, find_params_in_bb, find_scop_parameters,
3572 build_loop_iteration_domains, add_conditions_to_domain): Update calls
3573 to instantiate_scev.
3575 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3577 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3581 * ira-build.c (ira_create_allocno): Setup frequency to 0.
3583 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3584 Check zero freq and increase if necessary.
3586 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3588 * ira-conflicts.c (process_regs_for_copy): Check that the hard
3589 regno is in the right range. Add comments.
3591 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3593 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3595 * mips-tfile.c (copy_object): Cast alloca result to int *.
3596 * mips-tdump.c (print_symbol): Cast xmalloc return values to
3598 Rename class to sclass.
3599 (read_tfile): Cast read_seek return values to proper types.
3600 Cast xcalloc return value to proper type.
3602 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3604 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3605 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3606 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3608 2008-09-09 Jan Hubicka <jh@suse.cz>
3610 * profile.c (is_edge_inconsistent): Add debug output; ignore
3611 negative count on fake edges.
3612 (is_inconsistent): Add debug output.
3614 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
3616 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3618 (choose_ready): When first insn is chosen from the ready list, also
3621 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
3623 PR rtl-optimization/37360
3624 * haifa-sched.c (max_issue): Do not assert that we never issue more
3625 insns than issue_rate. Add comment.
3627 2008-09-09 Richard Guenther <rguenther@suse.de>
3629 * tree-cfg.c (verify_types_in_gimple_op): Remove.
3630 (verify_types_in_gimple_call): Rename to ...
3631 (verify_gimple_call): ... this. Enhance.
3632 (verify_types_in_gimple_cond): Remove.
3633 (verify_gimple_comparison): New function ...
3634 (verify_types_in_gimple_assign): ... split out from here.
3635 (verify_types_in_gimple_return): Rename to ...
3636 (verify_gimple_return): ... this. Enhance.
3637 (verify_types_in_gimple_switch): Rename to ...
3638 (verify_gimple_switch): ... this. Enhance.
3639 (verify_gimple_goto): New function.
3640 (verify_types_in_gimple_phi): Rename to ...
3641 (verify_gimple_phi): ... this. Enhance.
3642 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3643 Fold in single-statement cases from verify_types_in_gimple_seq_2.
3644 (verify_types_in_gimple_seq_2): Remove cases handled in
3645 verify_types_in_gimple_stmt.
3647 2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
3649 * config/bfin/bfin.c (n_regs_to_save): New static variable.
3650 (push_multiple_operation, pop_multiple_operation): Set it.
3651 (workaround_rts_anomaly): New function.
3652 (workaround_speculation): New function, broken out of bfin_reorg.
3653 (bfin_reorg): Call the new functions.
3655 2008-09-09 Richard Guenther <rguenther@suse.de>
3659 * gimplify.c (gimplify_conversion): Change conversions of
3660 non-register type to VIEW_CONVERT_EXPRs.
3661 (gimplify_addr_expr): If we need to make the operand
3662 addressable make sure to use a properly initialized
3663 temporary for that so it gets a valid gimple store.
3665 2008-09-09 Aldy Hernandez <aldyh@redhat.com>
3667 * function.h (struct function): Add function_start_locus.
3668 * cfgexpand.c (gimple_expand_cfg): Use it.
3669 * c-parser.c (c_parser_declaration_or_fndef): Set it.
3671 2008-09-09 Richard Guenther <rguenther@suse.de>
3673 PR tree-optimization/37433
3674 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3677 2008-09-09 Richard Guenther <rguenther@suse.de>
3679 PR tree-optimization/37387
3680 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3681 and bits to a common type.
3683 2008-09-09 Nick Clifton <nickc@redhat.com>
3685 * config/v850/v850.md (return): Restore frame size restriction.
3687 2008-09-09 Paolo Bonzini <bonzini@gnu.org>
3689 * c-common.c (c_expand_decl): Remove.
3690 * c-common.h (anon_aggr_type_p): Remove prototype.
3691 (DECL_ANON_UNION_ELEMS): Remove.
3692 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3693 * c-decl.c (anon_aggr_type_p): Remove.
3694 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3695 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3696 * langhooks.h (struct lang_hooks): Remove expand_decl.
3697 * langhooks.c (lhd_expand_decl): Remove.
3698 * stmt.c (expand_anon_union_decl): Remove.
3699 * tree.h (expand_anon_union_decl): Remove prototype.
3701 2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
3704 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3706 * config/avr/avr.md (QISI) : Define mode iterator.
3707 (negated_tst<mode>) : Redefine as split using mode macro.
3708 (reversed_tstqi): Define insn as reversed compare with zero.
3709 (reversed_tsthi): Ditto.
3710 (reversed_tstsi): Ditto.
3712 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3715 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3716 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3719 * predict.c (optimize_function_for_size_p): Don't segfault if
3721 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3722 tree_swap_operands_p): Don't test cfun != NULL before calling
3723 optimize_function_for_s*_p.
3725 2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
3727 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3730 2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3732 * crx/crx.h (IRA_COVER_CLASSES): Define.
3734 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3737 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3738 even when a stmt has been gimple_modified_p, but after fold_stmt is
3739 not any longer. Remove unneeded may_have_exposed_new_symbols
3742 2008-09-08 Richard Guenther <rguenther@suse.de>
3744 PR tree-optimization/37421
3745 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3748 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3751 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3753 2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3756 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3757 * pa-hpux10.h (LINK_SPEC): Likewise.
3758 * pa-hpux11.h (LINK_SPEC): Likewise.
3760 2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3762 * pa32-regs.h (IRA_COVER_CLASSES): Define.
3763 * pa64-regs.h (IRA_COVER_CLASSES): Define.
3765 2008-09-07 Helge Deller <deller@gmx.de>
3767 * pa/linux-atomic.c: New file.
3768 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3769 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3771 2008-09-07 Richard Guenther <rguenther@suse.de>
3772 Ira Rosen <irar@il.ibm.com>
3774 PR tree-optimization/36630
3775 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3776 Call STRIP_NOPS before calling evolution_part_in_loop_num.
3778 2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
3779 Ira Rosen <irar@il.ibm.com>
3781 PR tree-optimization/35642
3782 * config/rs6000/altivec.md (mulv8hi3): Implement.
3784 2008-09-06 Jeff Law <law@redhat.com>
3786 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3788 2008-09-06 Jan Hubicka <jh@suse.cz>
3790 PR tree-optimization/14703
3791 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3793 * passes.c (init_optimization_passes): Recompute inline parameters.
3795 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3797 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3800 2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
3801 Peter Fuerst <post@pfrst.de>
3803 * doc/invoke.texi: Document -mr10k-cache-barrier=.
3804 * doc/extend.texi: Document __builtin_mips_cache.
3805 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3806 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3807 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3808 __GCC_HAVE_BUILTIN_MIPS_CACHE.
3809 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3810 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3811 (set_push_mips_isas): New variable.
3812 (mips_r10k_cache_barrier): New variable.
3813 (cache): New availability predicate.
3814 (mips_builtins): Add an entry for __builtin_mips_cache.
3815 (mips_build_cvpointer_type): New function.
3816 (MIPS_ATYPE_CVPOINTER): New macro.
3817 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3819 (r10k_simplified_address_p, r10k_simplify_address)
3820 (r10k_uncached_address_p, r10k_safe_address_p)
3821 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3822 (r10k_needs_protection_p_call, r10k_needs_protection_p)
3823 (r10k_insert_cache_barriers): New functions.
3824 (mips_reorg_process_insns): Delete cache barriers after a
3825 branch-likely instruction.
3826 (mips_reorg): Call r10k_insert_cache_barriers.
3827 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3828 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3829 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3830 (mips_cache, r10k_cache_barrier): New define_insns.
3832 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3834 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3835 * ira-color.c (setup_allocno_left_conflicts_num): Use
3836 hard_reg_set_equal_p instead of a comparison with
3837 ira_zero_hard_reg_set.
3838 * ira.c (setup_reg_subclasses): Likewise.
3839 (setup_cover_and_important_classes): Likewise.
3840 (setup_class_translate): Likewise.
3841 (setup_reg_class_intersect_union): Likewise.
3842 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3843 (ira_init_once): Don't initialize them.
3845 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
3847 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3849 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
3851 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3853 2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3855 Improved branch hints, safe hints, and scheduling.
3857 * haifa-sched.c (sched_emit_insn) : Define.
3858 * sched-int.h (sched_emit_insn) : Add prototype.
3859 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3860 -mhint-max-distance -msafe-hints) : Document.
3861 * config/spu/spu.c (spu_flag_var_tracking): New.
3862 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3863 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3864 TARGET_ASM_FILE_START): Define.
3865 (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3866 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3867 (spu_emit_branch_hint): Add blocks argument.
3868 (insert_branch_hints, insert_nops): Remove.
3869 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3870 uses_ls_unit, spu_sched_init_global, spu_sched_init,
3871 spu_sched_reorder, asm_file_start): New functions.
3872 (clock_var, spu_sched_length, pipe0_clock,
3873 pipe1_clock, prev_clock_var, prev_priority,
3874 spu_ls_first, prev_ls_clock): New static variables.
3875 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3876 * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3877 (nopn_nv): Add a non-volatile version of nop.
3878 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3879 -mhint-max-distance, -msafe-hints): New options.
3881 2008-09-05 Janis Johnson <janis187@us.ibm.com>
3882 Samuel Tardieu <sam@rfc1149.net>
3884 * opts.c (decode_options): Combine nested if statements.
3887 * opts.c (decode_options): Handle more relationships among
3888 unit-at-a-time, toplevel-reorder, and section-anchors.
3890 2008-09-05 David Daney <ddaney@avtrex.com>
3892 * doc/install.texi (--enable-reduced-reflection): Document new option.
3894 2008-09-05 Bob Wilson <bob.wilson@acm.org>
3896 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3898 (constantpool_operand): New.
3899 (move_operand): Disallow sub-word modes for the constant pool.
3900 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3901 (xtensa_secondary_reload_class): Replace with....
3902 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
3903 Set icode for sub-word reloads from the constant pool.
3904 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3905 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3906 * config/xtensa/xtensa.md (reload<mode>_literal): New.
3907 * config/xtensa/xtensa-protos.h: Update prototypes.
3909 2008-09-05 Joseph Myers <joseph@codesourcery.com>
3911 * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3912 (REG_CLASS_NAMES): Update.
3913 (REG_CLASS_CONTENTS): Update.
3914 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3915 of ALL_REGS for regs 77 and 78.
3916 * function.c (instantiate_virtual_regs_in_insn): Assert that
3917 return value of simplify_gen_subreg is not NULL.
3919 2008-09-05 Paolo Bonzini <bonzini@gnu.org>
3921 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3922 (gen_rtvec_v): Fix coding standards.
3924 2008-09-04 Jan Hubicka <jh@suse.cz>
3926 * i386.c (decide_alg): Be more conservative about optimizing for size.
3928 2008-09-04 Ian Lance Taylor <iant@google.com>
3930 * varasm.c (narrowing_initializer_constant_valid_p): New
3932 (initializer_constant_valid_p): Call it.
3934 2008-09-04 Jeff Law <law@redhat.com>
3936 * fold-const.c (native_encode_real): Fix computation of WORDS.
3937 (native_interpret_real): Likewise.
3939 2008-09-04 Janis Johnson <janis187@us.ibm.com>
3941 * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
3943 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
3945 * ira-conflicts.c (process_regs_for_copy): Check insn to check
3946 that the cost is already taken into account in ira-costs.c
3948 * ira-int.h (ira_debug_copy, ira_debug_copies): New.
3950 * ira-build.c (print_copy, print_copies, ira_debug_copy,
3951 ira_debug_copies): New.
3952 (ira_bulid): Call print_copies.
3954 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
3956 2008-09-04 Samuel Tardieu <sam@rfc1149.net>
3959 * config/rs6000/rs6000.c (optimization_options): Remove check of
3960 flag_toplevel_order.
3962 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3964 * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
3965 * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
3966 second operand is a reg_imm10_operand.
3967 * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
3968 *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
3969 (*seq_<GPR:mode><GPR2:mode>): Rename to
3970 *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
3972 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3973 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
3975 (*sne_<GPR:mode><GPR2:mode>): Rename to
3976 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
3979 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3981 * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3982 * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3983 combining an arithmetic right shift by more than 31 and a
3984 trunction. Don't match for out-of-range shift amounts. Set
3985 attribute mode to <MODE>.
3986 (*lshr32_trunc<mode>): Name the pattern combining a logical right
3987 shift by 32 and and a truncation. Set attribute mode to <MODE>.
3988 (*<optab>_trunc<mode>_exts): New pattern for truncated right
3989 shifts by less than 32.
3990 (extv): Change predicate on first operand to accept registers.
3991 Change predicate of the other operands from immediate_operand to
3992 const_int_operand. Expand exts when source is a register.
3993 (extzv): Change predicate of the constant operands from
3994 immediate_operand to const_int_operand.
3995 (extzv<mode>): Change predicate of the constant operands from
3996 immediate_operand to const_int_operand and no constraint. Also
3998 (*extzv_trunc<mode>_exts): New pattern.
4000 2008-09-04 Adam Nemet <anemet@caviumnetworks.com>
4002 * config/mips/mips.h (ISA_HAS_CINS): New macro.
4003 * config/mips/mips-protos.h (mask_low_and_shift_p,
4004 mask_low_and_shift_len): Declare.
4005 * config/mips/mips.c (mask_low_and_shift_p,
4006 mask_low_and_shift_len): New functions.
4007 (mips_print_operand): Handle new operand prefix "m".
4008 * config/mips/mips.md (*cins<mode>): New pattern.
4010 2008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
4012 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
4013 optimizing for size.
4015 2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
4017 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
4018 regardless of epilogue_completed.
4020 2008-09-04 Vladimir Makarov <vmakarov@redhat.com>