1 2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
4 * tree-scalar-evolution.c (instantiate_scev_1): Return
5 chrec_dont_know for VL_EXP_CLASS_P.
7 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
9 * reg-stack.c (reg_to_stack): Add missing braces in memset
12 2008-11-06 Andrew Stubbs <ams@codesourcery.com>
14 * config/arm/bpabi.h (PROFILE_HOOK): New undef.
15 (NO_PROFILE_COUNTERS): New define.
17 2008-11-06 David Edelsohn <edelsohn@gnu.org>
20 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
22 2008-11-06 Kazu Hirata <kazu@codesourcery.com>
25 * config/sparc/constraints.md (D): New.
26 * config/sparc/predicates.md (const_double_or_vector_operand): New.
27 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
29 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
30 Use the 'D' constraint in addition to 'F' in some alternatives.
31 (DF splitter): Generalize for V64mode.
32 * doc/md.texi (SPARC): Document the 'D' constraint.
34 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
36 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
38 2008-11-06 Ben Elliston <bje@au.ibm.com>
40 * gcc.c: Remove ancient comment about a bug in Sun cc.
42 2008-11-05 Janis Johnson <janis187@us.ibm.com>
44 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
46 2008-11-06 Ben Elliston <bje@au.ibm.com>
48 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
50 2008-11-06 Ben Elliston <bje@au.ibm.com>
52 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
55 2008-11-05 Hans-Peter Nilsson <hp@axis.com>
58 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
61 2008-11-05 Martin Jambor <mjambor@suse.cz>
64 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
65 pointer arithmetics into array_ref if the array is accessed
66 through an indirect_ref.
68 2008-11-05 Richard Guenther <rguenther@suse.de>
71 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
72 qualified pointer conversion before stripping qualifiers.
73 * gimplify.c (create_tmp_from_val): Use correctly qualified type.
74 * tree-flow.h (may_propagate_address_into_dereference): Declare.
75 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
78 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
79 properly canonicalize binary ops.
80 (forward_propagate_addr_expr_1): Use
81 may_propagate_address_into_dereference.
83 2008-11-05 Uros Bizjak <ubizjak@gmail.com>
86 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
87 Initialize uninitialized input registers with a NaN.
89 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
93 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
95 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
99 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
100 exits and conditions.
101 * testsuite/gcc.dg/graphite/pr37943.c: New.
103 2008-11-04 Jakub Jelinek <jakub@redhat.com>
104 Andrew Pinski <andrew_pinski@playstation.sony.com>
107 * c-common.c (warn_for_sign_compare): For complex result_type
108 use component's type.
110 2008-11-04 Jakub Jelinek <jakuB@redhat.com>
112 * print-tree.c (print_node): Use code instead of TREE_CODE (node).
114 * print-tree.c (print_node): Don't print DECL_INITIAL
118 * c-common.c (parse_optimize_options): Save and restore
119 flag_strict_aliasing around decode_options call.
121 2008-11-04 Uros Bizjak <ubizjak@gmail.com>
123 * config/i386/driver-i386.c (enum vendor_signatures): New enum.
124 (host_detect_local_cpu): Use it instead of casted strings to
125 compare vendor signatures.
127 2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
130 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
131 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
133 2008-11-03 Catherine Moore <clm@codesourcery.com>
135 * config/mips.c (mips_conditional_register_usage): Handle the
136 DSP control register.
137 * doc/extend.texi: Document the DSP control register.
139 2008-11-03 Steve Ellcey <sje@cup.hp.com>
140 Jakub Jelinek <jakub@redhat.com>
142 * omp-low.c (expand_omp_for_generic): If iter_type has different
143 precision than type and type is a pointer type, cast n1 and n2
144 first to an integer type with the same precision as pointers
145 and only afterwards to iter_type.
147 2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
149 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
150 (UNSPEC_GOTSYM_OFF): New unspec.
151 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
152 (pic_add_dot_plus_eight): Likewise.
153 (tls_load_dot_plus_eight): Likewise. Update peephole2.
154 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
155 UNSPEC_PIC_BASE operands.
156 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
157 (arm_output_addr_const_extra): Handle it.
159 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
161 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
162 integer class to full integer class if the offset is not word-aligned.
164 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
167 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
169 (doloop_optimize): Update call to doloop_modify.
171 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
173 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
175 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
178 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
179 gcc_cv_as_cfi_directive.
180 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
181 merging read-only and read-write sections or assembler emits
182 read-write .eh_frame sections.
183 * configure: Regenerate.
185 2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
188 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
190 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
192 (rs6000_emit_prologue): Invert logic.
193 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
194 (reg:P 11) instead of match_operand.
195 (*save_fpregs_<mode>): Likewise.
196 (*restore_gpregs_<mode>): Likewise.
197 (*return_and_restore_gpregs_<mode>): Likewise.
198 (*return_and_restore_fpregs_<mode>): Likewise.
199 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
200 (reg:P 11) insted of match_operand.
201 (*restore_gpregs_spe): Likewise.
202 (*return_and_restore_gpregs_spe): Likewise.
204 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
206 PR tree-optimization/37684
207 * gcc.dg/graphite/pr37684.c: New.
208 * graphite.c (exclude_component_ref): New.
209 (is_simple_operand): Call exclude_component_ref.
211 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
213 PR tree-optimization/36908
214 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
215 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
216 (number_of_rw_in_partition): New.
217 (partition_contains_all_rw): New.
218 (ldist_gen): Do not distribute when one of the partitions
219 contains all the memory operations.
221 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
223 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
224 EDGE_IRREDUCIBLE_LOOP.
226 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
228 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
229 where we have one entry point in the loop which isn't the head.
231 2008-11-03 Richard Guenther <rguenther@suse.de>
234 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
236 2008-11-03 Jakub Jelinek <jakub@redhat.com>
239 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
240 for ipa and simple ipa passes.
242 2008-11-02 Richard Guenther <rguenther@suse.de>
244 PR tree-optimization/37542
245 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
246 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
247 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
248 (vn_nary_op_insert_stmt): Likewise.
249 (visit_use): Likewise.
251 2008-11-02 Anatoly Sokolov <aesok@post.ru>
253 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
255 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
256 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
257 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
258 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
259 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
260 peephole2's): Replace unspec with rotate.
261 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
263 2008-11-02 Richard Guenther <rguenther@suse.de>
265 PR tree-optimization/37991
266 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
267 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
268 (set_ssa_val_to): Print if the value changed.
269 (simplify_binary_expression): Strip useless conversions.
271 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
274 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
277 2008-11-01 Richard Guenther <rguenther@suse.de>
280 * builtins.c (fold_builtin_strspn): Return a size_t.
281 (fold_builtin_strcspn): Likewise.
283 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
285 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
286 attribute for struct return convention.
288 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
290 * config/rs6000/crtsavres.asm: Really, really delete.
292 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
294 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
296 (rs6000_emit_prologue): Invert logic.
297 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
298 (reg:P 11) instead of match_operand.
299 (*save_fpregs_<mode>): Likewise.
300 (*restore_gpregs_<mode>): Likewise.
301 (*return_and_restore_gpregs_<mode>): Likewise.
302 (*return_and_restore_fpregs_<mode>): Likewise.
303 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
304 (reg:P 11) insted of match_operand.
305 (*restore_gpregs_spe): Likewise.
306 (*return_and_restore_gpregs_spe): Likewise.
308 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
310 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
311 list of word switches that take args.
313 2008-10-30 Jakub Jelinek <jakub@redhat.com>
315 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
316 (s390_output_pool_entry): Call it through for_each_rtx.
319 * expr.c (store_constructor): For vectors, if target is a MEM, use
320 target's MEM_ALIAS_SET instead of elttype alias set.
322 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
325 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
328 2008-10-29 David Edelsohn <edelsohn@gnu.org>
331 * config/rs6000/predicates.md (word_offset_memref_operand):
332 Restructure code and look inside auto-inc/dec addresses.
334 2008-10-29 Steve Ellcey <sje@cup.hp.com>
337 * libgcov.c ( __gcov_indirect_call_profiler): Check
338 TARGET_VTABLE_USES_DESCRIPTORS.
340 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
342 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
343 (INITIAL_FRAME_POINTER_OFFSET): Remove.
344 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
345 offset if eliminating soft frame pointer.
346 * config/spu/spu.md (stack_protect_set, stack_protect_test)
347 (stack_protect_test_si): Add initial machine description
348 for Stack Smashing Protector
350 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
353 * c-common.c (min_precision): Move to...
354 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
355 * tree.h (tree_int_cst_min_precision): Declare.
356 * c-common.h (min_precision): Delete declaration.
357 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
358 multiplication of non-negative integer constants.
359 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
360 tree_int_cst_min_precision.
361 (finish_enum): Likewise.
363 2008-10-29 Joseph Myers <joseph@codesourcery.com>
366 * convert.c (convert_to_real): Do not optimize conversions of
367 binary arithmetic operations between binary and decimal
368 floating-point types. Consider mode of target type in determining
369 decimal type for arithmetic. Unless
370 flag_unsafe_math_optimizations, do not optimize binary conversions
371 where this may change rounding behavior.
372 * real.c (real_can_shorten_arithmetic): New.
373 * real.h (real_can_shorten_arithmetic): Declare.
375 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
377 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
378 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
379 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
381 (must_save_p): For some workarounds, interrupts need to clobber a
383 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
384 and LC1 for WA_05000257.
385 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
386 WA_05000283 and WA_05000315.
387 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
388 (movbi): Add alternative to set CC to 1; improve code for setting
390 (dummy_load): New pattern.
392 2008-10-29 Jakub Jelinek <jakub@redhat.com>
395 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
396 BLKmode for non-memory, convert using a wider MODE_INT mode
400 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
401 that haven't been removed yet.
403 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
405 * config/bfin/bfin.c (struct machine_function): New member
407 (bfin_expand_movmem): Set it when generating memcpy insns.
408 (n_regs_saved_by_prologue, expand_prologue_reg_save,
409 expand_epilogue_reg_restore): If we have hardware loops,
410 memcpy insns (indicated by has_loopreg_clobber) or function
411 calls, we need to save the loop registers.
413 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
415 * config/i386/i386.c (core2_cost): Fix typos in comments.
417 2008-10-28 Jakub Jelinek <jakub@redhat.com>
420 * combine.c (make_compound_operation): Don't call make_extraction with
422 (simplify_shift_const_1): Canonicalize count even if complement_p.
424 2008-10-28 Joseph Myers <joseph@codesourcery.com>
426 * convert.c (strip_float_extensions): Do not remove or introduce
427 conversions between binary and decimal floating-point types.
429 2008-10-28 Jakub Jelinek <jakub@redhat.com>
432 * fold-const.c (distribute_bit_expr): Convert common, left and
433 right arguments to type.
435 2008-10-28 Nick Clifton <nickc@redhat.com>
437 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
438 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
439 call_really_used_regs array rather than the call_used_regs array.
440 (mn10300_get_live_callee_saved_regs, expand_prologue,
441 expand_epilogue, output_tst): Likewise.
443 2008-10-27 Jakub Jelinek <jakub@redhat.com>
446 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
447 (df_get_entry_block_def_set): Neither here.
448 (df_get_regular_block_artificial_uses): Add EH_USES registers.
450 PR tree-optimization/37879
451 * predict.c (tree_estimate_probability): Check if last_stmt is
452 non-NULL before dereferencing it.
454 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
456 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
457 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
458 (ira_fast_allocation): Remove the prototype.
460 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
461 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
462 (color_pass): Modify the updated costs.
463 (ira_color): Rename to color. Make it static.
464 (ira_fast_allocation): Rename to fast_allocation. Make it static.
465 (ira_color): New function.
467 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
470 * ira-lives.c (last_call_num, allocno_saved_at_call): New
472 (set_allocno_live, clear_allocno_live, mark_ref_live,
473 mark_ref_dead): Invalidate corresponding element of
474 allocno_saved_at_call.
475 (process_bb_node_lives): Increment last_call_num. Setup
476 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
477 allocno was already saved.
478 (ira_create_allocno_live_ranges): Initiate last_call_num and
479 allocno_saved_at_call.
481 * ira-build.c (ira_create_allocno): Initiate
482 ALLOCNO_UPDATED_COVER_CLASS_COST.
483 (create_cap_allocno, propagate_allocno_info,
484 remove_unnecessary_allocnos): Remove setting updated costs.
485 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
487 * ira.c (ira): Don't call ira_fast_allocation.
489 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
492 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
495 * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
497 * ira-int.h (ira_hard_regno_cover_class): New.
499 * ira-lives.c (mark_reg_live, mark_reg_dead,
500 process_bb_node_lives): Use ira_hard_regno_cover_class.
502 * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
503 (setup_hard_regno_cover_class): New function.
504 (ira_init): Call setup_hard_regno_cover_class.
506 * ira-costs.c (cost_class_nums): Add comment.
507 (find_allocno_class_costs): Initiate cost_class_nums.
508 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
510 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
513 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
514 Rename to copy_info_to_removed_store_destinations. Propagate
515 conflict hard regs and register stack attribute.
517 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
520 * pa.c (function_arg_padding): Pad complex and vector types
521 upward in 64-bit runtime.
522 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
524 2008-10-26 Matthias Klose <doko@ubuntu.com>
526 * doc/install.texi: Document requirements on antlr.
528 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
530 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
533 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
536 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
537 is defined, use it to modify the constant offset.
539 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
541 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
542 and short arguments to the correct location as mandated by the ABI.
544 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
546 PR rtl-optimization/37769
547 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
549 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
551 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
552 unwind-dw2-Os-4-200.o.
554 2008-10-24 Joseph Myers <joseph@codesourcery.com>
556 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
557 (convert_for_assignment): Remove ic_argpass_nonproto cases.
559 2008-10-24 Jakub Jelinek <jakub@redhat.com>
561 PR tree-optimization/36038
562 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
563 add sizetype IV with initial value zero instead of pointer type.
565 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
568 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
569 around bit operation.
570 * profile.c (is_edge_inconsistent): Likewise.
571 * fold-const.c (truth_value_p): Move from here...
572 * tree.h (truth_value_p): ... to here.
573 * c-tree.h (c_expr): Update description of original_code.
574 * c-typeck.c (parser_build_unary_op): Set original_code.
575 (parser_build_binary_op): Update call to warn_about_parentheses.
576 * c-common.c (warn_about_parentheses): Take two additional
577 arguments of the operands. Use a switch. Quote operators
578 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
579 Add warning about !x | y and !x & y.
580 * c-common.h (warn_about_parentheses): Update declaration.
582 2008-10-24 Jakub Jelinek <jakub@redhat.com>
584 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
585 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
586 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
588 (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
589 (check-%): For test targets listed in lang_checks_parallelized
590 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
591 run the testing in multiple make goals, possibly parallel, and
592 afterwards run dg-extract-results.sh to merge the sum and log files.
594 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
596 * config/mips/mips.c (mips_canonicalize_move_class): New function.
597 (mips_move_to_gpr_cost): Likewise.
598 (mips_move_from_gpr_cost): Likewise.
599 (mips_register_move_cost): Make more fine-grained.
601 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
603 * graphite.c (graphite_apply_transformations): Check for
605 * toplev.c (process_options): Add graphite_identity.
606 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
608 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
610 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
611 mulhisihl and mulhisihh builtins.
613 From Jie Zhang <jie.zhang@analog.com>
614 * config/bfin/bfin.md (composev2hi): Put operands into vector
617 2008-10-22 Chao-ying Fu <fu@mips.com>
619 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
621 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
623 From Mike Frysinger <michael.frysinger@analog.com>
624 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
625 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
626 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
627 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
628 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
629 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
630 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
631 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
632 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
633 __ADSPBF51x__ for all of them.
634 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
635 -mcpu bf512, bf514, bf516, and bf518.
636 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
637 bf512-none, bf514-none, bf516-none, and bf518-none.
638 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
639 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
640 * doc/invoke.texi (Blackfin Options): Document that
641 -mcpu now accepts bf512, bf514, bf516, and bf518.
643 2008-10-22 Jakub Jelinek <jakub@redhat.com>
646 * fold-const.c (build_range_type): For 1 .. signed_max
647 range call build_nonstandard_inter_type if signed_type_for
648 returned a type with bigger precision.
650 2008-10-22 Richard Guenther <rguenther@suse.de>
652 * tree.def (COMPLEX_TYPE): Constrain element type.
653 * tree.c (build_complex_type): Assert that.
654 * tree-ssa-structalias.c (could_have_pointers): Complex types
655 cannot have pointers.
657 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
660 * c-typeck.c (convert_for_assignment): Do not give declaration's
661 location for builtins. Spell out which type was expected and which
664 2008-10-22 Nick Clifton <nickc@redhat.com>
666 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
667 the fdpic register to be a target when running in fdpic mode.
669 2008-10-22 Rafael Espindola <espindola@google.com>
671 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
672 newly created statements.
674 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
677 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
678 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
679 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
681 2008-10-22 Jakub Jelinek <jakub@redhat.com>
684 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
685 Adjust -mcmodel=medium description for 2005-07-31 changes.
687 2008-10-22 Jan Hubicka <jh@suse.cz>
688 Jakub Jelinek <jakub@redhat.com>
691 * doc/invoke.texi: Remove references to obsoleted -d dumps.
693 2008-10-21 Richard Henderson <rth@redhat.com>
696 * emit-rtl.c (get_spill_slot_decl): Export.
697 * emit-rtl.h (get_spill_slot_decl): Declare.
698 * var-tracking.c (vt_add_function_parameters): Relax assertion
699 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
701 2008-10-21 Bob Wilson <bob.wilson@acm.org>
703 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
704 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
707 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
710 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
711 processed by get_maxval_strlen.
713 2008-10-21 David Edelsohn <edelsohn@gnu.org>
716 * tree.c (get_file_function_name): Copy first_global_object_name.
717 Centralize call to clean_symbol_name.
719 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
721 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
722 * config/svr4.h (SVR4_ASM_SPEC): New.
723 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
724 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
726 * doc/invoke.texi (Option Summary): Add -T to linker options.
727 (Link Options): Document -T.
729 2008-10-21 Jakub Jelinek <jakub@redhat.com>
731 * tree-inline.c (tree_inlinable_function_p): Remove tuples
734 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
737 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
739 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
741 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
744 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
746 * doc/install.texi: Fix typos in previous patch.
748 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
750 * doc/install.texi: Document in-tree building of gcc and mpfr.
752 2008-10-19 Richard Guenther <rguenther@suse.de>
754 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
756 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
759 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
760 (build_enumerator): Convert enumerators that fit in integer to
763 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
765 * config/i386/i386.md (unnamed peephole2): Do not force memory
766 operands of arith or logical instructions into registers for
767 non-TARGET_READ_MODIFY targets.
769 (ffs_cmove): Change operand 0 predicate to register_operand.
770 Change operand 1 predicate to nonimmediate_operand.
772 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
774 2008-10-18 Richard Guenther <rguenther@suse.de>
776 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
777 VIEW_CONVERT_EXPR case against invalid gimple.
779 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
781 * c-parser.c (c_parser_binary_expression): Silence the
782 uninitialized variable warning emitted for binary_loc.
784 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
786 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
789 2008-10-16 Joseph Myers <joseph@codesourcery.com>
792 * c-typeck.c (build_unary_op): Use omit_one_operand for
793 IMAGPART_EXPR of real argument.
795 2008-10-16 Jakub Jelinek <jakub@redhat.com>
797 PR tree-optimization/37664
798 * fold-const.c (fold_binary): When optimizing comparison with
799 highest or lowest type's value, don't consider TREE_OVERFLOW.
801 2008-10-16 David Edelsohn <edelsohn@gnu.org>
804 * Makefile.in (coverage.o): Depend on $(TM_P_H).
805 * coverage.c: Include tm_p.h.
806 * config/rs6000/x-aix (jc1): Override LDFLAGS.
807 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
808 dollar signs from PREFIX.
809 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
810 instead of manual strip_name_encoding.
812 2008-10-16 Richard Guenther <rguenther@suse.de>
815 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
816 volatile qualified functions or methods as relevant.
818 2008-10-16 Jakub Jelinek <jakub@redhat.com>
820 PR tree-optimization/37525
821 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
822 sizetype unsigned constants, both in the case of C and bounds.
824 2008-10-15 Jan Hubicka <jh@suse.cz>
826 * ira-emit.c (change_regs): Return false when replacing reg by itself.
828 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
831 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
832 HARD_REGNO_CALL_PART_CLOBBERED.
834 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
837 * ira-lives.c (mark_early_clobbers): Remove.
838 (make_pseudo_conflict, check_and_make_def_use_conflicts,
839 check_and_make_def_conflicts,
840 make_early_clobber_and_input_conflicts,
841 mark_hard_reg_early_clobbers): New functions.
842 (process_bb_node_lives): Call
843 make_early_clobber_and_input_conflicts and
844 mark_hard_reg_early_clobbers. Make hard register inputs live again.
846 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
847 early clobbers of pseudo-registers.
849 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
852 * ira-build.c (ira_flattening): Recalculate
853 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
854 from the scratch instead of the propagation.
856 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
858 * doc/rtl.texi (const_double): Remove the "addr" operand.
859 Describe CONST_DOUBLE_* macros under const_double rather
861 (const_fixed): Fix the operand description.
862 (const): Add an @findex directive.
863 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
864 after the constant rtl table.
865 (fix): Combine floating-point and fixed-point descriptions.
867 * sched-deps.c (sched_analyze_2): Remove reference to
870 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
872 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
874 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
875 for UNSPEC_GOTSYM_OFFs.
876 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
877 (add_GOT_to_pic_reg): Use it.
878 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
880 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
881 Harsha Jagasia <harsha.jagasia@amd.com>
883 PR tree-optimization/37485
884 * graphite.c (gmp_cst_to_tree): Moved.
885 (iv_stack_entry_is_constant): New.
886 (iv_stack_entry_is_iv): New.
887 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
888 (loop_iv_stack_insert_constant): New.
889 (loop_iv_stack_pop): Use new datatpype.
890 (loop_iv_stack_get_iv): Same.
891 (loop_iv_stack_get_iv_from_name): Same.
892 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
893 (loop_iv_stack_patch_for_consts): New.
894 (loop_iv_stack_remove_constants): New.
895 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
896 (translate_clast): Call loop_iv_stack_patch_for_consts and
897 loop_iv_stack_remove_constants.
898 (gloog): Use new datatype. Redirect construction edge to end
899 block to avoid accidental deletion.
900 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
902 (union iv_stack_entry_data): New. Data in iv stack entry.
903 (struct iv_stack_entry): New. Datatype for iv stack entries.
905 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
907 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
908 * graphite.c (free_scop): Same.
910 (free_scattering): New.
911 (build_cloog_prog): Call free_scattering.
912 (patch_phis_for_virtual_defs): Fix memleak.
913 (graphite_trans_bb_strip_mine): Same.
916 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
917 Harsha Jagasia <harsha.jagasia@amd.com>
919 PR tree-optimization/37828
920 * graphite.c (graphite_trans_loop_block): Do not loop block
923 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
925 PR tree-optimization/37686
926 * tree-loop-linear.c (linear_transform_loops): Build a
927 loop nest vector. Pass it to lambda_compute_access_matrices.
928 * tree-data-ref.h (struct access_matrix): Store the loop nest
929 relative to which it encodes the information.
930 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
931 (am_vector_index_for_loop): Reimplemented: iterate over the
932 loop nest for finding the loop index in the access matrix.
933 (lambda_compute_access_matrices): Update declaration.
934 * lambda-code.c (build_access_matrix): Pass the loop nest and
936 (lambda_compute_access_matrices): Same.
938 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
940 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
941 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
942 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
943 already implies hard float. Also fix several insn condition
944 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
946 2008-10-15 David Edelsohn <edelsohn@gnu.org>
949 Based on patches by Laurent Vivier.
950 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
951 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
952 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
953 dollar sign to underscore.
954 (ASM_OUTPUT_EXTERNAL): Same.
955 (ASM_OUTPUT_LABELREF): New.
956 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
958 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
959 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
960 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
961 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
963 2008-10-15 Jakub Jelinek <jakub@redhat.com>
965 PR tree-optimization/36881
966 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
967 that each value doesn't need runtime relocations, for !flag_pic
968 check that each value is just a valid initializer constant.
970 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
972 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
973 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
974 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
975 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
977 (REG_CLASS_NAMES): Update accordingly.
978 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
979 rather than an unpredictable descriptive string.
980 * config/mips/mips.c (mips_register_move_cost): Remove comment.
981 (mips_register_move_cost): Check for specific COP*_REGS classes,
982 instead of ALL_COP_AND_GR_REGS.
983 (mips_ira_cover_classes): New function.
984 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
985 (TARGET_IRA_COVER_CLASSES): Define.
987 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
990 * tree.c (build_type_attribute_qual_variant): Hash on the
991 unqualified type, and don't overwrite an existing
992 (type_hash_eq): Make the TYPE_NAME of the types significant, to
993 allow distinguishing between wchar_t and its underlying type. This
994 also means that we'll retain a little more typedef information.
996 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
997 Dmitry Melnik <dm@ispras.ru>
998 Dmitry Zhurikhin <zhur@ispras.ru>
999 Alexander Monakov <amonakov@ispras.ru>
1000 Maxim Kuvyrkov <maxim@codesourcery.com>
1002 * target.h (struct gcc_target): Update prototypes of needs_block_p
1004 * haifa-sched.c (create_check_block_twin): Update calls to the above.
1005 * sel-sched.c (create_speculation_check): Likewise.
1006 * doc/tm.texi: Provide documentation for new target hooks.
1008 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
1009 (ia64_gen_spec_insn): Removed.
1010 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
1011 ia64_gen_spec_check): New static functions.
1012 (ia64_alloc_sched_context, ia64_init_sched_context,
1013 ia64_set_sched_context, ia64_clear_sched_context,
1014 ia64_free_sched_context, ia64_get_insn_spec_ds,
1015 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
1016 (ia64_needs_block_p): Change prototype.
1017 (ia64_gen_check): Rename to ia64_gen_spec_check.
1018 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
1019 into declaration, add special memory dependencies handling.
1020 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
1021 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1022 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
1023 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
1024 Define new target hooks.
1025 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
1026 (ia64_optimization_options): Turn on selective scheduling with -O3,
1027 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
1028 default with selective scheduling.
1029 (ia64_override_options): Initialize align_loops and align_functions
1030 to 32 and 64, respectively. Set global selective scheduling flags
1031 according to target-dependent flags.
1032 (rtx_needs_barrier): Support UNSPEC_LDS_A.
1033 (group_barrier_needed): Use new mstop-bit-before-check flag.
1035 (dfa_state_size): Make global.
1036 (spec_check_no, max_uid): Remove.
1037 (mem_ops_in_group, current_cycle): New variables.
1038 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
1039 Initialize new variables.
1040 (is_load_p, record_memory_reference): New functions.
1041 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
1043 (ia64_variable_issue): Change use of current_sched_info to
1044 sched_deps_info. Update comment. Note if a load or a store is issued.
1045 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
1046 advance if maximal number of loads or stores was issued on current
1048 (scheduled_good_insn): New static helper function.
1049 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
1050 a group barrier is needed. Fix vertical spacing. Guard the code
1051 doing state transition with last_scheduled_insn check.
1052 Mark that a stop bit should be before current insn if there was a
1053 cycle advance. Update current_cycle and mem_ops_in_group.
1054 (ia64_h_i_d_extended): Change use of current_sched_info to
1055 sched_deps_info. Reallocate stops_p by larger chunks.
1056 (struct _ia64_sched_context): New structure.
1057 (ia64_sched_context_t): New typedef.
1058 (ia64_alloc_sched_context, ia64_init_sched_context,
1059 ia64_set_sched_context, ia64_clear_sched_context,
1060 ia64_free_sched_context): New static functions.
1061 (gen_func_t): New typedef.
1062 (get_spec_load_gen_function): New function.
1063 (SPEC_GEN_EXTEND_OFFSET): Declare.
1064 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
1065 (get_mode_no_for_insn): Change the condition that prevents use of
1066 special hardware registers so it can now handle pseudos.
1067 (get_spec_unspec_code): New function.
1068 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
1069 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
1070 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
1071 during selective scheduling.
1072 (ia64_speculate_insn): Use ds_get_speculation_types when
1073 determining whether we need to change the pattern.
1074 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
1075 (ia64_spec_check_src_p): Support new speculation/check codes.
1076 (struct bundle_state): New field.
1077 (issue_nops_and_insn): Initialize it.
1078 (insert_bundle_state): Minimize mid-bundle stop bits.
1079 (important_for_bundling_p): New function.
1080 (get_next_important_insn): Use important_for_bundling_p.
1081 (bundling): When shifting TImode from unimportant insns, ignore
1082 also group barriers. Assert that best state is found before
1083 the backward bundling pass. Print number of mid-bundle stop bits.
1084 Minimize mid-bundle stop bits. Check correct calculation of
1085 mid-bundle stop bits.
1086 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
1087 (final_emit_insn_group_barriers): Emit stop bits before insns starting
1089 (sel2_run): New variable.
1090 (ia64_reorg): When flag_selective_scheduling2 is set, run the
1091 selective scheduling pass instead of schedule_ebbs.
1093 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
1094 (UNSPEC_LDS_A): New UNSPEC.
1095 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
1096 movti_internal, movsf_internal, movdf_internal,
1097 movxf_internal): Make visible. Add speculable* attributes.
1098 (output_c_nc): New mode attribute.
1099 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
1100 mov<mode>_nc, zero_extend<mode>di2_nc,
1101 advanced_load_check_nc_<mode>): New insns.
1102 (zero_extend*): Add speculable* attributes.
1104 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
1105 (msched-stop-bits-after-every-cycle): Likewise.
1106 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
1108 (msched-spec-verbose): Remove.
1109 (msched-prefer-non-data-spec-insns,
1110 msched-prefer-non-control-spec-insns,
1111 msched-count-spec-in-critical-path,
1112 msel-sched-dont-check-control-spec): Use Target Report Var
1113 instead of Common Report Var.
1115 * config/ia64/itanium2.md: Remove incorrect bypass.
1117 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
1119 2008-10-14 Jakub Jelinek <jakub@redhat.com>
1122 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1123 and -fhelp=separate.
1125 2008-10-14 Ben Elliston <bje@au.ibm.com>
1127 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
1129 2008-10-13 Joseph Myers <joseph@codesourcery.com>
1131 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
1134 2008-10-13 Matthias Klose <doko@ubuntu.com>
1136 * config/pa/linux-atomic.c: Work around missing header file
1137 for hppa64-linux-gnu targets.
1139 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
1140 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
1141 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1142 Grace Cao <grace_cao@playstation.sony.com>
1144 * doc/invoke.texi (-mgen-cell-microcode): Document.
1145 (-mwarn-cell-microcode): Document.
1146 * cfglayout.c (locator_location): Export.
1147 * rtl.h (locator_location): Define prototype.
1148 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
1150 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
1151 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
1152 (mwarn-cell-microcode): New option.
1153 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
1154 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
1155 cell and not already set.
1156 Turn off string instructions if not generating cell microcode.
1157 (rs6000_final_prescan_insn): New function that warns about microcoded
1159 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
1160 * config/rs6000/rs6000.md
1161 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
1162 the instruction would have been microcoded on the Cell. Set
1163 cell_micro to always on unnamed patterns for the string instructions.
1164 (cell_micro): Update definition, remove load/store conditional
1166 (sign_extend:DI): Define new pattern for non microcoded version.
1167 (sign_extend:SI): Likewise.
1168 (compare (div:P)): Set cell_micro to not.
1169 (andsi3): Define as an expand.
1170 (andsi3_mc): New pattern.
1171 (andsi3_nomc): New pattern.
1172 (andsi3_internal0_nomc): New pattern.
1173 (andsi3_internal2): Rename to ...
1174 (andsi3_internal2_mc): this and enable iff generating microcode.
1175 (andsi3_internal3): Rename to ...
1176 (andsi3_internal3_mc): this and enable iff generating microcode.
1177 (andsi3_internal4): Enable iif generating microcode.
1178 (andsi3_internal5): Rename to ..
1179 (andsi3_internal5_mc): this and enable iff generating microcode.
1180 (andsi3_internal5_nomc): New pattern.
1181 (extzvdi_internal1): Enable iff generating microcode.
1182 (extzvdi_internal2): Likewise.
1183 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
1184 (anddi3): Change to expand.
1185 (anddi3_mc): Rename from anddi3.
1186 (anddi3_no_mc): New pattern.
1187 (anddi3_internal2): Rename to ..
1188 (anddi3_internal2_mc): this and enable iff generating microcode.
1189 (anddi3_internal2_nomc): New pattern.
1190 (anddi3_internal3): Rename to ..
1191 (anddi3_internal3_mc): this and enable iff generating microcode.
1192 (anddi3_internal3_nomc): New pattern.
1193 (movti_string): Set cell_micro to always if TARGET_STRING.
1194 (stmsi8): Set cell_micro to always.
1200 (stmsi8_power): Likewise.
1201 (stmsi7_power): Likewise.
1202 (stmsi6_power): Likewise.
1203 (stmsi5_power): Likewise.
1204 (stmsi4_power): Likewise.
1205 (stmsi3_power): Likewise.
1206 (movsi_update2): Enable iff generating microcode.
1207 (movhi_update3): Likewise.
1208 (lmw): Set cell_micro to always.
1210 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
1212 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
1213 * config/s390/s390.c (machine_function): Remove
1214 decomposed_literal_pool_addresses_ok_p.
1215 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
1216 the difference of two labels.
1217 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
1218 (s390_pool_offset): New function.
1219 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
1220 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
1222 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
1224 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
1225 (powerpc*-*-linux-gnu*): Describe.
1226 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
1227 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1228 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1229 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1230 config/rs6000/e500crtres32gpr.asm,
1231 config/rs6000/e500crtres64gpr.asm,
1232 config/rs6000/e500crtres64gprctr.asm,
1233 config/rs6000/e500crtrest32gpr.asm,
1234 config/rs6000/e500crtrest64gpr.asm,
1235 config/rs6000/e500crtresx32gpr.asm,
1236 config/rs6000/e500crtresx64gpr.asm,
1237 config/rs6000/e500crtsav32gpr.asm,
1238 config/rs6000/e500crtsav64gpr.asm,
1239 config/rs6000/e500crtsav64gprctr.asm,
1240 config/rs6000/e500crtsavg32gpr.asm,
1241 config/rs6000/e500crtsavg64gpr.asm,
1242 config/rs6000/e500crtsavg64gprctr.asm: Use it.
1243 * config/rs6000/crtsavres.asm: Really remove.
1245 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
1248 * c-format.c (convert_format_name_to_system_name): Use
1249 TARGET_OVERRIDES_FORMAT_INIT.
1250 * config.gcc (extra_options): Add for mingw targets mingw.opt.
1251 * config/i386/mingw.opt: New.
1252 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
1253 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
1254 (ms_printf_length_specs): Removed const specifier.
1255 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1256 * doc/invoke.texi (Wno-pedantic-ms-format): New.
1258 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1260 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1261 * doc/install.texi: Bump recommended MPFR to 2.3.2.
1263 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
1266 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1267 sure that ref has valid bb.
1269 2008-10-12 Richard Henderson <rth@redhat.com>
1272 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1273 * alias.c (value_addr_p, stack_addr_p): Remove.
1274 (nonoverlapping_memrefs_p): Remove IRA special case.
1275 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1276 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1277 * reload1.c (alter_reg): Use it.
1279 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
1281 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1282 of registers instead of eax, ebx, ecx and edx. Use for loop
1283 and check register for non-zero value before the call
1284 to decode_caches_intel.
1286 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1288 PR rtl-optimization/37448
1289 * df.h: (df_ref_class): New enum.
1290 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1291 (struct df_ref): Replaced with union df_ref_d.
1292 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1293 New members of df_ref_d union.
1294 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1295 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1296 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1297 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1298 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
1299 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1300 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
1301 (df_scan_bb_info, df_bb_regno_first_def_find,
1302 df_bb_regno_last_def_find, df_find_def, df_find_use,
1303 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1304 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1305 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1306 df_get_artificial_defs, df_get_artificial_uses, union_defs)
1307 Replaced struct df_ref * with df_ref.
1308 * df-scan.c (df_collection_rec, df_null_ref_rec,
1309 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1310 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1311 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1312 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1313 df_reorganize_refs_by_reg_by_reg,
1314 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1315 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1316 df_sort_and_compress_refs, df_install_ref, df_install_refs,
1317 df_ref_record, df_get_conditional_uses, df_get_call_refs,
1318 df_bb_refs_record, df_exit_block_uses_collect,
1319 df_record_exit_block_uses, df_reg_chain_mark,
1320 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1321 df_ref * with df_ref.
1322 (df_ref_record, df_uses_record, df_ref_create_structure): Added
1323 df_ref_class parameter.
1324 (df_scan_problem_data): Added new pools for different types of refs.
1325 (df_scan_free_internal, df_scan_alloc, df_free_ref,
1326 df_ref_create_structure): Processed new ref pools.
1327 (df_scan_start_dump): Added counts of refs and insns.
1328 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1329 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1330 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1331 code to pass df_ref_class down to ref creation functions.
1332 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1333 df_reg_chain_mark): Use macros to hide references to df_refs.
1334 (df_ref_chain_change_bb): Removed.
1335 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1336 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1337 Enhanced to understand df_ref union structure.
1338 * fwprop.c (local_ref_killed_between_p, use_killed_between,
1339 all_uses_available_at, update_df, try_fwprop_subst,
1340 forward_propagate_subreg, forward_propagate_and_simplify,
1341 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1342 df_ref * with df_ref.
1343 (use_killed_between, all_uses_available_at): Use macros to hide
1344 references to df_refs.
1345 * regstat.c (regstat_bb_compute_ri,
1346 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1348 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1349 see_handle_relevant_refs, see_analyze_one_def,
1350 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1351 struct df_ref * with df_ref.
1352 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1353 global_conflicts): Replaced struct df_ref * with df_ref.
1354 * ddg.c (create_ddg_dep_from_intra_loop_link,
1355 add_cross_iteration_register_deps, build_inter_loop_deps):
1356 Replaced struct df_ref * with df_ref.
1357 (create_ddg_dep_from_intra_loop_link,
1358 add_cross_iteration_register_deps): Use macros to hide references
1360 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1361 df_ref * with df_ref.
1362 * df-core.c (df_bb_regno_first_def_find,
1363 df_bb_regno_last_def_find, df_find_def, df_find_use,
1364 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1365 debug_df_ref): Replaced struct df_ref * with df_ref.
1366 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
1367 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1369 * web.c (union_defs, entry_register, replace_ref, web_main):
1370 Replaced struct df_ref * with df_ref.
1371 (union_defs, replace_ref): Use macros to hide references to df_refs.
1372 * global.c (compute_regs_asm_clobbered, build_insn_chain):
1373 Replaced struct df_ref * with df_ref.
1374 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
1375 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1376 Replaced struct df_ref * with df_ref.
1377 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1378 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1380 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
1381 * df-byte-scan.c (df_compute_accessed_bytes_extract,
1382 df_compute_accessed_bytes_strict_low_part,
1383 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1384 Replaced struct df_ref * with df_ref.
1385 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
1386 * init-regs.c (initialize_uninitialized_regs): Replaced struct
1387 df_ref * with df_ref.
1388 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1389 check_dependency, check_dependencies, record_uses): Replaced
1390 struct df_ref * with df_ref.
1391 (invariant_for_use, check_dependency): Use macros to hide
1392 references to df_refs.
1393 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1394 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1395 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1396 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1397 references to df_refs.
1398 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1400 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1401 * df-problems.c (df_rd_bb_local_compute_process_def,
1402 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1403 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1404 df_chain_remove_problem, df_chain_create_bb_process_use,
1405 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1406 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1407 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1408 df_byte_lr_simulate_artificial_refs_at_top,
1409 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1410 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1411 df_simulate_uses, df_simulate_artificial_refs_at_end,
1412 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1414 (df_chain_dump): Use macros to hide references to df_refs.
1415 * config/mips/mips.c (r10k_simplify_address): Replaced struct
1416 df_ref * with df_ref.
1417 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1418 mark_artificial_uses, mark_reg_dependencies,
1419 byte_dce_process_block): Replaced struct df_ref * with df_ref.
1421 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
1423 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1425 (array_ref_element_size): Likewise.
1426 (array_ref_low_bound): Likewise.
1427 (array_ref_up_bound): Likewise.
1428 * expr.c (contains_packed_reference): Likewise.
1429 (array_ref_element_size): Likewise.
1430 (array_ref_low_bound): Likewise.
1431 (array_ref_up_bound): Likewise.
1432 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1433 with ARRAY_RANGE_REF.
1434 (idx_find_step): Likewise.
1435 (idx_record_use): Likewise.
1436 (strip_offset_1): Likewise.
1437 (idx_remove_ssa_names): Likewise.
1439 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
1440 Andi Kleen <ak@linux.intel.com>
1442 * config/i386/cpuid.h (__cpuid_count): New defines.
1443 * config/i386/driver-i386.c (struct cache_desc): New structure.
1444 (describe_cache): Use struct cache_desc to pass cache descriptions.
1445 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1446 (detect_caches_amd): Use struct cache_desc to describe caches.
1447 (decode_caches_intel): Use struct cache_desc to pass cache
1448 descriptions. Update descriptions to match latest (rev -032,
1449 December 2007) CPUID documentation. Do not check valid bit here.
1450 Check for Xeon MP value 0x49 problems.
1451 (detect_caches_cpuid2): New function, split from detect_caches_intel.
1452 Check valid bit before calling decode_caches_intel. Detect number
1453 of times to repeat CPUID instruction.
1454 (detect_caches_cpuid4): New function.
1455 (detect_caches_intel): Depending on max_level, call
1456 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
1457 only when other methods fail to provide valid L2 cache description.
1459 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1462 * pa.md (call, call_value): Generate an rtx for register r4 and pass
1463 it to PIC call patterns.
1464 (call_symref_pic): Revise pattern to expose PIC register save. Remove
1465 code generation and attributes from pattern. Change peephole2 to
1466 split for noreturn case. Revise split pattern for non noreturn case.
1467 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1468 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1469 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
1472 2008-10-11 David Edelsohn <edelsohn@gnu.org>
1474 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1475 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1477 (divdf3): Reformat long line.
1479 2008-10-11 Michael J. Eager <eager@eagercon.com>
1481 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1483 (rs6000_handle_option): Process -mfpu options.
1484 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1485 (enum fpu_type_t): New.
1486 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
1487 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1489 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1490 (floatdidf2): Add TARGET_SINGLE_FPU condition.
1491 * config/rs6000/rs6000.opt (-mfpu): New.
1492 (-mxilinx-fpu): New.
1493 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1494 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1495 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1496 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1497 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1499 2008-10-11 Jakub Jelinek <jakub@redhat.com>
1502 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1503 LO_SUM on Darwin if mode has just one unit.
1505 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
1508 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1509 has been optimized out.
1511 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
1513 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1514 instead of PIC_DIRECT_ADDR_P.
1515 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1516 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1517 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1518 (PIC_OFFSET_P): Rename to...
1519 (PCREL_SYMOFF_P): ...this.
1520 (PIC_DIRECT_ADDR_P): Delete.
1521 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1523 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1524 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1525 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1526 * config/sh/sh.c (print_operand): Remove CONST handling.
1527 (unspec_caller_rtx_p): Rewrite to use split_const and check
1528 the operands of UNSPEC bases.
1529 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1530 with (unspec [A B] UNSPEC_SYMOFF).
1531 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1532 UNSPEC_PCREL_SYMOFF.
1533 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1534 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1535 (UNSPEC_EXTRACT_U16): Likewise.
1536 (UNSPEC_SYMOFF): Likewise.
1537 (UNSPEC_PCREL_SYMOFF): Likewise.
1538 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1540 (movsi_const_16bit): Likewise.
1541 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1542 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1543 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1544 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1545 with (unspec [A B] UNSPEC_SYMOFF).
1546 (symPLT_label2reg): Replace (minus A (minus B pc)) with
1547 (unspec [A B] PCREL_UNSPEC_SYMOFF).
1548 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1549 (Csu): Likewise UNSPEC_EXTRACT_U16.
1550 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1551 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1553 2008-10-10 Stepan Kasal <skasal@redhat.com>
1555 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1556 for loop strip mining and loop blocking.
1558 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
1560 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1561 vary types depending on debug info.
1563 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
1565 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1566 before ensuring it's already computed.
1568 2008-10-09 Jakub Jelinek <jakub@redhat.com>
1570 * rtl.h (locator_eq): New decl.
1571 * cfglayout.c (locator_scope): New function.
1572 (insn_scope): Use it.
1573 (locator_eq): New function.
1574 (fixup_reorder_chain): Search for last insn in src bb
1575 that has locator set or first insn in dest bb. Use
1576 locator_eq instead of == to compare locators.
1577 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1578 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1579 == to compare locators.
1581 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1583 * gimple-low.c (lower_function_body, lower_gimple_return,
1584 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1585 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1586 goto_block on edges if goto_locus is known.
1589 * tree.h (get_object_alignment): Declare.
1590 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1591 get_object_alignment if needed.
1592 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
1594 (get_object_alignment): ... here. New function. Try harder to
1595 determine alignment from get_inner_reference returned offset.
1597 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1599 * graphite.c (gloog): Don't call find_unreachable_blocks
1600 before delte_unreachable_blocks.
1602 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1603 goto_locus of true_edge into RTL locator.
1605 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
1607 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1608 (*jcc_btdi_mask_rex64): Ditto.
1610 (*jcc_btsi_mask): Ditto.
1611 (*jcc_btsi_1): Ditto.
1612 (*jcc_btsi_mask_1): Ditto.
1614 2008-10-08 Paul Brook <paul@codesourcery.com>
1616 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1617 compatible profiler (__gnu_mcount_nc).
1618 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1620 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1622 * config/i386/i386.c (initial_ix86_tune_features): Add
1623 X86_TUNE_USE_VECTOR_FP_CONVERTS.
1624 * config/i386/i386.h (ix86_tune_indices): Likewise.
1625 (TARGET_USE_VECTOR_FP_CONVERTS): New.
1627 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1628 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1629 for FP to FP splitters.
1631 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1633 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1636 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1640 PR rtl-optimization/37341
1641 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1642 to ORIG_BB, pass through ORIG_BB recursively.
1643 (cse_condition_code_reg): Adjust caller.
1645 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
1647 * sdbout.c (sdbout_one_type): Treat the value type
1648 CONST_DECL for enumerals.
1650 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1652 * config/i386/i386.md: Remove trailing white spaces.
1654 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1656 PR rtl-optimization/37448
1657 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1658 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1660 (struct output_info) [count]: Renamed total_created and made
1662 (struct output_info) [size]: Renamed total_allocated and made
1664 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1665 Properly keep track of desc->size.
1666 (print_statistics, dump_alloc_pool_statistics): Enhance the
1667 printing of statistics to print the number of elements and to use
1670 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1673 * opts.h (CL_SAVE): Move up to flags range.
1674 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1675 CL_COMMON): Renumber.
1676 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1677 * opts.c (common_handle_option): Revert last change.
1679 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1681 * config/i386/i386-protos.h (ix86_schedule): New.
1683 * config/i386/i386.c (ix86_schedule): New.
1684 (override_options): Add schedule to processor_alias_table. Set
1685 ix86_schedule from the schedule field in processor_alias_table.
1686 (ix86_function_specific_save): Save ix86_schedule.
1687 (ix86_function_specific_restore): Restore ix86_schedule.
1689 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1690 ix86_tune. Add none and remove i386, i486, pentium4, nocona
1693 * config/i386/i386.opt: Add schedule.
1695 * config/i386/ppro.md: Remove generic32.
1697 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
1700 * expr.c (count_type_elements): Handle ERROR_MARK.
1702 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1707 * basic-block.h (struct edge_def): Add goto_block field.
1708 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1709 one insn with locus corresponding to edge's goto_locus if !optimize.
1710 * profile.c (branch_prob): Copy edge's goto_block.
1711 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1713 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1714 locator in between the merged basic blocks if !optimize and needed.
1715 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1716 goto_locus into RTL locator. For unconditional jump use that
1717 locator for the jump insn.
1718 (expand_gimple_cond): Convert goto_block and goto_locus into
1719 RTL locator for all remaining edges. For unconditional jump
1720 use that locator for the jump insn.
1721 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1722 there is more than one edge or insn locator along the forwarding
1723 edges and !optimize. If there is just one, set e->goto_locus.
1724 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1726 (move_block_to_fn): Adjust edge's goto_block.
1728 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1731 * expmed.c (expand_mult): Properly check DImode constant in
1734 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1737 * dwarf2out.c (common_block_die_table): New variable.
1738 (common_block_die_table_hash, common_block_die_table_eq): New
1740 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1741 COMMON block in the current scope rather than globally. Optimize
1742 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1743 DW_OP_addr SYMBOL_REF+off.
1745 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1747 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1748 Return true for non-addressable GIMPLE operands.
1750 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1753 * config/i386/i386.c (initial_ix86_tune_features): Remove
1754 X86_TUNE_USE_BIT_TEST.
1755 * config/i386/i386.h (ix86_tune_indices): Likewise.
1756 (TARGET_USE_BIT_TEST): Removed.
1758 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1760 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1762 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
1764 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1765 (mul<mode>3_mul3): ... into this new template.
1767 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1769 * gimplify.c (gimplify_arg): Add location argument. Use it.
1770 (gimplify_call_expr): Pass location to gimplify_arg.
1771 (gimplify_modify_expr_to_memcpy): Same.
1772 (gimplify_modify_expr_to_memset): Same.
1774 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1776 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1777 Update calls to build_unary_op and build_indirect_ref for location
1780 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1783 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1784 * c-typeck.c (array_to_pointer_conversion): Pass location to
1786 (function_to_pointer_conversion): Use error_at and warning_at.
1787 (build_indirect_ref): Same.
1788 (build_array_ref): Pass location to build_binary_op.
1789 (parser_build_unary_op): Do not set location after calling
1791 (build_unary_op): Add location argument. Use it throughout. Set
1792 EXPR_LOCATION before returning new tree.
1793 (build_modify_expr): Same.
1794 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
1796 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1797 build_indirect_ref, build_modify_expr.
1798 (c_finish_omp_for): Same. Use error_at instead of error.
1799 * c-common.c (c_common_truthvalue_conversion): Pass location to
1801 (warn_for_div_by_zero): Add location argument.
1802 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1803 build_unary_op, warn_for_div_by_zero.
1804 * c-parser.c (c_parser_typeof_specifier): Use
1805 protected_set_expr_location.
1806 (c_parser_statement_after_labels): Same.
1807 (c_parser_condition): Same.
1808 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1809 (c_parser_conditional_expression): Use protected_set_expr_location.
1810 (c_parser_unary_expression): Pass location to build_indirect_ref.
1811 (c_parser_postfix_expression_after_primary): Pass location to
1812 build_indirect_ref, build_unary_op.
1813 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1815 2008-10-06 Joshua Kinard <kumba@gentoo.org>
1817 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1818 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1819 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1821 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1822 (mips_issue_rate): Handle PROCESSOR_R10000.
1823 * config/mips/mips.md (cpu): Add r10000.
1825 * config/mips/10000.md: New file.
1827 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1829 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1830 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1831 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1833 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1835 * config/darwin-protos.h (machopic_function_base_name): Delete.
1836 (machopic_function_base_sym): Likewise.
1837 (machopic_gen_offset): Declare.
1838 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1839 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1840 * config/darwin.c (machopic_function_base_name): Delete.
1841 (machopic_function_base_sym): Likewise.
1842 (gen_pic_offset): Rename to...
1843 (machopic_gen_offset): ...this and remove the pic_base argument.
1844 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1845 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1846 crtl->uses_pic_offset_table.
1847 (machopic_indirect_data_reference): Use new machopic_gen_offset
1849 (machopic_legitimize_pic_address): Likewise.
1850 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1852 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1853 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1854 * config/i386/i386.c (output_set_got): Likewise.
1855 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1857 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1858 (legitimate_address_p): Likewise.
1859 (output_pic_addr_const): Likewise.
1860 (output_addr_const_extra): Likewise.
1861 (ix86_delegitimize_address): Expect darwin_local_data_pic to
1862 match an UNSPEC rather than a MINUS.
1863 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1864 (builtin_setjmp_receiver): Use machopic_gen_offset.
1865 * config/i386/predicates.md (pic_symbolic_operand): Handle
1866 UNSPEC_MACHOPIC_OFFSET.
1868 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1869 Use machopic_gen_offset and machopic_operand_p.
1870 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1871 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1872 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1873 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1874 Set crtl->uses_pic_offset_table.
1876 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1878 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1880 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1881 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1882 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1883 (constant_pool_expr_p): Use split_const and check the base.
1884 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1886 (legitimate_constant_pool_address_p): Check toc_relative_p
1887 instead of constant_pool_expr_p.
1888 (print_operand_address): Always use output_addr_const for
1889 constant pool addresses.
1890 (rs6000_output_addr_const_extra): New function.
1891 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1893 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
1897 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1898 (mark_ref_live, mark_ref_dead): Use them.
1899 (def_conflicts_with_inputs_p): Remove.
1900 (mark_early_clobbers): New function.
1901 (process_bb_node_lives): Call preprocess_constraints and
1902 mark_early_clobbers.
1904 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1906 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1908 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1909 lib with -mthread switch.
1911 2008-10-05 Dodji Seketeli <dodji@redhat.com>
1914 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1915 function in two, making it call a new and reusable
1916 dwarf2out_imported_module_or_decl() that takes the containing
1917 BLOCK of the declaration in argument.
1918 (dwarf2out_imported_module_or_decl_real): New function.
1919 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1920 IMPORTED_DECL in account.
1921 * tree.def: Added IMPORTED_DECL node type.
1922 * tree.h: Added accessors for IMPORTED_DECL nodes.
1923 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1925 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1927 * doc/gimple.texi: Fix some typos, wrap some long lines,
1928 fix some broken wraps with continuations.
1929 * tree-ssa-reassoc.c: Fix comment typos.
1931 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1934 * pa.c (legitimize_pic_address): Force function labels to memory in
1937 2008-10-04 Anton Blanchard <anton@samba.org>
1939 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1940 (rs6000_split_atomic_op): Same.
1941 (rs6000_split_compare_and_swap): Same.
1942 (rs6000_split_compare_and_swapqhi): Same.
1944 2008-10-04 Richard Guenther <rguenther@suse.de>
1946 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1947 instead of pointer equality.
1948 (vn_nary_op_eq): Likewise.
1950 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1952 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
1954 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1955 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1957 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
1959 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1960 Revert previous change.
1962 2008-10-03 Tom Tromey <tromey@redhat.com>
1964 * stringpool.c (ggc_alloc_string): Terminate string.
1966 2008-10-03 Jakub Jelinek <jakub@redhat.com>
1968 * gimplify.c (gimplify_function_tree): For -finstrument-functions
1969 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1970 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1973 * gimplify.c (declare_vars): Use gimple_bind_block instead of
1976 2008-10-03 Pascal Obry <obry@adacore.com>
1978 * gcov.c (create_file_names): Properly handle UNIX and DOS
1979 directory separators.
1980 (make_gcov_file_name): Likewise + convert the ':' DOS drive
1981 separator to '~' to ensure clean filenames on Windows.
1983 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1985 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1986 Add a null terminator to the stripped name.
1988 2008-10-02 David Edelsohn <edelsohn@gnu.org>
1990 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1991 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1992 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1993 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
1994 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1995 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1996 TARGET_SINGLE_FLOAT.
1998 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
2000 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
2002 2008-10-02 Richard Guenther <rguenther@suse.de>
2005 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
2006 and VECTOR_TYPE recurse with useless_type_conversion_p which
2007 properly handles void pointer conversion.
2009 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
2012 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
2013 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
2015 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
2017 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2018 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
2019 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
2020 they translate to non builtins.
2021 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
2022 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
2023 __builtin_vec_promote, __builtin_vec_extract, and
2024 __builtin_vec_insert.
2025 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
2026 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
2027 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
2028 * config/rs6000/altivec.h (vec_extract): Define
2029 (vec_insert): Define.
2030 (vec_splats): Define.
2031 (vec_promote): Define.
2033 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
2034 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
2035 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2037 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
2039 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
2040 prototype. Add new parameter, blk.
2041 Use BLKmode for the MEM if blk is true.
2042 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
2043 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
2044 ALTIVEC_BUILTIN_STVRXL.
2045 Update usage of altivec_expand_lv_builtin.
2046 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
2047 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
2048 (altivec_init_builtins): If compiling for the Cell, also define the
2050 * config/rs6000/rs6000.h (rs6000_builtins): Define
2051 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
2052 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
2053 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
2054 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
2055 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
2056 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
2057 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
2058 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
2059 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
2060 UNSPEC_STVRX, and UNSPEC_STVRXL.
2061 (altivec_lvlx): New pattern.
2062 (altivec_lvlxl): New pattern.
2063 (altivec_lvrx): New pattern.
2064 (altivec_lvrxl): New pattern.
2065 (altivec_stvlx): New pattern.
2066 (altivec_stvlxl): New pattern.
2067 (altivec_stvrx): New pattern.
2068 (altivec_stvrxl): New pattern.
2069 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
2070 (vec_lvlxl): Likewise.
2071 (vec_lvrx): Define if PPU is defined.
2072 (vec_lvrxl): Likewise.
2073 (vec_stvlx): Define if PPU is defined.
2074 (vec_stvlxl): Likewise.
2075 (vec_stvrx): Define if PPU is defined.
2076 (vec_stvrxl): Likewise.
2078 2008-10-01 Geert Bosch <bosch@adacore.com>
2080 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
2082 2008-10-01 Richard Guenther <rguenther@suse.de>
2084 PR tree-optimization/37617
2085 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
2086 do not add to the NEW_SETS.
2088 2008-10-01 Richard Guenther <rguenther@suse.de>
2091 * tree-vrp.c (execute_vrp): If we optimized away the default
2092 case make sure to promote the label that got in place of it
2093 to a default case label.
2095 2008-10-01 Richard Henderson <rth@redhat.com>
2098 * tree-complex.c (set_component_ssa_name): Don't optimize
2099 is_gimple_min_invariant values with ssa_names in abnormal phis.
2101 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
2103 PR tree-optimization/37662
2104 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
2105 commutative binary operation if they are in the wrong order and
2106 fold_build2 produces non-GIMPLE.
2108 2008-09-30 Jakub Jelinek <jakub@redhat.com>
2110 PR tree-optimization/37662
2111 PR tree-optimization/37663
2112 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
2113 get_value_range with non-SSA_NAME. Don't assert operands have been
2114 folded, instead just bail out.
2116 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
2118 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
2120 2008-09-30 Richard Guenther <rguenther@suse.de>
2123 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
2124 build restrict-qualified pointers.
2125 (vectorizable_store): Move alias check later.
2126 (vectorizable_load): Likewise.
2128 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
2130 * c-common.c (empty_if_body_warning): Remove.
2131 * c-common.h (empty_if_body_warning): Remove.
2132 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
2133 here the -Wempty-body warning for `if' and `else' statements.
2134 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
2136 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
2138 * config/i386/i386.opt: Add msse2avx.
2140 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
2141 * config/i386/linux64.h (ASM_SPEC): Likewise.
2143 * doc/invoke.texi: Document -msse2avx.
2145 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
2147 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
2149 2008-09-29 Joseph Myers <joseph@codesourcery.com>
2151 * ifcvt.c (noce_emit_store_flag): If using condition from original
2152 jump, reverse it if if_info->cond was reversed.
2154 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
2156 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2157 non-constant memory if it cannot be forced to constant memory.
2158 Overhaul surrounding code and factor out common condition.
2160 2008-09-29 Jeff Law <law@redhat.com>
2162 * reload1.c (alter_reg): Add missing curly braces.
2164 2008-09-29 Michael J. Eager <eager@eagercon.com>
2166 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2168 * config/rs6000/rs6000.c (rs6000_override_options): Move
2169 rs6000_init_hard_regno_mode_ok after all options changed.
2170 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2171 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2172 -msimple-fpu flags. Add warning messages if single FP not configured.
2173 (rs6000_file_start): Output gnu_attribute for single-float.
2174 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2175 (rs6000_legitimize_address): Likewise.
2176 (rs6000_legitimize_reload_address): Likewise.
2177 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2178 TARGET_SINGLE_FLOAT.
2179 (function_arg_advance): Likewise (partial conversion).
2180 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2181 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2182 TARGET_SINGLE_FLOAT.
2183 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2184 (rs6000_emit_prologue): Likewise.
2185 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2186 TARGET_SINGLE_FLOAT.
2187 (rs6000_libcall_value): Likewise.
2188 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2189 (TARGET_DOUBLE_FLOAT): New default to 1
2190 (TARGET_SIMPLE_FPU): New default to 0
2191 (TARGET_SINGLE_FPU): New default to 0
2192 (TARGET_SINGLE_FLOAT_MODE): New.
2193 (TARGET_DOUBLE_FLOAT_MODE): New.
2194 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2195 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2197 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2198 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2199 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2200 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2201 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2202 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2203 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2204 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2205 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2206 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2207 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2208 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2209 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2210 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2211 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2212 cmptf_internal1, *cmptf_internal2): Condition on
2213 TARGET_DOUBLE_FLOAT.
2214 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2215 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2216 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2217 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2218 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2219 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2220 TARGET_SINGLE_FLOAT.
2221 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2222 * config/rs6000/rs6000.opt (-msingle-float): New.
2223 (-mdouble-float): New.
2224 (-msimple-fpu): New.
2225 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2226 -msingle-float, -mdouble-float, -msimple-fpu options.
2227 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2228 _SOFT_DOUBLE for -msingle-float.
2229 * config.gcc: New config for target=powerpc-xilinx-eabi.
2231 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
2233 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
2234 have exit and entry.
2235 (new_scop): Take entry and exit edge to define new SCoP.
2236 (sd_region_p): New structure used during SCoP detection.
2237 (move_scops): Delete.
2238 (move_sd_regions): New.
2239 (scopdet_info): Change the definition from edges back to basic_blocks.
2240 (scopdet_edge_info): Work on basic_blocks and rename to
2241 scopdet_basic_block_info.
2242 (split_difficult_bb): At the moment removed. We should later
2243 add it at another place.
2244 (build_scops_1): Work on basic_blocks.
2245 (bb_in_sd_region): New.
2246 (find_single_entry_edge): New.
2247 (find_single_exit_edge): New.
2248 (create_single_entry_edge): New.
2249 (sd_region_without_exit): New.
2250 (create_single_exit_edge): New.
2251 (unmark_exit_edges): New.
2252 (mark_exit_edges): New.
2253 (create_sese_edges): New.
2254 (build_graphite_scops): New.
2255 (build_scops): Make SCoPs SESE.
2256 (limit_scops): Use the new functions.
2258 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
2260 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2262 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2265 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2266 address to a register before taking the lower part.
2268 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
2270 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2273 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2274 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
2277 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2278 the newly created variable.
2279 Create a VECTOR_CST of all 1s for vector types.
2281 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2284 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
2286 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2288 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2289 order to convert between modes.
2290 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2292 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
2294 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2297 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
2300 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2304 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
2306 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2307 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2308 them to yield false with MIPS16.
2310 2008-09-26 Jakub Jelinek <jakub@redhat.com>
2313 * dwarf2out.c (tls_mem_loc_descriptor): New function.
2314 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
2315 mem_loc_descriptor failed. Accept UNSPEC.
2316 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
2317 fail if one of the loc_descriptor calls for pieces failed.
2318 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2319 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
2320 if loc_descriptor_from_tree_1 on offset failed.
2323 * opts.c (common_handle_option): Don't call print_specific_help with
2324 CL_SAVE as first argument.
2326 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
2327 Steve Ellcey <sje@cup.hp.com>
2329 * configure: Regenerate for new libtool.
2330 * aclocal.m4: Ditto.
2332 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
2334 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2335 alias set on MEM when saving stack pointer.
2336 * config/rs6000/rs6000.md (allocate_stack): Likewise
2338 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
2340 PR tree-optimization/37574
2341 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2342 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2343 instead of vector_type for constants. Take computation out of loop.
2344 (vect_get_vec_def_for_operand): Use only vectype for constant case,
2345 and use only vector_type for invariant case.
2346 (get_initial_def_for_reduction): Use vectype instead of vector_type.
2348 2008-09-25 Jakub Jelinek <jakub@redhat.com>
2351 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2352 the decl is a VAR_DECL or FUNCTION_DECL.
2354 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2357 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2358 (mark_ref_live, mark_ref_dead): Use them.
2359 (def_conflicts_with_inputs_p): Remove.
2360 (mark_early_clobbers): New function.
2361 (process_bb_node_lives): Call preprocess_constraints and
2362 mark_early_clobbers.
2364 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2366 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2369 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2370 (ira_compress_allocno_live_ranges): New prototype.
2372 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2373 (coalesced_allocnos_living_at_program_points): New.
2374 (coalesced_allocnos_live_at_points_p,
2375 set_coalesced_allocnos_live_points): New functions.
2376 (coalesce_spill_slots): Rewrite.
2378 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2379 ira_compress_allocno_live_ranges): New functions.
2381 * ira-build.c (ira_flattening): Call
2382 ira_compress_allocno_live_ranges.
2385 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
2387 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2390 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
2392 * combine.c (make_compound_operation): Handle the 'E' format.
2393 (count_rtxs): Likewise.
2394 (update_table_tick): Likewise.
2395 (get_last_value_validate): Likewise.
2397 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
2399 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2401 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2403 * matrix-reorg.c (transform_allocation_sites): Initializers
2404 added to avoid the warning.
2406 2008-09-25 Martin Jambor <mjambor@suse.cz>
2408 * cgraph.c (free_nodes): New variable.
2409 (NEXT_FREE_NODE): New macro.
2410 (cgraph_create_node): Reuse nodes from the free list. Do not
2411 update uid if doing so.
2412 (cgraph_remove_node): Add the node to the free list.
2414 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
2416 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2418 2008-09-24 Richard Henderson <rth@redhat.com>
2420 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2421 * unwind-dw2.c (execute_stack_op): Handle it.
2423 2008-09-24 David Edelsohn <edelsohn@gnu.org>
2426 2008-09-24 Michael J. Eager <eager@eagercon.com>
2428 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
2430 * c-common.c (fname_decl): New location argument.
2431 * c-common.h (fname_decl): Same.
2432 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2434 (c_parser_typeof_specifier): Same.
2435 (c_parser_parms_list_declarator): Same.
2436 (c_parser_asm_string_literal): Same.
2437 (c_parser_compound_statement_nostart): Same.
2438 (c_parser_label): Same.
2439 (c_parser_do_statement): Same.
2440 (c_parser_asm_statement): Same.
2441 (c_parser_unary_expression): Same.
2442 (c_parser_sizeof_expression): Same.
2443 (c_parser_postfix_expression): Same.
2444 (c_parser_pragma): Same.
2445 (c_parser_omp_clause_collapse): Same.
2446 (c_parser_omp_clause_num_threads): Same.
2447 (c_parser_omp_clause_schedule): Same.
2448 (c_parser_omp_all_clauses): Same.
2449 (c_parser_omp_sections_scope): Same.
2450 (c_parser_omp_for_loop): Same. Pass condition's location to
2451 c_objc_common_truthvalue_conversion.
2452 (c_parser_enum_specifier): Remove comment.
2454 2008-09-24 Michael J. Eager <eager@eagercon.com>
2456 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2458 * config/rs6000/rs6000.c (rs6000_override_options): Move
2459 rs6000_init_hard_regno_mode_ok after all options changed.
2460 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2461 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2462 -msimple-fpu flags. Add warning messages if single FP not configured.
2463 (rs6000_file_start): Output gnu_attribute for single-float.
2464 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2465 (rs6000_legitimize_address): Likewise.
2466 (rs6000_legitimize_reload_address): Likewise.
2467 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2468 TARGET_SINGLE_FLOAT.
2469 (function_arg_advance): Likewise.
2470 (function_arg): Likewise.
2471 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2472 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2473 TARGET_SINGLE_FLOAT.
2474 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2475 (rs6000_emit_prologue): Likewise.
2476 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2477 TARGET_SINGLE_FLOAT.
2478 (rs6000_libcall_value): Likewise.
2479 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2480 (TARGET_DOUBLE_FLOAT): New default to 1
2481 (TARGET_SIMPLE_FPU): New default to 0
2482 (TARGET_SINGLE_FPU): New default to 0
2483 (TARGET_SINGLE_FLOAT_MODE): New.
2484 (TARGET_DOUBLE_FLOAT_MODE): New.
2485 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2486 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2488 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2489 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2490 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2491 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2492 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2493 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2494 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2495 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2496 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2497 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2498 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2499 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2500 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2501 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2502 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2503 cmptf_internal1, *cmptf_internal2): Condition on
2504 TARGET_DOUBLE_FLOAT.
2505 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2506 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2507 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2508 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2509 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2510 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2511 TARGET_SINGLE_FLOAT.
2512 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2513 * config/rs6000/rs6000.opt (-msingle-float): New.
2514 (-mdouble-float): New.
2515 (-msimple-fpu): New.
2516 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2517 -msingle-float, -mdouble-float, -msimple-fpu options.
2518 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2519 _SOFT_DOUBLE for -msingle-float.
2520 * config.gcc: New config for target=powerpc-xilinx-eabi.
2522 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2524 * config/sparc/constraints.md: New file.
2525 * config/sparc/sparc.md: Include it.
2526 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2527 (sparc_extra_constraint_check): Delete.
2528 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2529 (memory_ok_for_ldd): New predicate.
2530 (sparc_extra_constraint_check): Delete.
2531 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2532 (CONST_OK_FOR_LETTER_P): Likewise.
2533 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2534 (EXTRA_CONSTRAINT): Likewise.
2536 2008-08-23 Steve Ellcey <sje@cup.hp.com>
2538 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2540 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2542 * alias.c (find_base_value): Use FIND_BASE_TERM.
2543 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2545 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2547 * config/i386/i386.c: Include cselib.h.
2548 (ix86_pic_register_p): New function.
2549 (ix86_delegitimize_address): Use it to check for the PIC register.
2551 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2553 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2554 * config/i386/i386.c (ix86_find_base_term): Don't check for
2555 SYMBOL_REF and LABEL_REF.
2557 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2559 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2560 constant PLUS in a CONST.
2562 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
2564 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
2565 check for sibcall support for w64.
2567 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2569 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2571 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
2573 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2574 parser_build_binary_op.
2575 * c-decl.c (build_enumerator): Pass location to build_binary_op.
2576 * c-typeck.c (build_array_ref): Same.
2577 (parser_build_unary_op): New location argument.
2578 (pointer_diff): Pass location to build_binary_op,
2579 c_objc_common_truthvalue_conversion.
2580 (build_modify_expr): Same.
2581 (build_unary_op): New location argument.
2582 (build_binary_op): New location argument.
2583 (c_objc_common_truthvalue_conversion): Pass location to
2584 c_*common_truthvalue_conversion.
2585 * c-convert.c (convert): Same.
2586 * c-common.c (binary_op_error): New location argument.
2587 (pointer_int_sum): Pass location to build_binary_op.
2588 (c_common_truthvalue_conversion): New location argument.
2589 (warn_for_sign_compare): Same.
2590 * c-common.h: Add location argument to c_common_truthvalue_conversion,
2591 binary_op_error, build_binary_op, warn_for_sign_compare.
2592 * c-parser.c (c_parser_condition): Pass location to
2593 c_*common_truthvalue_conversion.
2594 (c_parser_conditional_expression): Save condition's location and pass
2596 (c_parser_binary_expression): Same, but for the binary operator's
2598 (c_parser_omp_for_loop): Pass location to
2599 c_objc_common_truthvalue_conversion.
2601 2008-09-23 Martin Jambor <mjambor@suse.cz>
2603 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2604 (cgraph_node_remove_callees): New temporary f. Hold the next item
2606 (cgraph_node_remove_callers): Likewise.
2608 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2609 (ipa_node_removal_hook): Likewise.
2611 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2612 gimple_call_copy_skip_args and moved to the gimple_call section.
2613 * gimple.c (gimple_copy_call_skip_args): Renamed to
2614 gimple_call_copy_skip_args. Changed al users.
2616 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
2618 * ira-color.c (start_allocno_priorities): Rename to
2619 setup_allocno_priorities. Use costs and
2620 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2621 range lengths. Get rid off doubles.
2622 (ira_fast_allocations): Call start_allocno_priorities.
2624 2008-09-22 David Daney <ddaney@avtrex.com>
2627 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2628 register if TARGET_LONG_CALLS.
2630 2008-09-22 Richard Guenther <rguenther@suse.de>
2632 PR tree-optimization/37145
2633 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2634 value-numbering union accesses with their offset and size only.
2635 (visit_reference_op_load): Fix simplification of inserted conversions.
2636 * tree-ssa-pre.c (find_or_generate_expression): Do not
2637 recursively generate expressions if running FRE.
2639 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
2641 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2642 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2645 2008-09-22 Richard Guenther <rguenther@suse.de>
2647 PR tree-optimization/37145
2648 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2649 (phi_translate_1): Constant fold references.
2651 2008-09-22 Ira Rosen <irar@il.ibm.com>
2653 PR tree-optimization/37482
2654 * tree-vectorizer.h (struct _slp_instance): Add new field.
2655 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2656 (get_earlier_stmt): New function.
2657 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2659 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2660 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2661 asserts that GSI points to the scalar statement being vectorized.
2662 Set new statement location according to GSI.
2663 (vect_schedule_slp_instance): Use GSI of
2664 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2666 2008-09-21 Jan Hubicka <jh@suse.cz>
2668 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2669 (ipcp_insert_stage): Update dead_nodes bitmap.
2671 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
2674 * config/i386/t-cygming (SHLIB_LC): Remove.
2675 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2676 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2678 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
2682 * final.c (mark_symbol_ref_as_used): New helper function.
2683 (output_operand): Instead of just looking inside MEMs for
2684 SYMBOL_REFs, use new helper function and for_each_rtx.
2685 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2686 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
2687 Make head comment more general.
2688 * config/darwin.c (machopic_output_indirection): Handle weak
2689 references here, like in assemble_external.
2691 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
2693 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2694 (sparc_emit_float_lib_cmp): Change return type.
2695 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2696 (gen_compare_operator): New function.
2697 (sparc_emit_float_lib_cmp): Return the new operator to be used in
2698 the comparison sequence. Minor tweaks.
2699 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2700 that the final operator and the result of sparc_emit_float_lib_cmp
2701 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2702 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2703 buneq, bunge, bunle, bltgt): Assert that the final operator and the
2704 result of sparc_emit_float_lib_cmp match for software TFmode.
2705 (movqicc, movhicc, movsicc, movdicc): Merge into...
2706 (mov<I:mode>cc): ...this.
2707 (movsfcc, movdfcc, movtfcc): Merge into...
2708 (mov<F:mode>cc): ...this.
2709 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2711 (mov<I:mode>_cc_v9): ...this.
2712 (movdi_cc_sp64_trunc): Delete.
2713 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2714 movdi_cc_reg_sp64): Merge into...
2715 (mov<I:mode>_cc_reg_sp64): ...this.
2716 (movsf_cc_sp64): Rename into...
2717 (movsf_cc_v9): ...this.
2718 (movdf_cc_sp64): Rename into...
2719 (movdf_cc_v9): ...this.
2720 (movtf_cc_hq_sp64): Rename into...
2721 (movtf_cc_hq_v9): ...this.
2722 (movtf_cc_sp64): Rename into...
2723 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
2725 2008-09-21 Diego Novillo <dnovillo@google.com>
2727 * doc/gccint.texi: Include generic.texi and gimple.texi.
2729 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2730 (GIMPLE): Move to gimple.texi.
2731 (Annotations): Remove references to to stmt_ann_t and
2733 (SSA Operands): Rename from 'Statement Operands'.
2734 * doc/generic.texi: New.
2735 * doc/gimple.texi: New.
2736 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2737 * Makefile.in (TEXI_GCCINT_FILES):
2738 * gimple.c (gimple_copy_call_skip_args): Rename from
2739 giple_copy_call_skip_args. Update all users.
2740 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2742 2008-09-21 Ira Rosen <irar@il.ibm.com>
2744 PR tree-optimization/37539
2745 * tree-vect-transform.c (vect_transform_strided_load): Save vector
2746 statement in related statement field only for the first load of the
2747 group of loads with the same data reference.
2749 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
2751 * config/mips/mips.h (TUNE_OCTEON): New macro.
2752 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2753 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2754 * config/mips/octeon.md: New file.
2755 * config/mips/mips.md: Include octeon.md. Restore
2756 semi-alphabetical order of include files.
2758 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
2761 * config/i386/i386.md (*jcc_fused_1): Removed.
2762 (*jcc_fused_2): Likewise.
2763 (*jcc_fused_3): Likewise.
2764 (*jcc_fused_4): Likewise.
2766 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
2768 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2769 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2770 * target.h (gcc_target): Add ira_cover_classes.
2771 * ira.c: Remove IRA_COVER_CLASSES guards.
2772 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2773 instead of IRA_COVER_CLASSES.
2774 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2775 (setup_class_translate): Likewise.
2776 (setup_reg_class_intersect_union): Likewise.
2777 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2778 test of targetm.ira_cover_classes.
2779 * opts.c (decode_options): Use targetm.ira_cover_classes instead
2780 of IRA_COVER_CLASSES.
2781 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2782 (TARGET_INITIALIZER): Include it.
2783 * targhooks.h (default_ira_cover_classes): Declare.
2784 * targhooks.c (default_ira_cover_classes): New function.
2786 2008-09-19 Bob Wilson <bob.wilson@acm.org>
2788 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2790 2008-09-19 Ian Lance Taylor <iant@google.com>
2792 * varasm.c (narrowing_initializer_constant_valid_p): Return
2793 NULL_TREE if ENDTYPE is not an integer.
2795 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2798 * tree-ssa.c (execute_update_addresses_taken): Also update
2799 DECL_GIMPLE_REG_P for vector and complex types.
2801 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
2802 Jan Hubicka <jh@suse.cz>
2805 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2806 empty before freeing them.
2807 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2809 2008-09-18 Bob Wilson <bob.wilson@acm.org>
2811 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2812 * config/xtensa/predicates.md (tls_symbol_operand): New.
2813 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2814 (TARGET_CANNOT_FORCE_MEM): Define.
2815 (xtensa_tls_symbol_p): New.
2816 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2817 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2818 (xtensa_tls_module_base): New.
2819 (xtensa_call_tls_desc): New.
2820 (xtensa_legitimize_tls_address): New.
2821 (xtensa_legitimize_address): Handle TLS symbols.
2822 (xtensa_tls_referenced_p_1): New.
2823 (xtensa_tls_referenced_p): New.
2824 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2826 (XTENSA_BUILTIN_THREAD_POINTER): New.
2827 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2828 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2829 builtin. Add declarations for __builtin_thread_pointer and
2830 __builtin_set_thread_pointer.
2831 (xtensa_fold_builtin): Recognize new builtins.
2832 (xtensa_expand_builtin): Expand new builtins.
2833 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2834 (TARGET_THREADPTR): Define.
2835 (HAVE_AS_TLS): Define default value.
2836 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2837 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2838 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2839 (UNSPECV_SET_TP): New.
2840 (sym_TPOFF, sym_DTPOFF): New.
2841 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2842 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2843 * configure: Regenerated.
2845 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
2848 * config/ia64/ia64.c (ia64_optimization_options): Move
2849 checking and setting flag_schedule_insns_after_reload and
2850 ia64_flag_schedule_insns2 back to ...
2851 (ia64_override_options): Here.
2853 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2856 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2857 zero extend count after the correction to it is done.
2858 (doloop_optimize): Update call to doloop_modify, don't zero extend
2861 2008-09-18 Martin Jambor <mjambor@suse.cz>
2863 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2865 * ipa-prop.c: Correct comments.
2866 * ipa-prop.h: Likewise.
2868 2008-09-18 Jan Hubicka <jh@suse.cz>
2871 * ipa-reference.c (ipa_reference_local_vars_info_d,
2872 ipa_reference_global_vars_info_d,
2873 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2874 ipa_reference_vars_info_t): Move here from ipa-reference.h
2875 (node_duplication_hook_holder, node_removal_hook_holder): New.
2876 (get_reference_vars_info_from_cgraph): Rename to ...
2877 (get_reference_vars_info): ... this one, use cgraph uids.
2878 (get_local_reference_vars_info, get_global_reference_vars_info):
2879 Use cgraph instead of decl.
2880 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2882 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2883 ipa_reference_get_written_global,
2884 ipa_reference_get_not_written_global): Use cgraph argument.
2885 (check_call): Simplify avail check.
2886 (scan_stmt_for_static_refs): Update.
2887 (propagate_bits): Update.
2888 (merge_callee_local_info): Remove.
2889 (init_function_info): Use cgraph nodes.
2890 (clean_function_local_data): Break out from ...
2891 (clean_function): ... here.
2892 (copy_local_bitmap, copy_global_bitmap): New functions.
2893 (duplicate_node_data, remove_node_data): New functions.
2894 (generate_summary): Register hooks; use visibility instead of
2896 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2897 * ipa-reference.h (ipa_reference_local_vars_info_d,
2898 ipa_reference_global_vars_info_d,
2899 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2900 ipa_reference_vars_info_t): Move to ipa-reference.c
2901 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2903 (ipa_reference_get_read_global, ipa_reference_get_written_global,
2904 ipa_reference_get_not_read_global,
2905 ipa_reference_get_not_written_global): Update prototype.
2906 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2907 (init_state): Remove.
2908 (node_duplication_hook_holder, node_removal_hook_holder): New.
2909 (get_function_state, set_function_state): Use VECtor.
2910 (analyze_function): Check body availability.
2911 (add_new_function): Likewise.
2912 (duplicate_node_data, remove_node_data): New.
2913 (generate_summary): Register hooks; do not care about clones.
2914 (propafate): Do not care about clones; recursive functions are
2916 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2917 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2918 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2920 * tree-flow.h (function_ann_d): Remove reference_vars_info.
2921 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2922 Update call of ipa-reference accesors.
2924 2008-09-18 Simon Baldwin <simonb@google.com>
2926 * c-opts.c (c_common_handle_option): Add handling for
2927 -Wbuiltin-macro-redefined command line option.
2928 * c.opt: Added builtin-macro-redefined option.
2929 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2932 2008-09-18 Richard Guenther <rguenther@suse.de>
2934 PR tree-optimization/37258
2935 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2936 and signedness for integral types.
2937 (vn_phi_eq): Require compatible types.
2939 2008-09-18 Jakub Jelinek <jakub@redhat.com>
2942 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2943 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2945 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2946 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2947 ggc_free other TREE_LIST nodes from that chain.
2948 * function.c (instantiate_decls): Instantiate also DECL_RTL
2949 of vars in cfun->local_decls, free that list afterwards.
2951 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
2953 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2954 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2956 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2958 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2959 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2961 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2963 PR tree-optimization/37102
2964 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2965 from a node. Check to see if another PHI is dead.
2966 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
2967 remove real PHIs which have no uses.
2968 (rewrite_out_of_ssa): Call eliminate_useless_phis.
2970 2008-09-18 Richard Guenther <rguenther@suse.de>
2973 * tree-cfg.c (remove_useless_stmts_1): Remove
2974 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2976 2008-09-18 Nick Clifton <nickc@redhat.com>
2978 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2979 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2980 to frv_secondary_reload_class.
2981 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2982 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2983 (frv_secondary_reload_class): Omit unused parameter.
2984 (frv_secondary_reload): New function. Handle the case when
2985 secondary_reload_class() is called before the reload_(in|out)
2986 _optabs have been initialised.
2987 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2989 * config/frv/frv.md: Define an exclusion set between fr550_m0
2992 2008-09-18 Richard Guenther <rguenther@suse.de>
2994 PR tree-optimization/37456
2995 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2996 want to insert after ends a BB insert on the single fallthru
2999 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
3001 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
3002 Mention -march=z9-109, z9-ec and z10.
3004 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
3006 PR rtl-optimization/37544
3007 * regrename.c (maybe_mode_change): Exit early when copy_mode
3008 is narrower than orig_mode and narrower than new_mode.
3010 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
3013 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
3015 * sched-rgn.c (ref_counts): Remove.
3016 (insn_referenced): New static variable.
3017 (INSN_REF_COUNT): Remove.
3018 (sched_run_compute_dependencies): Use insn_referenced instead of
3020 (add_branch_dependences): Likewise. Delete dead assignment.
3022 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
3024 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
3025 consumer is an asm. Add comment why this is important.
3026 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
3027 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
3029 2008-09-17 Joseph Myers <joseph@codesourcery.com>
3031 * expr.c (emit_group_store): Do not shift before moving via a
3034 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
3036 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
3037 from aggregate to non-aggregate type if the bit pattern is not fully
3038 preserved afterwards.
3040 2008-09-17 Richard Guenther <rguenther@suse.de>
3042 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
3043 (verify_gimple_assign): ... this. Split into ...
3044 (verify_gimple_assign_unary): ... this,
3045 (verify_gimple_assign_binary): ... that,
3046 (verify_gimple_assign_single): ... and this.
3047 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
3048 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
3049 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
3050 (verify_types_in_gimple_reference): Be forgiving with
3052 (verify_gimple_phi): Deal with virtual operands.
3054 * tree.def (PREDICT_EXPR): Change to tcc_expression.
3056 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
3058 * tree.c (get_callee_fndecl): Don't call the language hook.
3059 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
3060 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
3061 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
3063 2008-09-17 Jakub Jelinek <jakub@redhat.com>
3065 * tree.c (protected_set_expr_location): Don't unnecessarily
3066 check for error_mark_node.
3068 2008-09-17 Art Haas <ahaas@impactweather.com>
3070 * ipa-reference.c (analyze_function): Declare step only if
3071 ENABLE_CHECKING is defined.
3073 2008-09-17 Jan Hubicka <jh@suse.cz>
3076 * tree.h (DECL_INLINE): remove.
3077 (DECL_DECLARED_INLINE_P): Update docs.
3078 (DECL_NO_INLINE_WARNING_P): new.
3079 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
3080 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
3082 2008-09-17 Jakub Jelinek <jakub@redhat.com>
3083 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3086 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
3089 2008-09-17 Jan Hubicka <jh@suse.cz>
3091 * ipa-reference.c (ipa_obstack): Remove.
3092 (local_info_obstack, global_info_obstack): New.
3093 (add_static_var): We now handle variables only.
3094 (mark_address_taken, mark_load, mark_store): New functions based on ...
3095 (check_operand): ... remove.
3096 (get_asm_stmt_operands): Rename to ...
3097 (check_asm_memory_clobber): ... this. Look only for memory clobber.
3098 (scan_stmt_for_static_refs): Rewrite.
3099 (scan_op_for_static_refs): Rename to ...
3100 (scan_initializer_for_static_refs): do not look for VAR_DECL
3101 initializers; stop recursion on types and decls.
3102 (ipa_init): Use proper obstacks.
3103 (analyze_variable): Use scan_initializer_for_static_refs.
3104 (init_function_info): Use local obstack.
3105 (analyze_function): Simplify.
3106 (add_new_function): We don't need visited_nodes obstack.
3107 (generate_summary): Use proper obstacks; cleanup after propagation.
3109 2008-09-17 Richard Guenther <rguenther@suse.de>
3112 PR tree-optimization/37491
3113 * alias.c (get_alias_set): Use the canonical type.
3114 * tree-vect-transform.c (vectorizable_store): Use the type of
3115 the lhs for the vector type. Adjust checking.
3116 (vectorizable_load): Adjust checking.
3118 2008-09-16 Jakub Jelinek <jakub@redhat.com>
3119 Adam Nemet <anemet@caviumnetworks.com>
3121 PR rtl-optimization/37483
3122 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
3123 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
3124 Rearrange code to better match the original comment. Check
3125 t_unconditional first. Improve comment.
3127 2008-09-16 Jakub Jelinek <jakub@redhat.com>
3130 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
3131 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
3134 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
3135 GIMPLE_TRY if cleanup sequence is empty.
3137 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
3140 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
3141 eliminate IV if the cost are the same.
3143 2008-09-16 Richard Guenther <rguenther@suse.de>
3146 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
3149 2008-09-16 Richard Guenther <rguenther@suse.de>
3151 PR tree-optimization/37508
3152 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
3154 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
3156 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
3158 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3160 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
3161 use gen_floatdidf2 directly.
3162 (floatunssidf2): Likewise.
3163 (floatsidf_ppc64_mfpgpr): Remove.
3164 (floatsidf_ppc64): Remove.
3165 (floatunssidf_ppc64): Remove.
3167 2008-09-15 Jakub Jelinek <jakub@redhat.com>
3169 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
3170 rather than update_cost_queue.
3172 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
3173 in every call starting with the second one, instead of only when
3174 alias_bitmap_obstack.elements != NULL.
3176 * tree-predcom.c (filter_suitable_components): Free all refs in
3177 act->refs vector before calling release_component.
3178 (add_ref_to_chain): Free ref if not adding it to chain->refs.
3180 * tree-data-ref.c (free_subscripts): Free all subscript objects.
3182 * tree-loop-linear.c (linear_transform_loops): Initialize
3183 lambda_obstack only after calling perfect_loop_nest_depth.
3184 Goto free_and_continue instead of just continue for later failures.
3187 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
3190 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
3192 2008-09-14 Andreas Schwab <schwab@suse.de>
3194 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
3196 2008-09-14 Jan Hubicka <jh@suse.cz>
3198 * invoke.texi (-fconserve-stack): Document.
3199 * opts.c (decode_options): Handle conserve_stack.
3200 * common.opt (fconvserve_stack): New.
3202 2008-09-14 David Edelsohn <edelsohn@gnu.org>
3204 * config.host: Add x-aix to host_xmake_file.
3205 * config/rs6000/t-aix52: Do not override LDFLAGS.
3206 * config/rs6000/x-aix: New file.
3208 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
3214 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
3215 is not recognized as a valid register usage. Allow REG_X to be used
3217 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
3218 forces a reload when using a base register.
3220 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
3222 * config/i386/cygming-crtend.c (register_frame_ctor): If
3223 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
3224 directly with atexit.
3225 (deregister_frame_ctor): Rename to ...
3226 (deregister_frame_dtor): Use to call __gcc_deregister_frame
3227 if !DEFAULT_USE_CXA_ATEXIT.
3229 2008-09-13 Jan Hubicka <jh@suse.cz>
3231 * cgraph.c: Include value-prof.h
3232 * Makefile.in (cgraph.o): Add value-prof.h dependency.
3234 2008-09-13 Jan Hubicka <jh@suse.cz>
3237 * tree-profile.c (add_abnormal_goto_call_edges): New function.
3238 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3239 tree_gen_one_value_profiler, tree_gen_average_profiler,
3240 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
3242 2008-09-13 Jan Hubicka <jh@suse.cz>
3244 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
3245 too many bytes on misalligned blocks.
3247 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3249 * doc/cfg.texi: Fix some typos.
3250 * doc/extend.texi: Likewise.
3251 * doc/install.texi: Likewise.
3252 * doc/invoke.texi: Likewise.
3253 * doc/rtl.texi: Likewise.
3254 * doc/tree-ssa.texi: Likewise.
3256 2008-09-13 Richard Guenther <rguenther@suse.de>
3259 * tree-nested.c (finalize_nesting_tree_1): Generate valid
3260 gimple stores for memory rhs.
3262 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
3264 PR rtl-optimization/37489
3265 * cse.c (fold_rtx): Don't return const_true_rtx for float
3266 compare if FLOAT_STORE_FLAG_VALUE is undefined.
3268 2008-09-13 Jan Hubicka <jh@suse.cz>
3270 PR tree-optimization/37392
3271 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
3273 2008-09-13 Martin Jambor <mjambor@suse.cz>
3274 Jan Hubicka <jh@suse.cz>
3276 * cgraph.c (free_edges): New variable.
3277 (NEXT_FREE_EDGE): New macro.
3278 (cgraph_free_edge): New function.
3279 (cgraph_remove_edge): Call cgraph_remove_edge_1.
3280 (cgraph_node_remove_callees): Likewise.
3281 (cgraph_node_remove_callers): Likewise.
3282 (cgraph_create_edge): Reuse edges from the free list. Do not
3283 update uid if doing so.
3284 (cgraph_remove_*_hook): Add free call.
3286 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
3288 * ira-color.c (conflict_allocno_vec): Delete.
3289 (update_cost_queue_elem): New structure.
3290 (update_cost_queue): New variable.
3291 (update_cost_queue_tail): Likewise.
3292 (update_cost_queue_elems): Likewise.
3293 (allocno_update_cost_check): Delete.
3294 (initiate_cost_update): Allocate update_cost_queue_elems
3295 instead of allocno_update_cost_check.
3296 (finish_cost_update): Update the free()s accordingly.
3297 (start_update_cost): New function.
3298 (queue_update_cost): Likewise.
3299 (get_next_update_cost): Likewise.
3300 (update_copy_costs_1): Inline into...
3301 (update_copy_costs): ...here. Use a queue instead of recursive calls.
3302 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
3303 once we've established they are equal. Don't allocate update
3304 costs if there is nothing to add to them.
3305 (update_conflict_hard_regno_costs): Remove ALLOCNO and
3306 DIVISOR arguments. Use a queue instead of recursive calls;
3307 process all the allocnos in the initial queue, rather than
3309 (assign_hard_reg): Use queue_update_cost instead of
3310 conflict_allocno_vec. Queue coalesced allocnos instead
3311 of calling update_conflict_hard_regno_costs for each one.
3312 Just call update_conflict_hard_regno_costs once for the
3314 (ira_color): Remove conflict_allocno_vec handling.
3316 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3318 PR tree-optimization/37484
3319 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
3320 (save_var_name): Same.
3321 (initialize_cloog_names): Same.
3322 (initialize_cloog_names): Same.
3324 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3326 * tree-scalar-evolution.c (set_instantiated_value): Set
3329 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
3333 * ira-build.c (common_loop_tree_node_dominator): Remove.
3334 (copy_live_ranges_to_removed_store_destinations): New function.
3335 (regno_top_level_allocno_map): Move to top level from ...
3336 (ira_flattening): ... here. Use
3337 copy_live_ranges_to_removed_store_destinations.
3339 * ira-emit.c (generate_edge_moves): Fix a comment.
3341 2008-09-12 Anatoly Sokolov <aesok@post.ru>
3344 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
3345 scratch register after 'set' pattern.
3347 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3349 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
3350 information passed to mark_reg_pointer.
3351 * explow.c (force_reg): Likewise.
3353 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3355 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3356 when building for the celledp architecture.
3358 2008-09-12 Richard Guenther <rguenther@suse.de>
3360 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3362 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
3364 PR rtl-optimization/37424
3365 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3366 the regnos instead of the addresses.
3368 2008-09-11 Janis Johnson <janis187@us.ibm.com>
3370 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3372 2008-09-11 Richard Guenther <rguenther@suse.de>
3374 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3375 entering the weaker equivalence recording.
3377 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3379 2008-09-11 Jeff Law <law@redhat.com>
3381 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3382 by assign_stack_local on the IRA path for stack slot sharing
3383 as well as the non-IRA path.
3385 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
3387 * config/i386/i386.h: Fix whitespace issues.
3389 2008-09-11 Martin Jambor <mjambor@suse.cz>
3391 * ipa-prop.h (struct ipa_param_flags): Removed.
3392 (struct ipa_param_descriptor): New structure.
3393 (struct ipa_node_params): ipcp_lattices, param_decls and
3394 param_flags moved to ipa_param_description.
3395 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3396 descriptors. Renamed all users.
3397 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3398 changed to access descriptors. Renamed all users.
3399 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3400 to access descriptors. Renamed all users.
3401 * ipa-cp.c (ipcp_init_cloned_node): Call
3402 ipa_initialize_node_params instead of ipa_count_formal_params and
3403 ipa_create_param_decls_array.
3404 (ipcp_analyze_node): Likewise.
3405 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3406 descriptors. Renamed all users.
3407 (ipcp_initialize_node_lattices): Remove allocation.
3408 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3409 ipa_initialize_node_params instead of ipa_count_formal_params and
3410 ipa_create_param_decls_array.
3411 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3412 ipa_populate_param_decls, made static, added parameter info,
3413 renamed mt to node, removed allocation, changed to use
3415 (ipa_count_formal_params): Made static, added parameter info,
3417 (ipa_initialize_node_params): New function.
3418 (ipa_check_stmt_modifications): Changed to use descriptors.
3419 (ipa_detect_param_modifications): Removed allocation, changed to
3421 (ipa_note_param_call): Changed to use descriptors.
3422 (ipa_analyze_params_uses): Removed allocation.
3423 (ipa_free_node_params_substructures): Changed to use descriptors.
3424 (ipa_edge_duplication_hook): Use the unused attribute.
3425 (ipa_node_duplication_hook): Use the unused attribute, changed to
3426 use descriptors, changed to duplicate descriptors.
3428 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3429 changed all callers. Call ipa_propagate_indirect_call_infos if doing
3430 indirect inlining. Made static.
3431 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
3432 functions called only once.
3433 (cgraph_decide_recursive_inlining): Don't call