1 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
3 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
4 where we have one entry point in the loop which isn't the head.
6 2008-11-03 Richard Guenther <rguenther@suse.de>
9 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
11 2008-11-03 Jakub Jelinek <jakub@redhat.com>
14 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
15 for ipa and simple ipa passes.
17 2008-11-02 Richard Guenther <rguenther@suse.de>
19 PR tree-optimization/37542
20 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
21 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
22 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
23 (vn_nary_op_insert_stmt): Likewise.
24 (visit_use): Likewise.
26 2008-11-02 Anatoly Sokolov <aesok@post.ru>
28 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
30 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
31 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
32 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
33 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
34 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
35 peephole2's): Replace unspec with rotate.
36 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
38 2008-11-02 Richard Guenther <rguenther@suse.de>
40 PR tree-optimization/37991
41 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
42 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
43 (set_ssa_val_to): Print if the value changed.
44 (simplify_binary_expression): Strip useless conversions.
46 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
49 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
52 2008-11-01 Richard Guenther <rguenther@suse.de>
55 * builtins.c (fold_builtin_strspn): Return a size_t.
56 (fold_builtin_strcspn): Likewise.
58 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
60 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
61 attribute for struct return convention.
63 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
65 * config/rs6000/crtsavres.asm: Really, really delete.
67 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
69 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
71 (rs6000_emit_prologue): Invert logic.
72 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
73 (reg:P 11) instead of match_operand.
74 (*save_fpregs_<mode>): Likewise.
75 (*restore_gpregs_<mode>): Likewise.
76 (*return_and_restore_gpregs_<mode>): Likewise.
77 (*return_and_restore_fpregs_<mode>): Likewise.
78 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
79 (reg:P 11) insted of match_operand.
80 (*restore_gpregs_spe): Likewise.
81 (*return_and_restore_gpregs_spe): Likewise.
83 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
85 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
86 list of word switches that take args.
88 2008-10-30 Jakub Jelinek <jakub@redhat.com>
90 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
91 (s390_output_pool_entry): Call it through for_each_rtx.
94 * expr.c (store_constructor): For vectors, if target is a MEM, use
95 target's MEM_ALIAS_SET instead of elttype alias set.
97 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
100 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
103 2008-10-29 David Edelsohn <edelsohn@gnu.org>
106 * config/rs6000/predicates.md (word_offset_memref_operand):
107 Restructure code and look inside auto-inc/dec addresses.
109 2008-10-29 Steve Ellcey <sje@cup.hp.com>
112 * libgcov.c ( __gcov_indirect_call_profiler): Check
113 TARGET_VTABLE_USES_DESCRIPTORS.
115 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
117 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
118 (INITIAL_FRAME_POINTER_OFFSET): Remove.
119 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
120 offset if eliminating soft frame pointer.
121 * config/spu/spu.md (stack_protect_set, stack_protect_test)
122 (stack_protect_test_si): Add initial machine description
123 for Stack Smashing Protector
125 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
128 * c-common.c (min_precision): Move to...
129 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
130 * tree.h (tree_int_cst_min_precision): Declare.
131 * c-common.h (min_precision): Delete declaration.
132 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
133 multiplication of non-negative integer constants.
134 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
135 tree_int_cst_min_precision.
136 (finish_enum): Likewise.
138 2008-10-29 Joseph Myers <joseph@codesourcery.com>
141 * convert.c (convert_to_real): Do not optimize conversions of
142 binary arithmetic operations between binary and decimal
143 floating-point types. Consider mode of target type in determining
144 decimal type for arithmetic. Unless
145 flag_unsafe_math_optimizations, do not optimize binary conversions
146 where this may change rounding behavior.
147 * real.c (real_can_shorten_arithmetic): New.
148 * real.h (real_can_shorten_arithmetic): Declare.
150 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
152 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
153 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
154 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
156 (must_save_p): For some workarounds, interrupts need to clobber a
158 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
159 and LC1 for WA_05000257.
160 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
161 WA_05000283 and WA_05000315.
162 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
163 (movbi): Add alternative to set CC to 1; improve code for setting
165 (dummy_load): New pattern.
167 2008-10-29 Jakub Jelinek <jakub@redhat.com>
170 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
171 BLKmode for non-memory, convert using a wider MODE_INT mode
175 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
176 that haven't been removed yet.
178 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
180 * config/bfin/bfin.c (struct machine_function): New member
182 (bfin_expand_movmem): Set it when generating memcpy insns.
183 (n_regs_saved_by_prologue, expand_prologue_reg_save,
184 expand_epilogue_reg_restore): If we have hardware loops,
185 memcpy insns (indicated by has_loopreg_clobber) or function
186 calls, we need to save the loop registers.
188 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
190 * config/i386/i386.c (core2_cost): Fix typos in comments.
192 2008-10-28 Jakub Jelinek <jakub@redhat.com>
195 * combine.c (make_compound_operation): Don't call make_extraction with
197 (simplify_shift_const_1): Canonicalize count even if complement_p.
199 2008-10-28 Joseph Myers <joseph@codesourcery.com>
201 * convert.c (strip_float_extensions): Do not remove or introduce
202 conversions between binary and decimal floating-point types.
204 2008-10-28 Jakub Jelinek <jakub@redhat.com>
207 * fold-const.c (distribute_bit_expr): Convert common, left and
208 right arguments to type.
210 2008-10-28 Nick Clifton <nickc@redhat.com>
212 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
213 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
214 call_really_used_regs array rather than the call_used_regs array.
215 (mn10300_get_live_callee_saved_regs, expand_prologue,
216 expand_epilogue, output_tst): Likewise.
218 2008-10-27 Jakub Jelinek <jakub@redhat.com>
221 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
222 (df_get_entry_block_def_set): Neither here.
223 (df_get_regular_block_artificial_uses): Add EH_USES registers.
225 PR tree-optimization/37879
226 * predict.c (tree_estimate_probability): Check if last_stmt is
227 non-NULL before dereferencing it.
229 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
231 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
232 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
233 (ira_fast_allocation): Remove the prototype.
235 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
236 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
237 (color_pass): Modify the updated costs.
238 (ira_color): Rename to color. Make it static.
239 (ira_fast_allocation): Rename to fast_allocation. Make it static.
240 (ira_color): New function.
242 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
245 * ira-lives.c (last_call_num, allocno_saved_at_call): New
247 (set_allocno_live, clear_allocno_live, mark_ref_live,
248 mark_ref_dead): Invalidate corresponding element of
249 allocno_saved_at_call.
250 (process_bb_node_lives): Increment last_call_num. Setup
251 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
252 allocno was already saved.
253 (ira_create_allocno_live_ranges): Initiate last_call_num and
254 allocno_saved_at_call.
256 * ira-build.c (ira_create_allocno): Initiate
257 ALLOCNO_UPDATED_COVER_CLASS_COST.
258 (create_cap_allocno, propagate_allocno_info,
259 remove_unnecessary_allocnos): Remove setting updated costs.
260 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
262 * ira.c (ira): Don't call ira_fast_allocation.
264 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
267 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
270 * ira-conflicts.c (process_regs_for_copy): Remove class subset
273 * ira-int.h (ira_hard_regno_cover_class): New.
275 * ira-lives.c (mark_reg_live, mark_reg_dead,
276 process_bb_node_lives): Use ira_hard_regno_cover_class.
278 * ira.c (reg_class ira_hard_regno_cover_class): New global
280 (setup_hard_regno_cover_class): New function.
281 (ira_init): Call setup_hard_regno_cover_class.
283 * ira-costs.c (cost_class_nums): Add comment.
284 (find_allocno_class_costs): Initiate cost_class_nums.
285 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
287 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
290 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
291 Rename to copy_info_to_removed_store_destinations. Propagate
292 conflict hard regs and register stack attribute.
294 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
297 * pa.c (function_arg_padding): Pad complex and vector types upward in
299 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
301 2008-10-26 Matthias Klose <doko@ubuntu.com>
303 * doc/install.texi: Document requirements on antlr.
305 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
307 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
310 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
313 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
314 is defined, use it to modify the constant offset.
316 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
318 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
319 and short arguments to the correct location as mandated by the
322 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
324 PR rtl-optimization/37769
325 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
327 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
329 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
330 unwind-dw2-Os-4-200.o.
332 2008-10-24 Joseph Myers <joseph@codesourcery.com>
334 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
335 (convert_for_assignment): Remove ic_argpass_nonproto cases.
337 2008-10-24 Jakub Jelinek <jakub@redhat.com>
339 PR tree-optimization/36038
340 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
341 add sizetype IV with initial value zero instead of pointer type.
343 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
346 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
347 around bit operation.
348 * profile.c (is_edge_inconsistent): Likewise.
349 * fold-const.c (truth_value_p): Move from here...
350 * tree.h (truth_value_p): ... to here.
351 * c-tree.h (c_expr): Update description of original_code.
352 * c-typeck.c (parser_build_unary_op): Set original_code.
353 (parser_build_binary_op): Update call to warn_about_parentheses.
354 * c-common.c (warn_about_parentheses): Take two additional
355 arguments of the operands. Use a switch. Quote operators
356 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
357 Add warning about !x | y and !x & y.
358 * c-common.h (warn_about_parentheses): Update declaration.
360 2008-10-24 Jakub Jelinek <jakub@redhat.com>
362 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
363 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
364 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
366 (check-subtargets, check-%-subtargets, check-parallel-%): New
368 (check-%): For test targets listed in lang_checks_parallelized
369 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
370 run the testing in multiple make goals, possibly parallel, and
371 afterwards run dg-extract-results.sh to merge the sum and log files.
373 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
375 * config/mips/mips.c (mips_canonicalize_move_class): New function.
376 (mips_move_to_gpr_cost): Likewise.
377 (mips_move_from_gpr_cost): Likewise.
378 (mips_register_move_cost): Make more fine-grained.
380 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
382 * graphite.c (graphite_apply_transformations): Check for
384 * toplev.c (process_options): Add graphite_identity.
385 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
387 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
389 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
390 mulhisihl and mulhisihh builtins.
392 From Jie Zhang <jie.zhang@analog.com>
393 * config/bfin/bfin.md (composev2hi): Put operands into vector
396 2008-10-22 Chao-ying Fu <fu@mips.com>
398 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
400 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
402 From Mike Frysinger <michael.frysinger@analog.com>
403 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
404 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
405 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
406 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
407 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
408 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
409 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
410 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
411 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
412 __ADSPBF51x__ for all of them.
413 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
414 -mcpu bf512, bf514, bf516, and bf518.
415 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
416 bf512-none, bf514-none, bf516-none, and bf518-none.
417 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
418 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
419 * doc/invoke.texi (Blackfin Options): Document that
420 -mcpu now accepts bf512, bf514, bf516, and bf518.
422 2008-10-22 Jakub Jelinek <jakub@redhat.com>
425 * fold-const.c (build_range_type): For 1 .. signed_max
426 range call build_nonstandard_inter_type if signed_type_for
427 returned a type with bigger precision.
429 2008-10-22 Richard Guenther <rguenther@suse.de>
431 * tree.def (COMPLEX_TYPE): Constrain element type.
432 * tree.c (build_complex_type): Assert that.
433 * tree-ssa-structalias.c (could_have_pointers): Complex types
434 cannot have pointers.
436 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
439 * c-typeck.c (convert_for_assignment): Do not give declaration's
440 location for builtins. Spell out which type was expected and which
443 2008-10-22 Nick Clifton <nickc@redhat.com>
445 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
446 the fdpic register to be a target when running in fdpic mode.
448 2008-10-22 Rafael Espindola <espindola@google.com>
450 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
451 newly created statements.
453 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
456 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
457 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
458 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
460 2008-10-22 Jakub Jelinek <jakub@redhat.com>
463 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
464 Adjust -mcmodel=medium description for 2005-07-31 changes.
466 2008-10-22 Jan Hubicka <jh@suse.cz>
467 Jakub Jelinek <jakub@redhat.com>
470 * doc/invoke.texi: Remove references to obsoleted -d dumps.
472 2008-10-21 Richard Henderson <rth@redhat.com>
475 * emit-rtl.c (get_spill_slot_decl): Export.
476 * emit-rtl.h (get_spill_slot_decl): Declare.
477 * var-tracking.c (vt_add_function_parameters): Relax assertion
478 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
480 2008-10-21 Bob Wilson <bob.wilson@acm.org>
482 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
483 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
486 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
489 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
490 processed by get_maxval_strlen.
492 2008-10-21 David Edelsohn <edelsohn@gnu.org>
495 * tree.c (get_file_function_name): Copy first_global_object_name.
496 Centralize call to clean_symbol_name.
498 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
500 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
501 * config/svr4.h (SVR4_ASM_SPEC): New.
502 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
503 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
505 * doc/invoke.texi (Option Summary): Add -T to linker options.
506 (Link Options): Document -T.
508 2008-10-21 Jakub Jelinek <jakub@redhat.com>
510 * tree-inline.c (tree_inlinable_function_p): Remove tuples
513 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
517 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
519 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
521 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
524 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
526 * doc/install.texi: Fix typos in previous patch.
528 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
530 * doc/install.texi: Document in-tree building of gcc and mpfr.
532 2008-10-19 Richard Guenther <rguenther@suse.de>
534 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
536 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
539 * c-decl.c (finish_enum): Convert non-integer enumerators to enum
541 (build_enumerator): Convert enumerators that fit in integer to
544 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
546 * config/i386/i386.md (unnamed peephole2): Do not force memory
547 operands of arith or logical instructions into registers for
548 non-TARGET_READ_MODIFY targets.
550 (ffs_cmove): Change operand 0 predicate to register_operand.
551 Change operand 1 predicate to nonimmediate_operand.
553 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
555 2008-10-18 Richard Guenther <rguenther@suse.de>
557 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
558 VIEW_CONVERT_EXPR case against invalid gimple.
560 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
562 * c-parser.c (c_parser_binary_expression): Silence the
563 uninitialized variable warning emitted for binary_loc.
565 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
567 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
570 2008-10-16 Joseph Myers <joseph@codesourcery.com>
573 * c-typeck.c (build_unary_op): Use omit_one_operand for
574 IMAGPART_EXPR of real argument.
576 2008-10-16 Jakub Jelinek <jakub@redhat.com>
578 PR tree-optimization/37664
579 * fold-const.c (fold_binary): When optimizing comparison with
580 highest or lowest type's value, don't consider TREE_OVERFLOW.
582 2008-10-16 David Edelsohn <edelsohn@gnu.org>
585 * Makefile.in (coverage.o): Depend on $(TM_P_H).
586 * coverage.c: Include tm_p.h.
587 * config/rs6000/x-aix (jc1): Override LDFLAGS.
588 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
589 dollar signs from PREFIX.
590 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
591 instead of manual strip_name_encoding.
593 2008-10-16 Richard Guenther <rguenther@suse.de>
596 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
597 volatile qualified functions or methods as relevant.
599 2008-10-16 Jakub Jelinek <jakub@redhat.com>
601 PR tree-optimization/37525
602 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
603 sizetype unsigned constants, both in the case of C and bounds.
605 2008-10-15 Jan Hubicka <jh@suse.cz>
607 * ira-emit.c (change_regs): Return false when replacing reg by
610 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
613 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
614 HARD_REGNO_CALL_PART_CLOBBERED.
616 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
619 * ira-lives.c (mark_early_clobbers): Remove.
620 (make_pseudo_conflict, check_and_make_def_use_conflicts,
621 check_and_make_def_conflicts,
622 make_early_clobber_and_input_conflicts,
623 mark_hard_reg_early_clobbers): New functions.
624 (process_bb_node_lives): Call
625 make_early_clobber_and_input_conflicts and
626 mark_hard_reg_early_clobbers. Make hard register inputs live again.
628 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
629 early clobbers of pseudo-registers.
631 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
634 * ira-build.c (ira_flattening): Recalculate
635 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
636 from the scratch instead of the propagation.
638 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
640 * doc/rtl.texi (const_double): Remove the "addr" operand.
641 Describe CONST_DOUBLE_* macros under const_double rather
643 (const_fixed): Fix the operand description.
644 (const): Add an @findex directive.
645 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
646 after the constant rtl table.
647 (fix): Combine floating-point and fixed-point descriptions.
649 * sched-deps.c (sched_analyze_2): Remove reference to
652 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
654 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
656 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
657 for UNSPEC_GOTSYM_OFFs.
658 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
659 (add_GOT_to_pic_reg): Use it.
660 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
662 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
663 Harsha Jagasia <harsha.jagasia@amd.com>
665 PR tree-optimization/37485
666 * graphite.c (gmp_cst_to_tree): Moved.
667 (iv_stack_entry_is_constant): New.
668 (iv_stack_entry_is_iv): New.
669 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
670 (loop_iv_stack_insert_constant): New.
671 (loop_iv_stack_pop): Use new datatpype.
672 (loop_iv_stack_get_iv): Same.
673 (loop_iv_stack_get_iv_from_name): Same.
674 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
675 (loop_iv_stack_patch_for_consts): New.
676 (loop_iv_stack_remove_constants): New.
677 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
678 (translate_clast): Call loop_iv_stack_patch_for_consts and
679 loop_iv_stack_remove_constants.
680 (gloog): Use new datatype. Redirect construction edge to end
681 block to avoid accidental deletion.
682 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
684 (union iv_stack_entry_data): New. Data in iv stack entry.
685 (struct iv_stack_entry): New. Datatype for iv stack entries.
687 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
689 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
690 * graphite.c (free_scop): Same.
692 (free_scattering): New.
693 (build_cloog_prog): Call free_scattering.
694 (patch_phis_for_virtual_defs): Fix memleak.
695 (graphite_trans_bb_strip_mine): Same.
698 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
699 Harsha Jagasia <harsha.jagasia@amd.com>
701 PR tree-optimization/37828
702 * graphite.c (graphite_trans_loop_block): Do not loop block
705 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
707 PR tree-optimization/37686
708 * tree-loop-linear.c (linear_transform_loops): Build a
709 loop nest vector. Pass it to lambda_compute_access_matrices.
710 * tree-data-ref.h (struct access_matrix): Store the loop nest
711 relative to which it encodes the information.
712 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
713 (am_vector_index_for_loop): Reimplemented: iterate over the
714 loop nest for finding the loop index in the access matrix.
715 (lambda_compute_access_matrices): Update declaration.
716 * lambda-code.c (build_access_matrix): Pass the loop nest and
718 (lambda_compute_access_matrices): Same.
720 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
722 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
723 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
724 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
725 already implies hard float. Also fix several insn condition
726 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
728 2008-10-15 David Edelsohn <edelsohn@gnu.org>
731 Based on patches by Laurent Vivier.
732 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
733 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
734 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
735 dollar sign to underscore.
736 (ASM_OUTPUT_EXTERNAL): Same.
737 (ASM_OUTPUT_LABELREF): New.
738 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
740 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
741 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
742 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
743 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
745 2008-10-15 Jakub Jelinek <jakub@redhat.com>
747 PR tree-optimization/36881
748 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
749 that each value doesn't need runtime relocations, for !flag_pic
750 check that each value is just a valid initializer constant.
752 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
754 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
755 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
756 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
757 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
759 (REG_CLASS_NAMES): Update accordingly.
760 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
761 rather than an unpredictable descriptive string.
762 * config/mips/mips.c (mips_register_move_cost): Remove comment.
763 (mips_register_move_cost): Check for specific COP*_REGS classes,
764 instead of ALL_COP_AND_GR_REGS.
765 (mips_ira_cover_classes): New function.
766 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
767 (TARGET_IRA_COVER_CLASSES): Define.
769 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
772 * tree.c (build_type_attribute_qual_variant): Hash on the
773 unqualified type, and don't overwrite an existing
774 (type_hash_eq): Make the TYPE_NAME of the types significant, to
775 allow distinguishing between wchar_t and its underlying type. This
776 also means that we'll retain a little more typedef information.
778 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
779 Dmitry Melnik <dm@ispras.ru>
780 Dmitry Zhurikhin <zhur@ispras.ru>
781 Alexander Monakov <amonakov@ispras.ru>
782 Maxim Kuvyrkov <maxim@codesourcery.com>
784 * target.h (struct gcc_target): Update prototypes of needs_block_p
786 * haifa-sched.c (create_check_block_twin): Update calls to the above.
787 * sel-sched.c (create_speculation_check): Likewise.
788 * doc/tm.texi: Provide documentation for new target hooks.
790 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
791 (ia64_gen_spec_insn): Removed.
792 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
793 ia64_gen_spec_check): New static functions.
794 (ia64_alloc_sched_context, ia64_init_sched_context,
795 ia64_set_sched_context, ia64_clear_sched_context,
796 ia64_free_sched_context, ia64_get_insn_spec_ds,
797 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
798 (ia64_needs_block_p): Change prototype.
799 (ia64_gen_check): Rename to ia64_gen_spec_check.
800 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
801 into declaration, add special memory dependencies handling.
802 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
803 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
804 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
805 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
806 Define new target hooks.
807 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
808 (ia64_optimization_options): Turn on selective scheduling with -O3,
809 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
810 with selective scheduling.
811 (ia64_override_options): Initialize align_loops and align_functions
812 to 32 and 64, respectively. Set global selective scheduling flags
813 according to target-dependent flags.
814 (rtx_needs_barrier): Support UNSPEC_LDS_A.
815 (group_barrier_needed): Use new mstop-bit-before-check flag.
817 (dfa_state_size): Make global.
818 (spec_check_no, max_uid): Remove.
819 (mem_ops_in_group, current_cycle): New variables.
820 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
821 Initialize new variables.
822 (is_load_p, record_memory_reference): New functions.
823 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
825 (ia64_variable_issue): Change use of current_sched_info to
826 sched_deps_info. Update comment. Note if a load or a store is issued.
827 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
828 advance if maximal number of loads or stores was issued on current
830 (scheduled_good_insn): New static helper function.
831 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
832 a group barrier is needed. Fix vertical spacing. Guard the code
833 doing state transition with last_scheduled_insn check.
834 Mark that a stop bit should be before current insn if there was a
835 cycle advance. Update current_cycle and mem_ops_in_group.
836 (ia64_h_i_d_extended): Change use of current_sched_info to
837 sched_deps_info. Reallocate stops_p by larger chunks.
838 (struct _ia64_sched_context): New structure.
839 (ia64_sched_context_t): New typedef.
840 (ia64_alloc_sched_context, ia64_init_sched_context,
841 ia64_set_sched_context, ia64_clear_sched_context,
842 ia64_free_sched_context): New static functions.
843 (gen_func_t): New typedef.
844 (get_spec_load_gen_function): New function.
845 (SPEC_GEN_EXTEND_OFFSET): Declare.
846 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
847 (get_mode_no_for_insn): Change the condition that prevents use of
848 special hardware registers so it can now handle pseudos.
849 (get_spec_unspec_code): New function.
850 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
851 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
852 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
853 during selective scheduling.
854 (ia64_speculate_insn): Use ds_get_speculation_types when
855 determining whether we need to change the pattern.
856 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
857 (ia64_spec_check_src_p): Support new speculation/check codes.
858 (struct bundle_state): New field.
859 (issue_nops_and_insn): Initialize it.
860 (insert_bundle_state): Minimize mid-bundle stop bits.
861 (important_for_bundling_p): New function.
862 (get_next_important_insn): Use important_for_bundling_p.
863 (bundling): When shifting TImode from unimportant insns, ignore
864 also group barriers. Assert that best state is found before
865 the backward bundling pass. Print number of mid-bundle stop bits.
866 Minimize mid-bundle stop bits. Check correct calculation of
867 mid-bundle stop bits.
868 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
869 (final_emit_insn_group_barriers): Emit stop bits before insns starting
871 (sel2_run): New variable.
872 (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
873 scheduling pass instead of schedule_ebbs.
875 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
876 (UNSPEC_LDS_A): New UNSPEC.
877 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
878 movti_internal, movsf_internal, movdf_internal,
879 movxf_internal): Make visible. Add speculable* attributes.
880 (output_c_nc): New mode attribute.
881 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
882 mov<mode>_nc, zero_extend<mode>di2_nc,
883 advanced_load_check_nc_<mode>): New insns.
884 (zero_extend*): Add speculable* attributes.
886 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
887 (msched-stop-bits-after-every-cycle): Likewise.
888 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
890 (msched-spec-verbose): Remove.
891 (msched-prefer-non-data-spec-insns,
892 msched-prefer-non-control-spec-insns,
893 msched-count-spec-in-critical-path,
894 msel-sched-dont-check-control-spec): Use Target Report Var
895 instead of Common Report Var.
897 * config/ia64/itanium2.md: Remove incorrect bypass.
899 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
901 2008-10-14 Jakub Jelinek <jakub@redhat.com>
904 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
907 2008-10-14 Ben Elliston <bje@au.ibm.com>
909 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
911 2008-10-13 Joseph Myers <joseph@codesourcery.com>
913 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
916 2008-10-13 Matthias Klose <doko@ubuntu.com>
918 * config/pa/linux-atomic.c: Work around missing header file
919 for hppa64-linux-gnu targets.
921 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
922 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
923 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
924 Grace Cao <grace_cao@playstation.sony.com>
926 * doc/invoke.texi (-mgen-cell-microcode): Document.
927 (-mwarn-cell-microcode): Document.
928 * cfglayout.c (locator_location): Export.
929 * rtl.h (locator_location): Define prototype.
930 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
932 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
933 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
934 (mwarn-cell-microcode): New option.
935 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
936 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
937 cell and not already set.
938 Turn off string instructions if not generating cell microcode.
939 (rs6000_final_prescan_insn): New function that warns about microcoded
941 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
942 * config/rs6000/rs6000.md
943 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
944 the instruction would have been microcoded on the Cell. Set cell_micro
945 to always on unnamed patterns for the string instructions.
946 (cell_micro): Update definition, remove load/store conditional
948 (sign_extend:DI): Define new pattern for non microcoded version.
949 (sign_extend:SI): Likewise.
950 (compare (div:P)): Set cell_micro to not.
951 (andsi3): Define as an expand.
952 (andsi3_mc): New pattern.
953 (andsi3_nomc): New pattern.
954 (andsi3_internal0_nomc): New pattern.
955 (andsi3_internal2): Rename to ...
956 (andsi3_internal2_mc): this and enable iff generating microcode.
957 (andsi3_internal3): Rename to ...
958 (andsi3_internal3_mc): this and enable iff generating microcode.
959 (andsi3_internal4): Enable iif generating microcode.
960 (andsi3_internal5): Rename to ..
961 (andsi3_internal5_mc): this and enable iff generating microcode.
962 (andsi3_internal5_nomc): New pattern.
963 (extzvdi_internal1): Enable iff generating microcode.
964 (extzvdi_internal2): Likewise.
965 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
966 (anddi3): Change to expand.
967 (anddi3_mc): Rename from anddi3.
968 (anddi3_no_mc): New pattern.
969 (anddi3_internal2): Rename to ..
970 (anddi3_internal2_mc): this and enable iff generating microcode.
971 (anddi3_internal2_nomc): New pattern.
972 (anddi3_internal3): Rename to ..
973 (anddi3_internal3_mc): this and enable iff generating microcode.
974 (anddi3_internal3_nomc): New pattern.
975 (movti_string): Set cell_micro to always if TARGET_STRING.
976 (stmsi8): Set cell_micro to always.
982 (stmsi8_power): Likewise.
983 (stmsi7_power): Likewise.
984 (stmsi6_power): Likewise.
985 (stmsi5_power): Likewise.
986 (stmsi4_power): Likewise.
987 (stmsi3_power): Likewise.
988 (movsi_update2): Enable iff generating microcode.
989 (movhi_update3): Likewise.
990 (lmw): Set cell_micro to always.
992 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
994 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
995 * config/s390/s390.c (machine_function): Remove
996 decomposed_literal_pool_addresses_ok_p.
997 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
998 the difference of two labels.
999 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
1000 (s390_pool_offset): New function.
1001 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
1002 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
1004 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
1006 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
1007 (powerpc*-*-linux-gnu*): Describe.
1008 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
1009 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1010 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1011 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1012 config/rs6000/e500crtres32gpr.asm,
1013 config/rs6000/e500crtres64gpr.asm,
1014 config/rs6000/e500crtres64gprctr.asm,
1015 config/rs6000/e500crtrest32gpr.asm,
1016 config/rs6000/e500crtrest64gpr.asm,
1017 config/rs6000/e500crtresx32gpr.asm,
1018 config/rs6000/e500crtresx64gpr.asm,
1019 config/rs6000/e500crtsav32gpr.asm,
1020 config/rs6000/e500crtsav64gpr.asm,
1021 config/rs6000/e500crtsav64gprctr.asm,
1022 config/rs6000/e500crtsavg32gpr.asm,
1023 config/rs6000/e500crtsavg64gpr.asm,
1024 config/rs6000/e500crtsavg64gprctr.asm: Use it.
1025 * config/rs6000/crtsavres.asm: Really remove.
1027 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
1030 * c-format.c (convert_format_name_to_system_name): Use
1031 TARGET_OVERRIDES_FORMAT_INIT.
1032 * config.gcc (extra_options): Add for mingw targets mingw.opt.
1033 * config/i386/mingw.opt: New.
1034 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
1035 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
1036 (ms_printf_length_specs): Removed const specifier.
1037 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1038 * doc/invoke.texi (Wno-pedantic-ms-format): New.
1040 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1042 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1043 * doc/install.texi: Bump recommended MPFR to 2.3.2.
1045 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
1048 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1049 sure that ref has valid bb.
1051 2008-10-12 Richard Henderson <rth@redhat.com>
1054 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1055 * alias.c (value_addr_p, stack_addr_p): Remove.
1056 (nonoverlapping_memrefs_p): Remove IRA special case.
1057 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1058 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1059 * reload1.c (alter_reg): Use it.
1061 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
1063 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1064 of registers instead of eax, ebx, ecx and edx. Use for loop
1065 and check register for non-zero value before the call
1066 to decode_caches_intel.
1068 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1070 PR rtl-optimization/37448
1071 * df.h: (df_ref_class): New enum.
1072 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1073 (struct df_ref): Replaced with union df_ref_d.
1074 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1075 New members of df_ref_d union.
1076 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1077 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1078 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1079 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1080 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
1081 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1082 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
1083 (df_scan_bb_info, df_bb_regno_first_def_find,
1084 df_bb_regno_last_def_find, df_find_def, df_find_use,
1085 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1086 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1087 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1088 df_get_artificial_defs, df_get_artificial_uses, union_defs)
1089 Replaced struct df_ref * with df_ref.
1090 * df-scan.c (df_collection_rec, df_null_ref_rec,
1091 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1092 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1093 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1094 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1095 df_reorganize_refs_by_reg_by_reg,
1096 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1097 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1098 df_sort_and_compress_refs, df_install_ref, df_install_refs,
1099 df_ref_record, df_get_conditional_uses, df_get_call_refs,
1100 df_bb_refs_record, df_exit_block_uses_collect,
1101 df_record_exit_block_uses, df_reg_chain_mark,
1102 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1103 df_ref * with df_ref.
1104 (df_ref_record, df_uses_record, df_ref_create_structure): Added
1105 df_ref_class parameter.
1106 (df_scan_problem_data): Added new pools for different types of refs.
1107 (df_scan_free_internal, df_scan_alloc, df_free_ref,
1108 df_ref_create_structure): Processed new ref pools.
1109 (df_scan_start_dump): Added counts of refs and insns.
1110 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1111 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1112 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1113 code to pass df_ref_class down to ref creation functions.
1114 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1115 df_reg_chain_mark): Use macros to hide references to df_refs.
1116 (df_ref_chain_change_bb): Removed.
1117 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1118 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1119 Enhanced to understand df_ref union structure.
1120 * fwprop.c (local_ref_killed_between_p, use_killed_between,
1121 all_uses_available_at, update_df, try_fwprop_subst,
1122 forward_propagate_subreg, forward_propagate_and_simplify,
1123 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1124 df_ref * with df_ref.
1125 (use_killed_between, all_uses_available_at): Use macros to hide
1126 references to df_refs.
1127 * regstat.c (regstat_bb_compute_ri,
1128 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1130 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1131 see_handle_relevant_refs, see_analyze_one_def,
1132 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1133 struct df_ref * with df_ref.
1134 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1135 global_conflicts): Replaced struct df_ref * with df_ref.
1136 * ddg.c (create_ddg_dep_from_intra_loop_link,
1137 add_cross_iteration_register_deps, build_inter_loop_deps):
1138 Replaced struct df_ref * with df_ref.
1139 (create_ddg_dep_from_intra_loop_link,
1140 add_cross_iteration_register_deps): Use macros to hide references
1142 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1143 df_ref * with df_ref.
1144 * df-core.c (df_bb_regno_first_def_find,
1145 df_bb_regno_last_def_find, df_find_def, df_find_use,
1146 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1147 debug_df_ref): Replaced struct df_ref * with df_ref.
1148 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
1149 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1151 * web.c (union_defs, entry_register, replace_ref, web_main):
1152 Replaced struct df_ref * with df_ref.
1153 (union_defs, replace_ref): Use macros to hide references to df_refs.
1154 * global.c (compute_regs_asm_clobbered, build_insn_chain):
1155 Replaced struct df_ref * with df_ref.
1156 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
1157 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1158 Replaced struct df_ref * with df_ref.
1159 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1160 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1162 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
1163 * df-byte-scan.c (df_compute_accessed_bytes_extract,
1164 df_compute_accessed_bytes_strict_low_part,
1165 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1166 Replaced struct df_ref * with df_ref.
1167 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
1168 * init-regs.c (initialize_uninitialized_regs): Replaced struct
1169 df_ref * with df_ref.
1170 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1171 check_dependency, check_dependencies, record_uses): Replaced
1172 struct df_ref * with df_ref.
1173 (invariant_for_use, check_dependency): Use macros to hide
1174 references to df_refs.
1175 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1176 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1177 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1178 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1179 references to df_refs.
1180 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1182 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1183 * df-problems.c (df_rd_bb_local_compute_process_def,
1184 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1185 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1186 df_chain_remove_problem, df_chain_create_bb_process_use,
1187 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1188 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1189 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1190 df_byte_lr_simulate_artificial_refs_at_top,
1191 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1192 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1193 df_simulate_uses, df_simulate_artificial_refs_at_end,
1194 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1196 (df_chain_dump): Use macros to hide references to df_refs.
1197 * config/mips/mips.c (r10k_simplify_address): Replaced struct
1198 df_ref * with df_ref.
1199 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1200 mark_artificial_uses, mark_reg_dependencies,
1201 byte_dce_process_block): Replaced struct df_ref * with df_ref.
1203 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
1205 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1207 (array_ref_element_size): Likewise.
1208 (array_ref_low_bound): Likewise.
1209 (array_ref_up_bound): Likewise.
1210 * expr.c (contains_packed_reference): Likewise.
1211 (array_ref_element_size): Likewise.
1212 (array_ref_low_bound): Likewise.
1213 (array_ref_up_bound): Likewise.
1214 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1215 with ARRAY_RANGE_REF.
1216 (idx_find_step): Likewise.
1217 (idx_record_use): Likewise.
1218 (strip_offset_1): Likewise.
1219 (idx_remove_ssa_names): Likewise.
1221 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
1222 Andi Kleen <ak@linux.intel.com>
1224 * config/i386/cpuid.h (__cpuid_count): New defines.
1225 * config/i386/driver-i386.c (struct cache_desc): New structure.
1226 (describe_cache): Use struct cache_desc to pass cache descriptions.
1227 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1228 (detect_caches_amd): Use struct cache_desc to describe caches.
1229 (decode_caches_intel): Use struct cache_desc to pass cache
1230 descriptions. Update descriptions to match latest (rev -032,
1231 December 2007) CPUID documentation. Do not check valid bit here.
1232 Check for Xeon MP value 0x49 problems.
1233 (detect_caches_cpuid2): New function, split from detect_caches_intel.
1234 Check valid bit before calling decode_caches_intel. Detect number
1235 of times to repeat CPUID instruction.
1236 (detect_caches_cpuid4): New function.
1237 (detect_caches_intel): Depending on max_level, call
1238 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
1239 only when other methods fail to provide valid L2 cache description.
1241 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1244 * pa.md (call, call_value): Generate an rtx for register r4 and pass
1245 it to PIC call patterns.
1246 (call_symref_pic): Revise pattern to expose PIC register save. Remove
1247 code generation and attributes from pattern. Change peephole2 to split
1248 for noreturn case. Revise split pattern for non noreturn case.
1249 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1250 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1251 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
1254 2008-10-11 David Edelsohn <edelsohn@gnu.org>
1256 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1257 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1259 (divdf3): Reformat long line.
1261 2008-10-11 Michael J. Eager <eager@eagercon.com>
1263 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1265 (rs6000_handle_option): Process -mfpu options.
1266 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1267 (enum fpu_type_t): New.
1268 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
1269 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1271 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1272 (floatdidf2): Add TARGET_SINGLE_FPU condition.
1273 * config/rs6000/rs6000.opt (-mfpu): New.
1274 (-mxilinx-fpu): New.
1275 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1276 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1277 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1278 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1279 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1281 2008-10-11 Jakub Jelinek <jakub@redhat.com>
1284 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1285 LO_SUM on Darwin if mode has just one unit.
1287 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
1290 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1291 has been optimized out.
1293 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
1295 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1296 instead of PIC_DIRECT_ADDR_P.
1297 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1298 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1299 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1300 (PIC_OFFSET_P): Rename to...
1301 (PCREL_SYMOFF_P): ...this.
1302 (PIC_DIRECT_ADDR_P): Delete.
1303 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1305 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1306 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1307 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1308 * config/sh/sh.c (print_operand): Remove CONST handling.
1309 (unspec_caller_rtx_p): Rewrite to use split_const and check
1310 the operands of UNSPEC bases.
1311 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1312 with (unspec [A B] UNSPEC_SYMOFF).
1313 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1314 UNSPEC_PCREL_SYMOFF.
1315 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1316 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1317 (UNSPEC_EXTRACT_U16): Likewise.
1318 (UNSPEC_SYMOFF): Likewise.
1319 (UNSPEC_PCREL_SYMOFF): Likewise.
1320 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1322 (movsi_const_16bit): Likewise.
1323 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1324 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1325 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1326 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1327 with (unspec [A B] UNSPEC_SYMOFF).
1328 (symPLT_label2reg): Replace (minus A (minus B pc)) with
1329 (unspec [A B] PCREL_UNSPEC_SYMOFF).
1330 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1331 (Csu): Likewise UNSPEC_EXTRACT_U16.
1332 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1333 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1335 2008-10-10 Stepan Kasal <skasal@redhat.com>
1337 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1338 for loop strip mining and loop blocking.
1340 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
1342 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1343 vary types depending on debug info.
1345 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
1347 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1348 before ensuring it's already computed.
1350 2008-10-09 Jakub Jelinek <jakub@redhat.com>
1352 * rtl.h (locator_eq): New decl.
1353 * cfglayout.c (locator_scope): New function.
1354 (insn_scope): Use it.
1355 (locator_eq): New function.
1356 (fixup_reorder_chain): Search for last insn in src bb
1357 that has locator set or first insn in dest bb. Use
1358 locator_eq instead of == to compare locators.
1359 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1360 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1361 == to compare locators.
1363 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1365 * gimple-low.c (lower_function_body, lower_gimple_return,
1366 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1367 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1368 goto_block on edges if goto_locus is known.
1371 * tree.h (get_object_alignment): Declare.
1372 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1373 get_object_alignment if needed.
1374 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
1376 (get_object_alignment): ... here. New function. Try harder to
1377 determine alignment from get_inner_reference returned offset.
1379 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1381 * graphite.c (gloog): Don't call find_unreachable_blocks
1382 before delte_unreachable_blocks.
1384 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1385 goto_locus of true_edge into RTL locator.
1387 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
1389 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1390 (*jcc_btdi_mask_rex64): Ditto.
1392 (*jcc_btsi_mask): Ditto.
1393 (*jcc_btsi_1): Ditto.
1394 (*jcc_btsi_mask_1): Ditto.
1396 2008-10-08 Paul Brook <paul@codesourcery.com>
1398 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1399 compatible profiler (__gnu_mcount_nc).
1400 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1402 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1404 * config/i386/i386.c (initial_ix86_tune_features): Add
1405 X86_TUNE_USE_VECTOR_FP_CONVERTS.
1406 * config/i386/i386.h (ix86_tune_indices): Likewise.
1407 (TARGET_USE_VECTOR_FP_CONVERTS): New.
1409 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1410 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1411 for FP to FP splitters.
1413 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1415 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1418 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1422 PR rtl-optimization/37341
1423 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1424 to ORIG_BB, pass through ORIG_BB recursively.
1425 (cse_condition_code_reg): Adjust caller.
1427 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
1429 * sdbout.c (sdbout_one_type): Treat the value type
1430 CONST_DECL for enumerals.
1432 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1434 * config/i386/i386.md: Remove trailing white spaces.
1436 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1438 PR rtl-optimization/37448
1439 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1440 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1442 (struct output_info) [count]: Renamed total_created and made
1444 (struct output_info) [size]: Renamed total_allocated and made
1446 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1447 Properly keep track of desc->size.
1448 (print_statistics, dump_alloc_pool_statistics): Enhance the
1449 printing of statistics to print the number of elements and to use
1452 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1455 * opts.h (CL_SAVE): Move up to flags range.
1456 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1457 CL_COMMON): Renumber.
1458 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1459 * opts.c (common_handle_option): Revert last change.
1461 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1463 * config/i386/i386-protos.h (ix86_schedule): New.
1465 * config/i386/i386.c (ix86_schedule): New.
1466 (override_options): Add schedule to processor_alias_table. Set
1467 ix86_schedule from the schedule field in processor_alias_table.
1468 (ix86_function_specific_save): Save ix86_schedule.
1469 (ix86_function_specific_restore): Restore ix86_schedule.
1471 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1472 ix86_tune. Add none and remove i386, i486, pentium4, nocona
1475 * config/i386/i386.opt: Add schedule.
1477 * config/i386/ppro.md: Remove generic32.
1479 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
1482 * expr.c (count_type_elements): Handle ERROR_MARK.
1484 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1489 * basic-block.h (struct edge_def): Add goto_block field.
1490 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1491 one insn with locus corresponding to edge's goto_locus if !optimize.
1492 * profile.c (branch_prob): Copy edge's goto_block.
1493 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1495 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1496 locator in between the merged basic blocks if !optimize and needed.
1497 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1498 goto_locus into RTL locator. For unconditional jump use that
1499 locator for the jump insn.
1500 (expand_gimple_cond): Convert goto_block and goto_locus into
1501 RTL locator for all remaining edges. For unconditional jump
1502 use that locator for the jump insn.
1503 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1504 there is more than one edge or insn locator along the forwarding
1505 edges and !optimize. If there is just one, set e->goto_locus.
1506 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1508 (move_block_to_fn): Adjust edge's goto_block.
1510 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1513 * expmed.c (expand_mult): Properly check DImode constant in
1516 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1519 * dwarf2out.c (common_block_die_table): New variable.
1520 (common_block_die_table_hash, common_block_die_table_eq): New
1522 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1523 COMMON block in the current scope rather than globally. Optimize
1524 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1525 DW_OP_addr SYMBOL_REF+off.
1527 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1529 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1530 Return true for non-addressable GIMPLE operands.
1532 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1535 * config/i386/i386.c (initial_ix86_tune_features): Remove
1536 X86_TUNE_USE_BIT_TEST.
1537 * config/i386/i386.h (ix86_tune_indices): Likewise.
1538 (TARGET_USE_BIT_TEST): Removed.
1540 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1542 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1544 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
1546 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1547 (mul<mode>3_mul3): ... into this new template.
1549 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1551 * gimplify.c (gimplify_arg): Add location argument. Use it.
1552 (gimplify_call_expr): Pass location to gimplify_arg.
1553 (gimplify_modify_expr_to_memcpy): Same.
1554 (gimplify_modify_expr_to_memset): Same.
1556 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1558 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1559 Update calls to build_unary_op and build_indirect_ref for location
1562 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1565 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1566 * c-typeck.c (array_to_pointer_conversion): Pass location to
1568 (function_to_pointer_conversion): Use error_at and warning_at.
1569 (build_indirect_ref): Same.
1570 (build_array_ref): Pass location to build_binary_op.
1571 (parser_build_unary_op): Do not set location after calling
1573 (build_unary_op): Add location argument. Use it throughout. Set
1574 EXPR_LOCATION before returning new tree.
1575 (build_modify_expr): Same.
1576 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
1578 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1579 build_indirect_ref, build_modify_expr.
1580 (c_finish_omp_for): Same. Use error_at instead of error.
1581 * c-common.c (c_common_truthvalue_conversion): Pass location to
1583 (warn_for_div_by_zero): Add location argument.
1584 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1585 build_unary_op, warn_for_div_by_zero.
1586 * c-parser.c (c_parser_typeof_specifier): Use
1587 protected_set_expr_location.
1588 (c_parser_statement_after_labels): Same.
1589 (c_parser_condition): Same.
1590 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1591 (c_parser_conditional_expression): Use protected_set_expr_location.
1592 (c_parser_unary_expression): Pass location to build_indirect_ref.
1593 (c_parser_postfix_expression_after_primary): Pass location to
1594 build_indirect_ref, build_unary_op.
1595 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1597 2008-10-06 Joshua Kinard <kumba@gentoo.org>
1599 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1600 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1601 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1603 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1604 (mips_issue_rate): Handle PROCESSOR_R10000.
1605 * config/mips/mips.md (cpu): Add r10000.
1607 * config/mips/10000.md: New file.
1609 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1611 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1612 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1613 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1615 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1617 * config/darwin-protos.h (machopic_function_base_name): Delete.
1618 (machopic_function_base_sym): Likewise.
1619 (machopic_gen_offset): Declare.
1620 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1621 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1622 * config/darwin.c (machopic_function_base_name): Delete.
1623 (machopic_function_base_sym): Likewise.
1624 (gen_pic_offset): Rename to...
1625 (machopic_gen_offset): ...this and remove the pic_base argument.
1626 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1627 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1628 crtl->uses_pic_offset_table.
1629 (machopic_indirect_data_reference): Use new machopic_gen_offset
1631 (machopic_legitimize_pic_address): Likewise.
1632 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1634 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1635 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1636 * config/i386/i386.c (output_set_got): Likewise.
1637 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1639 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1640 (legitimate_address_p): Likewise.
1641 (output_pic_addr_const): Likewise.
1642 (output_addr_const_extra): Likewise.
1643 (ix86_delegitimize_address): Expect darwin_local_data_pic to
1644 match an UNSPEC rather than a MINUS.
1645 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1646 (builtin_setjmp_receiver): Use machopic_gen_offset.
1647 * config/i386/predicates.md (pic_symbolic_operand): Handle
1648 UNSPEC_MACHOPIC_OFFSET.
1650 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1651 Use machopic_gen_offset and machopic_operand_p.
1652 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1653 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1654 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1655 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1656 Set crtl->uses_pic_offset_table.
1658 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1660 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1662 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1663 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1664 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1665 (constant_pool_expr_p): Use split_const and check the base.
1666 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1668 (legitimate_constant_pool_address_p): Check toc_relative_p
1669 instead of constant_pool_expr_p.
1670 (print_operand_address): Always use output_addr_const for
1671 constant pool addresses.
1672 (rs6000_output_addr_const_extra): New function.
1673 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1675 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
1679 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1680 (mark_ref_live, mark_ref_dead): Use them.
1681 (def_conflicts_with_inputs_p): Remove.
1682 (mark_early_clobbers): New function.
1683 (process_bb_node_lives): Call preprocess_constraints and
1684 mark_early_clobbers.
1686 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1688 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1690 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1691 lib with -mthread switch.
1693 2008-10-05 Dodji Seketeli <dodji@redhat.com>
1696 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1697 function in two, making it call a new and reusable
1698 dwarf2out_imported_module_or_decl() that takes the containing
1699 BLOCK of the declaration in argument.
1700 (dwarf2out_imported_module_or_decl_real): New function.
1701 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1702 IMPORTED_DECL in account.
1703 * tree.def: Added IMPORTED_DECL node type.
1704 * tree.h: Added accessors for IMPORTED_DECL nodes.
1705 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1707 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1709 * doc/gimple.texi: Fix some typos, wrap some long lines,
1710 fix some broken wraps with continuations.
1711 * tree-ssa-reassoc.c: Fix comment typos.
1713 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1716 * pa.c (legitimize_pic_address): Force function labels to memory in
1719 2008-10-04 Anton Blanchard <anton@samba.org>
1721 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1722 (rs6000_split_atomic_op): Same.
1723 (rs6000_split_compare_and_swap): Same.
1724 (rs6000_split_compare_and_swapqhi): Same.
1726 2008-10-04 Richard Guenther <rguenther@suse.de>
1728 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1729 instead of pointer equality.
1730 (vn_nary_op_eq): Likewise.
1732 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1734 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
1736 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1737 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1739 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
1741 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1742 Revert previous change.
1744 2008-10-03 Tom Tromey <tromey@redhat.com>
1746 * stringpool.c (ggc_alloc_string): Terminate string.
1748 2008-10-03 Jakub Jelinek <jakub@redhat.com>
1750 * gimplify.c (gimplify_function_tree): For -finstrument-functions
1751 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1752 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1755 * gimplify.c (declare_vars): Use gimple_bind_block instead of
1758 2008-10-03 Pascal Obry <obry@adacore.com>
1760 * gcov.c (create_file_names): Properly handle UNIX and DOS
1761 directory separators.
1762 (make_gcov_file_name): Likewise + convert the ':' DOS drive
1763 separator to '~' to ensure clean filenames on Windows.
1765 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1767 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1768 Add a null terminator to the stripped name.
1770 2008-10-02 David Edelsohn <edelsohn@gnu.org>
1772 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1773 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1774 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1775 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
1776 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1777 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1778 TARGET_SINGLE_FLOAT.
1780 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
1782 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1784 2008-10-02 Richard Guenther <rguenther@suse.de>
1787 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1788 and VECTOR_TYPE recurse with useless_type_conversion_p which
1789 properly handles void pointer conversion.
1791 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1794 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1795 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
1797 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1799 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1800 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1801 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1802 they translate to non builtins.
1803 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1804 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
1805 __builtin_vec_promote, __builtin_vec_extract, and
1806 __builtin_vec_insert.
1807 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1808 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1809 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1810 * config/rs6000/altivec.h (vec_extract): Define
1811 (vec_insert): Define.
1812 (vec_splats): Define.
1813 (vec_promote): Define.
1815 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1816 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
1817 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1819 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1821 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1822 prototype. Add new parameter, blk.
1823 Use BLKmode for the MEM if blk is true.
1824 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1825 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1826 ALTIVEC_BUILTIN_STVRXL.
1827 Update usage of altivec_expand_lv_builtin.
1828 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1829 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1830 (altivec_init_builtins): If compiling for the Cell, also define the
1832 * config/rs6000/rs6000.h (rs6000_builtins): Define
1833 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1834 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1835 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1836 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1837 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1838 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1839 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1840 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1841 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1842 UNSPEC_STVRX, and UNSPEC_STVRXL.
1843 (altivec_lvlx): New pattern.
1844 (altivec_lvlxl): New pattern.
1845 (altivec_lvrx): New pattern.
1846 (altivec_lvrxl): New pattern.
1847 (altivec_stvlx): New pattern.
1848 (altivec_stvlxl): New pattern.
1849 (altivec_stvrx): New pattern.
1850 (altivec_stvrxl): New pattern.
1851 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1852 (vec_lvlxl): Likewise.
1853 (vec_lvrx): Define if PPU is defined.
1854 (vec_lvrxl): Likewise.
1855 (vec_stvlx): Define if PPU is defined.
1856 (vec_stvlxl): Likewise.
1857 (vec_stvrx): Define if PPU is defined.
1858 (vec_stvrxl): Likewise.
1860 2008-10-01 Geert Bosch <bosch@adacore.com>
1862 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1864 2008-10-01 Richard Guenther <rguenther@suse.de>
1866 PR tree-optimization/37617
1867 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1868 do not add to the NEW_SETS.
1870 2008-10-01 Richard Guenther <rguenther@suse.de>
1873 * tree-vrp.c (execute_vrp): If we optimized away the default
1874 case make sure to promote the label that got in place of it
1875 to a default case label.
1877 2008-10-01 Richard Henderson <rth@redhat.com>
1880 * tree-complex.c (set_component_ssa_name): Don't optimize
1881 is_gimple_min_invariant values with ssa_names in abnormal phis.
1883 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
1885 PR tree-optimization/37662
1886 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1887 commutative binary operation if they are in the wrong order and
1888 fold_build2 produces non-GIMPLE.
1890 2008-09-30 Jakub Jelinek <jakub@redhat.com>
1892 PR tree-optimization/37662
1893 PR tree-optimization/37663
1894 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1895 get_value_range with non-SSA_NAME. Don't assert operands have been
1896 folded, instead just bail out.
1898 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1900 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1902 2008-09-30 Richard Guenther <rguenther@suse.de>
1905 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1906 build restrict-qualified pointers.
1907 (vectorizable_store): Move alias check later.
1908 (vectorizable_load): Likewise.
1910 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
1912 * c-common.c (empty_if_body_warning): Remove.
1913 * c-common.h (empty_if_body_warning): Remove.
1914 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1915 here the -Wempty-body warning for `if' and `else' statements.
1916 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1918 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
1920 * config/i386/i386.opt: Add msse2avx.
1922 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
1923 * config/i386/linux64.h (ASM_SPEC): Likewise.
1925 * doc/invoke.texi: Document -msse2avx.
1927 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1929 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1931 2008-09-29 Joseph Myers <joseph@codesourcery.com>
1933 * ifcvt.c (noce_emit_store_flag): If using condition from original
1934 jump, reverse it if if_info->cond was reversed.
1936 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1938 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1939 non-constant memory if it cannot be forced to constant memory.
1940 Overhaul surrounding code and factor out common condition.
1942 2008-09-29 Jeff Law <law@redhat.com>
1944 * reload1.c (alter_reg): Add missing curly braces.
1946 2008-09-29 Michael J. Eager <eager@eagercon.com>
1948 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1950 * config/rs6000/rs6000.c (rs6000_override_options): Move
1951 rs6000_init_hard_regno_mode_ok after all options changed.
1952 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1953 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1954 -msimple-fpu flags. Add warning messages if single FP not configured.
1955 (rs6000_file_start): Output gnu_attribute for single-float.
1956 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1957 (rs6000_legitimize_address): Likewise.
1958 (rs6000_legitimize_reload_address): Likewise.
1959 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1960 TARGET_SINGLE_FLOAT.
1961 (function_arg_advance): Likewise (partial conversion).
1962 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1963 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1964 TARGET_SINGLE_FLOAT.
1965 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1966 (rs6000_emit_prologue): Likewise.
1967 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1968 TARGET_SINGLE_FLOAT.
1969 (rs6000_libcall_value): Likewise.
1970 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1971 (TARGET_DOUBLE_FLOAT): New default to 1
1972 (TARGET_SIMPLE_FPU): New default to 0
1973 (TARGET_SINGLE_FPU): New default to 0
1974 (TARGET_SINGLE_FLOAT_MODE): New.
1975 (TARGET_DOUBLE_FLOAT_MODE): New.
1976 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1977 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1979 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1980 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1981 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1982 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1983 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1984 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1985 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1986 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1987 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1988 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1989 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1990 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1991 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1992 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1993 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1994 cmptf_internal1, *cmptf_internal2): Condition on
1995 TARGET_DOUBLE_FLOAT.
1996 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1997 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1998 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1999 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2000 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2001 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2002 TARGET_SINGLE_FLOAT.
2003 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2004 * config/rs6000/rs6000.opt (-msingle-float): New.
2005 (-mdouble-float): New.
2006 (-msimple-fpu): New.
2007 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2008 -msingle-float, -mdouble-float, -msimple-fpu options.
2009 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2010 _SOFT_DOUBLE for -msingle-float.
2011 * config.gcc: New config for target=powerpc-xilinx-eabi.
2013 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
2015 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
2016 have exit and entry.
2017 (new_scop): Take entry and exit edge to define new SCoP.
2018 (sd_region_p): New structure used during SCoP detection.
2019 (move_scops): Delete.
2020 (move_sd_regions): New.
2021 (scopdet_info): Change the definition from edges back to basic_blocks.
2022 (scopdet_edge_info): Work on basic_blocks and rename to
2023 scopdet_basic_block_info.
2024 (split_difficult_bb): At the moment removed. We should later
2025 add it at another place.
2026 (build_scops_1): Work on basic_blocks.
2027 (bb_in_sd_region): New.
2028 (find_single_entry_edge): New.
2029 (find_single_exit_edge): New.
2030 (create_single_entry_edge): New.
2031 (sd_region_without_exit): New.
2032 (create_single_exit_edge): New.
2033 (unmark_exit_edges): New.
2034 (mark_exit_edges): New.
2035 (create_sese_edges): New.
2036 (build_graphite_scops): New.
2037 (build_scops): Make SCoPs SESE.
2038 (limit_scops): Use the new functions.
2040 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
2042 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2044 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2047 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2048 address to a register before taking the lower part.
2050 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
2052 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2055 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2056 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
2059 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2060 the newly created variable.
2061 Create a VECTOR_CST of all 1s for vector types.
2063 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2066 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
2068 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2070 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2071 order to convert between modes.
2072 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2074 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
2076 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2079 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
2082 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2086 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
2088 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2089 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2090 them to yield false with MIPS16.
2092 2008-09-26 Jakub Jelinek <jakub@redhat.com>
2095 * dwarf2out.c (tls_mem_loc_descriptor): New function.
2096 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
2097 mem_loc_descriptor failed. Accept UNSPEC.
2098 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
2099 fail if one of the loc_descriptor calls for pieces failed.
2100 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2101 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
2102 if loc_descriptor_from_tree_1 on offset failed.
2105 * opts.c (common_handle_option): Don't call print_specific_help with
2106 CL_SAVE as first argument.
2108 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
2109 Steve Ellcey <sje@cup.hp.com>
2111 * configure: Regenerate for new libtool.
2112 * aclocal.m4: Ditto.
2114 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
2116 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2117 alias set on MEM when saving stack pointer.
2118 * config/rs6000/rs6000.md (allocate_stack): Likewise
2120 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
2122 PR tree-optimization/37574
2123 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2124 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2125 instead of vector_type for constants. Take computation out of loop.
2126 (vect_get_vec_def_for_operand): Use only vectype for constant case,
2127 and use only vector_type for invariant case.
2128 (get_initial_def_for_reduction): Use vectype instead of vector_type.
2130 2008-09-25 Jakub Jelinek <jakub@redhat.com>
2133 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2134 the decl is a VAR_DECL or FUNCTION_DECL.
2136 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2139 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2140 (mark_ref_live, mark_ref_dead): Use them.
2141 (def_conflicts_with_inputs_p): Remove.
2142 (mark_early_clobbers): New function.
2143 (process_bb_node_lives): Call preprocess_constraints and
2144 mark_early_clobbers.
2146 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2148 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2151 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2152 (ira_compress_allocno_live_ranges): New prototype.
2154 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2155 (coalesced_allocnos_living_at_program_points): New.
2156 (coalesced_allocnos_live_at_points_p,
2157 set_coalesced_allocnos_live_points): New functions.
2158 (coalesce_spill_slots): Rewrite.
2160 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2161 ira_compress_allocno_live_ranges): New functions.
2163 * ira-build.c (ira_flattening): Call
2164 ira_compress_allocno_live_ranges.
2167 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
2169 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2172 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
2174 * combine.c (make_compound_operation): Handle the 'E' format.
2175 (count_rtxs): Likewise.
2176 (update_table_tick): Likewise.
2177 (get_last_value_validate): Likewise.
2179 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
2181 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2183 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2185 * matrix-reorg.c (transform_allocation_sites): Initializers
2186 added to avoid the warning.
2188 2008-09-25 Martin Jambor <mjambor@suse.cz>
2190 * cgraph.c (free_nodes): New variable.
2191 (NEXT_FREE_NODE): New macro.
2192 (cgraph_create_node): Reuse nodes from the free list. Do not
2193 update uid if doing so.
2194 (cgraph_remove_node): Add the node to the free list.
2196 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
2198 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2200 2008-09-24 Richard Henderson <rth@redhat.com>
2202 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2203 * unwind-dw2.c (execute_stack_op): Handle it.
2205 2008-09-24 David Edelsohn <edelsohn@gnu.org>
2208 2008-09-24 Michael J. Eager <eager@eagercon.com>
2210 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
2212 * c-common.c (fname_decl): New location argument.
2213 * c-common.h (fname_decl): Same.
2214 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2216 (c_parser_typeof_specifier): Same.
2217 (c_parser_parms_list_declarator): Same.
2218 (c_parser_asm_string_literal): Same.
2219 (c_parser_compound_statement_nostart): Same.
2220 (c_parser_label): Same.
2221 (c_parser_do_statement): Same.
2222 (c_parser_asm_statement): Same.
2223 (c_parser_unary_expression): Same.
2224 (c_parser_sizeof_expression): Same.
2225 (c_parser_postfix_expression): Same.
2226 (c_parser_pragma): Same.
2227 (c_parser_omp_clause_collapse): Same.
2228 (c_parser_omp_clause_num_threads): Same.
2229 (c_parser_omp_clause_schedule): Same.
2230 (c_parser_omp_all_clauses): Same.
2231 (c_parser_omp_sections_scope): Same.
2232 (c_parser_omp_for_loop): Same. Pass condition's location to
2233 c_objc_common_truthvalue_conversion.
2234 (c_parser_enum_specifier): Remove comment.
2236 2008-09-24 Michael J. Eager <eager@eagercon.com>
2238 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2240 * config/rs6000/rs6000.c (rs6000_override_options): Move
2241 rs6000_init_hard_regno_mode_ok after all options changed.
2242 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2243 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2244 -msimple-fpu flags. Add warning messages if single FP not configured.
2245 (rs6000_file_start): Output gnu_attribute for single-float.
2246 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2247 (rs6000_legitimize_address): Likewise.
2248 (rs6000_legitimize_reload_address): Likewise.
2249 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2250 TARGET_SINGLE_FLOAT.
2251 (function_arg_advance): Likewise.
2252 (function_arg): Likewise.
2253 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2254 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2255 TARGET_SINGLE_FLOAT.
2256 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2257 (rs6000_emit_prologue): Likewise.
2258 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2259 TARGET_SINGLE_FLOAT.
2260 (rs6000_libcall_value): Likewise.
2261 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2262 (TARGET_DOUBLE_FLOAT): New default to 1
2263 (TARGET_SIMPLE_FPU): New default to 0
2264 (TARGET_SINGLE_FPU): New default to 0
2265 (TARGET_SINGLE_FLOAT_MODE): New.
2266 (TARGET_DOUBLE_FLOAT_MODE): New.
2267 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2268 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2270 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2271 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2272 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2273 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2274 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2275 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2276 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2277 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2278 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2279 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2280 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2281 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2282 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2283 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2284 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2285 cmptf_internal1, *cmptf_internal2): Condition on
2286 TARGET_DOUBLE_FLOAT.
2287 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2288 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2289 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2290 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2291 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2292 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2293 TARGET_SINGLE_FLOAT.
2294 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2295 * config/rs6000/rs6000.opt (-msingle-float): New.
2296 (-mdouble-float): New.
2297 (-msimple-fpu): New.
2298 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2299 -msingle-float, -mdouble-float, -msimple-fpu options.
2300 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2301 _SOFT_DOUBLE for -msingle-float.
2302 * config.gcc: New config for target=powerpc-xilinx-eabi.
2304 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2306 * config/sparc/constraints.md: New file.
2307 * config/sparc/sparc.md: Include it.
2308 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2309 (sparc_extra_constraint_check): Delete.
2310 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2311 (memory_ok_for_ldd): New predicate.
2312 (sparc_extra_constraint_check): Delete.
2313 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2314 (CONST_OK_FOR_LETTER_P): Likewise.
2315 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2316 (EXTRA_CONSTRAINT): Likewise.
2318 2008-08-23 Steve Ellcey <sje@cup.hp.com>
2320 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2322 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2324 * alias.c (find_base_value): Use FIND_BASE_TERM.
2325 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2327 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2329 * config/i386/i386.c: Include cselib.h.
2330 (ix86_pic_register_p): New function.
2331 (ix86_delegitimize_address): Use it to check for the PIC register.
2333 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2335 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2336 * config/i386/i386.c (ix86_find_base_term): Don't check for
2337 SYMBOL_REF and LABEL_REF.
2339 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2341 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2342 constant PLUS in a CONST.
2344 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
2346 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
2347 check for sibcall support for w64.
2349 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2351 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2353 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
2355 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2356 parser_build_binary_op.
2357 * c-decl.c (build_enumerator): Pass location to build_binary_op.
2358 * c-typeck.c (build_array_ref): Same.
2359 (parser_build_unary_op): New location argument.
2360 (pointer_diff): Pass location to build_binary_op,
2361 c_objc_common_truthvalue_conversion.
2362 (build_modify_expr): Same.
2363 (build_unary_op): New location argument.
2364 (build_binary_op): New location argument.
2365 (c_objc_common_truthvalue_conversion): Pass location to
2366 c_*common_truthvalue_conversion.
2367 * c-convert.c (convert): Same.
2368 * c-common.c (binary_op_error): New location argument.
2369 (pointer_int_sum): Pass location to build_binary_op.
2370 (c_common_truthvalue_conversion): New location argument.
2371 (warn_for_sign_compare): Same.
2372 * c-common.h: Add location argument to c_common_truthvalue_conversion,
2373 binary_op_error, build_binary_op, warn_for_sign_compare.
2374 * c-parser.c (c_parser_condition): Pass location to
2375 c_*common_truthvalue_conversion.
2376 (c_parser_conditional_expression): Save condition's location and pass
2378 (c_parser_binary_expression): Same, but for the binary operator's
2380 (c_parser_omp_for_loop): Pass location to
2381 c_objc_common_truthvalue_conversion.
2383 2008-09-23 Martin Jambor <mjambor@suse.cz>
2385 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2386 (cgraph_node_remove_callees): New temporary f. Hold the next item
2388 (cgraph_node_remove_callers): Likewise.
2390 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2391 (ipa_node_removal_hook): Likewise.
2393 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2394 gimple_call_copy_skip_args and moved to the gimple_call section.
2395 * gimple.c (gimple_copy_call_skip_args): Renamed to
2396 gimple_call_copy_skip_args. Changed al users.
2398 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
2400 * ira-color.c (start_allocno_priorities): Rename to
2401 setup_allocno_priorities. Use costs and
2402 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2403 range lengths. Get rid off doubles.
2404 (ira_fast_allocations): Call start_allocno_priorities.
2406 2008-09-22 David Daney <ddaney@avtrex.com>
2409 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2410 register if TARGET_LONG_CALLS.
2412 2008-09-22 Richard Guenther <rguenther@suse.de>
2414 PR tree-optimization/37145
2415 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2416 value-numbering union accesses with their offset and size only.
2417 (visit_reference_op_load): Fix simplification of inserted conversions.
2418 * tree-ssa-pre.c (find_or_generate_expression): Do not
2419 recursively generate expressions if running FRE.
2421 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
2423 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2424 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2427 2008-09-22 Richard Guenther <rguenther@suse.de>
2429 PR tree-optimization/37145
2430 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2431 (phi_translate_1): Constant fold references.
2433 2008-09-22 Ira Rosen <irar@il.ibm.com>
2435 PR tree-optimization/37482
2436 * tree-vectorizer.h (struct _slp_instance): Add new field.
2437 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2438 (get_earlier_stmt): New function.
2439 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2441 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2442 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2443 asserts that GSI points to the scalar statement being vectorized.
2444 Set new statement location according to GSI.
2445 (vect_schedule_slp_instance): Use GSI of
2446 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2448 2008-09-21 Jan Hubicka <jh@suse.cz>
2450 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2451 (ipcp_insert_stage): Update dead_nodes bitmap.
2453 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
2456 * config/i386/t-cygming (SHLIB_LC): Remove.
2457 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2458 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2460 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
2464 * final.c (mark_symbol_ref_as_used): New helper function.
2465 (output_operand): Instead of just looking inside MEMs for
2466 SYMBOL_REFs, use new helper function and for_each_rtx.
2467 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2468 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
2469 Make head comment more general.
2470 * config/darwin.c (machopic_output_indirection): Handle weak
2471 references here, like in assemble_external.
2473 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
2475 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2476 (sparc_emit_float_lib_cmp): Change return type.
2477 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2478 (gen_compare_operator): New function.
2479 (sparc_emit_float_lib_cmp): Return the new operator to be used in
2480 the comparison sequence. Minor tweaks.
2481 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2482 that the final operator and the result of sparc_emit_float_lib_cmp
2483 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2484 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2485 buneq, bunge, bunle, bltgt): Assert that the final operator and the
2486 result of sparc_emit_float_lib_cmp match for software TFmode.
2487 (movqicc, movhicc, movsicc, movdicc): Merge into...
2488 (mov<I:mode>cc): ...this.
2489 (movsfcc, movdfcc, movtfcc): Merge into...
2490 (mov<F:mode>cc): ...this.
2491 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2493 (mov<I:mode>_cc_v9): ...this.
2494 (movdi_cc_sp64_trunc): Delete.
2495 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2496 movdi_cc_reg_sp64): Merge into...
2497 (mov<I:mode>_cc_reg_sp64): ...this.
2498 (movsf_cc_sp64): Rename into...
2499 (movsf_cc_v9): ...this.
2500 (movdf_cc_sp64): Rename into...
2501 (movdf_cc_v9): ...this.
2502 (movtf_cc_hq_sp64): Rename into...
2503 (movtf_cc_hq_v9): ...this.
2504 (movtf_cc_sp64): Rename into...
2505 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
2507 2008-09-21 Diego Novillo <dnovillo@google.com>
2509 * doc/gccint.texi: Include generic.texi and gimple.texi.
2511 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2512 (GIMPLE): Move to gimple.texi.
2513 (Annotations): Remove references to to stmt_ann_t and
2515 (SSA Operands): Rename from 'Statement Operands'.
2516 * doc/generic.texi: New.
2517 * doc/gimple.texi: New.
2518 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2519 * Makefile.in (TEXI_GCCINT_FILES):
2520 * gimple.c (gimple_copy_call_skip_args): Rename from
2521 giple_copy_call_skip_args. Update all users.
2522 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2524 2008-09-21 Ira Rosen <irar@il.ibm.com>
2526 PR tree-optimization/37539
2527 * tree-vect-transform.c (vect_transform_strided_load): Save vector
2528 statement in related statement field only for the first load of the
2529 group of loads with the same data reference.
2531 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
2533 * config/mips/mips.h (TUNE_OCTEON): New macro.
2534 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2535 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2536 * config/mips/octeon.md: New file.
2537 * config/mips/mips.md: Include octeon.md. Restore
2538 semi-alphabetical order of include files.
2540 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
2543 * config/i386/i386.md (*jcc_fused_1): Removed.
2544 (*jcc_fused_2): Likewise.
2545 (*jcc_fused_3): Likewise.
2546 (*jcc_fused_4): Likewise.
2548 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
2550 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2551 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2552 * target.h (gcc_target): Add ira_cover_classes.
2553 * ira.c: Remove IRA_COVER_CLASSES guards.
2554 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2555 instead of IRA_COVER_CLASSES.
2556 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2557 (setup_class_translate): Likewise.
2558 (setup_reg_class_intersect_union): Likewise.
2559 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2560 test of targetm.ira_cover_classes.
2561 * opts.c (decode_options): Use targetm.ira_cover_classes instead
2562 of IRA_COVER_CLASSES.
2563 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2564 (TARGET_INITIALIZER): Include it.
2565 * targhooks.h (default_ira_cover_classes): Declare.
2566 * targhooks.c (default_ira_cover_classes): New function.
2568 2008-09-19 Bob Wilson <bob.wilson@acm.org>
2570 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2572 2008-09-19 Ian Lance Taylor <iant@google.com>
2574 * varasm.c (narrowing_initializer_constant_valid_p): Return
2575 NULL_TREE if ENDTYPE is not an integer.
2577 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2580 * tree-ssa.c (execute_update_addresses_taken): Also update
2581 DECL_GIMPLE_REG_P for vector and complex types.
2583 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
2584 Jan Hubicka <jh@suse.cz>
2587 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2588 empty before freeing them.
2589 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2591 2008-09-18 Bob Wilson <bob.wilson@acm.org>
2593 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2594 * config/xtensa/predicates.md (tls_symbol_operand): New.
2595 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2596 (TARGET_CANNOT_FORCE_MEM): Define.
2597 (xtensa_tls_symbol_p): New.
2598 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2599 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2600 (xtensa_tls_module_base): New.
2601 (xtensa_call_tls_desc): New.
2602 (xtensa_legitimize_tls_address): New.
2603 (xtensa_legitimize_address): Handle TLS symbols.
2604 (xtensa_tls_referenced_p_1): New.
2605 (xtensa_tls_referenced_p): New.
2606 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2608 (XTENSA_BUILTIN_THREAD_POINTER): New.
2609 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2610 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2611 builtin. Add declarations for __builtin_thread_pointer and
2612 __builtin_set_thread_pointer.
2613 (xtensa_fold_builtin): Recognize new builtins.
2614 (xtensa_expand_builtin): Expand new builtins.
2615 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2616 (TARGET_THREADPTR): Define.
2617 (HAVE_AS_TLS): Define default value.
2618 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2619 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2620 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2621 (UNSPECV_SET_TP): New.
2622 (sym_TPOFF, sym_DTPOFF): New.
2623 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2624 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2625 * configure: Regenerated.
2627 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
2630 * config/ia64/ia64.c (ia64_optimization_options): Move
2631 checking and setting flag_schedule_insns_after_reload and
2632 ia64_flag_schedule_insns2 back to ...
2633 (ia64_override_options): Here.
2635 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2638 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2639 zero extend count after the correction to it is done.
2640 (doloop_optimize): Update call to doloop_modify, don't zero extend
2643 2008-09-18 Martin Jambor <mjambor@suse.cz>
2645 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2647 * ipa-prop.c: Correct comments.
2648 * ipa-prop.h: Likewise.
2650 2008-09-18 Jan Hubicka <jh@suse.cz>
2653 * ipa-reference.c (ipa_reference_local_vars_info_d,
2654 ipa_reference_global_vars_info_d,
2655 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2656 ipa_reference_vars_info_t): Move here from ipa-reference.h
2657 (node_duplication_hook_holder, node_removal_hook_holder): New.
2658 (get_reference_vars_info_from_cgraph): Rename to ...
2659 (get_reference_vars_info): ... this one, use cgraph uids.
2660 (get_local_reference_vars_info, get_global_reference_vars_info):
2661 Use cgraph instead of decl.
2662 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2664 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2665 ipa_reference_get_written_global,
2666 ipa_reference_get_not_written_global): Use cgraph argument.
2667 (check_call): Simplify avail check.
2668 (scan_stmt_for_static_refs): Update.
2669 (propagate_bits): Update.
2670 (merge_callee_local_info): Remove.
2671 (init_function_info): Use cgraph nodes.
2672 (clean_function_local_data): Break out from ...
2673 (clean_function): ... here.
2674 (copy_local_bitmap, copy_global_bitmap): New functions.
2675 (duplicate_node_data, remove_node_data): New functions.
2676 (generate_summary): Register hooks; use visibility instead of
2678 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2679 * ipa-reference.h (ipa_reference_local_vars_info_d,
2680 ipa_reference_global_vars_info_d,
2681 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2682 ipa_reference_vars_info_t): Move to ipa-reference.c
2683 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2685 (ipa_reference_get_read_global, ipa_reference_get_written_global,
2686 ipa_reference_get_not_read_global,
2687 ipa_reference_get_not_written_global): Update prototype.
2688 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2689 (init_state): Remove.
2690 (node_duplication_hook_holder, node_removal_hook_holder): New.
2691 (get_function_state, set_function_state): Use VECtor.
2692 (analyze_function): Check body availability.
2693 (add_new_function): Likewise.
2694 (duplicate_node_data, remove_node_data): New.
2695 (generate_summary): Register hooks; do not care about clones.
2696 (propafate): Do not care about clones; recursive functions are
2698 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2699 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2700 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2702 * tree-flow.h (function_ann_d): Remove reference_vars_info.
2703 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2704 Update call of ipa-reference accesors.
2706 2008-09-18 Simon Baldwin <simonb@google.com>
2708 * c-opts.c (c_common_handle_option): Add handling for
2709 -Wbuiltin-macro-redefined command line option.
2710 * c.opt: Added builtin-macro-redefined option.
2711 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2714 2008-09-18 Richard Guenther <rguenther@suse.de>
2716 PR tree-optimization/37258
2717 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2718 and signedness for integral types.
2719 (vn_phi_eq): Require compatible types.
2721 2008-09-18 Jakub Jelinek <jakub@redhat.com>
2724 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2725 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2727 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2728 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2729 ggc_free other TREE_LIST nodes from that chain.
2730 * function.c (instantiate_decls): Instantiate also DECL_RTL
2731 of vars in cfun->local_decls, free that list afterwards.
2733 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
2735 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2736 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2738 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2740 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2741 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2743 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2745 PR tree-optimization/37102
2746 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2747 from a node. Check to see if another PHI is dead.
2748 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
2749 remove real PHIs which have no uses.
2750 (rewrite_out_of_ssa): Call eliminate_useless_phis.
2752 2008-09-18 Richard Guenther <rguenther@suse.de>
2755 * tree-cfg.c (remove_useless_stmts_1): Remove
2756 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2758 2008-09-18 Nick Clifton <nickc@redhat.com>
2760 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2761 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2762 to frv_secondary_reload_class.
2763 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2764 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2765 (frv_secondary_reload_class): Omit unused parameter.
2766 (frv_secondary_reload): New function. Handle the case when
2767 secondary_reload_class() is called before the reload_(in|out)
2768 _optabs have been initialised.
2769 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2771 * config/frv/frv.md: Define an exclusion set between fr550_m0
2774 2008-09-18 Richard Guenther <rguenther@suse.de>
2776 PR tree-optimization/37456
2777 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2778 want to insert after ends a BB insert on the single fallthru
2781 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
2783 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2784 Mention -march=z9-109, z9-ec and z10.
2786 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
2788 PR rtl-optimization/37544
2789 * regrename.c (maybe_mode_change): Exit early when copy_mode
2790 is narrower than orig_mode and narrower than new_mode.
2792 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
2795 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2797 * sched-rgn.c (ref_counts): Remove.
2798 (insn_referenced): New static variable.
2799 (INSN_REF_COUNT): Remove.
2800 (sched_run_compute_dependencies): Use insn_referenced instead of
2802 (add_branch_dependences): Likewise. Delete dead assignment.
2804 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
2806 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2807 consumer is an asm. Add comment why this is important.
2808 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2809 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
2811 2008-09-17 Joseph Myers <joseph@codesourcery.com>
2813 * expr.c (emit_group_store): Do not shift before moving via a
2816 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
2818 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2819 from aggregate to non-aggregate type if the bit pattern is not fully
2820 preserved afterwards.
2822 2008-09-17 Richard Guenther <rguenther@suse.de>
2824 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2825 (verify_gimple_assign): ... this. Split into ...
2826 (verify_gimple_assign_unary): ... this,
2827 (verify_gimple_assign_binary): ... that,
2828 (verify_gimple_assign_single): ... and this.
2829 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2830 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2831 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2832 (verify_types_in_gimple_reference): Be forgiving with
2834 (verify_gimple_phi): Deal with virtual operands.
2836 * tree.def (PREDICT_EXPR): Change to tcc_expression.
2838 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2840 * tree.c (get_callee_fndecl): Don't call the language hook.
2841 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2842 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2843 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2845 2008-09-17 Jakub Jelinek <jakub@redhat.com>
2847 * tree.c (protected_set_expr_location): Don't unnecessarily
2848 check for error_mark_node.
2850 2008-09-17 Art Haas <ahaas@impactweather.com>
2852 * ipa-reference.c (analyze_function): Declare step only if
2853 ENABLE_CHECKING is defined.
2855 2008-09-17 Jan Hubicka <jh@suse.cz>
2858 * tree.h (DECL_INLINE): remove.
2859 (DECL_DECLARED_INLINE_P): Update docs.
2860 (DECL_NO_INLINE_WARNING_P): new.
2861 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2862 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2864 2008-09-17 Jakub Jelinek <jakub@redhat.com>
2865 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2868 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2871 2008-09-17 Jan Hubicka <jh@suse.cz>
2873 * ipa-reference.c (ipa_obstack): Remove.
2874 (local_info_obstack, global_info_obstack): New.
2875 (add_static_var): We now handle variables only.
2876 (mark_address_taken, mark_load, mark_store): New functions based on ...
2877 (check_operand): ... remove.
2878 (get_asm_stmt_operands): Rename to ...
2879 (check_asm_memory_clobber): ... this. Look only for memory clobber.
2880 (scan_stmt_for_static_refs): Rewrite.
2881 (scan_op_for_static_refs): Rename to ...
2882 (scan_initializer_for_static_refs): do not look for VAR_DECL
2883 initializers; stop recursion on types and decls.
2884 (ipa_init): Use proper obstacks.
2885 (analyze_variable): Use scan_initializer_for_static_refs.
2886 (init_function_info): Use local obstack.
2887 (analyze_function): Simplify.
2888 (add_new_function): We don't need visited_nodes obstack.
2889 (generate_summary): Use proper obstacks; cleanup after propagation.
2891 2008-09-17 Richard Guenther <rguenther@suse.de>
2894 PR tree-optimization/37491
2895 * alias.c (get_alias_set): Use the canonical type.
2896 * tree-vect-transform.c (vectorizable_store): Use the type of
2897 the lhs for the vector type. Adjust checking.
2898 (vectorizable_load): Adjust checking.
2900 2008-09-16 Jakub Jelinek <jakub@redhat.com>
2901 Adam Nemet <anemet@caviumnetworks.com>
2903 PR rtl-optimization/37483
2904 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2905 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2906 Rearrange code to better match the original comment. Check
2907 t_unconditional first. Improve comment.
2909 2008-09-16 Jakub Jelinek <jakub@redhat.com>
2912 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2913 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2916 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2917 GIMPLE_TRY if cleanup sequence is empty.
2919 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
2922 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2923 eliminate IV if the cost are the same.
2925 2008-09-16 Richard Guenther <rguenther@suse.de>
2928 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2931 2008-09-16 Richard Guenther <rguenther@suse.de>
2933 PR tree-optimization/37508
2934 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2936 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
2938 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2940 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2942 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2943 use gen_floatdidf2 directly.
2944 (floatunssidf2): Likewise.
2945 (floatsidf_ppc64_mfpgpr): Remove.
2946 (floatsidf_ppc64): Remove.
2947 (floatunssidf_ppc64): Remove.
2949 2008-09-15 Jakub Jelinek <jakub@redhat.com>
2951 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2952 rather than update_cost_queue.
2954 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2955 in every call starting with the second one, instead of only when
2956 alias_bitmap_obstack.elements != NULL.
2958 * tree-predcom.c (filter_suitable_components): Free all refs in
2959 act->refs vector before calling release_component.
2960 (add_ref_to_chain): Free ref if not adding it to chain->refs.
2962 * tree-data-ref.c (free_subscripts): Free all subscript objects.
2964 * tree-loop-linear.c (linear_transform_loops): Initialize
2965 lambda_obstack only after calling perfect_loop_nest_depth.
2966 Goto free_and_continue instead of just continue for later failures.
2969 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2972 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2974 2008-09-14 Andreas Schwab <schwab@suse.de>
2976 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2978 2008-09-14 Jan Hubicka <jh@suse.cz>
2980 * invoke.texi (-fconserve-stack): Document.
2981 * opts.c (decode_options): Handle conserve_stack.
2982 * common.opt (fconvserve_stack): New.
2984 2008-09-14 David Edelsohn <edelsohn@gnu.org>
2986 * config.host: Add x-aix to host_xmake_file.
2987 * config/rs6000/t-aix52: Do not override LDFLAGS.
2988 * config/rs6000/x-aix: New file.
2990 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
2996 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2997 is not recognized as a valid register usage. Allow REG_X to be used
2999 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
3000 forces a reload when using a base register.
3002 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
3004 * config/i386/cygming-crtend.c (register_frame_ctor): If
3005 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
3006 directly with atexit.
3007 (deregister_frame_ctor): Rename to ...
3008 (deregister_frame_dtor): Use to call __gcc_deregister_frame
3009 if !DEFAULT_USE_CXA_ATEXIT.
3011 2008-09-13 Jan Hubicka <jh@suse.cz>
3013 * cgraph.c: Include value-prof.h
3014 * Makefile.in (cgraph.o): Add value-prof.h dependency.
3016 2008-09-13 Jan Hubicka <jh@suse.cz>
3019 * tree-profile.c (add_abnormal_goto_call_edges): New function.
3020 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3021 tree_gen_one_value_profiler, tree_gen_average_profiler,
3022 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
3024 2008-09-13 Jan Hubicka <jh@suse.cz>
3026 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
3027 too many bytes on misalligned blocks.
3029 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3031 * doc/cfg.texi: Fix some typos.
3032 * doc/extend.texi: Likewise.
3033 * doc/install.texi: Likewise.
3034 * doc/invoke.texi: Likewise.
3035 * doc/rtl.texi: Likewise.
3036 * doc/tree-ssa.texi: Likewise.
3038 2008-09-13 Richard Guenther <rguenther@suse.de>
3041 * tree-nested.c (finalize_nesting_tree_1): Generate valid
3042 gimple stores for memory rhs.
3044 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
3046 PR rtl-optimization/37489
3047 * cse.c (fold_rtx): Don't return const_true_rtx for float
3048 compare if FLOAT_STORE_FLAG_VALUE is undefined.
3050 2008-09-13 Jan Hubicka <jh@suse.cz>
3052 PR tree-optimization/37392
3053 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
3055 2008-09-13 Martin Jambor <mjambor@suse.cz>
3056 Jan Hubicka <jh@suse.cz>
3058 * cgraph.c (free_edges): New variable.
3059 (NEXT_FREE_EDGE): New macro.
3060 (cgraph_free_edge): New function.
3061 (cgraph_remove_edge): Call cgraph_remove_edge_1.
3062 (cgraph_node_remove_callees): Likewise.
3063 (cgraph_node_remove_callers): Likewise.
3064 (cgraph_create_edge): Reuse edges from the free list. Do not
3065 update uid if doing so.
3066 (cgraph_remove_*_hook): Add free call.
3068 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
3070 * ira-color.c (conflict_allocno_vec): Delete.
3071 (update_cost_queue_elem): New structure.
3072 (update_cost_queue): New variable.
3073 (update_cost_queue_tail): Likewise.
3074 (update_cost_queue_elems): Likewise.
3075 (allocno_update_cost_check): Delete.
3076 (initiate_cost_update): Allocate update_cost_queue_elems
3077 instead of allocno_update_cost_check.
3078 (finish_cost_update): Update the free()s accordingly.
3079 (start_update_cost): New function.
3080 (queue_update_cost): Likewise.
3081 (get_next_update_cost): Likewise.
3082 (update_copy_costs_1): Inline into...
3083 (update_copy_costs): ...here. Use a queue instead of recursive calls.
3084 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
3085 once we've established they are equal. Don't allocate update
3086 costs if there is nothing to add to them.
3087 (update_conflict_hard_regno_costs): Remove ALLOCNO and
3088 DIVISOR arguments. Use a queue instead of recursive calls;
3089 process all the allocnos in the initial queue, rather than
3091 (assign_hard_reg): Use queue_update_cost instead of
3092 conflict_allocno_vec. Queue coalesced allocnos instead
3093 of calling update_conflict_hard_regno_costs for each one.
3094 Just call update_conflict_hard_regno_costs once for the
3096 (ira_color): Remove conflict_allocno_vec handling.
3098 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3100 PR tree-optimization/37484
3101 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
3102 (save_var_name): Same.
3103 (initialize_cloog_names): Same.
3104 (initialize_cloog_names): Same.
3106 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3108 * tree-scalar-evolution.c (set_instantiated_value): Set
3111 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
3115 * ira-build.c (common_loop_tree_node_dominator): Remove.
3116 (copy_live_ranges_to_removed_store_destinations): New function.
3117 (regno_top_level_allocno_map): Move to top level from ...
3118 (ira_flattening): ... here. Use
3119 copy_live_ranges_to_removed_store_destinations.
3121 * ira-emit.c (generate_edge_moves): Fix a comment.
3123 2008-09-12 Anatoly Sokolov <aesok@post.ru>
3126 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
3127 scratch register after 'set' pattern.
3129 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3131 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
3132 information passed to mark_reg_pointer.
3133 * explow.c (force_reg): Likewise.
3135 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3137 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3138 when building for the celledp architecture.
3140 2008-09-12 Richard Guenther <rguenther@suse.de>
3142 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3144 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
3146 PR rtl-optimization/37424
3147 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3148 the regnos instead of the addresses.
3150 2008-09-11 Janis Johnson <janis187@us.ibm.com>
3152 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3154 2008-09-11 Richard Guenther <rguenther@suse.de>
3156 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3157 entering the weaker equivalence recording.
3159 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3161 2008-09-11 Jeff Law <law@redhat.com>
3163 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3164 by assign_stack_local on the IRA path for stack slot sharing
3165 as well as the non-IRA path.
3167 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
3169 * config/i386/i386.h: Fix whitespace issues.
3171 2008-09-11 Martin Jambor <mjambor@suse.cz>
3173 * ipa-prop.h (struct ipa_param_flags): Removed.
3174 (struct ipa_param_descriptor): New structure.
3175 (struct ipa_node_params): ipcp_lattices, param_decls and
3176 param_flags moved to ipa_param_description.
3177 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3178 descriptors. Renamed all users.
3179 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3180 changed to access descriptors. Renamed all users.
3181 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3182 to access descriptors. Renamed all users.
3183 * ipa-cp.c (ipcp_init_cloned_node): Call
3184 ipa_initialize_node_params instead of ipa_count_formal_params and
3185 ipa_create_param_decls_array.
3186 (ipcp_analyze_node): Likewise.
3187 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3188 descriptors. Renamed all users.
3189 (ipcp_initialize_node_lattices): Remove allocation.
3190 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3191 ipa_initialize_node_params instead of ipa_count_formal_params and
3192 ipa_create_param_decls_array.
3193 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3194 ipa_populate_param_decls, made static, added parameter info,
3195 renamed mt to node, removed allocation, changed to use
3197 (ipa_count_formal_params): Made static, added parameter info,
3199 (ipa_initialize_node_params): New function.
3200 (ipa_check_stmt_modifications): Changed to use descriptors.
3201 (ipa_detect_param_modifications): Removed allocation, changed to
3203 (ipa_note_param_call): Changed to use descriptors.
3204 (ipa_analyze_params_uses): Removed allocation.
3205 (ipa_free_node_params_substructures): Changed to use descriptors.
3206 (ipa_edge_duplication_hook): Use the unused attribute.
3207 (ipa_node_duplication_hook): Use the unused attribute, changed to
3208 use descriptors, changed to duplicate descriptors.
3210 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3211 changed all callers. Call ipa_propagate_indirect_call_infos if doing
3212 indirect inlining. Made static.
3213 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
3214 functions called only once.
3215 (cgraph_decide_recursive_inlining): Don't call
3216 ipa_propagate_indirect_call_infos, pass new_edges to
3217 cgraph_mark_inline_edge instead.
3218 (cgraph_decide_inlining_of_small_functions): Don't call
3219 ipa_propagate_indirect_call_infos, pass new_edges to
3220 cgraph_mark_inline_edge instead.
3221 (cgraph_decide_inlining): Don't call
3222 ipa_propagate_indirect_call_infos.
3223 * ipa-prop.c: Check that vectors are allocated.
3225 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
3226 iff a new cgraph edges have been created.
3227 (cgraph_decide_inlining): New variable redo_always_inline.
3228 Flattening and always_inlining loop until callgraph stabilizes.
3229 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
3230 true iff new cgraph edges have been created.
3231 (propagate_info_to_inlined_callees): Likewise.
3232 (ipa_propagate_indirect_call_infos): Likewise.
3234 2008-09-11 Richard Guenther <rguenther@suse.de>
3236 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
3237 (set_prologue_iterations): Likewise.
3238 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3240 (vect_update_init_of_dr): Likewise.
3241 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
3243 * fold-const.c (fold_unary): Do not generate calculations
3246 2008-09-11 Paolo Bonzini <bonzini@gnu.org>
3248 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
3249 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
3250 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
3252 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
3254 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
3255 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
3256 before finalizing the changes.
3257 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
3259 (simplify_truth_ops_using_ranges): New.
3260 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
3261 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
3262 whether a simplification was made.
3263 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
3264 use a switch statement and also call simplify_truth_ops_using_ranges.
3266 2008-09-11 Jan Hubicka <jh@suse.cz>
3268 * ggc-common.c (loc_array): Make static.
3269 * dce.c (rest_of_handle_ud_dce): Free worklist.
3271 2008-09-11 Jan Hubicka <jh@suse.cz>
3273 * cgraph.c (cgraph_release_function_body): Plug memory leak on
3274 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
3275 function so we are sure we do not dangle it forever.
3276 * function.c (outer_function_chain, find_function_data): Remove.
3277 (function_context_stack): New.
3278 (push_function_context, pop_function_context): Update.
3279 * function.h (struct function): Remove pointer outer.
3280 (outer_function_chain, find_function_data): Remove.
3281 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
3283 2008-09-11 Jan Hubicka <jh@suse.cz>
3286 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
3288 2008-09-11 Jan Hubicka <jh@suse.cz>
3290 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
3292 2008-09-11 Jan Hubicka <jh@suse.cz>
3294 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
3295 (free_var_map_entry): New function.
3296 (redirect_edge_var_map_destroy): Use it.
3298 2008-09-11 Jan Hubicka <jh@suse.cz>
3301 * tree-inline.c (add_lexical_block): Replace with ...
3302 (prepend_lexical_block): ... prepend at begginig.
3303 (remap_blocks): Use it and reverse later.
3304 (expand_call_inline): Use prepend_lexical_block.
3306 2008-09-11 Jan Hubicka <jh@suse.cz>
3308 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
3310 2008-09-11 Jan Hubicka <jh@suse.cz>
3312 * function.c (free_after_compilation): Call insn_locators_free.
3313 * cfglayout.c (insn_locators_free): New function.
3314 * rtl.h (insn_locators_free): Declare.
3316 2008-09-11 Jan Hubicka <jh@suse.cz>
3318 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
3320 (cond_move_process_if_block): Update call.
3322 2008-09-11 Jan Hubicka <jh@suse.cz>
3324 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
3325 * vec.c: Include hashtab.h
3326 (vec_descriptor, ptr_hash_entry): New structures.
3327 (vec_desc_hash, vec_ptr_map): New static variables.
3328 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
3329 register_overhead, free_overhead, vec_heap_free): New functions.
3330 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
3331 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
3332 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
3335 2008-09-11 Ira Rosen <irar@il.ibm.com>
3337 PR tree-optimization/37474
3338 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
3339 length of load permutation.
3341 2008-09-11 Andreas Schwab <schwab@suse.de>
3343 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
3345 2008-09-11 Jakub Jelinek <jakub@redhat.com>
3348 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
3349 * dse.c (find_shift_sequence): Use extract_low_bits instead of
3350 simplify_gen_subreg.
3352 2008-09-11 Ira Rosen <irar@il.ibm.com>
3354 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
3357 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3360 * gimplify.c (gimplify_body): Call default_rtl_profile.
3363 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
3364 instead of tok->val.node if not expanding to something else. Handle
3365 intervening CPP_PADDING tokens.
3366 (altivec_categorize_keyword): Remove unneeded comparisons.
3368 2008-09-10 Richard Guenther <rguenther@suse.de>
3370 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
3372 2008-09-10 Richard Guenther <rguenther@suse.de>
3375 * tree-inline.c (insert_init_stmt): Make sure to not
3376 insert invalid gimple stores.
3378 2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
3380 PR tree-optimization/37388
3381 * toplev.c (process_options): Fail and warn when graphite
3382 flags are used, but the compiler has not been configured
3383 with graphite libraries.
3384 * graphite.c (graphite_transform_loops): Remove printfs
3385 to dump_file for the case when graphite is not available.
3387 2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
3390 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3391 the even element into register.
3392 (ix86_expand_vector_init_general): Don't use
3393 ix86_expand_vector_init_interleave on V16QImode and V8HImode
3394 if we can't move from GPR to SSE register directly.
3396 2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
3398 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3399 not lose track of the number of NOPs needed. Number of NOPs needed
3400 for sync vs. loads workaround was switched; corrected. Run second
3401 pass for all workarounds. No NOPs needed after call insns. Change
3402 second pass to use find_next_insn_start and find_load helpers in order
3403 to properly detect parallel insns.
3404 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3406 2008-09-10 Jan Hubicka <jh@suse.cz>
3408 * value-prof.c (gimple_ic): Fix tuplification bug.
3409 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3412 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3414 PR tree-optimization/37353
3415 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3416 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3417 calls instead of cond_dead_built_in_calls.
3418 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3419 initalize the vector only before adding first entry. Use VEC_safe_push
3420 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
3421 shrink_wrap_conditional_dead_built_in_calls call.
3423 2008-09-10 Ira Rosen <irar@il.ibm.com>
3425 PR tree-optimization/37385
3426 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3427 argument, and use it as a vector type if not NULL.
3428 (vectorizable_store): Call vect_create_data_ref_ptr with the typ