aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg
AgeCommit message (Collapse)AuthorFilesLines
2006-03-02single-precision-constant.c: Tweak for non-C99 runtimes.Eric Botcazou1-0/+4
* gcc.dg/single-precision-constant.c: Tweak for non-C99 runtimes. From-SVN: r111638
2006-02-28re PR tree-optimization/14752 ([tree-ssa] "~a" should be changed to "a" if ↵Roger Sayle1-0/+22
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-28pr26421.c: Fix testcase to force struct decomposition.Richard Guenther1-1/+2
2006-02-28 Richard Guenther <rguenther@suse.de> * gcc.dg/tree-ssa/pr26421.c: Fix testcase to force struct decomposition. From-SVN: r111566
2006-02-27fold-const.c (fold_binary): Fold (~X & C) eq/ne 0 as (X & C) ne/eq 0, where ↵Roger Sayle1-0/+33
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
2006-02-27opts.c (decode_options): Do not handle flag_strength_reduce.Zdenek Dvorak1-1/+1
* 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
2006-02-26re PR tree-optimization/26421 (tree-ssa-alias.c:find_used_portions considers ↵Richard Guenther1-0/+19
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
2006-02-26common.opt (-floop-optimize, [...]): Remove.Steven Bosscher1-1/+1
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
2006-02-26fold-const.c (fold_binary): Fold (X & 1) ^ 1 as (X & 1) == 0.Roger Sayle1-0/+33
* 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-26re PR tree-optimization/21137 (Convert (a >> 2) & 1 != 0 into a & 4 != 0)Roger Sayle1-0/+46
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
2006-02-26re PR middle-end/25125 ((short) ((int)(unsigned short) + (int)) is done in ↵Dorit Nuzman3-0/+148
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
2006-02-26re PR tree-optimization/26359 (Over optimization of loop when using ↵Dorit Nuzman2-0/+22
-ftree-vectorize) PR tree-optimization/26359 * tree-ssa-alias.c (new_type_alias): Set fields for new tag. From-SVN: r111451
2006-02-25re PR middle-end/23673 (fold does not fold (a^b) != 0 to a != b)Roger Sayle3-0/+84
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
2006-02-23re PR middle-end/26412 (ICE with external arrays using OpenMP)Jakub Jelinek1-0/+18
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
2006-02-22bf-spl1.c: Don't specify -m68000.Nathan Sidwell1-2/+1
* gcc.dg/bf-spl1.c: Don't specify -m68000. * g++.old-deja/g++.pt/static11.C: Xfail for m68k-elf From-SVN: r111360
2006-02-21re PR tree-optimization/26361 (bootstrap failure on Alpha: xgcc runs out of ↵Roger Sayle1-0/+33
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-20complex-3.c: Split out first part into ...Andrew Pinski2-15/+14
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
2006-02-19re PR middle-end/26334 (ICE in lhd_set_decl_assembler_name)Jakub Jelinek1-8/+0
PR middle-end/26334 * gcc.dg/20060218-1.c: Moved to... * gcc.target/i386/20060218-1.c: ... here. New test. From-SVN: r111279
2006-02-18re PR tree-optimization/25680 (Store CCP does not understand REALPART_EXPR < ↵Andrew Pinski1-0/+15
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
2006-02-1820031106-1.c: Fix the final scan of the variable to take into account the ↵Andrew Pinski2-4/+4
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
2006-02-18re PR middle-end/26334 (ICE in lhd_set_decl_assembler_name)Jakub Jelinek1-0/+8
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
2006-02-18re PR target/24837 (move dynamic linker names out of LINK_SPEC and into new ↵Joseph Myers2-0/+12
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
2006-02-16tree-vrp.c (set_value_range_to_nonnegative): New function.Jeff Law2-6/+25
* 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
2006-02-16re PR target/20353 (uclibc does not provide C99 math functions)Joseph Myers1-3/+4
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
2006-02-16re PR testsuite/25918 (gcc.dg/vect/vect-reduc-dot-s16.c scan-tree-dump-times ↵Victor Kaplansky12-222/+365
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
2006-02-14re PR middle-end/23670 (Fold does not fold (a|b)&b to b likewise for (a&b) | ↵Roger Sayle1-0/+52
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
2006-02-14re PR tree-optimization/26258 (Wrong alias information for struct addresses ↵Richard Guenther1-0/+28
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
2006-02-13re PR middle-end/24427 (missing optimization opportunity with binary operators)Roger Sayle1-0/+65
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
2006-02-13re PR target/25376 (section attribute doesn't work on darwin)Josh Conner1-0/+9
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
2006-02-10invoke.texi (-floop-optimize2): Removed.Zdenek Dvorak1-1/+1
* 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-10pr23372-1.c: Remove empty file.Richard Guenther1-0/+0
2006-02-10 Richard Guenther <rguenther@suse.de> * testsuite/gcc.dg/pr23372-1.c: Remove empty file. From-SVN: r110833
2006-02-09re PR inline-asm/16194 (global register with inline-asm and clobered)J"orn Rennecke1-0/+67
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
2006-02-09re PR middle-end/26134 (fold *(float*)(&complex_float_var) into ↵Andrew Pinski1-0/+27
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
2006-02-09re PR tree-optimization/26180 (wrong code due to VRP and unsigned multiplies ↵Diego Novillo1-0/+43
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
2006-02-08re PR tree-optimization/21417 (Missed jump threading opportunity on trees)Jeff Law1-0/+54
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
2006-02-08re PR testsuite/26159 (pr23382.c and critical-3.c don't cleanup after ↵Janis Johnson2-0/+2
themselves) PR testsuite/26159 * gcc.dg/gomp/critical-3.c: Call cleanup-tree-dump. * gcc.dg/tree-ssa/pr23382.c: Ditto. From-SVN: r110729
2006-02-07pr21559.c: New test.Jeff Law1-0/+45
* gcc.dg/tree-ssa/pr21559.c: New test. From-SVN: r110713
2006-02-07tree-vrp.c (find_conditional_asserts): Update comments.Jeff Law39-126/+126
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-07re PR c++/26140 (ice on valid C++ code)Richard Guenther1-10/+0
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
2006-02-06Undo accidental commit.Richard Sandiford1-0/+0
From-SVN: r110672
2006-02-06* reorg.c (dbr_schedule): Use dump_file instead of file.Richard Sandiford1-0/+0
From-SVN: r110671
2006-02-06tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.Daniel Berlin4-4/+67
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
2006-02-05pr25990.c: Use __SIZE_TYPE__ instead of unsigned int in size_t typedef.Jakub Jelinek1-1/+1
* gcc.dg/gomp/pr25990.c: Use __SIZE_TYPE__ instead of unsigned int in size_t typedef. From-SVN: r110609
2006-02-03pr25990.c: Replace with pre-processed version.Diego Novillo1-79/+96
* gcc.dg/gomp/pr25990.c: Replace with pre-processed version. From-SVN: r110550
2006-02-02Commit testcase for PR25990.Diego Novillo1-0/+244
From-SVN: r110512
2006-01-30optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias the ↵Carlos O'Donell1-0/+24
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
2006-01-30re PR target/14798 (In case of SH target with -O2 option #pragma interrupt ↵J"orn Rennecke10-1/+179
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
2006-01-30re PR c++/23372 (Temporary aggregate copy not elided when passing parameters ↵Richard Guenther1-0/+10
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
2006-01-29re PR c++/25874 ([gomp] ICE in calc_dfs_tree())Diego Novillo1-0/+15
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
2006-01-29re PR tree-optimization/25911 (ice in vect_recog_dot_prod_pattern)Dorit Nuzman1-0/+15
PR tree-opt/25911 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert to an if check. From-SVN: r110377
2006-01-29c.opt: Add -W(no-)overlength-strings.Zack Weinberg5-0/+95
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