1 2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
3 * fwprop.c (fwprop_done): Call df_remove_problem.
5 2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
8 * tree-scalar-evolution.c (instantiate_scev_1): Return
9 chrec_dont_know for VL_EXP_CLASS_P.
11 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
13 * reg-stack.c (reg_to_stack): Add missing braces in memset
16 2008-11-06 Andrew Stubbs <ams@codesourcery.com>
18 * config/arm/bpabi.h (PROFILE_HOOK): New undef.
19 (NO_PROFILE_COUNTERS): New define.
21 2008-11-06 David Edelsohn <edelsohn@gnu.org>
24 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
26 2008-11-06 Kazu Hirata <kazu@codesourcery.com>
29 * config/sparc/constraints.md (D): New.
30 * config/sparc/predicates.md (const_double_or_vector_operand): New.
31 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
33 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
34 Use the 'D' constraint in addition to 'F' in some alternatives.
35 (DF splitter): Generalize for V64mode.
36 * doc/md.texi (SPARC): Document the 'D' constraint.
38 2008-11-06 Uros Bizjak <ubizjak@gmail.com>
40 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
42 2008-11-06 Ben Elliston <bje@au.ibm.com>
44 * gcc.c: Remove ancient comment about a bug in Sun cc.
46 2008-11-05 Janis Johnson <janis187@us.ibm.com>
48 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
50 2008-11-06 Ben Elliston <bje@au.ibm.com>
52 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
54 2008-11-06 Ben Elliston <bje@au.ibm.com>
56 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
59 2008-11-05 Hans-Peter Nilsson <hp@axis.com>
62 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
65 2008-11-05 Martin Jambor <mjambor@suse.cz>
68 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
69 pointer arithmetics into array_ref if the array is accessed
70 through an indirect_ref.
72 2008-11-05 Richard Guenther <rguenther@suse.de>
75 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
76 qualified pointer conversion before stripping qualifiers.
77 * gimplify.c (create_tmp_from_val): Use correctly qualified type.
78 * tree-flow.h (may_propagate_address_into_dereference): Declare.
79 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
82 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
83 properly canonicalize binary ops.
84 (forward_propagate_addr_expr_1): Use
85 may_propagate_address_into_dereference.
87 2008-11-05 Uros Bizjak <ubizjak@gmail.com>
90 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
91 Initialize uninitialized input registers with a NaN.
93 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
97 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
99 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
103 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
104 exits and conditions.
105 * testsuite/gcc.dg/graphite/pr37943.c: New.
107 2008-11-04 Jakub Jelinek <jakub@redhat.com>
108 Andrew Pinski <andrew_pinski@playstation.sony.com>
111 * c-common.c (warn_for_sign_compare): For complex result_type
112 use component's type.
114 2008-11-04 Jakub Jelinek <jakuB@redhat.com>
116 * print-tree.c (print_node): Use code instead of TREE_CODE (node).
118 * print-tree.c (print_node): Don't print DECL_INITIAL
122 * c-common.c (parse_optimize_options): Save and restore
123 flag_strict_aliasing around decode_options call.
125 2008-11-04 Uros Bizjak <ubizjak@gmail.com>
127 * config/i386/driver-i386.c (enum vendor_signatures): New enum.
128 (host_detect_local_cpu): Use it instead of casted strings to
129 compare vendor signatures.
131 2008-11-03 Mikael Pettersson <mikpe@it.uu.se>
134 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
135 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
137 2008-11-03 Catherine Moore <clm@codesourcery.com>
139 * config/mips.c (mips_conditional_register_usage): Handle the
140 DSP control register.
141 * doc/extend.texi: Document the DSP control register.
143 2008-11-03 Steve Ellcey <sje@cup.hp.com>
144 Jakub Jelinek <jakub@redhat.com>
146 * omp-low.c (expand_omp_for_generic): If iter_type has different
147 precision than type and type is a pointer type, cast n1 and n2
148 first to an integer type with the same precision as pointers
149 and only afterwards to iter_type.
151 2008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
153 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
154 (UNSPEC_GOTSYM_OFF): New unspec.
155 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
156 (pic_add_dot_plus_eight): Likewise.
157 (tls_load_dot_plus_eight): Likewise. Update peephole2.
158 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
159 UNSPEC_PIC_BASE operands.
160 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
161 (arm_output_addr_const_extra): Handle it.
163 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
165 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
166 integer class to full integer class if the offset is not word-aligned.
168 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
171 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
173 (doloop_optimize): Update call to doloop_modify.
175 2008-11-03 Eric Botcazou <ebotcazou@adacore.com>
177 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
179 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
182 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
183 gcc_cv_as_cfi_directive.
184 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
185 merging read-only and read-write sections or assembler emits
186 read-write .eh_frame sections.
187 * configure: Regenerate.
189 2008-11-03 Nathan Froyd <froydnj@codesourcery.com>
192 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
194 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
196 (rs6000_emit_prologue): Invert logic.
197 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
198 (reg:P 11) instead of match_operand.
199 (*save_fpregs_<mode>): Likewise.
200 (*restore_gpregs_<mode>): Likewise.
201 (*return_and_restore_gpregs_<mode>): Likewise.
202 (*return_and_restore_fpregs_<mode>): Likewise.
203 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
204 (reg:P 11) insted of match_operand.
205 (*restore_gpregs_spe): Likewise.
206 (*return_and_restore_gpregs_spe): Likewise.
208 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
210 PR tree-optimization/37684
211 * gcc.dg/graphite/pr37684.c: New.
212 * graphite.c (exclude_component_ref): New.
213 (is_simple_operand): Call exclude_component_ref.
215 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
217 PR tree-optimization/36908
218 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
219 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
220 (number_of_rw_in_partition): New.
221 (partition_contains_all_rw): New.
222 (ldist_gen): Do not distribute when one of the partitions
223 contains all the memory operations.
225 2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
227 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
228 EDGE_IRREDUCIBLE_LOOP.
230 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
232 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
233 where we have one entry point in the loop which isn't the head.
235 2008-11-03 Richard Guenther <rguenther@suse.de>
238 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
240 2008-11-03 Jakub Jelinek <jakub@redhat.com>
243 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
244 for ipa and simple ipa passes.
246 2008-11-02 Richard Guenther <rguenther@suse.de>
248 PR tree-optimization/37542
249 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
250 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
251 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
252 (vn_nary_op_insert_stmt): Likewise.
253 (visit_use): Likewise.
255 2008-11-02 Anatoly Sokolov <aesok@post.ru>
257 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
259 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
260 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
261 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
262 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
263 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
264 peephole2's): Replace unspec with rotate.
265 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
267 2008-11-02 Richard Guenther <rguenther@suse.de>
269 PR tree-optimization/37991
270 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
271 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
272 (set_ssa_val_to): Print if the value changed.
273 (simplify_binary_expression): Strip useless conversions.
275 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
278 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
281 2008-11-01 Richard Guenther <rguenther@suse.de>
284 * builtins.c (fold_builtin_strspn): Return a size_t.
285 (fold_builtin_strcspn): Likewise.
287 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
289 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
290 attribute for struct return convention.
292 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
294 * config/rs6000/crtsavres.asm: Really, really delete.
296 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
298 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
300 (rs6000_emit_prologue): Invert logic.
301 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
302 (reg:P 11) instead of match_operand.
303 (*save_fpregs_<mode>): Likewise.
304 (*restore_gpregs_<mode>): Likewise.
305 (*return_and_restore_gpregs_<mode>): Likewise.
306 (*return_and_restore_fpregs_<mode>): Likewise.
307 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
308 (reg:P 11) insted of match_operand.
309 (*restore_gpregs_spe): Likewise.
310 (*return_and_restore_gpregs_spe): Likewise.
312 2008-10-28 Luis Machado <luisgpm@br.ibm.com>
314 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
315 list of word switches that take args.
317 2008-10-30 Jakub Jelinek <jakub@redhat.com>
319 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
320 (s390_output_pool_entry): Call it through for_each_rtx.
323 * expr.c (store_constructor): For vectors, if target is a MEM, use
324 target's MEM_ALIAS_SET instead of elttype alias set.
326 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
329 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
332 2008-10-29 David Edelsohn <edelsohn@gnu.org>
335 * config/rs6000/predicates.md (word_offset_memref_operand):
336 Restructure code and look inside auto-inc/dec addresses.
338 2008-10-29 Steve Ellcey <sje@cup.hp.com>
341 * libgcov.c ( __gcov_indirect_call_profiler): Check
342 TARGET_VTABLE_USES_DESCRIPTORS.
344 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
346 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
347 (INITIAL_FRAME_POINTER_OFFSET): Remove.
348 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
349 offset if eliminating soft frame pointer.
350 * config/spu/spu.md (stack_protect_set, stack_protect_test)
351 (stack_protect_test_si): Add initial machine description
352 for Stack Smashing Protector
354 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
357 * c-common.c (min_precision): Move to...
358 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
359 * tree.h (tree_int_cst_min_precision): Declare.
360 * c-common.h (min_precision): Delete declaration.
361 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
362 multiplication of non-negative integer constants.
363 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
364 tree_int_cst_min_precision.
365 (finish_enum): Likewise.
367 2008-10-29 Joseph Myers <joseph@codesourcery.com>
370 * convert.c (convert_to_real): Do not optimize conversions of
371 binary arithmetic operations between binary and decimal
372 floating-point types. Consider mode of target type in determining
373 decimal type for arithmetic. Unless
374 flag_unsafe_math_optimizations, do not optimize binary conversions
375 where this may change rounding behavior.
376 * real.c (real_can_shorten_arithmetic): New.
377 * real.h (real_can_shorten_arithmetic): Declare.
379 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
381 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
382 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
383 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
385 (must_save_p): For some workarounds, interrupts need to clobber a
387 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
388 and LC1 for WA_05000257.
389 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
390 WA_05000283 and WA_05000315.
391 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
392 (movbi): Add alternative to set CC to 1; improve code for setting
394 (dummy_load): New pattern.
396 2008-10-29 Jakub Jelinek <jakub@redhat.com>
399 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
400 BLKmode for non-memory, convert using a wider MODE_INT mode
404 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
405 that haven't been removed yet.
407 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
409 * config/bfin/bfin.c (struct machine_function): New member
411 (bfin_expand_movmem): Set it when generating memcpy insns.
412 (n_regs_saved_by_prologue, expand_prologue_reg_save,
413 expand_epilogue_reg_restore): If we have hardware loops,
414 memcpy insns (indicated by has_loopreg_clobber) or function
415 calls, we need to save the loop registers.
417 2008-10-28 H.J. Lu <hongjiu.lu@intel.com>
419 * config/i386/i386.c (core2_cost): Fix typos in comments.
421 2008-10-28 Jakub Jelinek <jakub@redhat.com>
424 * combine.c (make_compound_operation): Don't call make_extraction with
426 (simplify_shift_const_1): Canonicalize count even if complement_p.
428 2008-10-28 Joseph Myers <joseph@codesourcery.com>
430 * convert.c (strip_float_extensions): Do not remove or introduce
431 conversions between binary and decimal floating-point types.
433 2008-10-28 Jakub Jelinek <jakub@redhat.com>
436 * fold-const.c (distribute_bit_expr): Convert common, left and
437 right arguments to type.
439 2008-10-28 Nick Clifton <nickc@redhat.com>
441 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
442 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
443 call_really_used_regs array rather than the call_used_regs array.
444 (mn10300_get_live_callee_saved_regs, expand_prologue,
445 expand_epilogue, output_tst): Likewise.
447 2008-10-27 Jakub Jelinek <jakub@redhat.com>
450 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
451 (df_get_entry_block_def_set): Neither here.
452 (df_get_regular_block_artificial_uses): Add EH_USES registers.
454 PR tree-optimization/37879
455 * predict.c (tree_estimate_probability): Check if last_stmt is
456 non-NULL before dereferencing it.
458 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
460 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
461 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
462 (ira_fast_allocation): Remove the prototype.
464 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
465 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
466 (color_pass): Modify the updated costs.
467 (ira_color): Rename to color. Make it static.
468 (ira_fast_allocation): Rename to fast_allocation. Make it static.
469 (ira_color): New function.
471 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
474 * ira-lives.c (last_call_num, allocno_saved_at_call): New
476 (set_allocno_live, clear_allocno_live, mark_ref_live,
477 mark_ref_dead): Invalidate corresponding element of
478 allocno_saved_at_call.
479 (process_bb_node_lives): Increment last_call_num. Setup
480 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
481 allocno was already saved.
482 (ira_create_allocno_live_ranges): Initiate last_call_num and
483 allocno_saved_at_call.
485 * ira-build.c (ira_create_allocno): Initiate
486 ALLOCNO_UPDATED_COVER_CLASS_COST.
487 (create_cap_allocno, propagate_allocno_info,
488 remove_unnecessary_allocnos): Remove setting updated costs.
489 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
491 * ira.c (ira): Don't call ira_fast_allocation.
493 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
496 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
499 * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
501 * ira-int.h (ira_hard_regno_cover_class): New.
503 * ira-lives.c (mark_reg_live, mark_reg_dead,
504 process_bb_node_lives): Use ira_hard_regno_cover_class.
506 * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
507 (setup_hard_regno_cover_class): New function.
508 (ira_init): Call setup_hard_regno_cover_class.
510 * ira-costs.c (cost_class_nums): Add comment.
511 (find_allocno_class_costs): Initiate cost_class_nums.
512 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
514 2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
517 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
518 Rename to copy_info_to_removed_store_destinations. Propagate
519 conflict hard regs and register stack attribute.
521 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
524 * pa.c (function_arg_padding): Pad complex and vector types
525 upward in 64-bit runtime.
526 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
528 2008-10-26 Matthias Klose <doko@ubuntu.com>
530 * doc/install.texi: Document requirements on antlr.
532 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
534 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
537 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
540 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
541 is defined, use it to modify the constant offset.
543 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
545 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
546 and short arguments to the correct location as mandated by the ABI.
548 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
550 PR rtl-optimization/37769
551 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
553 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
555 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
556 unwind-dw2-Os-4-200.o.
558 2008-10-24 Joseph Myers <joseph@codesourcery.com>
560 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
561 (convert_for_assignment): Remove ic_argpass_nonproto cases.
563 2008-10-24 Jakub Jelinek <jakub@redhat.com>
565 PR tree-optimization/36038
566 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
567 add sizetype IV with initial value zero instead of pointer type.
569 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
572 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
573 around bit operation.
574 * profile.c (is_edge_inconsistent): Likewise.
575 * fold-const.c (truth_value_p): Move from here...
576 * tree.h (truth_value_p): ... to here.
577 * c-tree.h (c_expr): Update description of original_code.
578 * c-typeck.c (parser_build_unary_op): Set original_code.
579 (parser_build_binary_op): Update call to warn_about_parentheses.
580 * c-common.c (warn_about_parentheses): Take two additional
581 arguments of the operands. Use a switch. Quote operators
582 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
583 Add warning about !x | y and !x & y.
584 * c-common.h (warn_about_parentheses): Update declaration.
586 2008-10-24 Jakub Jelinek <jakub@redhat.com>
588 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
589 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
590 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
592 (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
593 (check-%): For test targets listed in lang_checks_parallelized
594 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
595 run the testing in multiple make goals, possibly parallel, and
596 afterwards run dg-extract-results.sh to merge the sum and log files.
598 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
600 * config/mips/mips.c (mips_canonicalize_move_class): New function.
601 (mips_move_to_gpr_cost): Likewise.
602 (mips_move_from_gpr_cost): Likewise.
603 (mips_register_move_cost): Make more fine-grained.
605 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
607 * graphite.c (graphite_apply_transformations): Check for
609 * toplev.c (process_options): Add graphite_identity.
610 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
612 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
614 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
615 mulhisihl and mulhisihh builtins.
617 From Jie Zhang <jie.zhang@analog.com>
618 * config/bfin/bfin.md (composev2hi): Put operands into vector
621 2008-10-22 Chao-ying Fu <fu@mips.com>
623 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
625 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
627 From Mike Frysinger <michael.frysinger@analog.com>
628 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
629 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
630 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
631 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
632 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
633 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
634 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
635 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
636 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
637 __ADSPBF51x__ for all of them.
638 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
639 -mcpu bf512, bf514, bf516, and bf518.
640 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
641 bf512-none, bf514-none, bf516-none, and bf518-none.
642 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
643 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
644 * doc/invoke.texi (Blackfin Options): Document that
645 -mcpu now accepts bf512, bf514, bf516, and bf518.
647 2008-10-22 Jakub Jelinek <jakub@redhat.com>
650 * fold-const.c (build_range_type): For 1 .. signed_max
651 range call build_nonstandard_inter_type if signed_type_for
652 returned a type with bigger precision.
654 2008-10-22 Richard Guenther <rguenther@suse.de>
656 * tree.def (COMPLEX_TYPE): Constrain element type.
657 * tree.c (build_complex_type): Assert that.
658 * tree-ssa-structalias.c (could_have_pointers): Complex types
659 cannot have pointers.
661 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
664 * c-typeck.c (convert_for_assignment): Do not give declaration's
665 location for builtins. Spell out which type was expected and which
668 2008-10-22 Nick Clifton <nickc@redhat.com>
670 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
671 the fdpic register to be a target when running in fdpic mode.
673 2008-10-22 Rafael Espindola <espindola@google.com>
675 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
676 newly created statements.
678 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
681 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
682 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
683 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
685 2008-10-22 Jakub Jelinek <jakub@redhat.com>
688 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
689 Adjust -mcmodel=medium description for 2005-07-31 changes.
691 2008-10-22 Jan Hubicka <jh@suse.cz>
692 Jakub Jelinek <jakub@redhat.com>
695 * doc/invoke.texi: Remove references to obsoleted -d dumps.
697 2008-10-21 Richard Henderson <rth@redhat.com>
700 * emit-rtl.c (get_spill_slot_decl): Export.
701 * emit-rtl.h (get_spill_slot_decl): Declare.
702 * var-tracking.c (vt_add_function_parameters): Relax assertion
703 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
705 2008-10-21 Bob Wilson <bob.wilson@acm.org>
707 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
708 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
711 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
714 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
715 processed by get_maxval_strlen.
717 2008-10-21 David Edelsohn <edelsohn@gnu.org>
720 * tree.c (get_file_function_name): Copy first_global_object_name.
721 Centralize call to clean_symbol_name.
723 2008-10-21 Sandra Loosemore <sandra@codesourcery.com>
725 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
726 * config/svr4.h (SVR4_ASM_SPEC): New.
727 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
728 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
730 * doc/invoke.texi (Option Summary): Add -T to linker options.
731 (Link Options): Document -T.
733 2008-10-21 Jakub Jelinek <jakub@redhat.com>
735 * tree-inline.c (tree_inlinable_function_p): Remove tuples
738 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
741 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
743 2008-10-20 Daniel Berlin <dberlin@dberlin.org>
745 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
748 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
750 * doc/install.texi: Fix typos in previous patch.
752 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
754 * doc/install.texi: Document in-tree building of gcc and mpfr.
756 2008-10-19 Richard Guenther <rguenther@suse.de>
758 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
760 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
763 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
764 (build_enumerator): Convert enumerators that fit in integer to
767 2008-10-18 Uros Bizjak <ubizjak@gmail.com>
769 * config/i386/i386.md (unnamed peephole2): Do not force memory
770 operands of arith or logical instructions into registers for
771 non-TARGET_READ_MODIFY targets.
773 (ffs_cmove): Change operand 0 predicate to register_operand.
774 Change operand 1 predicate to nonimmediate_operand.
776 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
778 2008-10-18 Richard Guenther <rguenther@suse.de>
780 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
781 VIEW_CONVERT_EXPR case against invalid gimple.
783 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
785 * c-parser.c (c_parser_binary_expression): Silence the
786 uninitialized variable warning emitted for binary_loc.
788 2008-10-16 Daniel Berlin <dberlin@dberlin.org>
790 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
793 2008-10-16 Joseph Myers <joseph@codesourcery.com>
796 * c-typeck.c (build_unary_op): Use omit_one_operand for
797 IMAGPART_EXPR of real argument.
799 2008-10-16 Jakub Jelinek <jakub@redhat.com>
801 PR tree-optimization/37664
802 * fold-const.c (fold_binary): When optimizing comparison with
803 highest or lowest type's value, don't consider TREE_OVERFLOW.
805 2008-10-16 David Edelsohn <edelsohn@gnu.org>
808 * Makefile.in (coverage.o): Depend on $(TM_P_H).
809 * coverage.c: Include tm_p.h.
810 * config/rs6000/x-aix (jc1): Override LDFLAGS.
811 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
812 dollar signs from PREFIX.
813 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
814 instead of manual strip_name_encoding.
816 2008-10-16 Richard Guenther <rguenther@suse.de>
819 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
820 volatile qualified functions or methods as relevant.
822 2008-10-16 Jakub Jelinek <jakub@redhat.com>
824 PR tree-optimization/37525
825 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
826 sizetype unsigned constants, both in the case of C and bounds.
828 2008-10-15 Jan Hubicka <jh@suse.cz>
830 * ira-emit.c (change_regs): Return false when replacing reg by itself.
832 2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
835 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
836 HARD_REGNO_CALL_PART_CLOBBERED.
838 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
841 * ira-lives.c (mark_early_clobbers): Remove.
842 (make_pseudo_conflict, check_and_make_def_use_conflicts,
843 check_and_make_def_conflicts,
844 make_early_clobber_and_input_conflicts,
845 mark_hard_reg_early_clobbers): New functions.
846 (process_bb_node_lives): Call
847 make_early_clobber_and_input_conflicts and
848 mark_hard_reg_early_clobbers. Make hard register inputs live again.
850 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
851 early clobbers of pseudo-registers.
853 2008-10-15 Vladimir Makarov <vmakarov@redhat.com>
856 * ira-build.c (ira_flattening): Recalculate
857 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
858 from the scratch instead of the propagation.
860 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
862 * doc/rtl.texi (const_double): Remove the "addr" operand.
863 Describe CONST_DOUBLE_* macros under const_double rather
865 (const_fixed): Fix the operand description.
866 (const): Add an @findex directive.
867 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
868 after the constant rtl table.
869 (fix): Combine floating-point and fixed-point descriptions.
871 * sched-deps.c (sched_analyze_2): Remove reference to
874 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
876 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
878 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
879 for UNSPEC_GOTSYM_OFFs.
880 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
881 (add_GOT_to_pic_reg): Use it.
882 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
884 2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
885 Harsha Jagasia <harsha.jagasia@amd.com>
887 PR tree-optimization/37485
888 * graphite.c (gmp_cst_to_tree): Moved.
889 (iv_stack_entry_is_constant): New.
890 (iv_stack_entry_is_iv): New.
891 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
892 (loop_iv_stack_insert_constant): New.
893 (loop_iv_stack_pop): Use new datatpype.
894 (loop_iv_stack_get_iv): Same.
895 (loop_iv_stack_get_iv_from_name): Same.
896 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
897 (loop_iv_stack_patch_for_consts): New.
898 (loop_iv_stack_remove_constants): New.
899 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
900 (translate_clast): Call loop_iv_stack_patch_for_consts and
901 loop_iv_stack_remove_constants.
902 (gloog): Use new datatype. Redirect construction edge to end
903 block to avoid accidental deletion.
904 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
906 (union iv_stack_entry_data): New. Data in iv stack entry.
907 (struct iv_stack_entry): New. Datatype for iv stack entries.
909 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
911 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
912 * graphite.c (free_scop): Same.
914 (free_scattering): New.
915 (build_cloog_prog): Call free_scattering.
916 (patch_phis_for_virtual_defs): Fix memleak.
917 (graphite_trans_bb_strip_mine): Same.
920 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
921 Harsha Jagasia <harsha.jagasia@amd.com>
923 PR tree-optimization/37828
924 * graphite.c (graphite_trans_loop_block): Do not loop block
927 2008-10-15 Sebastian Pop <sebastian.pop@amd.com>
929 PR tree-optimization/37686
930 * tree-loop-linear.c (linear_transform_loops): Build a
931 loop nest vector. Pass it to lambda_compute_access_matrices.
932 * tree-data-ref.h (struct access_matrix): Store the loop nest
933 relative to which it encodes the information.
934 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
935 (am_vector_index_for_loop): Reimplemented: iterate over the
936 loop nest for finding the loop index in the access matrix.
937 (lambda_compute_access_matrices): Update declaration.
938 * lambda-code.c (build_access_matrix): Pass the loop nest and
940 (lambda_compute_access_matrices): Same.
942 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
944 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
945 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
946 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
947 already implies hard float. Also fix several insn condition
948 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
950 2008-10-15 David Edelsohn <edelsohn@gnu.org>
953 Based on patches by Laurent Vivier.
954 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
955 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
956 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
957 dollar sign to underscore.
958 (ASM_OUTPUT_EXTERNAL): Same.
959 (ASM_OUTPUT_LABELREF): New.
960 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
962 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
963 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
964 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
965 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
967 2008-10-15 Jakub Jelinek <jakub@redhat.com>
969 PR tree-optimization/36881
970 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
971 that each value doesn't need runtime relocations, for !flag_pic
972 check that each value is just a valid initializer constant.
974 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
976 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
977 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
978 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
979 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
981 (REG_CLASS_NAMES): Update accordingly.
982 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
983 rather than an unpredictable descriptive string.
984 * config/mips/mips.c (mips_register_move_cost): Remove comment.
985 (mips_register_move_cost): Check for specific COP*_REGS classes,
986 instead of ALL_COP_AND_GR_REGS.
987 (mips_ira_cover_classes): New function.
988 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
989 (TARGET_IRA_COVER_CLASSES): Define.
991 2008-10-14 Douglas Gregor <doug.gregor@gmail.com>
994 * tree.c (build_type_attribute_qual_variant): Hash on the
995 unqualified type, and don't overwrite an existing
996 (type_hash_eq): Make the TYPE_NAME of the types significant, to
997 allow distinguishing between wchar_t and its underlying type. This
998 also means that we'll retain a little more typedef information.
1000 2008-10-14 Andrey Belevantsev <abel@ispras.ru>
1001 Dmitry Melnik <dm@ispras.ru>
1002 Dmitry Zhurikhin <zhur@ispras.ru>
1003 Alexander Monakov <amonakov@ispras.ru>
1004 Maxim Kuvyrkov <maxim@codesourcery.com>
1006 * target.h (struct gcc_target): Update prototypes of needs_block_p
1008 * haifa-sched.c (create_check_block_twin): Update calls to the above.
1009 * sel-sched.c (create_speculation_check): Likewise.
1010 * doc/tm.texi: Provide documentation for new target hooks.
1012 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
1013 (ia64_gen_spec_insn): Removed.
1014 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
1015 ia64_gen_spec_check): New static functions.
1016 (ia64_alloc_sched_context, ia64_init_sched_context,
1017 ia64_set_sched_context, ia64_clear_sched_context,
1018 ia64_free_sched_context, ia64_get_insn_spec_ds,
1019 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
1020 (ia64_needs_block_p): Change prototype.
1021 (ia64_gen_check): Rename to ia64_gen_spec_check.
1022 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
1023 into declaration, add special memory dependencies handling.
1024 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
1025 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1026 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
1027 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
1028 Define new target hooks.
1029 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
1030 (ia64_optimization_options): Turn on selective scheduling with -O3,
1031 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
1032 default with selective scheduling.
1033 (ia64_override_options): Initialize align_loops and align_functions
1034 to 32 and 64, respectively. Set global selective scheduling flags
1035 according to target-dependent flags.
1036 (rtx_needs_barrier): Support UNSPEC_LDS_A.
1037 (group_barrier_needed): Use new mstop-bit-before-check flag.
1039 (dfa_state_size): Make global.
1040 (spec_check_no, max_uid): Remove.
1041 (mem_ops_in_group, current_cycle): New variables.
1042 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
1043 Initialize new variables.
1044 (is_load_p, record_memory_reference): New functions.
1045 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
1047 (ia64_variable_issue): Change use of current_sched_info to
1048 sched_deps_info. Update comment. Note if a load or a store is issued.
1049 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
1050 advance if maximal number of loads or stores was issued on current
1052 (scheduled_good_insn): New static helper function.
1053 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
1054 a group barrier is needed. Fix vertical spacing. Guard the code
1055 doing state transition with last_scheduled_insn check.
1056 Mark that a stop bit should be before current insn if there was a
1057 cycle advance. Update current_cycle and mem_ops_in_group.
1058 (ia64_h_i_d_extended): Change use of current_sched_info to
1059 sched_deps_info. Reallocate stops_p by larger chunks.
1060 (struct _ia64_sched_context): New structure.
1061 (ia64_sched_context_t): New typedef.
1062 (ia64_alloc_sched_context, ia64_init_sched_context,
1063 ia64_set_sched_context, ia64_clear_sched_context,
1064 ia64_free_sched_context): New static functions.
1065 (gen_func_t): New typedef.
1066 (get_spec_load_gen_function): New function.
1067 (SPEC_GEN_EXTEND_OFFSET): Declare.
1068 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
1069 (get_mode_no_for_insn): Change the condition that prevents use of
1070 special hardware registers so it can now handle pseudos.
1071 (get_spec_unspec_code): New function.
1072 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
1073 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
1074 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
1075 during selective scheduling.
1076 (ia64_speculate_insn): Use ds_get_speculation_types when
1077 determining whether we need to change the pattern.
1078 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
1079 (ia64_spec_check_src_p): Support new speculation/check codes.
1080 (struct bundle_state): New field.
1081 (issue_nops_and_insn): Initialize it.
1082 (insert_bundle_state): Minimize mid-bundle stop bits.
1083 (important_for_bundling_p): New function.
1084 (get_next_important_insn): Use important_for_bundling_p.
1085 (bundling): When shifting TImode from unimportant insns, ignore
1086 also group barriers. Assert that best state is found before
1087 the backward bundling pass. Print number of mid-bundle stop bits.
1088 Minimize mid-bundle stop bits. Check correct calculation of
1089 mid-bundle stop bits.
1090 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
1091 (final_emit_insn_group_barriers): Emit stop bits before insns starting
1093 (sel2_run): New variable.
1094 (ia64_reorg): When flag_selective_scheduling2 is set, run the
1095 selective scheduling pass instead of schedule_ebbs.
1097 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
1098 (UNSPEC_LDS_A): New UNSPEC.
1099 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
1100 movti_internal, movsf_internal, movdf_internal,
1101 movxf_internal): Make visible. Add speculable* attributes.
1102 (output_c_nc): New mode attribute.
1103 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
1104 mov<mode>_nc, zero_extend<mode>di2_nc,
1105 advanced_load_check_nc_<mode>): New insns.
1106 (zero_extend*): Add speculable* attributes.
1108 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
1109 (msched-stop-bits-after-every-cycle): Likewise.
1110 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
1112 (msched-spec-verbose): Remove.
1113 (msched-prefer-non-data-spec-insns,
1114 msched-prefer-non-control-spec-insns,
1115 msched-count-spec-in-critical-path,
1116 msel-sched-dont-check-control-spec): Use Target Report Var
1117 instead of Common Report Var.
1119 * config/ia64/itanium2.md: Remove incorrect bypass.
1121 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
1123 2008-10-14 Jakub Jelinek <jakub@redhat.com>
1126 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1127 and -fhelp=separate.
1129 2008-10-14 Ben Elliston <bje@au.ibm.com>
1131 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
1133 2008-10-13 Joseph Myers <joseph@codesourcery.com>
1135 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
1138 2008-10-13 Matthias Klose <doko@ubuntu.com>
1140 * config/pa/linux-atomic.c: Work around missing header file
1141 for hppa64-linux-gnu targets.
1143 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
1144 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
1145 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1146 Grace Cao <grace_cao@playstation.sony.com>
1148 * doc/invoke.texi (-mgen-cell-microcode): Document.
1149 (-mwarn-cell-microcode): Document.
1150 * cfglayout.c (locator_location): Export.
1151 * rtl.h (locator_location): Define prototype.
1152 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
1154 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
1155 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
1156 (mwarn-cell-microcode): New option.
1157 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
1158 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
1159 cell and not already set.
1160 Turn off string instructions if not generating cell microcode.
1161 (rs6000_final_prescan_insn): New function that warns about microcoded
1163 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
1164 * config/rs6000/rs6000.md
1165 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
1166 the instruction would have been microcoded on the Cell. Set
1167 cell_micro to always on unnamed patterns for the string instructions.
1168 (cell_micro): Update definition, remove load/store conditional
1170 (sign_extend:DI): Define new pattern for non microcoded version.
1171 (sign_extend:SI): Likewise.
1172 (compare (div:P)): Set cell_micro to not.
1173 (andsi3): Define as an expand.
1174 (andsi3_mc): New pattern.
1175 (andsi3_nomc): New pattern.
1176 (andsi3_internal0_nomc): New pattern.
1177 (andsi3_internal2): Rename to ...
1178 (andsi3_internal2_mc): this and enable iff generating microcode.
1179 (andsi3_internal3): Rename to ...
1180 (andsi3_internal3_mc): this and enable iff generating microcode.
1181 (andsi3_internal4): Enable iif generating microcode.
1182 (andsi3_internal5): Rename to ..
1183 (andsi3_internal5_mc): this and enable iff generating microcode.
1184 (andsi3_internal5_nomc): New pattern.
1185 (extzvdi_internal1): Enable iff generating microcode.
1186 (extzvdi_internal2): Likewise.
1187 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
1188 (anddi3): Change to expand.
1189 (anddi3_mc): Rename from anddi3.
1190 (anddi3_no_mc): New pattern.
1191 (anddi3_internal2): Rename to ..
1192 (anddi3_internal2_mc): this and enable iff generating microcode.
1193 (anddi3_internal2_nomc): New pattern.
1194 (anddi3_internal3): Rename to ..
1195 (anddi3_internal3_mc): this and enable iff generating microcode.
1196 (anddi3_internal3_nomc): New pattern.
1197 (movti_string): Set cell_micro to always if TARGET_STRING.
1198 (stmsi8): Set cell_micro to always.
1204 (stmsi8_power): Likewise.
1205 (stmsi7_power): Likewise.
1206 (stmsi6_power): Likewise.
1207 (stmsi5_power): Likewise.
1208 (stmsi4_power): Likewise.
1209 (stmsi3_power): Likewise.
1210 (movsi_update2): Enable iff generating microcode.
1211 (movhi_update3): Likewise.
1212 (lmw): Set cell_micro to always.
1214 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
1216 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
1217 * config/s390/s390.c (machine_function): Remove
1218 decomposed_literal_pool_addresses_ok_p.
1219 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
1220 the difference of two labels.
1221 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
1222 (s390_pool_offset): New function.
1223 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
1224 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
1226 2008-10-13 Nathan Froyd <froydnj@codesourcery.com>
1228 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
1229 (powerpc*-*-linux-gnu*): Describe.
1230 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
1231 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1232 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1233 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1234 config/rs6000/e500crtres32gpr.asm,
1235 config/rs6000/e500crtres64gpr.asm,
1236 config/rs6000/e500crtres64gprctr.asm,
1237 config/rs6000/e500crtrest32gpr.asm,
1238 config/rs6000/e500crtrest64gpr.asm,
1239 config/rs6000/e500crtresx32gpr.asm,
1240 config/rs6000/e500crtresx64gpr.asm,
1241 config/rs6000/e500crtsav32gpr.asm,
1242 config/rs6000/e500crtsav64gpr.asm,
1243 config/rs6000/e500crtsav64gprctr.asm,
1244 config/rs6000/e500crtsavg32gpr.asm,
1245 config/rs6000/e500crtsavg64gpr.asm,
1246 config/rs6000/e500crtsavg64gprctr.asm: Use it.
1247 * config/rs6000/crtsavres.asm: Really remove.
1249 2008-10-13 Kai Tietz <kai.tietz@onevision.com>
1252 * c-format.c (convert_format_name_to_system_name): Use
1253 TARGET_OVERRIDES_FORMAT_INIT.
1254 * config.gcc (extra_options): Add for mingw targets mingw.opt.
1255 * config/i386/mingw.opt: New.
1256 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
1257 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
1258 (ms_printf_length_specs): Removed const specifier.
1259 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1260 * doc/invoke.texi (Wno-pedantic-ms-format): New.
1262 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1264 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1265 * doc/install.texi: Bump recommended MPFR to 2.3.2.
1267 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
1270 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1271 sure that ref has valid bb.
1273 2008-10-12 Richard Henderson <rth@redhat.com>
1276 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1277 * alias.c (value_addr_p, stack_addr_p): Remove.
1278 (nonoverlapping_memrefs_p): Remove IRA special case.
1279 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1280 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1281 * reload1.c (alter_reg): Use it.
1283 2008-10-12 Uros Bizjak <ubizjak@gmail.com>
1285 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1286 of registers instead of eax, ebx, ecx and edx. Use for loop
1287 and check register for non-zero value before the call
1288 to decode_caches_intel.
1290 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1292 PR rtl-optimization/37448
1293 * df.h: (df_ref_class): New enum.
1294 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1295 (struct df_ref): Replaced with union df_ref_d.
1296 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1297 New members of df_ref_d union.
1298 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1299 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1300 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1301 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1302 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
1303 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1304 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
1305 (df_scan_bb_info, df_bb_regno_first_def_find,
1306 df_bb_regno_last_def_find, df_find_def, df_find_use,
1307 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1308 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1309 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1310 df_get_artificial_defs, df_get_artificial_uses, union_defs)
1311 Replaced struct df_ref * with df_ref.
1312 * df-scan.c (df_collection_rec, df_null_ref_rec,
1313 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1314 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1315 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1316 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1317 df_reorganize_refs_by_reg_by_reg,
1318 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1319 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1320 df_sort_and_compress_refs, df_install_ref, df_install_refs,
1321 df_ref_record, df_get_conditional_uses, df_get_call_refs,
1322 df_bb_refs_record, df_exit_block_uses_collect,
1323 df_record_exit_block_uses, df_reg_chain_mark,
1324 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1325 df_ref * with df_ref.
1326 (df_ref_record, df_uses_record, df_ref_create_structure): Added
1327 df_ref_class parameter.
1328 (df_scan_problem_data): Added new pools for different types of refs.
1329 (df_scan_free_internal, df_scan_alloc, df_free_ref,
1330 df_ref_create_structure): Processed new ref pools.
1331 (df_scan_start_dump): Added counts of refs and insns.
1332 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1333 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1334 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1335 code to pass df_ref_class down to ref creation functions.
1336 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1337 df_reg_chain_mark): Use macros to hide references to df_refs.
1338 (df_ref_chain_change_bb): Removed.
1339 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1340 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1341 Enhanced to understand df_ref union structure.
1342 * fwprop.c (local_ref_killed_between_p, use_killed_between,
1343 all_uses_available_at, update_df, try_fwprop_subst,
1344 forward_propagate_subreg, forward_propagate_and_simplify,
1345 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1346 df_ref * with df_ref.
1347 (use_killed_between, all_uses_available_at): Use macros to hide
1348 references to df_refs.
1349 * regstat.c (regstat_bb_compute_ri,
1350 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1352 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1353 see_handle_relevant_refs, see_analyze_one_def,
1354 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1355 struct df_ref * with df_ref.
1356 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1357 global_conflicts): Replaced struct df_ref * with df_ref.
1358 * ddg.c (create_ddg_dep_from_intra_loop_link,
1359 add_cross_iteration_register_deps, build_inter_loop_deps):
1360 Replaced struct df_ref * with df_ref.
1361 (create_ddg_dep_from_intra_loop_link,
1362 add_cross_iteration_register_deps): Use macros to hide references
1364 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1365 df_ref * with df_ref.
1366 * df-core.c (df_bb_regno_first_def_find,
1367 df_bb_regno_last_def_find, df_find_def, df_find_use,
1368 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1369 debug_df_ref): Replaced struct df_ref * with df_ref.
1370 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
1371 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1373 * web.c (union_defs, entry_register, replace_ref, web_main):
1374 Replaced struct df_ref * with df_ref.
1375 (union_defs, replace_ref): Use macros to hide references to df_refs.
1376 * global.c (compute_regs_asm_clobbered, build_insn_chain):
1377 Replaced struct df_ref * with df_ref.
1378 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
1379 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1380 Replaced struct df_ref * with df_ref.
1381 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1382 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1384 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
1385 * df-byte-scan.c (df_compute_accessed_bytes_extract,
1386 df_compute_accessed_bytes_strict_low_part,
1387 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1388 Replaced struct df_ref * with df_ref.
1389 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
1390 * init-regs.c (initialize_uninitialized_regs): Replaced struct
1391 df_ref * with df_ref.
1392 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1393 check_dependency, check_dependencies, record_uses): Replaced
1394 struct df_ref * with df_ref.
1395 (invariant_for_use, check_dependency): Use macros to hide
1396 references to df_refs.
1397 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1398 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1399 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1400 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1401 references to df_refs.
1402 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1404 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1405 * df-problems.c (df_rd_bb_local_compute_process_def,
1406 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1407 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1408 df_chain_remove_problem, df_chain_create_bb_process_use,
1409 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1410 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1411 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1412 df_byte_lr_simulate_artificial_refs_at_top,
1413 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1414 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1415 df_simulate_uses, df_simulate_artificial_refs_at_end,
1416 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1418 (df_chain_dump): Use macros to hide references to df_refs.
1419 * config/mips/mips.c (r10k_simplify_address): Replaced struct
1420 df_ref * with df_ref.
1421 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1422 mark_artificial_uses, mark_reg_dependencies,
1423 byte_dce_process_block): Replaced struct df_ref * with df_ref.
1425 2008-10-11 Eric Botcazou <ebotcazou@adacore.com>
1427 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1429 (array_ref_element_size): Likewise.
1430 (array_ref_low_bound): Likewise.
1431 (array_ref_up_bound): Likewise.
1432 * expr.c (contains_packed_reference): Likewise.
1433 (array_ref_element_size): Likewise.
1434 (array_ref_low_bound): Likewise.
1435 (array_ref_up_bound): Likewise.
1436 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1437 with ARRAY_RANGE_REF.
1438 (idx_find_step): Likewise.
1439 (idx_record_use): Likewise.
1440 (strip_offset_1): Likewise.
1441 (idx_remove_ssa_names): Likewise.
1443 2008-10-11 Uros Bizjak <ubizjak@gmail.com>
1444 Andi Kleen <ak@linux.intel.com>
1446 * config/i386/cpuid.h (__cpuid_count): New defines.
1447 * config/i386/driver-i386.c (struct cache_desc): New structure.
1448 (describe_cache): Use struct cache_desc to pass cache descriptions.
1449 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1450 (detect_caches_amd): Use struct cache_desc to describe caches.
1451 (decode_caches_intel): Use struct cache_desc to pass cache
1452 descriptions. Update descriptions to match latest (rev -032,
1453 December 2007) CPUID documentation. Do not check valid bit here.
1454 Check for Xeon MP value 0x49 problems.
1455 (detect_caches_cpuid2): New function, split from detect_caches_intel.
1456 Check valid bit before calling decode_caches_intel. Detect number
1457 of times to repeat CPUID instruction.
1458 (detect_caches_cpuid4): New function.
1459 (detect_caches_intel): Depending on max_level, call
1460 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
1461 only when other methods fail to provide valid L2 cache description.
1463 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1466 * pa.md (call, call_value): Generate an rtx for register r4 and pass
1467 it to PIC call patterns.
1468 (call_symref_pic): Revise pattern to expose PIC register save. Remove
1469 code generation and attributes from pattern. Change peephole2 to
1470 split for noreturn case. Revise split pattern for non noreturn case.
1471 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1472 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1473 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
1476 2008-10-11 David Edelsohn <edelsohn@gnu.org>
1478 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1479 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1481 (divdf3): Reformat long line.
1483 2008-10-11 Michael J. Eager <eager@eagercon.com>
1485 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1487 (rs6000_handle_option): Process -mfpu options.
1488 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1489 (enum fpu_type_t): New.
1490 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
1491 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1493 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1494 (floatdidf2): Add TARGET_SINGLE_FPU condition.
1495 * config/rs6000/rs6000.opt (-mfpu): New.
1496 (-mxilinx-fpu): New.
1497 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1498 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1499 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1500 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1501 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1503 2008-10-11 Jakub Jelinek <jakub@redhat.com>
1506 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1507 LO_SUM on Darwin if mode has just one unit.
1509 2008-10-10 H.J. Lu <hongjiu.lu@intel.com>
1512 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1513 has been optimized out.
1515 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
1517 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1518 instead of PIC_DIRECT_ADDR_P.
1519 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1520 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1521 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1522 (PIC_OFFSET_P): Rename to...
1523 (PCREL_SYMOFF_P): ...this.
1524 (PIC_DIRECT_ADDR_P): Delete.
1525 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1527 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1528 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1529 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1530 * config/sh/sh.c (print_operand): Remove CONST handling.
1531 (unspec_caller_rtx_p): Rewrite to use split_const and check
1532 the operands of UNSPEC bases.
1533 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1534 with (unspec [A B] UNSPEC_SYMOFF).
1535 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1536 UNSPEC_PCREL_SYMOFF.
1537 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1538 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1539 (UNSPEC_EXTRACT_U16): Likewise.
1540 (UNSPEC_SYMOFF): Likewise.
1541 (UNSPEC_PCREL_SYMOFF): Likewise.
1542 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1544 (movsi_const_16bit): Likewise.
1545 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1546 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1547 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1548 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1549 with (unspec [A B] UNSPEC_SYMOFF).
1550 (symPLT_label2reg): Replace (minus A (minus B pc)) with
1551 (unspec [A B] PCREL_UNSPEC_SYMOFF).
1552 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1553 (Csu): Likewise UNSPEC_EXTRACT_U16.
1554 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1555 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1557 2008-10-10 Stepan Kasal <skasal@redhat.com>
1559 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1560 for loop strip mining and loop blocking.
1562 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
1564 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1565 vary types depending on debug info.
1567 2008-10-10 Alexandre Oliva <aoliva@redhat.com>
1569 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1570 before ensuring it's already computed.
1572 2008-10-09 Jakub Jelinek <jakub@redhat.com>
1574 * rtl.h (locator_eq): New decl.
1575 * cfglayout.c (locator_scope): New function.
1576 (insn_scope): Use it.
1577 (locator_eq): New function.
1578 (fixup_reorder_chain): Search for last insn in src bb
1579 that has locator set or first insn in dest bb. Use
1580 locator_eq instead of == to compare locators.
1581 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1582 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1583 == to compare locators.
1585 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1587 * gimple-low.c (lower_function_body, lower_gimple_return,
1588 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1589 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1590 goto_block on edges if goto_locus is known.
1593 * tree.h (get_object_alignment): Declare.
1594 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1595 get_object_alignment if needed.
1596 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
1598 (get_object_alignment): ... here. New function. Try harder to
1599 determine alignment from get_inner_reference returned offset.
1601 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1603 * graphite.c (gloog): Don't call find_unreachable_blocks
1604 before delte_unreachable_blocks.
1606 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1607 goto_locus of true_edge into RTL locator.
1609 2008-10-08 Uros Bizjak <ubizjak@gmail.com>
1611 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1612 (*jcc_btdi_mask_rex64): Ditto.
1614 (*jcc_btsi_mask): Ditto.
1615 (*jcc_btsi_1): Ditto.
1616 (*jcc_btsi_mask_1): Ditto.
1618 2008-10-08 Paul Brook <paul@codesourcery.com>
1620 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1621 compatible profiler (__gnu_mcount_nc).
1622 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1624 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1626 * config/i386/i386.c (initial_ix86_tune_features): Add
1627 X86_TUNE_USE_VECTOR_FP_CONVERTS.
1628 * config/i386/i386.h (ix86_tune_indices): Likewise.
1629 (TARGET_USE_VECTOR_FP_CONVERTS): New.
1631 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1632 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1633 for FP to FP splitters.
1635 2008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1637 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1640 2008-10-08 Jakub Jelinek <jakub@redhat.com>
1644 PR rtl-optimization/37341
1645 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1646 to ORIG_BB, pass through ORIG_BB recursively.
1647 (cse_condition_code_reg): Adjust caller.
1649 2008-10-08 Kai Tietz <kai.tietz@onevision.com>
1651 * sdbout.c (sdbout_one_type): Treat the value type
1652 CONST_DECL for enumerals.
1654 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1656 * config/i386/i386.md: Remove trailing white spaces.
1658 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1660 PR rtl-optimization/37448
1661 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1662 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1664 (struct output_info) [count]: Renamed total_created and made
1666 (struct output_info) [size]: Renamed total_allocated and made
1668 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1669 Properly keep track of desc->size.
1670 (print_statistics, dump_alloc_pool_statistics): Enhance the
1671 printing of statistics to print the number of elements and to use
1674 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1677 * opts.h (CL_SAVE): Move up to flags range.
1678 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1679 CL_COMMON): Renumber.
1680 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1681 * opts.c (common_handle_option): Revert last change.
1683 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1685 * config/i386/i386-protos.h (ix86_schedule): New.
1687 * config/i386/i386.c (ix86_schedule): New.
1688 (override_options): Add schedule to processor_alias_table. Set
1689 ix86_schedule from the schedule field in processor_alias_table.
1690 (ix86_function_specific_save): Save ix86_schedule.
1691 (ix86_function_specific_restore): Restore ix86_schedule.
1693 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1694 ix86_tune. Add none and remove i386, i486, pentium4, nocona
1697 * config/i386/i386.opt: Add schedule.
1699 * config/i386/ppro.md: Remove generic32.
1701 2008-10-07 Simon Martin <simartin@users.sourceforge.net>
1704 * expr.c (count_type_elements): Handle ERROR_MARK.
1706 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1711 * basic-block.h (struct edge_def): Add goto_block field.
1712 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1713 one insn with locus corresponding to edge's goto_locus if !optimize.
1714 * profile.c (branch_prob): Copy edge's goto_block.
1715 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1717 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1718 locator in between the merged basic blocks if !optimize and needed.
1719 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1720 goto_locus into RTL locator. For unconditional jump use that
1721 locator for the jump insn.
1722 (expand_gimple_cond): Convert goto_block and goto_locus into
1723 RTL locator for all remaining edges. For unconditional jump
1724 use that locator for the jump insn.
1725 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1726 there is more than one edge or insn locator along the forwarding
1727 edges and !optimize. If there is just one, set e->goto_locus.
1728 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1730 (move_block_to_fn): Adjust edge's goto_block.
1732 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1735 * expmed.c (expand_mult): Properly check DImode constant in
1738 2008-10-07 Jakub Jelinek <jakub@redhat.com>
1741 * dwarf2out.c (common_block_die_table): New variable.
1742 (common_block_die_table_hash, common_block_die_table_eq): New
1744 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1745 COMMON block in the current scope rather than globally. Optimize
1746 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1747 DW_OP_addr SYMBOL_REF+off.
1749 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1751 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1752 Return true for non-addressable GIMPLE operands.
1754 2008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1757 * config/i386/i386.c (initial_ix86_tune_features): Remove
1758 X86_TUNE_USE_BIT_TEST.
1759 * config/i386/i386.h (ix86_tune_indices): Likewise.
1760 (TARGET_USE_BIT_TEST): Removed.
1762 2008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1764 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1766 2008-10-06 Adam Nemet <anemet@caviumnetworks.com>
1768 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1769 (mul<mode>3_mul3): ... into this new template.
1771 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1773 * gimplify.c (gimplify_arg): Add location argument. Use it.
1774 (gimplify_call_expr): Pass location to gimplify_arg.
1775 (gimplify_modify_expr_to_memcpy): Same.
1776 (gimplify_modify_expr_to_memset): Same.
1778 2008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1780 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1781 Update calls to build_unary_op and build_indirect_ref for location
1784 2008-10-06 Aldy Hernandez <aldyh@redhat.com>
1787 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1788 * c-typeck.c (array_to_pointer_conversion): Pass location to
1790 (function_to_pointer_conversion): Use error_at and warning_at.
1791 (build_indirect_ref): Same.
1792 (build_array_ref): Pass location to build_binary_op.
1793 (parser_build_unary_op): Do not set location after calling
1795 (build_unary_op): Add location argument. Use it throughout. Set
1796 EXPR_LOCATION before returning new tree.
1797 (build_modify_expr): Same.
1798 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
1800 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1801 build_indirect_ref, build_modify_expr.
1802 (c_finish_omp_for): Same. Use error_at instead of error.
1803 * c-common.c (c_common_truthvalue_conversion): Pass location to
1805 (warn_for_div_by_zero): Add location argument.
1806 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1807 build_unary_op, warn_for_div_by_zero.
1808 * c-parser.c (c_parser_typeof_specifier): Use
1809 protected_set_expr_location.
1810 (c_parser_statement_after_labels): Same.
1811 (c_parser_condition): Same.
1812 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1813 (c_parser_conditional_expression): Use protected_set_expr_location.
1814 (c_parser_unary_expression): Pass location to build_indirect_ref.
1815 (c_parser_postfix_expression_after_primary): Pass location to
1816 build_indirect_ref, build_unary_op.
1817 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1819 2008-10-06 Joshua Kinard <kumba@gentoo.org>
1821 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1822 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1823 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1825 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1826 (mips_issue_rate): Handle PROCESSOR_R10000.
1827 * config/mips/mips.md (cpu): Add r10000.
1829 * config/mips/10000.md: New file.
1831 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1833 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1834 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1835 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1837 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1839 * config/darwin-protos.h (machopic_function_base_name): Delete.
1840 (machopic_function_base_sym): Likewise.
1841 (machopic_gen_offset): Declare.
1842 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1843 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1844 * config/darwin.c (machopic_function_base_name): Delete.
1845 (machopic_function_base_sym): Likewise.
1846 (gen_pic_offset): Rename to...
1847 (machopic_gen_offset): ...this and remove the pic_base argument.
1848 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1849 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1850 crtl->uses_pic_offset_table.
1851 (machopic_indirect_data_reference): Use new machopic_gen_offset
1853 (machopic_legitimize_pic_address): Likewise.
1854 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1856 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1857 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1858 * config/i386/i386.c (output_set_got): Likewise.
1859 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1861 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1862 (legitimate_address_p): Likewise.
1863 (output_pic_addr_const): Likewise.
1864 (output_addr_const_extra): Likewise.
1865 (ix86_delegitimize_address): Expect darwin_local_data_pic to
1866 match an UNSPEC rather than a MINUS.
1867 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1868 (builtin_setjmp_receiver): Use machopic_gen_offset.
1869 * config/i386/predicates.md (pic_symbolic_operand): Handle
1870 UNSPEC_MACHOPIC_OFFSET.
1872 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1873 Use machopic_gen_offset and machopic_operand_p.
1874 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1875 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1876 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1877 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1878 Set crtl->uses_pic_offset_table.
1880 2008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1882 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1884 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1885 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1886 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1887 (constant_pool_expr_p): Use split_const and check the base.
1888 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1890 (legitimate_constant_pool_address_p): Check toc_relative_p
1891 instead of constant_pool_expr_p.
1892 (print_operand_address): Always use output_addr_const for
1893 constant pool addresses.
1894 (rs6000_output_addr_const_extra): New function.
1895 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1897 2008-10-06 Vladimir Makarov <vmakarov@redhat.com>
1901 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1902 (mark_ref_live, mark_ref_dead): Use them.
1903 (def_conflicts_with_inputs_p): Remove.
1904 (mark_early_clobbers): New function.
1905 (process_bb_node_lives): Call preprocess_constraints and
1906 mark_early_clobbers.
1908 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1910 2008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1912 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1913 lib with -mthread switch.
1915 2008-10-05 Dodji Seketeli <dodji@redhat.com>
1918 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1919 function in two, making it call a new and reusable
1920 dwarf2out_imported_module_or_decl() that takes the containing
1921 BLOCK of the declaration in argument.
1922 (dwarf2out_imported_module_or_decl_real): New function.
1923 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1924 IMPORTED_DECL in account.
1925 * tree.def: Added IMPORTED_DECL node type.
1926 * tree.h: Added accessors for IMPORTED_DECL nodes.
1927 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1929 2008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1931 * doc/gimple.texi: Fix some typos, wrap some long lines,
1932 fix some broken wraps with continuations.
1933 * tree-ssa-reassoc.c: Fix comment typos.
1935 2000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1938 * pa.c (legitimize_pic_address): Force function labels to memory in
1941 2008-10-04 Anton Blanchard <anton@samba.org>
1943 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1944 (rs6000_split_atomic_op): Same.
1945 (rs6000_split_compare_and_swap): Same.
1946 (rs6000_split_compare_and_swapqhi): Same.
1948 2008-10-04 Richard Guenther <rguenther@suse.de>
1950 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1951 instead of pointer equality.
1952 (vn_nary_op_eq): Likewise.
1954 2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1956 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
1958 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1959 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1961 2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
1963 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1964 Revert previous change.
1966 2008-10-03 Tom Tromey <tromey@redhat.com>
1968 * stringpool.c (ggc_alloc_string): Terminate string.
1970 2008-10-03 Jakub Jelinek <jakub@redhat.com>
1972 * gimplify.c (gimplify_function_tree): For -finstrument-functions
1973 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1974 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1977 * gimplify.c (declare_vars): Use gimple_bind_block instead of
1980 2008-10-03 Pascal Obry <obry@adacore.com>
1982 * gcov.c (create_file_names): Properly handle UNIX and DOS
1983 directory separators.
1984 (make_gcov_file_name): Likewise + convert the ':' DOS drive
1985 separator to '~' to ensure clean filenames on Windows.
1987 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1989 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1990 Add a null terminator to the stripped name.
1992 2008-10-02 David Edelsohn <edelsohn@gnu.org>
1994 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1995 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1996 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1997 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
1998 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1999 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
2000 TARGET_SINGLE_FLOAT.
2002 2008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
2004 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
2006 2008-10-02 Richard Guenther <rguenther@suse.de>
2009 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
2010 and VECTOR_TYPE recurse with useless_type_conversion_p which
2011 properly handles void pointer conversion.
2013 2008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
2016 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
2017 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
2019 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
2021 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2022 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
2023 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
2024 they translate to non builtins.
2025 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
2026 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
2027 __builtin_vec_promote, __builtin_vec_extract, and
2028 __builtin_vec_insert.
2029 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
2030 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
2031 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
2032 * config/rs6000/altivec.h (vec_extract): Define
2033 (vec_insert): Define.
2034 (vec_splats): Define.
2035 (vec_promote): Define.
2037 2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
2038 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
2039 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2041 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
2043 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
2044 prototype. Add new parameter, blk.
2045 Use BLKmode for the MEM if blk is true.
2046 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
2047 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
2048 ALTIVEC_BUILTIN_STVRXL.
2049 Update usage of altivec_expand_lv_builtin.
2050 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
2051 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
2052 (altivec_init_builtins): If compiling for the Cell, also define the
2054 * config/rs6000/rs6000.h (rs6000_builtins): Define
2055 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
2056 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
2057 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
2058 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
2059 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
2060 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
2061 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
2062 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
2063 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
2064 UNSPEC_STVRX, and UNSPEC_STVRXL.
2065 (altivec_lvlx): New pattern.
2066 (altivec_lvlxl): New pattern.
2067 (altivec_lvrx): New pattern.
2068 (altivec_lvrxl): New pattern.
2069 (altivec_stvlx): New pattern.
2070 (altivec_stvlxl): New pattern.
2071 (altivec_stvrx): New pattern.
2072 (altivec_stvrxl): New pattern.
2073 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
2074 (vec_lvlxl): Likewise.
2075 (vec_lvrx): Define if PPU is defined.
2076 (vec_lvrxl): Likewise.
2077 (vec_stvlx): Define if PPU is defined.
2078 (vec_stvlxl): Likewise.
2079 (vec_stvrx): Define if PPU is defined.
2080 (vec_stvrxl): Likewise.
2082 2008-10-01 Geert Bosch <bosch@adacore.com>
2084 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
2086 2008-10-01 Richard Guenther <rguenther@suse.de>
2088 PR tree-optimization/37617
2089 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
2090 do not add to the NEW_SETS.
2092 2008-10-01 Richard Guenther <rguenther@suse.de>
2095 * tree-vrp.c (execute_vrp): If we optimized away the default
2096 case make sure to promote the label that got in place of it
2097 to a default case label.
2099 2008-10-01 Richard Henderson <rth@redhat.com>
2102 * tree-complex.c (set_component_ssa_name): Don't optimize
2103 is_gimple_min_invariant values with ssa_names in abnormal phis.
2105 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
2107 PR tree-optimization/37662
2108 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
2109 commutative binary operation if they are in the wrong order and
2110 fold_build2 produces non-GIMPLE.
2112 2008-09-30 Jakub Jelinek <jakub@redhat.com>
2114 PR tree-optimization/37662
2115 PR tree-optimization/37663
2116 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
2117 get_value_range with non-SSA_NAME. Don't assert operands have been
2118 folded, instead just bail out.
2120 2008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
2122 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
2124 2008-09-30 Richard Guenther <rguenther@suse.de>
2127 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
2128 build restrict-qualified pointers.
2129 (vectorizable_store): Move alias check later.
2130 (vectorizable_load): Likewise.
2132 2008-09-30 Paolo Bonzini <bonzini@gnu.org>
2134 * c-common.c (empty_if_body_warning): Remove.
2135 * c-common.h (empty_if_body_warning): Remove.
2136 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
2137 here the -Wempty-body warning for `if' and `else' statements.
2138 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
2140 2008-09-29 H.J. Lu <hongjiu.lu@intel.com>
2142 * config/i386/i386.opt: Add msse2avx.
2144 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
2145 * config/i386/linux64.h (ASM_SPEC): Likewise.
2147 * doc/invoke.texi: Document -msse2avx.
2149 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
2151 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
2153 2008-09-29 Joseph Myers <joseph@codesourcery.com>
2155 * ifcvt.c (noce_emit_store_flag): If using condition from original
2156 jump, reverse it if if_info->cond was reversed.
2158 2008-09-29 Eric Botcazou <ebotcazou@adacore.com>
2160 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2161 non-constant memory if it cannot be forced to constant memory.
2162 Overhaul surrounding code and factor out common condition.
2164 2008-09-29 Jeff Law <law@redhat.com>
2166 * reload1.c (alter_reg): Add missing curly braces.
2168 2008-09-29 Michael J. Eager <eager@eagercon.com>
2170 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2172 * config/rs6000/rs6000.c (rs6000_override_options): Move
2173 rs6000_init_hard_regno_mode_ok after all options changed.
2174 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2175 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2176 -msimple-fpu flags. Add warning messages if single FP not configured.
2177 (rs6000_file_start): Output gnu_attribute for single-float.
2178 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2179 (rs6000_legitimize_address): Likewise.
2180 (rs6000_legitimize_reload_address): Likewise.
2181 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2182 TARGET_SINGLE_FLOAT.
2183 (function_arg_advance): Likewise (partial conversion).
2184 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2185 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2186 TARGET_SINGLE_FLOAT.
2187 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2188 (rs6000_emit_prologue): Likewise.
2189 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2190 TARGET_SINGLE_FLOAT.
2191 (rs6000_libcall_value): Likewise.
2192 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2193 (TARGET_DOUBLE_FLOAT): New default to 1
2194 (TARGET_SIMPLE_FPU): New default to 0
2195 (TARGET_SINGLE_FPU): New default to 0
2196 (TARGET_SINGLE_FLOAT_MODE): New.
2197 (TARGET_DOUBLE_FLOAT_MODE): New.
2198 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2199 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2201 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2202 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2203 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2204 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2205 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2206 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2207 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2208 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2209 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2210 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2211 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2212 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2213 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2214 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2215 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2216 cmptf_internal1, *cmptf_internal2): Condition on
2217 TARGET_DOUBLE_FLOAT.
2218 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2219 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2220 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2221 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2222 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2223 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2224 TARGET_SINGLE_FLOAT.
2225 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2226 * config/rs6000/rs6000.opt (-msingle-float): New.
2227 (-mdouble-float): New.
2228 (-msimple-fpu): New.
2229 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2230 -msingle-float, -mdouble-float, -msimple-fpu options.
2231 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2232 _SOFT_DOUBLE for -msingle-float.
2233 * config.gcc: New config for target=powerpc-xilinx-eabi.
2235 2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
2237 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
2238 have exit and entry.
2239 (new_scop): Take entry and exit edge to define new SCoP.
2240 (sd_region_p): New structure used during SCoP detection.
2241 (move_scops): Delete.
2242 (move_sd_regions): New.
2243 (scopdet_info): Change the definition from edges back to basic_blocks.
2244 (scopdet_edge_info): Work on basic_blocks and rename to
2245 scopdet_basic_block_info.
2246 (split_difficult_bb): At the moment removed. We should later
2247 add it at another place.
2248 (build_scops_1): Work on basic_blocks.
2249 (bb_in_sd_region): New.
2250 (find_single_entry_edge): New.
2251 (find_single_exit_edge): New.
2252 (create_single_entry_edge): New.
2253 (sd_region_without_exit): New.
2254 (create_single_exit_edge): New.
2255 (unmark_exit_edges): New.
2256 (mark_exit_edges): New.
2257 (create_sese_edges): New.
2258 (build_graphite_scops): New.
2259 (build_scops): Make SCoPs SESE.
2260 (limit_scops): Use the new functions.
2262 2008-09-29 Hans-Peter Nilsson <hp@axis.com>
2264 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2266 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2269 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2270 address to a register before taking the lower part.
2272 2008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
2274 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2277 2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2278 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
2281 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2282 the newly created variable.
2283 Create a VECTOR_CST of all 1s for vector types.
2285 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2288 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
2290 2008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2292 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2293 order to convert between modes.
2294 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2296 2008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
2298 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2301 2008-09-26 Vladimir Makarov <vmakarov@redhat.com>
2304 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2308 2008-09-26 Adam Nemet <anemet@caviumnetworks.com>
2310 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2311 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2312 them to yield false with MIPS16.
2314 2008-09-26 Jakub Jelinek <jakub@redhat.com>
2317 * dwarf2out.c (tls_mem_loc_descriptor): New function.
2318 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
2319 mem_loc_descriptor failed. Accept UNSPEC.
2320 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
2321 fail if one of the loc_descriptor calls for pieces failed.
2322 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2323 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
2324 if loc_descriptor_from_tree_1 on offset failed.
2327 * opts.c (common_handle_option): Don't call print_specific_help with
2328 CL_SAVE as first argument.
2330 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
2331 Steve Ellcey <sje@cup.hp.com>
2333 * configure: Regenerate for new libtool.
2334 * aclocal.m4: Ditto.
2336 2008-09-26 Pat Haugen <pthaugen@us.ibm.com>
2338 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2339 alias set on MEM when saving stack pointer.
2340 * config/rs6000/rs6000.md (allocate_stack): Likewise
2342 2008-09-26 Dorit Nuzman <dorit@il.ibm.com>
2344 PR tree-optimization/37574
2345 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2346 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2347 instead of vector_type for constants. Take computation out of loop.
2348 (vect_get_vec_def_for_operand): Use only vectype for constant case,
2349 and use only vector_type for invariant case.
2350 (get_initial_def_for_reduction): Use vectype instead of vector_type.
2352 2008-09-25 Jakub Jelinek <jakub@redhat.com>
2355 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2356 the decl is a VAR_DECL or FUNCTION_DECL.
2358 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2361 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2362 (mark_ref_live, mark_ref_dead): Use them.
2363 (def_conflicts_with_inputs_p): Remove.
2364 (mark_early_clobbers): New function.
2365 (process_bb_node_lives): Call preprocess_constraints and
2366 mark_early_clobbers.
2368 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2370 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2373 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2374 (ira_compress_allocno_live_ranges): New prototype.
2376 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2377 (coalesced_allocnos_living_at_program_points): New.
2378 (coalesced_allocnos_live_at_points_p,
2379 set_coalesced_allocnos_live_points): New functions.
2380 (coalesce_spill_slots): Rewrite.
2382 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2383 ira_compress_allocno_live_ranges): New functions.
2385 * ira-build.c (ira_flattening): Call
2386 ira_compress_allocno_live_ranges.
2389 2008-09-25 H.J. Lu <hongjiu.lu@intel.com>
2391 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2394 2008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
2396 * combine.c (make_compound_operation): Handle the 'E' format.
2397 (count_rtxs): Likewise.
2398 (update_table_tick): Likewise.
2399 (get_last_value_validate): Likewise.
2401 2008-09-25 Eric Botcazou <ebotcazou@adacore.com>
2403 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2405 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2407 * matrix-reorg.c (transform_allocation_sites): Initializers
2408 added to avoid the warning.
2410 2008-09-25 Martin Jambor <mjambor@suse.cz>
2412 * cgraph.c (free_nodes): New variable.
2413 (NEXT_FREE_NODE): New macro.
2414 (cgraph_create_node): Reuse nodes from the free list. Do not
2415 update uid if doing so.
2416 (cgraph_remove_node): Add the node to the free list.
2418 2008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
2420 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2422 2008-09-24 Richard Henderson <rth@redhat.com>
2424 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2425 * unwind-dw2.c (execute_stack_op): Handle it.
2427 2008-09-24 David Edelsohn <edelsohn@gnu.org>
2430 2008-09-24 Michael J. Eager <eager@eagercon.com>
2432 2008-09-24 Aldy Hernandez <aldyh@redhat.com>
2434 * c-common.c (fname_decl): New location argument.
2435 * c-common.h (fname_decl): Same.
2436 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2438 (c_parser_typeof_specifier): Same.
2439 (c_parser_parms_list_declarator): Same.
2440 (c_parser_asm_string_literal): Same.
2441 (c_parser_compound_statement_nostart): Same.
2442 (c_parser_label): Same.
2443 (c_parser_do_statement): Same.
2444 (c_parser_asm_statement): Same.
2445 (c_parser_unary_expression): Same.
2446 (c_parser_sizeof_expression): Same.
2447 (c_parser_postfix_expression): Same.
2448 (c_parser_pragma): Same.
2449 (c_parser_omp_clause_collapse): Same.
2450 (c_parser_omp_clause_num_threads): Same.
2451 (c_parser_omp_clause_schedule): Same.
2452 (c_parser_omp_all_clauses): Same.
2453 (c_parser_omp_sections_scope): Same.
2454 (c_parser_omp_for_loop): Same. Pass condition's location to
2455 c_objc_common_truthvalue_conversion.
2456 (c_parser_enum_specifier): Remove comment.
2458 2008-09-24 Michael J. Eager <eager@eagercon.com>
2460 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2462 * config/rs6000/rs6000.c (rs6000_override_options): Move
2463 rs6000_init_hard_regno_mode_ok after all options changed.
2464 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2465 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2466 -msimple-fpu flags. Add warning messages if single FP not configured.
2467 (rs6000_file_start): Output gnu_attribute for single-float.
2468 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2469 (rs6000_legitimize_address): Likewise.
2470 (rs6000_legitimize_reload_address): Likewise.
2471 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2472 TARGET_SINGLE_FLOAT.
2473 (function_arg_advance): Likewise.
2474 (function_arg): Likewise.
2475 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2476 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2477 TARGET_SINGLE_FLOAT.
2478 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2479 (rs6000_emit_prologue): Likewise.
2480 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2481 TARGET_SINGLE_FLOAT.
2482 (rs6000_libcall_value): Likewise.
2483 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2484 (TARGET_DOUBLE_FLOAT): New default to 1
2485 (TARGET_SIMPLE_FPU): New default to 0
2486 (TARGET_SINGLE_FPU): New default to 0
2487 (TARGET_SINGLE_FLOAT_MODE): New.
2488 (TARGET_DOUBLE_FLOAT_MODE): New.
2489 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2490 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2492 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2493 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2494 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2495 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2496 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2497 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2498 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2499 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2500 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2501 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2502 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2503 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2504 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2505 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2506 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2507 cmptf_internal1, *cmptf_internal2): Condition on
2508 TARGET_DOUBLE_FLOAT.
2509 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2510 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2511 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2512 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2513 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2514 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2515 TARGET_SINGLE_FLOAT.
2516 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2517 * config/rs6000/rs6000.opt (-msingle-float): New.
2518 (-mdouble-float): New.
2519 (-msimple-fpu): New.
2520 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2521 -msingle-float, -mdouble-float, -msimple-fpu options.
2522 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2523 _SOFT_DOUBLE for -msingle-float.
2524 * config.gcc: New config for target=powerpc-xilinx-eabi.
2526 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2528 * config/sparc/constraints.md: New file.
2529 * config/sparc/sparc.md: Include it.
2530 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2531 (sparc_extra_constraint_check): Delete.
2532 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2533 (memory_ok_for_ldd): New predicate.
2534 (sparc_extra_constraint_check): Delete.
2535 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2536 (CONST_OK_FOR_LETTER_P): Likewise.
2537 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2538 (EXTRA_CONSTRAINT): Likewise.
2540 2008-08-23 Steve Ellcey <sje@cup.hp.com>
2542 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2544 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2546 * alias.c (find_base_value): Use FIND_BASE_TERM.
2547 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2549 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2551 * config/i386/i386.c: Include cselib.h.
2552 (ix86_pic_register_p): New function.
2553 (ix86_delegitimize_address): Use it to check for the PIC register.
2555 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2557 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2558 * config/i386/i386.c (ix86_find_base_term): Don't check for
2559 SYMBOL_REF and LABEL_REF.
2561 2008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2563 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2564 constant PLUS in a CONST.
2566 2008-09-23 Kai Tietz <kai.tietz@onevision.com>
2568 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
2569 check for sibcall support for w64.
2571 2008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2573 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2575 2008-09-23 Aldy Hernandez <aldyh@redhat.com>
2577 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2578 parser_build_binary_op.
2579 * c-decl.c (build_enumerator): Pass location to build_binary_op.
2580 * c-typeck.c (build_array_ref): Same.
2581 (parser_build_unary_op): New location argument.
2582 (pointer_diff): Pass location to build_binary_op,
2583 c_objc_common_truthvalue_conversion.
2584 (build_modify_expr): Same.
2585 (build_unary_op): New location argument.
2586 (build_binary_op): New location argument.
2587 (c_objc_common_truthvalue_conversion): Pass location to
2588 c_*common_truthvalue_conversion.
2589 * c-convert.c (convert): Same.
2590 * c-common.c (binary_op_error): New location argument.
2591 (pointer_int_sum): Pass location to build_binary_op.
2592 (c_common_truthvalue_conversion): New location argument.
2593 (warn_for_sign_compare): Same.
2594 * c-common.h: Add location argument to c_common_truthvalue_conversion,
2595 binary_op_error, build_binary_op, warn_for_sign_compare.
2596 * c-parser.c (c_parser_condition): Pass location to
2597 c_*common_truthvalue_conversion.
2598 (c_parser_conditional_expression): Save condition's location and pass
2600 (c_parser_binary_expression): Same, but for the binary operator's
2602 (c_parser_omp_for_loop): Pass location to
2603 c_objc_common_truthvalue_conversion.
2605 2008-09-23 Martin Jambor <mjambor@suse.cz>
2607 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2608 (cgraph_node_remove_callees): New temporary f. Hold the next item
2610 (cgraph_node_remove_callers): Likewise.
2612 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2613 (ipa_node_removal_hook): Likewise.
2615 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2616 gimple_call_copy_skip_args and moved to the gimple_call section.
2617 * gimple.c (gimple_copy_call_skip_args): Renamed to
2618 gimple_call_copy_skip_args. Changed al users.
2620 2008-09-22 Vladimir Makarov <vmakarov@redhat.com>
2622 * ira-color.c (start_allocno_priorities): Rename to
2623 setup_allocno_priorities. Use costs and
2624 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2625 range lengths. Get rid off doubles.
2626 (ira_fast_allocations): Call start_allocno_priorities.
2628 2008-09-22 David Daney <ddaney@avtrex.com>
2631 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2632 register if TARGET_LONG_CALLS.
2634 2008-09-22 Richard Guenther <rguenther@suse.de>
2636 PR tree-optimization/37145
2637 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2638 value-numbering union accesses with their offset and size only.
2639 (visit_reference_op_load): Fix simplification of inserted conversions.
2640 * tree-ssa-pre.c (find_or_generate_expression): Do not
2641 recursively generate expressions if running FRE.
2643 2008-09-22 Adam Nemet <anemet@caviumnetworks.com>
2645 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2646 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2649 2008-09-22 Richard Guenther <rguenther@suse.de>
2651 PR tree-optimization/37145
2652 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2653 (phi_translate_1): Constant fold references.
2655 2008-09-22 Ira Rosen <irar@il.ibm.com>
2657 PR tree-optimization/37482
2658 * tree-vectorizer.h (struct _slp_instance): Add new field.
2659 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2660 (get_earlier_stmt): New function.
2661 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2663 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2664 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2665 asserts that GSI points to the scalar statement being vectorized.
2666 Set new statement location according to GSI.
2667 (vect_schedule_slp_instance): Use GSI of
2668 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2670 2008-09-21 Jan Hubicka <jh@suse.cz>
2672 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2673 (ipcp_insert_stage): Update dead_nodes bitmap.
2675 2008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
2678 * config/i386/t-cygming (SHLIB_LC): Remove.
2679 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2680 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2682 2008-09-22 Hans-Peter Nilsson <hp@axis.com>
2686 * final.c (mark_symbol_ref_as_used): New helper function.
2687 (output_operand): Instead of just looking inside MEMs for
2688 SYMBOL_REFs, use new helper function and for_each_rtx.
2689 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2690 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
2691 Make head comment more general.
2692 * config/darwin.c (machopic_output_indirection): Handle weak
2693 references here, like in assemble_external.
2695 2008-09-21 Eric Botcazou <ebotcazou@adacore.com>
2697 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2698 (sparc_emit_float_lib_cmp): Change return type.
2699 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2700 (gen_compare_operator): New function.
2701 (sparc_emit_float_lib_cmp): Return the new operator to be used in
2702 the comparison sequence. Minor tweaks.
2703 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2704 that the final operator and the result of sparc_emit_float_lib_cmp
2705 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2706 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2707 buneq, bunge, bunle, bltgt): Assert that the final operator and the
2708 result of sparc_emit_float_lib_cmp match for software TFmode.
2709 (movqicc, movhicc, movsicc, movdicc): Merge into...
2710 (mov<I:mode>cc): ...this.
2711 (movsfcc, movdfcc, movtfcc): Merge into...
2712 (mov<F:mode>cc): ...this.
2713 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2715 (mov<I:mode>_cc_v9): ...this.
2716 (movdi_cc_sp64_trunc): Delete.
2717 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2718 movdi_cc_reg_sp64): Merge into...
2719 (mov<I:mode>_cc_reg_sp64): ...this.
2720 (movsf_cc_sp64): Rename into...
2721 (movsf_cc_v9): ...this.
2722 (movdf_cc_sp64): Rename into...
2723 (movdf_cc_v9): ...this.
2724 (movtf_cc_hq_sp64): Rename into...
2725 (movtf_cc_hq_v9): ...this.
2726 (movtf_cc_sp64): Rename into...
2727 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
2729 2008-09-21 Diego Novillo <dnovillo@google.com>
2731 * doc/gccint.texi: Include generic.texi and gimple.texi.
2733 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2734 (GIMPLE): Move to gimple.texi.
2735 (Annotations): Remove references to to stmt_ann_t and
2737 (SSA Operands): Rename from 'Statement Operands'.
2738 * doc/generic.texi: New.
2739 * doc/gimple.texi: New.
2740 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2741 * Makefile.in (TEXI_GCCINT_FILES):
2742 * gimple.c (gimple_copy_call_skip_args): Rename from
2743 giple_copy_call_skip_args. Update all users.
2744 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2746 2008-09-21 Ira Rosen <irar@il.ibm.com>
2748 PR tree-optimization/37539
2749 * tree-vect-transform.c (vect_transform_strided_load): Save vector
2750 statement in related statement field only for the first load of the
2751 group of loads with the same data reference.
2753 2008-09-20 Adam Nemet <anemet@caviumnetworks.com>
2755 * config/mips/mips.h (TUNE_OCTEON): New macro.
2756 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2757 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2758 * config/mips/octeon.md: New file.
2759 * config/mips/mips.md: Include octeon.md. Restore
2760 semi-alphabetical order of include files.
2762 2008-09-20 H.J. Lu <hongjiu.lu@intel.com>
2765 * config/i386/i386.md (*jcc_fused_1): Removed.
2766 (*jcc_fused_2): Likewise.
2767 (*jcc_fused_3): Likewise.
2768 (*jcc_fused_4): Likewise.
2770 2008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
2772 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2773 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2774 * target.h (gcc_target): Add ira_cover_classes.
2775 * ira.c: Remove IRA_COVER_CLASSES guards.
2776 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2777 instead of IRA_COVER_CLASSES.
2778 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2779 (setup_class_translate): Likewise.
2780 (setup_reg_class_intersect_union): Likewise.
2781 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2782 test of targetm.ira_cover_classes.
2783 * opts.c (decode_options): Use targetm.ira_cover_classes instead
2784 of IRA_COVER_CLASSES.
2785 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2786 (TARGET_INITIALIZER): Include it.
2787 * targhooks.h (default_ira_cover_classes): Declare.
2788 * targhooks.c (default_ira_cover_classes): New function.
2790 2008-09-19 Bob Wilson <bob.wilson@acm.org>
2792 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2794 2008-09-19 Ian Lance Taylor <iant@google.com>
2796 * varasm.c (narrowing_initializer_constant_valid_p): Return
2797 NULL_TREE if ENDTYPE is not an integer.
2799 2008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2802 * tree-ssa.c (execute_update_addresses_taken): Also update
2803 DECL_GIMPLE_REG_P for vector and complex types.
2805 2008-09-19 Andrew MacLeod <amacleod@redhat.com>
2806 Jan Hubicka <jh@suse.cz>
2809 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2810 empty before freeing them.
2811 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2813 2008-09-18 Bob Wilson <bob.wilson@acm.org>
2815 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2816 * config/xtensa/predicates.md (tls_symbol_operand): New.
2817 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2818 (TARGET_CANNOT_FORCE_MEM): Define.
2819 (xtensa_tls_symbol_p): New.
2820 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2821 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2822 (xtensa_tls_module_base): New.
2823 (xtensa_call_tls_desc): New.
2824 (xtensa_legitimize_tls_address): New.
2825 (xtensa_legitimize_address): Handle TLS symbols.
2826 (xtensa_tls_referenced_p_1): New.
2827 (xtensa_tls_referenced_p): New.
2828 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2830 (XTENSA_BUILTIN_THREAD_POINTER): New.
2831 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2832 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2833 builtin. Add declarations for __builtin_thread_pointer and
2834 __builtin_set_thread_pointer.
2835 (xtensa_fold_builtin): Recognize new builtins.
2836 (xtensa_expand_builtin): Expand new builtins.
2837 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2838 (TARGET_THREADPTR): Define.
2839 (HAVE_AS_TLS): Define default value.
2840 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2841 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2842 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2843 (UNSPECV_SET_TP): New.
2844 (sym_TPOFF, sym_DTPOFF): New.
2845 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2846 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2847 * configure: Regenerated.
2849 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
2852 * config/ia64/ia64.c (ia64_optimization_options): Move
2853 checking and setting flag_schedule_insns_after_reload and
2854 ia64_flag_schedule_insns2 back to ...
2855 (ia64_override_options): Here.
2857 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2860 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2861 zero extend count after the correction to it is done.
2862 (doloop_optimize): Update call to doloop_modify, don't zero extend
2865 2008-09-18 Martin Jambor <mjambor@suse.cz>
2867 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2869 * ipa-prop.c: Correct comments.
2870 * ipa-prop.h: Likewise.
2872 2008-09-18 Jan Hubicka <jh@suse.cz>
2875 * ipa-reference.c (ipa_reference_local_vars_info_d,
2876 ipa_reference_global_vars_info_d,
2877 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2878 ipa_reference_vars_info_t): Move here from ipa-reference.h
2879 (node_duplication_hook_holder, node_removal_hook_holder): New.
2880 (get_reference_vars_info_from_cgraph): Rename to ...
2881 (get_reference_vars_info): ... this one, use cgraph uids.
2882 (get_local_reference_vars_info, get_global_reference_vars_info):
2883 Use cgraph instead of decl.
2884 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2886 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2887 ipa_reference_get_written_global,
2888 ipa_reference_get_not_written_global): Use cgraph argument.
2889 (check_call): Simplify avail check.
2890 (scan_stmt_for_static_refs): Update.
2891 (propagate_bits): Update.
2892 (merge_callee_local_info): Remove.
2893 (init_function_info): Use cgraph nodes.
2894 (clean_function_local_data): Break out from ...
2895 (clean_function): ... here.
2896 (copy_local_bitmap, copy_global_bitmap): New functions.
2897 (duplicate_node_data, remove_node_data): New functions.
2898 (generate_summary): Register hooks; use visibility instead of
2900 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2901 * ipa-reference.h (ipa_reference_local_vars_info_d,
2902 ipa_reference_global_vars_info_d,
2903 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2904 ipa_reference_vars_info_t): Move to ipa-reference.c
2905 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2907 (ipa_reference_get_read_global, ipa_reference_get_written_global,
2908 ipa_reference_get_not_read_global,
2909 ipa_reference_get_not_written_global): Update prototype.
2910 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2911 (init_state): Remove.
2912 (node_duplication_hook_holder, node_removal_hook_holder): New.
2913 (get_function_state, set_function_state): Use VECtor.
2914 (analyze_function): Check body availability.
2915 (add_new_function): Likewise.
2916 (duplicate_node_data, remove_node_data): New.
2917 (generate_summary): Register hooks; do not care about clones.
2918 (propafate): Do not care about clones; recursive functions are
2920 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2921 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2922 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2924 * tree-flow.h (function_ann_d): Remove reference_vars_info.
2925 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2926 Update call of ipa-reference accesors.
2928 2008-09-18 Simon Baldwin <simonb@google.com>
2930 * c-opts.c (c_common_handle_option): Add handling for
2931 -Wbuiltin-macro-redefined command line option.
2932 * c.opt: Added builtin-macro-redefined option.
2933 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2936 2008-09-18 Richard Guenther <rguenther@suse.de>
2938 PR tree-optimization/37258
2939 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2940 and signedness for integral types.
2941 (vn_phi_eq): Require compatible types.
2943 2008-09-18 Jakub Jelinek <jakub@redhat.com>
2946 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2947 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2949 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2950 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2951 ggc_free other TREE_LIST nodes from that chain.
2952 * function.c (instantiate_decls): Instantiate also DECL_RTL
2953 of vars in cfun->local_decls, free that list afterwards.
2955 2008-09-18 Eric Botcazou <ebotcazou@adacore.com>
2957 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2958 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2960 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2962 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2963 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2965 2008-09-18 Andrew MacLeod <amacleod@redhat.com>
2967 PR tree-optimization/37102
2968 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2969 from a node. Check to see if another PHI is dead.
2970 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
2971 remove real PHIs which have no uses.
2972 (rewrite_out_of_ssa): Call eliminate_useless_phis.
2974 2008-09-18 Richard Guenther <rguenther@suse.de>
2977 * tree-cfg.c (remove_useless_stmts_1): Remove
2978 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2980 2008-09-18 Nick Clifton <nickc@redhat.com>
2982 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2983 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2984 to frv_secondary_reload_class.
2985 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2986 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2987 (frv_secondary_reload_class): Omit unused parameter.
2988 (frv_secondary_reload): New function. Handle the case when
2989 secondary_reload_class() is called before the reload_(in|out)
2990 _optabs have been initialised.
2991 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2993 * config/frv/frv.md: Define an exclusion set between fr550_m0
2996 2008-09-18 Richard Guenther <rguenther@suse.de>
2998 PR tree-optimization/37456
2999 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
3000 want to insert after ends a BB insert on the single fallthru
3003 2008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
3005 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
3006 Mention -march=z9-109, z9-ec and z10.
3008 2008-09-18 Uros Bizjak <ubizjak@gmail.com>
3010 PR rtl-optimization/37544
3011 * regrename.c (maybe_mode_change): Exit early when copy_mode
3012 is narrower than orig_mode and narrower than new_mode.
3014 2008-09-18 Alexander Monakov <amonakov@ispras.ru>
3017 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
3019 * sched-rgn.c (ref_counts): Remove.
3020 (insn_referenced): New static variable.
3021 (INSN_REF_COUNT): Remove.
3022 (sched_run_compute_dependencies): Use insn_referenced instead of
3024 (add_branch_dependences): Likewise. Delete dead assignment.
3026 2008-09-17 Adam Nemet <anemet@caviumnetworks.com>
3028 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
3029 consumer is an asm. Add comment why this is important.
3030 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
3031 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
3033 2008-09-17 Joseph Myers <joseph@codesourcery.com>
3035 * expr.c (emit_group_store): Do not shift before moving via a
3038 2008-09-17 Eric Botcazou <ebotcazou@adacore.com>
3040 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
3041 from aggregate to non-aggregate type if the bit pattern is not fully
3042 preserved afterwards.
3044 2008-09-17 Richard Guenther <rguenther@suse.de>
3046 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
3047 (verify_gimple_assign): ... this. Split into ...
3048 (verify_gimple_assign_unary): ... this,
3049 (verify_gimple_assign_binary): ... that,
3050 (verify_gimple_assign_single): ... and this.
3051 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
3052 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
3053 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
3054 (verify_types_in_gimple_reference): Be forgiving with
3056 (verify_gimple_phi): Deal with virtual operands.
3058 * tree.def (PREDICT_EXPR): Change to tcc_expression.
3060 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
3062 * tree.c (get_callee_fndecl): Don't call the language hook.
3063 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
3064 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
3065 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
3067 2008-09-17 Jakub Jelinek <jakub@redhat.com>
3069 * tree.c (protected_set_expr_location): Don't unnecessarily
3070 check for error_mark_node.
3072 2008-09-17 Art Haas <ahaas@impactweather.com>
3074 * ipa-reference.c (analyze_function): Declare step only if
3075 ENABLE_CHECKING is defined.
3077 2008-09-17 Jan Hubicka <jh@suse.cz>
3080 * tree.h (DECL_INLINE): remove.
3081 (DECL_DECLARED_INLINE_P): Update docs.
3082 (DECL_NO_INLINE_WARNING_P): new.
3083 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
3084 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
3086 2008-09-17 Jakub Jelinek <jakub@redhat.com>
3087 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3090 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
3093 2008-09-17 Jan Hubicka <jh@suse.cz>
3095 * ipa-reference.c (ipa_obstack): Remove.
3096 (local_info_obstack, global_info_obstack): New.
3097 (add_static_var): We now handle variables only.
3098 (mark_address_taken, mark_load, mark_store): New functions based on ...
3099 (check_operand): ... remove.
3100 (get_asm_stmt_operands): Rename to ...
3101 (check_asm_memory_clobber): ... this. Look only for memory clobber.
3102 (scan_stmt_for_static_refs): Rewrite.
3103 (scan_op_for_static_refs): Rename to ...
3104 (scan_initializer_for_static_refs): do not look for VAR_DECL
3105 initializers; stop recursion on types and decls.
3106 (ipa_init): Use proper obstacks.
3107 (analyze_variable): Use scan_initializer_for_static_refs.
3108 (init_function_info): Use local obstack.
3109 (analyze_function): Simplify.
3110 (add_new_function): We don't need visited_nodes obstack.
3111 (generate_summary): Use proper obstacks; cleanup after propagation.
3113 2008-09-17 Richard Guenther <rguenther@suse.de>
3116 PR tree-optimization/37491
3117 * alias.c (get_alias_set): Use the canonical type.
3118 * tree-vect-transform.c (vectorizable_store): Use the type of
3119 the lhs for the vector type. Adjust checking.
3120 (vectorizable_load): Adjust checking.
3122 2008-09-16 Jakub Jelinek <jakub@redhat.com>
3123 Adam Nemet <anemet@caviumnetworks.com>
3125 PR rtl-optimization/37483
3126 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
3127 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
3128 Rearrange code to better match the original comment. Check
3129 t_unconditional first. Improve comment.
3131 2008-09-16 Jakub Jelinek <jakub@redhat.com>
3134 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
3135 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
3138 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
3139 GIMPLE_TRY if cleanup sequence is empty.
3141 2008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
3144 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
3145 eliminate IV if the cost are the same.
3147 2008-09-16 Richard Guenther <rguenther@suse.de>
3150 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
3153 2008-09-16 Richard Guenther <rguenther@suse.de>
3155 PR tree-optimization/37508
3156 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
3158 2008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
3160 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
3162 2008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3164 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
3165 use gen_floatdidf2 directly.
3166 (floatunssidf2): Likewise.
3167 (floatsidf_ppc64_mfpgpr): Remove.
3168 (floatsidf_ppc64): Remove.
3169 (floatunssidf_ppc64): Remove.
3171 2008-09-15 Jakub Jelinek <jakub@redhat.com>
3173 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
3174 rather than update_cost_queue.
3176 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
3177 in every call starting with the second one, instead of only when
3178 alias_bitmap_obstack.elements != NULL.
3180 * tree-predcom.c (filter_suitable_components): Free all refs in
3181 act->refs vector before calling release_component.
3182 (add_ref_to_chain): Free ref if not adding it to chain->refs.
3184 * tree-data-ref.c (free_subscripts): Free all subscript objects.
3186 * tree-loop-linear.c (linear_transform_loops): Initialize
3187 lambda_obstack only after calling perfect_loop_nest_depth.
3188 Goto free_and_continue instead of just continue for later failures.
3191 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
3194 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
3196 2008-09-14 Andreas Schwab <schwab@suse.de>
3198 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
3200 2008-09-14 Jan Hubicka <jh@suse.cz>
3202 * invoke.texi (-fconserve-stack): Document.
3203 * opts.c (decode_options): Handle conserve_stack.
3204 * common.opt (fconvserve_stack): New.
3206 2008-09-14 David Edelsohn <edelsohn@gnu.org>
3208 * config.host: Add x-aix to host_xmake_file.
3209 * config/rs6000/t-aix52: Do not override LDFLAGS.
3210 * config/rs6000/x-aix: New file.
3212 2008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
3218 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
3219 is not recognized as a valid register usage. Allow REG_X to be used
3221 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
3222 forces a reload when using a base register.
3224 2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
3226 * config/i386/cygming-crtend.c (register_frame_ctor): If
3227 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
3228 directly with atexit.
3229 (deregister_frame_ctor): Rename to ...
3230 (deregister_frame_dtor): Use to call __gcc_deregister_frame
3231 if !DEFAULT_USE_CXA_ATEXIT.
3233 2008-09-13 Jan Hubicka <jh@suse.cz>
3235 * cgraph.c: Include value-prof.h
3236 * Makefile.in (cgraph.o): Add value-prof.h dependency.
3238 2008-09-13 Jan Hubicka <jh@suse.cz>
3241 * tree-profile.c (add_abnormal_goto_call_edges): New function.
3242 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3243 tree_gen_one_value_profiler, tree_gen_average_profiler,
3244 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
3246 2008-09-13 Jan Hubicka <jh@suse.cz>
3248 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
3249 too many bytes on misalligned blocks.
3251 2008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3253 * doc/cfg.texi: Fix some typos.
3254 * doc/extend.texi: Likewise.
3255 * doc/install.texi: Likewise.
3256 * doc/invoke.texi: Likewise.
3257 * doc/rtl.texi: Likewise.
3258 * doc/tree-ssa.texi: Likewise.
3260 2008-09-13 Richard Guenther <rguenther@suse.de>
3263 * tree-nested.c (finalize_nesting_tree_1): Generate valid
3264 gimple stores for memory rhs.
3266 2008-09-13 H.J. Lu <hongjiu.lu@intel.com>
3268 PR rtl-optimization/37489
3269 * cse.c (fold_rtx): Don't return const_true_rtx for float
3270 compare if FLOAT_STORE_FLAG_VALUE is undefined.
3272 2008-09-13 Jan Hubicka <jh@suse.cz>
3274 PR tree-optimization/37392
3275 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
3277 2008-09-13 Martin Jambor <mjambor@suse.cz>
3278 Jan Hubicka <jh@suse.cz>
3280 * cgraph.c (free_edges): New variable.
3281 (NEXT_FREE_EDGE): New macro.
3282 (cgraph_free_edge): New function.
3283 (cgraph_remove_edge): Call cgraph_remove_edge_1.
3284 (cgraph_node_remove_callees): Likewise.
3285 (cgraph_node_remove_callers): Likewise.
3286 (cgraph_create_edge): Reuse edges from the free list. Do not
3287 update uid if doing so.
3288 (cgraph_remove_*_hook): Add free call.
3290 2008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
3292 * ira-color.c (conflict_allocno_vec): Delete.
3293 (update_cost_queue_elem): New structure.
3294 (update_cost_queue): New variable.
3295 (update_cost_queue_tail): Likewise.
3296 (update_cost_queue_elems): Likewise.
3297 (allocno_update_cost_check): Delete.
3298 (initiate_cost_update): Allocate update_cost_queue_elems
3299 instead of allocno_update_cost_check.
3300 (finish_cost_update): Update the free()s accordingly.
3301 (start_update_cost): New function.
3302 (queue_update_cost): Likewise.
3303 (get_next_update_cost): Likewise.
3304 (update_copy_costs_1): Inline into...
3305 (update_copy_costs): ...here. Use a queue instead of recursive calls.
3306 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
3307 once we've established they are equal. Don't allocate update
3308 costs if there is nothing to add to them.
3309 (update_conflict_hard_regno_costs): Remove ALLOCNO and
3310 DIVISOR arguments. Use a queue instead of recursive calls;
3311 process all the allocnos in the initial queue, rather than
3313 (assign_hard_reg): Use queue_update_cost instead of
3314 conflict_allocno_vec. Queue coalesced allocnos instead
3315 of calling update_conflict_hard_regno_costs for each one.
3316 Just call update_conflict_hard_regno_costs once for the
3318 (ira_color): Remove conflict_allocno_vec handling.
3320 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3322 PR tree-optimization/37484
3323 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
3324 (save_var_name): Same.
3325 (initialize_cloog_names): Same.
3326 (initialize_cloog_names): Same.
3328 2008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3330 * tree-scalar-evolution.c (set_instantiated_value): Set
3333 2008-09-12 Vladimir Makarov <vmakarov@redhat.com>
3337 * ira-build.c (common_loop_tree_node_dominator): Remove.
3338 (copy_live_ranges_to_removed_store_destinations): New function.
3339 (regno_top_level_allocno_map): Move to top level from ...
3340 (ira_flattening): ... here. Use
3341 copy_live_ranges_to_removed_store_destinations.
3343 * ira-emit.c (generate_edge_moves): Fix a comment.
3345 2008-09-12 Anatoly Sokolov <aesok@post.ru>
3348 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
3349 scratch register after 'set' pattern.
3351 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3353 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
3354 information passed to mark_reg_pointer.
3355 * explow.c (force_reg): Likewise.
3357 2008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3359 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3360 when building for the celledp architecture.
3362 2008-09-12 Richard Guenther <rguenther@suse.de>
3364 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3366 2008-09-12 Eric Botcazou <ebotcazou@adacore.com>
3368 PR rtl-optimization/37424
3369 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3370 the regnos instead of the addresses.
3372 2008-09-11 Janis Johnson <janis187@us.ibm.com>
3374 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3376 2008-09-11 Richard Guenther <rguenther@suse.de>
3378 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3379 entering the weaker equivalence recording.
3381 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3383 2008-09-11 Jeff Law <law@redhat.com>
3385 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3386 by assign_stack_local on the IRA path for stack slot sharing
3387 as well as the non-IRA path.
3389 2008-09-11 Uros Bizjak <ubizjak@gmail.com>
3391 * config/i386/i386.h: Fix whitespace issues.
3393 2008-09-11 Martin Jambor <mjambor@suse.cz>
3395 * ipa-prop.h (struct ipa_param_flags): Removed.
3396 (struct ipa_param_descriptor): New structure.
3397 (struct ipa_node_params): ipcp_lattices, param_decls and
3398 param_flags moved to ipa_param_description.
3399 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3400 descriptors. Renamed all users.
3401 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3402 changed to access descriptors. Renamed all users.
3403 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3404 to access descriptors. Renamed all users.
3405 * ipa-cp.c (ipcp_init_cloned_node): Call
3406 ipa_initialize_node_params instead of ipa_count_formal_params and
3407 ipa_create_param_decls_array.
3408 (ipcp_analyze_node): Likewise.
3409 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3410 descriptors. Renamed all users.
3411 (ipcp_initialize_node_lattices): Remove allocation.
3412 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3413 ipa_initialize_node_params instead of ipa_count_formal_params and
3414 ipa_create_param_decls_array.
3415 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3416 ipa_populate_param_decls, made static, added parameter info,
3417 renamed mt to node, removed allocation, changed to use
3419 (ipa_count_formal_params): Made static, added parameter info,
3421 (ipa_initialize_node_params): New function.
3422 (ipa_check_stmt_modifications): Changed to use descriptors.
3423 (ipa_detect_param_modifications): Removed allocation, changed to
3425 (ipa_note_param_call): Changed to use descriptors.
3426 (ipa_analyze_params_uses): Removed allocation.
3427 (ipa_free_node_params_substructures): Changed to use descriptors.
3428 (ipa_edge_duplication_hook): Use the unused attribute.
3429 (ipa_node_duplication_hook): Use the unused attribute, changed to
3430 use descriptors, changed to duplicate descriptors.
3432 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3433 changed all callers. Call ipa_propagate_indirect_call_infos if doing
3434 indirect inlining. Made static.
3435 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
3436 functions called only once.
3437 (cgraph_decide_recursive_inlining): Don't call
3438 ipa_propagate_indirect_call_infos, pass new_edges to
3439 cgraph_mark_inline_edge instead.
3440 (cgraph_decide_inlining_of_small_functions): Don't call
3441 ipa_propagate_indirect_call_infos, pass new_edges to
3442 cgraph_mark_inline_edge instead.
3443 (cgraph_decide_inlining): Don't call
3444 ipa_propagate_indirect_call_infos.
3445 * ipa-prop.c: Check that vectors are allocated.
3447 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
3448 iff a new cgraph edges have been created.
3449 (cgraph_decide_inlining): New variable redo_always_inline.
3450 Flattening and always_inlining loop until callgraph stabilizes.
3451 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
3452 true iff new cgraph edges have been created.
3453 (propagate_info_to_inlined_callees): Likewise.
3454 (ipa_propagate_indirect_call_infos): Likewise.
3456 2008-09-11 Richard Guenther <rguenther@suse.de>
3458 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
3459 (set_prologue_iterations): Likewise.
3460 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3462 (vect_update_init_of_dr): Likewise.
3463 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
3465 * fold-const.c (fold_unary): Do not generate calculations
3468 2008-09-11 Paolo Bonzini <bonzini@gnu.org>
3470 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
3471 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
3472 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
3474 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
3476 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
3477 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
3478 before finalizing the changes.
3479 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
3481 (simplify_truth_ops_using_ranges): New.
3482 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
3483 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
3484 whether a simplification was made.
3485 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
3486 use a switch statement and also call simplify_truth_ops_using_ranges.
3488 2008-09-11 Jan Hubicka <jh@suse.cz>
3490 * ggc-common.c (loc_array): Make static.
3491 * dce.c (rest_of_handle_ud_dce): Free worklist.
3493 2008-09-11 Jan Hubicka <jh@suse.cz>
3495 * cgraph.c (cgraph_release_function_body): Plug memory leak on
3496 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
3497 function so we are sure we do not dangle it forever.
3498 * function.c (outer_function_chain, find_function_data): Remove.
3499 (function_context_stack): New.
3500 (push_function_context, pop_function_context): Update.
3501 * function.h (struct function): Remove pointer outer.
3502 (outer_function_chain, find_function_data): Remove.
3503 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
3505 2008-09-11 Jan Hubicka <jh@suse.cz>
3508 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
3510 2008-09-11 Jan Hubicka <jh@suse.cz>
3512 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
3514 2008-09-11 Jan Hubicka <jh@suse.cz>
3516 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
3517 (free_var_map_entry): New function.
3518 (redirect_edge_var_map_destroy): Use it.
3520 2008-09-11 Jan Hubicka <jh@suse.cz>
3523 * tree-inline.c (add_lexical_block): Replace with ...
3524 (prepend_lexical_block): ... prepend at begginig.
3525 (remap_blocks): Use it and reverse later.
3526 (expand_call_inline): Use prepend_lexical_block.
3528 2008-09-11 Jan Hubicka <jh@suse.cz>
3530 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
3532 2008-09-11 Jan Hubicka <jh@suse.cz>
3534 * function.c (free_after_compilation): Call insn_locators_free.
3535 * cfglayout.c (insn_locators_free): New function.
3536 * rtl.h (insn_locators_free): Declare.
3538 2008-09-11 Jan Hubicka <jh@suse.cz>
3540 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
3542 (cond_move_process_if_block): Update call.
3544 2008-09-11 Jan Hubicka <jh@suse.cz>
3546 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
3547 * vec.c: Include hashtab.h
3548 (vec_descriptor, ptr_hash_entry): New structures.
3549 (vec_desc_hash, vec_ptr_map): New static variables.
3550 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
3551 register_overhead, free_overhead, vec_heap_free): New functions.
3552 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
3553 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
3554 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
3557 2008-09-11 Ira Rosen <irar@il.ibm.com>
3559 PR tree-optimization/37474
3560 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
3561 length of load permutation.
3563 2008-09-11 Andreas Schwab <schwab@suse.de>
3565 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
3567 2008-09-11 Jakub Jelinek <jakub@redhat.com>
3570 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
3571 * dse.c (find_shift_sequence): Use extract_low_bits instead of
3572 simplify_gen_subreg.
3574 2008-09-11 Ira Rosen <irar@il.ibm.com>
3576 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
3579 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3582 * gimplify.c (gimplify_body): Call default_rtl_profile.
3585 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
3586 instead of tok->val.node if not expanding to something else. Handle
3587 intervening CPP_PADDING tokens.
3588 (altivec_categorize_keyword): Remove unneeded comparisons.
3590 2008-09-10 Richard Guenther <rguenther@suse.de>
3592 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
3594 2008-09-10 Richard Guenther <rguenther@suse.de>
3597 * tree-inline.c (insert_init_stmt): Make sure to not
3598 insert invalid gimple stores.
3600 2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
3602 PR tree-optimization/37388
3603 * toplev.c (process_options): Fail and warn when graphite
3604 flags are used, but the compiler has not been configured
3605 with graphite libraries.
3606 * graphite.c (graphite_transform_loops): Remove printfs
3607 to dump_file for the case when graphite is not available.
3609 2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
3612 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3613 the even element into register.
3614 (ix86_expand_vector_init_general): Don't use
3615 ix86_expand_vector_init_interleave on V16QImode and V8HImode
3616 if we can't move from GPR to SSE register directly.
3618 2008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
3620 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3621 not lose track of the number of NOPs needed. Number of NOPs needed
3622 for sync vs. loads workaround was switched; corrected. Run second
3623 pass for all workarounds. No NOPs needed after call insns. Change
3624 second pass to use find_next_insn_start and find_load helpers in order
3625 to properly detect parallel insns.
3626 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3628 2008-09-10 Jan Hubicka <jh@suse.cz>
3630 * value-prof.c (gimple_ic): Fix tuplification bug.
3631 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3634 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3636 PR tree-optimization/37353
3637 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3638 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3639 calls instead of cond_dead_built_in_calls.
3640 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3641 initalize the vector only before adding first entry. Use VEC_safe_push
3642 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
3643 shrink_wrap_conditional_dead_built_in_calls call.
3645 2008-09-10 Ira Rosen <irar@il.ibm.com>
3647 PR tree-optimization/37385
3648 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3649 argument, and use it as a vector type if not NULL.
3650 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
3652 (vect_setup_realignment): Call vect_create_data_ref_ptr with
3653 additional argument.
3654 (vectorizable_load): Likewise.
3656 2008-09-10 Jakub Jelinek <jakub@redhat.com>
3658 * config/i386/i386.md (SWI32): New mode iterator.
3659 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3662 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3664 PR rtl-optimization/37435
3665 * caller-save.c (insert_restore, insert_save): Check the mode by
3668 2008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3671 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3673 (dw2_output_indirect_constant_1): Use unstripped name in symbol
3676 2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
3678 * doc/invoke.texi (ARM Options): Correct errors in discussion
3679 of -mfloat-abi, -mhard-float, and -msoft-float.
3681 2008-09-09 Jakub Jelinek <jakub@redhat.com>
3682 Jan Hubicka <jh@suse.cz>
3685 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3686 calling gimple_regimplify_operands on it. Iterate over all newly
3687 added statements, not just the last one.
3688 (insert_init_stmt): Insert stmt into seq first, then call
3689 gimple_regimplify_operands on it. Don't create new gimplification
3690 context, nor find referenced vars.
3692 2008-09-09 Jakub Jelinek <jakub@redhat.com>
3695 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3696 to pointer to vector pointer.
3697 * ipa-prop.c (ipa_propagate_indirect_call_infos,
3698 propagate_info_to_inlined_callees): Likewise.
3699 (update_call_notes_after_inlining): Likewise. Push new indirect edge
3700 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
3701 ipa_check_create_edge_args.
3702 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3703 argument to pointer to vector pointer.
3704 (cgraph_decide_inlining_of_small_function): Adjust
3705 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3709 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3710 optimizing for size, not speed.
3712 PR rtl-optimization/37408
3713 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3714 if parm is promoted.
3716 2008-09-09 Sebastian Pop <sebastian.pop@amd.com>
3718 PR tree-optimization/37375
3719 * tree-scalar-evolution.c (scev_info_str): Add field
3721 (new_scev_info_str, eq_scev_info, find_var_scev_info,
3722 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3723 set_instantiated_value): Pass instantiated_below.
3724 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3726 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3727 the definitions are not instantiated.
3729 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3730 (block_before_loop): New.
3731 * tree-data-ref.c (dr_analyze_indices): Update uses of
3733 * graphite.c (block_before_scop): New.
3734 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
3735 basic block, not a loop for determining the parameters.
3736 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3738 (idx_record_params, find_params_in_bb, find_scop_parameters,
3739 build_loop_iteration_domains, add_conditions_to_domain): Update calls
3740 to instantiate_scev.
3742 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3744 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3748 * ira-build.c (ira_create_allocno): Setup frequency to 0.
3750 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3751 Check zero freq and increase if necessary.
3753 2008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3755 * ira-conflicts.c (process_regs_for_copy): Check that the hard
3756 regno is in the right range. Add comments.
3758 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3760 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3762 * mips-tfile.c (copy_object): Cast alloca result to int *.
3763 * mips-tdump.c (print_symbol): Cast xmalloc return values to
3765 Rename class to sclass.
3766 (read_tfile): Cast read_seek return values to proper types.
3767 Cast xcalloc return value to proper type.
3769 2008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3771 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3772 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3773 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3775 2008-09-09 Jan Hubicka <jh@suse.cz>
3777 * profile.c (is_edge_inconsistent): Add debug output; ignore
3778 negative count on fake edges.
3779 (is_inconsistent): Add debug output.
3781 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
3783 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3785 (choose_ready): When first insn is chosen from the ready list, also
3788 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
3790 PR rtl-optimization/37360
3791 * haifa-sched.c (max_issue): Do not assert that we never issue more
3792 insns than issue_rate. Add comment.
3794 2008-09-09 Richard Guenther <rguenther@suse.de>
3796 * tree-cfg.c (verify_types_in_gimple_op): Remove.
3797 (verify_types_in_gimple_call): Rename to ...
3798 (verify_gimple_call): ... this. Enhance.
3799 (verify_types_in_gimple_cond): Remove.
3800 (verify_gimple_comparison): New function ...
3801 (verify_types_in_gimple_assign): ... split out from here.
3802 (verify_types_in_gimple_return): Rename to ...
3803 (verify_gimple_return): ... this. Enhance.
3804 (verify_types_in_gimple_switch): Rename to ...
3805 (verify_gimple_switch): ... this. Enhance.
3806 (verify_gimple_goto): New function.
3807 (verify_types_in_gimple_phi): Rename to ...
3808 (verify_gimple_phi): ... this. Enhance.
3809 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3810 Fold in single-statement cases from verify_types_in_gimple_seq_2.
3811 (verify_types_in_gimple_seq_2): Remove cases handled in
3812 verify_types_in_gimple_stmt.
3814 2008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
3816 * config/bfin/bfin.c (n_regs_to_save): New static variable.
3817 (push_multiple_operation, pop_multiple_operation): Set it.
3818 (workaround_rts_anomaly): New function.
3819 (workaround_speculation): New function, broken out of bfin_reorg.
3820 (bfin_reorg): Call the new functions.
3822 2008-09-09 Richard Guenther <rguenther@suse.de>
3826 * gimplify.c (gimplify_conversion): Change conversions of
3827 non-register type to VIEW_CONVERT_EXPRs.
3828 (gimplify_addr_expr): If we need to make the operand
3829 addressable make sure to use a properly initialized
3830 temporary for that so it gets a valid gimple store.
3832 2008-09-09 Aldy Hernandez <aldyh@redhat.com>
3834 * function.h (struct function): Add function_start_locus.
3835 * cfgexpand.c (gimple_expand_cfg): Use it.
3836 * c-parser.c (c_parser_declaration_or_fndef): Set it.
3838 2008-09-09 Richard Guenther <rguenther@suse.de>
3840 PR tree-optimization/37433
3841 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3844 2008-09-09 Richard Guenther <rguenther@suse.de>
3846 PR tree-optimization/37387
3847 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3848 and bits to a common type.
3850 2008-09-09 Nick Clifton <nickc@redhat.com>
3852 * config/v850/v850.md (return): Restore frame size restriction.
3854 2008-09-09 Paolo Bonzini <bonzini@gnu.org>
3856 * c-common.c (c_expand_decl): Remove.
3857 * c-common.h (anon_aggr_type_p): Remove prototype.
3858 (DECL_ANON_UNION_ELEMS): Remove.
3859 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3860 * c-decl.c (anon_aggr_type_p): Remove.
3861 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3862 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3863 * langhooks.h (struct lang_hooks): Remove expand_decl.
3864 * langhooks.c (lhd_expand_decl): Remove.
3865 * stmt.c (expand_anon_union_decl): Remove.
3866 * tree.h (expand_anon_union_decl): Remove prototype.
3868 2008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
3871 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3873 * config/avr/avr.md (QISI) : Define mode iterator.
3874 (negated_tst<mode>) : Redefine as split using mode macro.
3875 (reversed_tstqi): Define insn as reversed compare with zero.
3876 (reversed_tsthi): Ditto.
3877 (reversed_tstsi): Ditto.
3879 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3882 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3883 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3886 * predict.c (optimize_function_for_size_p): Don't segfault if
3888 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3889 tree_swap_operands_p): Don't test cfun != NULL before calling
3890 optimize_function_for_s*_p.
3892 2008-09-08 Eric Botcazou <ebotcazou@adacore.com>
3894 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3897 2008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3899 * crx/crx.h (IRA_COVER_CLASSES): Define.
3901 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3904 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3905 even when a stmt has been gimple_modified_p, but after fold_stmt is
3906 not any longer. Remove unneeded may_have_exposed_new_symbols
3909 2008-09-08 Richard Guenther <rguenther@suse.de>
3911 PR tree-optimization/37421
3912 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3915 2008-09-08 Jakub Jelinek <jakub@redhat.com>
3918 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3920 2008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3923 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3924 * pa-hpux10.h (LINK_SPEC): Likewise.
3925 * pa-hpux11.h (LINK_SPEC): Likewise.
3927 2008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3929 * pa32-regs.h (IRA_COVER_CLASSES): Define.
3930 * pa64-regs.h (IRA_COVER_CLASSES): Define.
3932 2008-09-07 Helge Deller <deller@gmx.de>
3934 * pa/linux-atomic.c: New file.
3935 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3936 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3938 2008-09-07 Richard Guenther <rguenther@suse.de>
3939 Ira Rosen <irar@il.ibm.com>
3941 PR tree-optimization/36630
3942 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3943 Call STRIP_NOPS before calling evolution_part_in_loop_num.
3945 2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
3946 Ira Rosen <irar@il.ibm.com>
3948 PR tree-optimization/35642
3949 * config/rs6000/altivec.md (mulv8hi3): Implement.
3951 2008-09-06 Jeff Law <law@redhat.com>
3953 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3955 2008-09-06 Jan Hubicka <jh@suse.cz>
3957 PR tree-optimization/14703
3958 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3960 * passes.c (init_optimization_passes): Recompute inline parameters.
3962 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3964 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3967 2008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
3968 Peter Fuerst <post@pfrst.de>
3970 * doc/invoke.texi: Document -mr10k-cache-barrier=.
3971 * doc/extend.texi: Document __builtin_mips_cache.
3972 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3973 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3974 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3975 __GCC_HAVE_BUILTIN_MIPS_CACHE.
3976 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3977 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3978 (set_push_mips_isas): New variable.
3979 (mips_r10k_cache_barrier): New variable.
3980 (cache): New availability predicate.
3981 (mips_builtins): Add an entry for __builtin_mips_cache.
3982 (mips_build_cvpointer_type): New function.
3983 (MIPS_ATYPE_CVPOINTER): New macro.
3984 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3986 (r10k_simplified_address_p, r10k_simplify_address)
3987 (r10k_uncached_address_p, r10k_safe_address_p)
3988 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3989 (r10k_needs_protection_p_call, r10k_needs_protection_p)
3990 (r10k_insert_cache_barriers): New functions.
3991 (mips_reorg_process_insns): Delete cache barriers after a
3992 branch-likely instruction.
3993 (mips_reorg): Call r10k_insert_cache_barriers.
3994 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3995 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3996 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3997 (mips_cache, r10k_cache_barrier): New define_insns.
3999 2008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
4001 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
4002 * ira-color.c (setup_allocno_left_conflicts_num): Use
4003 hard_reg_set_equal_p instead of a comparison with
4004 ira_zero_hard_reg_set.
4005 * ira.c (setup_reg_subclasses): Likewise.
4006 (setup_cover_and_important_classes): Likewise.
4007 (setup_class_translate): Likewise.
4008 (setup_reg_class_intersect_union): Likewise.
4009 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
4010 (ira_init_once): Don't initialize them.
4012 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
4014 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
4016 2008-09-05 Vladimir Makarov <vmakarov@redhat.com>
4018 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
4020 2008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4022 Improved branch hints, safe hints, and scheduling.
4024 * haifa-sched.c (sched_emit_insn) : Define.
4025 * sched-int.h (sched_emit_insn) : Add prototype.
4026 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
4027 -mhint-max-distance -msafe-hints) : Document.
4028 * config/spu/spu.c (spu_flag_var_tracking): New.
4029 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
4030 TARGET_SCHED_REORDER, TARGE