Age | Commit message (Collapse) | Author | Files | Lines |
|
* gcc.dg/single-precision-constant.c: Tweak for non-C99 runtimes.
From-SVN: r111638
|
|
used in the condition of an if statement)
PR middle-end/14752
* c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
cases via the construction of "expr != 0".
* gcc.dg/fold-eqandshift-2.c: New test case.
From-SVN: r111575
|
|
2006-02-28 Richard Guenther <rguenther@suse.de>
* gcc.dg/tree-ssa/pr26421.c: Fix testcase to force struct
decomposition.
From-SVN: r111566
|
|
C is a single bit, i.e.
* fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
(X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
as (X & C) ne/eq 0.
* gcc.dg/fold-eqandnot-1.c: New test case.
From-SVN: r111471
|
|
* opts.c (decode_options): Do not handle flag_strength_reduce.
(common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
and OPT_fstrength_reduce.
* tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
flag_prefetch_loop_arrays for being nonzero.
* common.opt (floop-optimize, frerun-loop-opt): Resurrected as
no-ops.
(fprefetch-loop-arrays-rtl): Removed.
(flag_prefetch_loop_arrays): Do not specify the value.
* doc/passes.texi: Update documentation of loop optimizer
passes.
* doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
-frerun-loop-opt): Remove.
* gcc.target/i386/20000614-2.c: Do not use -fno-strength-reduce.
* gcc.dg/20030324-1.c: Do not use -fstrength-reduce.
From-SVN: r111469
|
|
foo(&var) use all elements of var)
2006-02-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/26421
* tree-ssa-alias.c (find_used_portions): Don't treat parameters
in function calls that are ADDR_EXPRs as using the whole structure.
* gcc.dg/tree-ssa/pr26421.c: New testcase.
From-SVN: r111461
|
|
gcc/
* common.opt (-floop-optimize, -frerun-loop-opt): Remove.
* tree-pass.h (pass_loop_optimize): Remove.
* passes.c (pass_loop_optimize): Never run it.
* toplev.c (backend_init): Don't call init_loop.
* opts.c (flag_loop_optimize_set): Remove.
(decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
(common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
the old RTL loop optimizer when profiling enabled.
* predict.c (tree_estimate_probability): Always strip builtin_expect.
* cfgcleanup.c (try_forward_edges): Don't avoid killing loop
pre-headers for the sake of the old RTL loop optimizer.
* Makefile.in: Remove all references to loop.o.
* doc/invoke.texi: Remove all references to -floop-optimize
and -frerun-loop-opt.
testsuite/
* gcc.dg/20031201-1.c: Don't use -frerun-loop-opt.
* g++.old-deja/g++.robertl/eb132.C: Likewise.
From-SVN: r111459
|
|
* fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
(X & 1) == 0.
<BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
* gcc.dg/fold-even-1.c: New test case.
From-SVN: r111454
|
|
2006-02-26 Roger Sayle <roger@eyesopen.com>
James A. Morrison <phython@gcc.gnu.org>
PR middle-end/21137
* fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
new constant C2<<C1, or as (X<0) or (X,false) depending upon the
signedness of the shift operation.
* gcc.dg/fold-eqandshift-1.c: New test case.
Co-Authored-By: James A. Morrison <phython@gcc.gnu.org>
From-SVN: r111453
|
|
the wrong type)
PR tree-optimization/25125
* gcc.dg/vect/wrapv-vect-7.c, gcc.dg/vect/wrapv-vect-reduc-2char.c,
gcc.dg/vect/wrapv-vect-reduc-2short.c: New tests.
From-SVN: r111452
|
|
-ftree-vectorize)
PR tree-optimization/26359
* tree-ssa-alias.c (new_type_alias): Set fields for new tag.
From-SVN: r111451
|
|
PR middle-end/23673
* fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
symmetry related transformations. Fold (X^C1) == C2 as
X == (C1^C2).
* gcc.dg/fold-eqxor-1.c: New test case.
* gcc.dg/fold-eqxor-2.c: Likewise.
* gcc.dg/fold-eqxor-3.c: Likewise.
From-SVN: r111442
|
|
PR middle-end/26412
* gimplify.c (omp_add_variable): Guard variable size decl test with
DECL_SIZE (decl) check.
* gcc.dg/gomp/pr26412.c: New test.
From-SVN: r111391
|
|
* gcc.dg/bf-spl1.c: Don't specify -m68000.
* g++.old-deja/g++.pt/static11.C: Xfail for m68k-elf
From-SVN: r111360
|
|
memory compiling libiberty/md5.c)
PR tree-optimization/26361
* tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
of unsigned integer types.
* gcc.dg/tree-ssa/vrp27.c: New test case.
From-SVN: r111327
|
|
2006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/tree-ssa/complex-3.c: Split out first part into ...
* gcc.dg/tree-ssa/complex-4.c: Here.
From-SVN: r111309
|
|
PR middle-end/26334
* gcc.dg/20060218-1.c: Moved to...
* gcc.target/i386/20060218-1.c: ... here. New test.
From-SVN: r111279
|
|
COMPLEX_CST >)
2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25680
* tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
IMAGPART_EXPR.
2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25680
* testsuite/gcc.dg/tree-ssa/complex-3.c: New test.
From-SVN: r111251
|
|
variable name in...
2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/tree-ssa/20031106-1.c: Fix the final scan of the
variable to take into account the variable name in the
function header.
* gcc.dg/tree-ssa/20031106-2.c: Likewise.
From-SVN: r111250
|
|
PR middle-end/26334
* stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
instead of DECL_REGISTER.
* gcc.c-torture/compile/20060217-1.c: New test.
* gcc.dg/20060218-1.c: New test.
From-SVN: r111247
|
|
DYNAMIC_LINKER)
PR target/24837
* config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
* opth-gen.awk: Handle Var and InverseMask together.
* config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
* config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
(TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
(CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
used together.
(UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
* config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER): Define.
(ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
* config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
TARGET_GLIBC.
* config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
* config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
(TARGET_C99_FUNCTIONS): Don't define.
* config/i386/linux.h (DYNAMIC_LINKER): Rename to
GLIBC_DYNAMIC_LINKER.
(SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
* config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
GLIBC_DYNAMIC_LINKER64): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
LINUX_DYNAMIC_LINKER64.
* config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
and LINUX_DYNAMIC_LINKER32.
* config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
TARGET_GLIBC.
* config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
(LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
(LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
* config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER): Define.
(LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
* config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
GLIBC_DYNAMIC_LINKER64): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
LINUX_DYNAMIC_LINKER64.
* config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
* config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
(LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
(LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
* config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* doc/invoke.texi (-muclibc): Remove caveat about supported
targets.
testsuite:
* gcc.dg/glibc-uclibc-1.c, gcc.dg/glibc-uclibc-2.c: New tests.
From-SVN: r111235
|
|
* tree-vrp.c (set_value_range_to_nonnegative): New function.
(vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
(ssa_name_nonzero_p): Likewise.
(get_value_range): Return NULL if VRP is not running.
(extract_range_from_expr): Fallback to tree_expr_XXX_p if
VRP routines do not discover a range.
(vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
* tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
* fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
(tree_expr_nonnegative_p): Similarly.
* tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
(restore_nonzero_vars_to_original_value): Remove.
(unsafe_associative_fp_binop): Remove.
(tree_ssa_dominator_optimize): Remove initialization and
finalization of nonzero_vars and nonzero_vars_stack.
(dom_opt_initialize_block): No longer push marker on
nonzero_vars_stack.
(dom_opt_finalize_block): No longer call
restore_nonzero_vars_to_original_value.
(record_equivalences_from_phis): No longer look for
nonzero PHI arguments.
(cprop_into_successor_phis): No longer propagate nonzero
property into PHI arguments. Lose unused argument. Caller
updated.
(record_equivalences_from_stmt): No longer record nonzero
values for SSA_NAMEs.
(lookup_avail_expr): No longer use nonzero_vars.
* gcc.dg/tree-ssa/vrp24.c: Update expected output.
* gcc.dg/tree-ssa/vrp26.c: New test.
From-SVN: r111175
|
|
gcc:
PR target/20353
PR target/24578
PR target/24837
* config/linux.opt: New file.
* config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER): Define.
(TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
* config.gcc (*-*-linux*): Define extra_options.
(*-*-*uclibc*): Define UCLIBC_DEFAULT.
(arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
* config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
GLIBC_DYNAMIC_LINKER.
* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
(LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* doc/invoke.texi (GNU/Linux Options): New section.
gcc/testsuite:
* gcc.dg/builtins-config.h (HAVE_C99_RUNTIME): Don't define if
__UCLIBC__ is defined.
libstdc++-v3:
PR libstdc++/14939
* config/os/uclibc/ctype_base.h, config/os/uclibc/ctype_inline.h,
config/os/uclibc/ctype_noninline.h, config/os/uclibc/os_defines.h:
New.
* acinclude.m4 (GLIBCXX_CONFIGURE): Test whether using uClibc.
* configure.host: Use os/uclibc for uClibc.
* crossconfig.m4 (*-linux*): Use link tests. Don't hardcode
presence of math functions.
* configure: Regenerate.
From-SVN: r111160
|
|
vectorized 1 loops 1 and gcc.dg/vect/vect-reduc-pattern-2.c scan-tree-dump-times vectorized 2 loops 1 fail)
testsuite/
2006-02-16 Victor Kaplansky <victork@il.ibm.com>
PR tree-opt/25918
* lib/target-supports.exp
(check_effective_target_vect_short_mult): New.
(check_effective_target_vect_char_mult): New.
(check_effective_target_vect_widen_sum_qi_to_si): New.
(check_effective_target_vect_widen_sum_qi_to_hi): New.
(check_effective_target_vect_widen_sum_hi_to_si): New.
* gcc.dg/vect/vect-reduc-dot-s16.c: Remove, split into
vect-reduc-dot-s16a.c and vect-reduc-dot-s16b.c
* vect-reduc-dot-s16a.c: New, split from vect-reduc-dot-s16.c.
* vect-reduc-dot-s16b.c: New, split from vect-reduc-dot-s16.c.
* gcc.dg/vect/vect-reduc-pattern-2.c: Remove, split into
vect-reduc-pattern-2a.c, vect-reduc-pattern-2b.c and
vect-reduc-pattern-2c.c
* gcc.dg/vect/vect-reduc-pattern-1.c: Remove, split into
vect-reduc-pattern-1a.c, vect-reduc-pattern-1b.c and
vect-reduc-pattern-1c.c
From-SVN: r111135
|
|
b to b)
PR middle-end/23670
* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
(X,Y) and the corresponding symmetry related transformations.
(fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
(X,Y) and its symmetry related transformations.
* gcc.dg/tree-ssa/andor-2.c: New test case.
From-SVN: r110997
|
|
in PHIs)
2006-02-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/26258
* tree-ssa-structalias.c (find_func_aliases): Handle aggregates
in PHI argument processing.
* gcc.dg/torture/pr26258.c: New testcase.
From-SVN: r110963
|
|
PR middle-end/24427
* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
into (X,C2) if C1 is a subset of the bits of C2. Transform
(X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
(X&(C1&~C2))|C2.
<BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
* gcc.dg/tree-ssa/andor-1.c: New test case.
From-SVN: r110918
|
|
PR target/25376
* varasm.c (function_section): Check for section name before
calling select_section on targets that define
USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use
unlikely_text_section instead of hot_function_section if
first_function_block_is_cold.
* gcc.dg/pr25376.c: New test.
* gcc.c-torture/compile/pr23237.c: Only compile test -- don't
assemble.
* lib/target-supports.exp (check_named_sections_available):
Only compile named-sections test -- don't assemble.
From-SVN: r110917
|
|
* doc/invoke.texi (-floop-optimize2): Removed.
* toplev.c (process_options): Remove handling of flag_loop_optimize2.
* loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
Test flag_branch_on_count_reg only if HAVE_doloop_end.
* common.opt (floop-optimize2): Removed.
(fmove-loop-invariants): Enabled by default.
* gcc.dg/20050105-1.c: Do not use -floop-optimize2.
From-SVN: r110852
|
|
2006-02-10 Richard Guenther <rguenther@suse.de>
* testsuite/gcc.dg/pr23372-1.c: Remove empty file.
From-SVN: r110833
|
|
PR inline-asm/16194
gcc:
* tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
(tree_overlaps_hard_reg_set): Declare.
* stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return
type and signature to match function type expected by walk_tree.
(tree_overlaps_hard_reg_set): New function.
(decl_conflicts_with_clobbers_p): Rename to:
(tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument.
Use tree_overlaps_hard_reg_set. Changed caller.
* doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
* cris.c (cris_md_asm_clobbers): Likewise.
gcc/testsuite:
* gcc.dg/pr16194.c: New test.
From-SVN: r110810
|
|
REALPART_EXPR<complex_float_var>)
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/26134
* fold-const.c (fold_indirect_ref_1): Fold
"*(foo *)&complexfoo" to "__real__ complexfoo"
and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/26134
* gcc.dg/tree-ssa/complex-3.c: New test.
From-SVN: r110800
|
|
with wraps)
PR 26180
* tree-vrp.c (vrp_int_const_binop): Detect overflow when
multiplying unsigned values.
Tidy comments.
testsuite
PR 26180
* gcc.dg/tree-ssa/pr26180.c: New test.
From-SVN: r110794
|
|
PR tree-optimization/21417
* tree-ssa-threadedge.c (thread_across_edge): Reject threading
across a backedge if the control statement at the end of the
block is data dependent on other statements in the same block.
(record_temporary_equivalences_from_stmts): Remove over-conservative
test for threading across backedges.
* gcc.dg/tree-ssa/pr21417.c: New test.
From-SVN: r110785
|
|
themselves)
PR testsuite/26159
* gcc.dg/gomp/critical-3.c: Call cleanup-tree-dump.
* gcc.dg/tree-ssa/pr23382.c: Ditto.
From-SVN: r110729
|
|
* gcc.dg/tree-ssa/pr21559.c: New test.
From-SVN: r110713
|
|
2006-02-07 Jeff Law <law@redhat.com>
* tree-vrp.c (find_conditional_asserts): Update comments.
(simplify_stmt_for_jump_threading): New.
(identify_jump_threads, finalize_jump_threads): New.
(vrp_finalize): Call identify_jump_threads.
(execute_vrp): Call finalize_jump_threads.
* tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
(vrp_element, vrp_data, vrp_element_p): Remove.
(vrp_hash_elt, vrp_variables_stack): Remove.
(vrp_hash, vrp_eq, record_range): Remove.
(simplify_cond_and_lookup_avail_expr): Remove.
(extract_range_from_cond): Remove.
(thread_across_edge): Relocated into tree-ssa-threadedge.c.
(simplify_stmt_for_jump_threading): New.
(dom_thread_across_edge): New wrapper.
(tree_ssa_dominator_optimize): No longer initialize or
finalize any of the VRP datastructures. Remove iteration
step and simplify as a result of removal of iteration step.
(pass_dominator): Perform a cfg cleanup after DOM.
(dom_opt_finalize_block): Use the new common routines
for threading jumps. Simplify stack management slightly.
No longer need to unwind VRP state.
(record_equivalences_from_incoming_edge): No longer record
VRP information.
(eliminate_redundant_computations): No longer call
simplify_cond_and_lookup_avail_expr.
* tree-flow.h (potentially_threadable_block): Prototype.
(thread_across_edge): Likewise.
* Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
(tree-ssa-threadedge.o): Add dependencies.
* tree-ssa-threadedge.c: New file.
* passes.c (init_optimization_passes): Merge PHIs before
calling VRP. Run VRP again late in the SSA optimization pipeline.
* gcc.dg/tree-ssa/vrp01.c: Update dumpfile names now that we have
multiple VRP passes.
* gcc.dg/tree-ssa/vrp09.c: Likewise.
* gcc.dg/tree-ssa/vrp18.c: Likewise.
* gcc.dg/tree-ssa/pr21582.c: Likewise.
* gcc.dg/tree-ssa/pr20657.c: Likewise.
* gcc.dg/tree-ssa/pr21001.c: Likewise.
* gcc.dg/tree-ssa/vrp02.c: Likewise
* gcc.dg/tree-ssa/vrp11.c: Likewise
* gcc.dg/tree-ssa/pr14341.c: Likewise
* gcc.dg/tree-ssa/vrp19.c: Likewise
* gcc.dg/tree-ssa/vrp20.c: Likewise
* gcc.dg/tree-ssa/vrp03.c: Likewise
* gcc.dg/tree-ssa/pr21086.c: Likewise
* gcc.dg/tree-ssa/pr21959.c: Likewise
* gcc.dg/tree-ssa/vrp21.c: Likewise
* gcc.dg/tree-ssa/vrp04.c: Likewise
* gcc.dg/tree-ssa/pr25485.c: Likewise
* gcc.dg/tree-ssa/pr22026.c: Likewise
* gcc.dg/tree-ssa/vrp22.c: Likewise
* gcc.dg/tree-ssa/vrp05.c: Likewise
* gcc.dg/tree-ssa/20030807-10.c: Likewise
* gcc.dg/tree-ssa/pr20701.c: Likewise
* gcc.dg/tree-ssa/vrp23.c: Likewise
* gcc.dg/tree-ssa/vrp06.c: Likewise
* gcc.dg/tree-ssa/pr22117.c: Likewise
* gcc.dg/tree-ssa/pr20702.c: Likewise
* gcc.dg/tree-ssa/vrp15.c: Likewise
* gcc.dg/tree-ssa/pr21090.c: Likewise
* gcc.dg/tree-ssa/pr21294.c: Likewise
* gcc.dg/tree-ssa/vrp24.c: Likewise
* gcc.dg/tree-ssa/vrp07.c: Likewise
* gcc.dg/tree-ssa/pr21563.c: Likewise
* gcc.dg/tree-ssa/pr25382.c: Likewise
* gcc.dg/tree-ssa/vrp16.c: Likewise
* gcc.dg/tree-ssa/vrp25.c: Likewise
* gcc.dg/tree-ssa/vrp08.c: Likewise
* gcc.dg/tree-ssa/20030807-6.c: Likewise
* gcc.dg/tree-ssa/vrp17.c: Likewise
* gcc.dg/tree-ssa/pr21458.c: Likewise
* g++.dg/tree-ssa/pr18178.C: Likewise
From-SVN: r110705
|
|
2006-02-07 Richard Guenther <rguenther@suse.de>
PR c++/26140
Revert
2006-01-30 Richard Guenther <rguenther@suse.de>
PR c++/23372
* gimplify.c (gimplify_target_expr): Handle easy cases
without creating a temporary.
Revert
2006-01-30 Richard Guenther <rguenther@suse.de>
PR c++/23372
* gcc.dg/pr23372-1.C: New testcase.
* g++.dg/tree-ssa/pr26140.C: New testcase.
From-SVN: r110699
|
|
From-SVN: r110672
|
|
From-SVN: r110671
|
|
2006-02-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
(ANTIC_SAFE_LOADS): New macro.
(find_or_generate_expression): Add prototype.
(set_contains_value): Allow null set for sake of not always having
to allocate ANTIC_SAFE_LOADS.
(phi_translate): Move placement of AGGREGATE_TYPE_P check.
Allow COMPONENT_REF too.
(valid_in_set): Allow COMPONENT_REF.
Check ANTIC_SAFE_LOADS too.
(compute_antic_aux): Print out ANTIC_SAFE_LOADS.
(compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
rename.
(can_PRE_operation): Add COMPONENT_REF.
(create_component_ref_by_pieces): New function.
(create_expression_by_pieces): Use create_component_ref_by_pieces.
(insert_aux): Move AGGREGATE_TYPE_P check here.
(compute_avail): Set bb local stmt uids.
(pass_pre): Use TODO_update_ssa_only_virtuals.
2006-02-06 Daniel Berlin <dberlin@dberlin.org>
* gcc.dg/tree-ssa/loadpre10.c: New test.
* gcc.dg/tree-ssa/loadpre11.c: Ditto.
* gcc.dg/tree-ssa/loadpre6.c: Expect one more elimination.
* gcc.dg/tree-ssa/loadpre4.c: This should pass now.
From-SVN: r110644
|
|
* gcc.dg/gomp/pr25990.c: Use __SIZE_TYPE__ instead of unsigned int
in size_t typedef.
From-SVN: r110609
|
|
* gcc.dg/gomp/pr25990.c: Replace with pre-processed version.
From-SVN: r110550
|
|
From-SVN: r110512
|
|
comparison routine return.
gcc/
2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
* optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
the comparison routine return.
gcc/testsuite/
2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
* gcc.dg/unsigned-long-compare.c: New test.
From-SVN: r110409
|
|
doesn't get resetted.)
PR target/14798:
gcc:
* sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
(pragma_trap, pragma_nosave_low_regs): Likewise.
(current_function_anonymous_args): Likewise.
(sh_deferred_function_attributes): New variable.
(sh_deferred_function_attributes_tail): Likewise.
(print_operand): For '@', look up trap_exit attribute.
(calc_live_regs): Look up trapa_handler attribute. For trapa
handlers, save/restore fpscr, but don't do any other
interrupt-specific saves.
Don't save r0..r7 if the nosave_low_regs attribute is in effect.
Fix check for partially saved registers to check for SHmedia.
(sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
(sh_output_function_epilogue): Don't clear any of the removed
variables.
(sh_insert_attributes): Don't check pragma_interrupt.
Insert deferred attributes. Check that interrupt attribute is
present for other attributes that require its presence.
(sh_attribute_table): Add new attributes trapa_handler and
nosave_low_regs.
(sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
Don't check for pragma_interrupt. Don't store argument.
* sh.h (pragma_interrupt, sp_switch): Don't declare.
(sh_deferred_function_attributes): Declare.
(sh_deferred_function_attributes_tail): Likewise.
* sh.md (sp_switch_1): Add operand. Change generator caller.
(sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
(*return_i): Don't use when trap_exit attribute is in effect.
(*return_trapa): New insn pattern.
* sh-c.c: New file.
* config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
setting c_target_objs and cxx_target_objs.
* t-sh: Add rule for sh-c.o.
gcc/testsuite:
* gcc.dg/pragma-isr.c: Added target sh[1234ble]*-*-*.
* gcc.dg/pragma-isr2.c, gcc.dg/pragma-isr-trapa.c: New tests.
* gcc.dg/pragma-isr-trapa2.c: Likewise.
* gcc.dg/pragma-isr-nosave_low_regs.c: Likewise.
* gcc.dg/pragma-isr-trap_exit.c: Likewise.
* gcc.dg/attr-isr.c, gcc.dg/attr-isr-trapa.c: Likewise.
* gcc.dg/attr-isr-trap_exit.c: Likewise.
* gcc.dg/attr-isr-nosave_low_regs.c: Likewise.
From-SVN: r110398
|
|
by value)
2006-01-30 Richard Guenther <rguenther@suse.de>
PR c++/23372
* gimplify.c (gimplify_target_expr): Handle easy cases
without creating a temporary.
* gcc.dg/pr23372-1.C: New testcase.
From-SVN: r110396
|
|
PR 25874
* omp-low.c (execute_expand_omp): Move CFG cleanup code ...
(expand_omp): ... here.
(expand_omp_parallel): Only remove barriers for combined
parallel+workshare constructs.
* gcc.dg/gomp/pr25874.c: New test.
From-SVN: r110393
|
|
PR tree-opt/25911
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
to an if check.
From-SVN: r110377
|
|
gcc:
* c.opt: Add -W(no-)overlength-strings.
* doc/invoke.texi: Document it.
* c-opts.c (c_common_handle_option): -pedantic implies
-Woverlength-strings, if not explicitly disabled already.
(c_common_post_options): -Woverlength-strings defaults to off, and
is always off for C++.
* c-common.c (fix_string_type): Issue warning about strings longer
than is portable only if warn_overlength_strings. Rearrange code
a little for clarity.
* configure.in: Check for -Wno-overlength-strings as well before
enabling -pedantic in stage 1.
* Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
(gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
* genconditions.c (write_header, write_one_condition)
(write_conditions, write_writer): Consolidate very long strings
that were broken up to fit in C89 portable limit. Don't use
printf when fputs will do.
gcc/testsuite:
* gcc.dg/Woverlength-strings.c
* gcc.dg/Woverlength-strings-pedantic-c89.c
* gcc.dg/Woverlength-strings-pedantic-c89-no.c
* gcc.dg/Woverlength-strings-pedantic-c99.c
* gcc.dg/Woverlength-strings-pedantic-c99-no.c: New tests.
==================================================================
From-SVN: r110360
|