PR tree-optimization/19590
* tree-vrp.c (adjust_range_with_scev): Set the range when the result
of scev is a constant.
* gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
From-SVN: r125925
2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-problems.c (df_note_bb_compute): Made computation of live
info consistent with df_lr.
From-SVN: r125924
2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (processor_target_table): Increase maximum
skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
default 64bit.
* config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
byte alignment if > 8 byte alignment is preferred.
* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
From-SVN: r125920
PR tree-optimization/31866
* tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
if ASM_EXPR's input is not a SSA_NAME.
* gcc.dg/pr31866.c: New test.
From-SVN: r125919
PR middle-end/32362
* omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
but decl is a global var, instead return decl.
* gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
even for is_global_var decls, if they are private in some outer
context.
* testsuite/libgomp.c/pr32362-1.c: New test.
* testsuite/libgomp.c/pr32362-2.c: New test.
* testsuite/libgomp.c/pr32362-3.c: New test.
From-SVN: r125917
2007-06-20 Seongbae Park <seongbae.park@gmail.com>
Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
* dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
New counters.
* haifa-sched.c (queue_to_ready): Don't requeue next insn
if dbg_cnt (sched_insn) reaches the limit.
(choose_ready): New parameter INSN_PTR and new return value.
(schedule_block): Handle dbg_cnt (sched_insn). Handle
the new return value from choose_ready.
* global.c (global_aloc): New dbgcnt global_alloc_at_reg.
(rest_of_handle_global_alloc): New global_alloc_at_func.
Co-Authored-By: Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
From-SVN: r125891
PR tree-optimization/25737
* tree.h (struct tree_struct_field_tag): Add new field alias_set.
(SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
* tree-flow.h (struct fieldoff): Add new field alias_set.
* tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
argument addressable_type. Set alias_set of fieldoff.
* tree-ssa-alias.c (create_sft): Add new argument alias_set.
(create_overlap_variables_for): Pass alias_set from fieldoff to
create_sft.
* alias.c (get_alias_set): Use alias_set from SFT if set.
From-SVN: r125890
* gcc/config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
of a variable as an unsigned HOST_WIDE_INT integer.
* gcc.target/i386/large-size-array-3.c: New.
From-SVN: r125888
PR middle-end/31959
* builtins.c: Include diagnostic.h.
(expand_builtin_expect): Make gcc_assert more permissive.
* Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
* gcc.dg/pr31959.c: New test.
From-SVN: r125875
PR inline-asm/32109
* gimplify.c (gimplify_asm_expr): Issue error if type is addressable
and !allows_mem.
* g++.dg/ext/asm10.C: New test.
From-SVN: r125874
2007-06-15 Kenneth Zadeck <zadeck@naturalbridge.com>
* df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
(struct df_problem.free_blocks_on_set_blocks): New field.
(struct dataflow.optional_p): New field.
(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
(df_live_set_all_dirty): New function.
* df-scan.c (df_scan_alloc): Initialize optional_p.
(problem_SCAN): Initialize free_blocks_on_set_blocks.
* df-core.c (df_set_blocks): Removed use of
DF_FIRST_OPTIONAL_PROBLEM. Now uses
df_problem.free_blocks_on_set_blocks to determine which blocks are
recycled.
(df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
(df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
uses dataflow.optional_p to determine if problem should be
deleted.
(rest_of_handle_df_initialize): Only start live problem if
-02 or above.
(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
* df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
(problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
problem_NOTE): Initialize free_blocks_on_set_blocks.
(df_lr_bb_local_compute): Recompute luids if df_live problem is
not active.
(df_live_set_all_dirty, df_note_alloc): New function.
* regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
df_get_live_*.
* sched_ebb.c (compute_jump_reg_dependencies): Ditto.
* postreload.c (reload_combine): Ditto.
* cse.c (cse_extended_basic_block): Ditto.
* regmove.c (mark_flags_life_zones): Ditto.
* rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
erase_matching_seqs): Ditto.
* bt-load.c (compute_defs_uses_and_gen): Ditto.
* integrate (allocate_initial_values): Ditto.
* combine.c (reg_dead_at_p): Ditto.
* resource.c (mark_target_live_regs): Ditto.
* sched-rgn.c (check_live_1, update_live_1): Ditto.
* config/sh/sh.c (find_r0_life_regions): Ditto.
* global.c (rest_of_handle_global_alloc): Only add back df_live
for -O > 1.
* local-alloc.c (rest_of_handle_local_alloc): Only remove
df_live for -O > 1.
* ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
df_get_live_*.
(if_convert): Make sure df_live is there at -O == 1.
(pass_if_after_combine): Cleanup flags.
* init-regs.c (initialize_uninitialized_regs): Make sure df_live
is there at -O == 1.
From-SVN: r125857
PR tree-optimization/32367
* tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
of the chrec has no evolution in that loop.
* testsuite/gcc.dg/tree-ssa/pr32367.c: New.
From-SVN: r125855
* config/xtensa/xtensa.c: Include "df.h".
(xtensa_builtin_saveregs): Use adjust_address instead of change_address.
(xtensa_va_start): Invoke make_tree with sizetype for
expand_builtin_saveregs and then convert the result to a pointer.
Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
(xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
Subtract argument size from index value as integers and then use
POINTER_PLUS_EXPR to add the result to the array address.
From-SVN: r125854
2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
PR target/32335
* config/m32c/m32c.c: Include dataflow header file.
(m32c_emit_prologue): Adjust for prologue insn change.
* config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
once inside a PARALLEL. Assume frame size passed in operand 0
includes space to save the fb register.
(prologue_enter_24): Likewise.
(epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
From-SVN: r125853
2007-06-19 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (handle_ptr_arith): Make sure to
only handle positive offsets that fit in a HOST_WIDE_INT.
* g++.dg/torture/pr30252.C: New testcase.
From-SVN: r125849
gcc/ChangeLog:
2007-06-18 Seongbae Park <seongbae.park@gmail.com>
PR rtl-optimization/32339
* df-scan.c (df_uses_record): Don't modify flags but just add to
it for df_ref_record.
gcc/testsuite/ChangeLog:
2007-06-18 Martin Michlmayr <tbm@cyrius.com>
PR rtl-optimization/32339
* gcc.c-torture/compile/pr32339.c: New test.
From-SVN: r125825
Revert:
2007-06-18 David Daney <ddaney@avtrex.com
PR target/32313
* config/mips/mips.c (mips_expand_call): Mark $gp as used by
local function call.
From-SVN: r125824
PR tree-optimization/32383
* targhooks.c (default_builtin_reciprocal): Add new bool argument.
* targhooks.h (default_builtin_reciprocal): Update prototype.
* target.h (struct gcc_target): Update builtin_reciprocal.
* doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
* tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
when fndecl is in BUILT_IN_MD class.
(execute_convert_to_rsqrt): Ditto.
* config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
Convert BUILT_IN_SQRTF code only when md_fn is false.
testsuite/ChangeLog:
PR tree-optimization/32383
* testsuite/g++.dg/opt/pr32383.C: New test.
From-SVN: r125790