Commit Graph

1550 Commits

Author SHA1 Message Date
Jakub Jelinek
5075abae44 re PR middle-end/30262 (ICE with nested fn accessed var in asm "m" constraint)
PR middle-end/30262
	PR middle-end/30263
	* tree-nested.c (walk_asm_expr): New function.
	(walk_stmts): Use it for ASM_EXPR.

	* gcc.c-torture/execute/20061220-1.c: New test.
	* gcc.dg/gomp/asm-1.c: New test.

From-SVN: r120106
2006-12-21 14:13:15 +01:00
Eric Christopher
1efff0b6cf re PR target/29302 (isfinite returns wrong result at -O1)
2006-12-19  Eric Christopher  <echristo@apple.com>

        PR target/29302
        * gcc.c-torture/execute/pr29302-1.c: New.

From-SVN: r120058
2006-12-19 20:25:49 +00:00
Eric Botcazou
d3f1be5dcd pr27528.c: Use empty templates.
* gcc.c-torture/compile/pr27528.c: Use empty templates.

From-SVN: r119991
2006-12-17 19:58:27 +00:00
Jakub Jelinek
99e8e64971 re PR target/30185 (ICE with struct and divide)
PR target/30185
	* config/rs6000/rs6000.md (div<mode>3): Use correct mode in
	force_reg call.

	* gcc.c-torture/execute/pr30185.c: New test.

From-SVN: r119947
2006-12-16 00:08:18 +01:00
John David Anglin
8f3fc4aa8d re PR testsuite/30179 (FAIL: gcc.c-torture/execute/mode-dependent-address.c compilation, -O0)
PR testsuite/30179
	PR testsuite/30180
	* gcc.dg/builtin-bswap-1.c: Require stdint_types.
	* gcc.dg/builtin-bswap-2.c: Likewise.
	* gcc.dg/builtin-bswap-3.c: Likewise.
	* gcc.dg/builtin-bswap-4.c: Likewise.
	* lib/target-supports.exp (check_effective_target_stdint_types): New.
	* cc.c-torture/execute/mode-dependent-address.x: New file.

From-SVN: r119945
2006-12-15 21:41:58 +00:00
Richard Guenther
28f4586bf8 re PR middle-end/30197 (cexp ( __complex__ ( 0, x ) ) can be folded to cexpi (x))
2006-12-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30197
	* builtins.c (fold_builtin_cexp): New function to fold cexp
	to cexpi and exp parts.
	* tree-ssa-pre.c (try_combine_conversion): Also handle
	REALPART_EXPR and IMAGPART_EXPR.

	* gcc.c-torture/execute/complex-1.c: Fix function name.
	* gcc.dg/builtins-61.c: New testcase.

From-SVN: r119860
2006-12-14 13:14:23 +00:00
Jakub Jelinek
6cf43108a9 [multiple changes]
2006-12-13  Jakub Jelinek  <jakub@redhat.com>

	* g++.dg/debug/vartrack1.C: New test.

	* g++.dg/opt/ifcvt1.C: New test.

	* gcc.dg/tls/opt-13.c: New test.

	* gcc.dg/20060425-2.c: New test.

	* g++.dg/opt/pr15054-2.C: New test.

	* gcc.c-torture/execute/20060420-1.c: New test.

	* gcc.c-torture/execute/20060412-1.c: New test.

	* objc/compile/20060406-1.m: New test.

2006-12-08  Alexandre Oliva  <aoliva@redhat.com>

	* g++.dg/template/array17.C: New test.

2006-02-25  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.target/powerpc/altivec-23.c: New test.

From-SVN: r119837
2006-12-13 18:29:26 +01:00
Andrew Pinski
0890b981c9 re PR middle-end/28436 (accessing an element via a "pointer" on a vector does not cause vec_extract to be used)
2006-12-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/28436
        * tree.h (DECL_COMPLEX_GIMPLE_REG_P): Rename to ...
        (DECL_GIMPLE_REG_P): This.
        * fold-const.c (fold_indirect_ref_1): Fold *(foo *)&vectorfoo into
        using BIT_FIELD_REF.
        * omp-low.c (omp_copy_decl_2): Use the renamed DECL_GIMPLE_REG_P.
        * tree-gimple.c (is_gimple_reg): Use the renamed DECL_GIMPLE_REG_P
        and check for VECTOR_TYPE.
        * expr.c (get_inner_reference): Set the mode for BIT_FIELD_REF with
        vector types.
        * tree-flow-inline.h (var_can_have_subvars): Use the renamed
        DECL_GIMPLE_REG_P.
        * gimplify.c (internal_get_tmp_var): Use the renamed DECL_GIMPLE_REG_P
        and check for VECTOR_TYPE.
        (gimplify_bind_expr): Likewise.
        (gimplify_function_tree): Likewise.
        * expmed.c: Include target.h.
        (extract_bit_field): For vector mode, try find a better mode first.
        If that fails use gen_lowpart (for vectors only).
        * tree-dfa.c (make_rename_temp): Use the renamed DECL_GIMPLE_REG_P
        and check for VECTOR_TYPE.
        * tree-ssa-pre.c (create_expressions_by_pieces): Likewise.
        (insert_into_preds_of_block): Likewise.
        (insert_fake_stores): Create gimple register store_tmps for
        vector types.
        * tree-sra.c (sra_elt): New field, is_vector_lhs.
        (sra_walk_expr <case BIT_FIELD_REF>): For vector types that
        are the left hand side, set the element's is_vector_lhs to true.
        (instantiate_element): For vector types which were on the left         hand size, set DECL_GIMPLE_REG_P to false.
        * tree-nested.c (create_tmp_var_for): Use the renamed DECL_GIMPLE_REG_P.        * tree-inline.c (declare_return_variable):  Use the renamed
        DECL_GIMPLE_REG_P
        and check for VECTOR_TYPE.         (copy_decl_to_var):  Use the renamed DECL_GIMPLE_REG_P.
        (copy_result_decl_to_var): Likewise.
        * tree-vect-transform.c (vect_get_new_vect_var): For vector types,         create a gimple register variable.
        (vect_permute_store_chain): Set DECL_GIMPLE_REG_P to true for the
        vect_inter_* temp variables.
        * Makefile.in (expmed.o): Update dependencies.

2006-12-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/28436
        * gcc.c-torture/compile/vector-1.c: New test.
        * gcc.c-torture/compile/vector-2.c: New test.
        * gcc.c-torture/compile/vector-3.c: New test.

From-SVN: r119801
2006-12-12 14:33:06 -08:00
Mark Shinwell
b9a76028a2 recog.c (mode_dependent_address_p): Identify pre-increment...
gcc/
	* recog.c (mode_dependent_address_p): Identify pre-increment,
	pre-decrement, post-increment and post-decrement addressing as always
	being mode-dependent.
	* config/m32c/m32c.c (m32c_mode_dependent_address): Delete.
	* config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete.
	* config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
	PRE_INC and POST_INC checks.
	* config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
	PRE_INC, POST_DEC and POST_INC cases.
	* config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
	Delete POST_INC and PRE_DEC cases.
	* config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
	no-op.
	* config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
	no-op.
	* config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete
	PRE_INC and PRE_DEC cases.
	* config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	(GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/vax/vax.c (vax_mode_dependent_address_p): Delete
	auto-increment cases.
	* config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete
	auto-increment cases.
	* config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	
	gcc/testsuite/
	* gcc.c-torture/execute/mode-dependent-address.c: New test.

From-SVN: r119660
2006-12-08 16:37:42 +00:00
Andrew Pinski
357f76d7f0 re PR target/29945 (ICE in simplify_subreg with simple code in libgfortran)
2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR target/29945
        * config/spu/spu.md  (extend_compare<mode>): New pattern.
        (extend_compare): Change to expand and use the above pattern.

2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR target/29945
        * gcc.c-torture/compile/pr29945.c: New testcase.

From-SVN: r119348
2006-11-29 17:05:58 -08:00
Maxim Kuvyrkov
96370780ab re PR target/29201 (ICE in create_recovery_block, at haifa-sched.c:3692 at -O3)
2006-11-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR target/29201
	* cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
	bb to ...
	(get_last_bb_insn): ... new global function.
	(basic_block.h): Declare it.
	* haifa-sched.c (create_recovery_block): Use it.

2006-11-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR target/29201
	* gcc.c-torture/compile/pr29201.c: New test for ia64 target.

From-SVN: r118882
2006-11-16 06:57:59 +00:00
Paolo Bonzini
6e0b633f6c re PR rtl-optimization/29798 (-O2 gives wrong results)
2006-11-14  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/29798

	* fwprop.c (use_killed_between): Check that DEF_INSN dominates
	TARGET_INSN before any other check.
	(fwprop_init): Always calculate dominators.
	(fwprop_done): Always free them.

2006-11-14  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/29798

	* gcc.c-torture/execute/pr29798.c: New.

From-SVN: r118808
2006-11-14 08:46:26 +00:00
Roger Sayle
3b279c7ae7 re PR rtl-optimization/29797 (Miscompiles bit test / set in OpenOffice)
2006-11-12  Michael Matz  <matz@suse.de>
	    Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/29797
	* ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
	BITS_BIG_ENDIAN targets.

	* gcc.c-torture/execute/pr29797-1.c: New test case.

From-SVN: r118740
2006-11-13 00:41:53 +00:00
Andrew Pinski
afa8f0fb33 re PR rtl-optimization/28812 (RTL aliasing vs may_alias and structs)
2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR rtl-opt/28812
        * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
        non null value if the struct memory access is in the 0th
        aliasing set.

2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR rtl-opt/28812
        * gcc.c-torture/execute/mayalias-3.c: New test.

From-SVN: r118716
2006-11-11 17:10:56 -08:00
Richard Sandiford
6d40c48924 re PR middle-end/27528 (compiling linux kernels 2.6.16.14/15 2.6.17-rc3 on powerpc (7450) get error on long exixting code)
gcc/
	PR middle-end/27528
	* stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
	constraints accept neither registers or memories.

gcc/testsuite/
	PR middle-end/27528
	* gcc.c-torture/compile/pr27528.c: New test.
	* gcc.dg/pr27528.c: Likewise.

From-SVN: r118689
2006-11-11 09:47:35 +00:00
Jakub Jelinek
789e604dfa re PR middle-end/29695 (Folding breaks (a & 0x80) ? 0x80 : 0 for unsigned char or unsigned short a)
PR middle-end/29695
	* fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
	simplification.

	* gcc.c-torture/execute/pr29695-1.c: New test.
	* gcc.c-torture/execute/pr29695-2.c: New test.

From-SVN: r118497
2006-11-05 13:13:46 +01:00
J"orn Rennecke
78d310c2c1 crt1.asm: Fix #ifdef indent.
gcc:

2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>

	* config/sh/crt1.asm: Fix #ifdef indent.

2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
	Merged from STMicroelectronics sources:
	2006-10-06  Andrew Stubbs  <andrew.stubbs@st.com>
	  * config/sh/crt1.asm (vbr_600): Add missing #if.
	2006-08-03  J"orn Rennecke  <joern.rennecke@st.com>
	  * sh.opt (mfused-madd): New option.
	  * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
	2006-07-04  Andrew Stubbs  <andrew.stubbs@st.com>
	  * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
	  Remove pointless handler at VBR+0.
	  (vbr_200, vbr_300, vbr_500): Remove pointless handler.
	  (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
	  fr7. Make sure the timer handler is called with the correct FPU
	  precision setting, according to the ABI.
	2006-06-14  J"orn Rennecke <joern.rennecke@st.com>
	  * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
	  * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
	  (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
	2006-06-09  J"orn Rennecke <joern.rennecke@st.com>
	  * sh.md (cmpgeusi_t): Change into define_insn_and_split.  Accept
	  zero as second operand.
	2006-04-28  J"orn Rennecke <joern.rennecke@st.com>
	  * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
	  Fixed some bugs related to negative values, in particular -0
	  and overflow at -0x80000000.
	  * config/sh/divcost-analysis: Added sh4-300 figures.
	2006-04-27  J"orn Rennecke <joern.rennecke@st.com>
	  * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
	2006-04-26  J"orn Rennecke <joern.rennecke@st.com>
	  * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
	  ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
	  * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
	New files.
	  * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
	  -m4-340.
	2006-04-24  J"orn Rennecke <joern.rennecke@st.com>
	  SH4-300 scheduling description & fixes to SH4-[12]00 description:
	  * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
	  mac_mem, mem_mac, dfp_mul, fp_cmp.
	  (insn_class, dfp_comp, any_fp_comp): Update.
	  (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
	  (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
	  (muldf3_i): Likewise.
	  (movsi_i): Split rI08 alternative into two separate alternatives.
	  Update type.
	  (movsi_ie, movsi_i_lowpart): Likewise.
	  (movqi_i): Split ri alternative into two separate alternatives.
	  Update type.
	  * sh1.md (sh1_load_store, sh1_fp): Update.
	  * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
	  (mac_mem, sh4_fpscr_toggle): New insn_reservations.
	  * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
	  (sh4a_fp_double_arith): Likewise.
	  * sh4-300.md: New file.
	  * sh.c (sh_handle_option): Handle m4-300* options.
	  (sh_adjust_cost): Fix latency of auto-increments.
	  Handle SH4-300 differently than other SH4s.  Check for new insn types.
	  * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
	  been set by an option.
	  * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
	  (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
	  (mbranch-cost=): Likewise.
	  * superh.h (STARTFILE_SPEC): Take -m4-340 into account.

	  * sh.md (mulsf3): Remove special expansion code.
	  (mulsf3_ie): Now a define_insn_and_split.
	  (macsf3): Allow for TARGET_SH4.

	  * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
	  * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
	  (expand_cbranchdi4): Likewise.
	  (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
	  CONST_DOUBLE if the outer code is COMPARE.
	  * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
	  TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
	  (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
	  (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
	  Remove redundant fp_{zero,one}_operand checks.
	  * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
	  * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
	  (expand_cbranchdi4): Likewise.
	2006-04-20  J"orn Rennecke <joern.rennecke@st.com>
	  * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.

gcc/testsuite:

2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>

	* testsuite/gcc.c-torture/execute/arith-rand-ll.c:
	Also test for bogus rest sign.

From-SVN: r118458
2006-11-03 14:52:19 +00:00
Eric Botcazou
36c90fd27a 20061101-1.c: New test.
* gcc.c-torture/execute/20061101-1.c: New test.

From-SVN: r118377
2006-11-01 12:09:25 +00:00
Eric Botcazou
cb953056bb Fix asm string.
From-SVN: r118374
2006-11-01 11:58:18 +00:00
Eric Botcazou
af9d099362 20061031-1.c: New test.
* gcc.c-torture/execute/20061031-1.c: New test.

From-SVN: r118344
2006-10-31 23:29:06 +00:00
Kazu Hirata
ec4178c957 20020118-1.c, [...]: Fix comment typos.
* gcc.c-torture/execute/20020118-1.c,
	gcc.c-torture/execute/builtins/strlen.c,
	gcc.c-torture/execute/pr23135.c, lib/fortran-torture.exp: Fix
	comment typos.

From-SVN: r118132
2006-10-29 04:43:45 +00:00
Ben Elliston
377d876f81 strlen.c: Do not use strcpy.
* gcc.c-torture/execute/builtins/strlen.c: Do not use strcpy.
	Copy the strings manually, as strcpy may call strlen.

From-SVN: r118045
2006-10-26 08:58:27 +10:00
Daniel Berlin
21392f1922 Fix PR tree-optimization/28778 Fix PR tree-optimization/29156 Fix PR tree-optimization/29415
2006-10-19  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/28778
	Fix PR tree-optimization/29156
	Fix PR tree-optimization/29415
	* tree.h (DECL_PTA_ARTIFICIAL): New macro.
	(tree_decl_with_vis): Add artificial_pta_var flag.
	* tree-ssa-alias.c (is_escape_site): Remove alias info argument,
	pushed into callers.
	* tree-ssa-structalias.c (nonlocal_for_type): New variable.
	(nonlocal_all): Ditto.
	(struct variable_info): Add directly_dereferenced member.
	(var_escaped_vars): New variable.
	(escaped_vars_tree): Ditto.
	(escaped_vars_id): Ditto.
	(nonlocal_vars_id): Ditto.
	(new_var_info): Set directly_dereferenced.
	(graph_size): New variable
	(build_constraint_graph): Use graph_size.
	(solve_graph): Don't process constraints that cannot change the
	solution, don't try to propagate an empty solution to our
	successors.
	(process_constraint): Set directly_dereferenced.
	(could_have_pointers): New function.
	(get_constraint_for_component_ref): Don't process STRING_CST.
	(nonlocal_lookup): New function.
	(nonlocal_insert): Ditto.
	(create_nonlocal_var): Ditto.
	(get_nonlocal_id_for_type): Ditto.
	(get_constraint_for): Allow results vector to be empty in the case
	of string constants.
	Handle results of calls properly.
	(update_alias_info): Update alias info stats on number and type of
	calls.
	(find_func_aliases): Use could_have_pointers.
	(make_constraint_from_escaped): Renamed from
	make_constraint_to_anything, and changed to make constraints from
	escape variable.
	(make_constraint_to_escaped): New function.
	(find_global_initializers): Ditto.
	(create_variable_info_for): Make constraint from escaped to any
	global variable, and from any global variable to the set of
	escaped vars.
	(intra_create_variable_infos): Deal with escaped instead of
	pointing to anything.
	(set_uids_in_ptset): Do type pruning on directly dereferenced
	variables.
	(find_what_p_points_to): Adjust call to set_uids_with_ptset.
	(init_base_vars): Fix comment, and initialize escaped_vars.
	(need_to_solve): Removed.
	(find_escape_constraints): New function.
	(expand_nonlocal_solutions): Ditto.
	(compute_points_to_sets): Call find_escape_constraints and
	expand_nonlocal_solutions.
	(delete_points_to_sets): Don't fall off the end of the graph.
	(init_alias_heapvars): Initialize nonlocal_for_type and
	nonlocal_all.
	(delete_alias_heapvars): Free nonlocal_for_type and null out
	nonlocal_all.

From-SVN: r117891
2006-10-19 23:05:53 +00:00
Jan Hubicka
ba19ceaeed re PR middle-end/29241 ([non unit-at-a-time] ICE with always inline)
PR middle-end/29241
	* cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
	declared always_inline even when not inlining.

	* gcc.c-torture/compile/pr29241.c: New testcase.

From-SVN: r117753
2006-10-15 19:46:26 +00:00
David Edelsohn
38f1b50d96 re PR target/29250 (internal compiler error: in extract_insn, at recog.c:2084)
PR middle-end/29250
        * gcc.c-torture/compile/pr29250.c: New test.

From-SVN: r117747
2006-10-15 12:21:14 -04:00
Jakub Jelinek
599a964a52 re PR middle-end/29272 (memcpy optimization causes wrong-code)
PR middle-end/29272
	* builtins.c (var_decl_component_p): New function.
	(fold_builtin_memset, fold_builtin_memory_op): Restrict
	single entry optimization to variables and components thereof.

	* gcc.c-torture/execute/20060930-2.c: New test.

From-SVN: r117599
2006-10-10 11:46:59 +02:00
Uros Bizjak
b66e01e5ce sync-2.c: New test.
* gcc.c-torture/compile/sync-2.c: New test.

From-SVN: r117519
2006-10-07 00:24:04 +02:00
Maxim Kuvyrkov
7ea84dc44c re PR rtl-optimization/29128 (ICE: in move_block_after_check, at haifa-sched.c:4337)
2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR rtl-optimization/29128
	* sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
	* sched-ebb.c (advance_target_bb): Use it to fix condition to
	allow interblock movement of speculation checks.

	* gcc.c-torture/compile/pr29128.c: New test.

From-SVN: r117515
2006-10-06 21:45:13 +00:00
Jakub Jelinek
c66475078c re PR target/28924 (x86 sync builtins fail for char and short memory operands)
PR target/28924
	* builtins.c (expand_builtin_sync_operation,
	expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
	Use convert_to_mode to handle promoted arguments.

	* gcc.c-torture/compile/20061005-1.c: New test.

From-SVN: r117508
2006-10-06 18:54:43 +02:00
Jakub Jelinek
82181741c1 re PR c/29154 (*(* ppointer++)++ = *pointer++ generates bad code)
PR c/29154
	* gimplify.c (gimplify_self_mod_expr): Run inner expression's post
	side effects after the outer expression's post side effects.

	* gcc.c-torture/execute/20060929-1.c: New test.

From-SVN: r117366
2006-10-02 08:11:49 +02:00
Eric Botcazou
2d72242356 re PR rtl-optimization/28096 (fdlibm/strtod.c miscompiled at -O2)
PR rtl-optimization/28096
	* ifcvt.c (check_cond_move_block): Return FALSE if the source of an
	assignment has already been used as a destination earlier in the
	block.

From-SVN: r117331
2006-09-30 13:31:29 +00:00
Richard Sandiford
9f0b9edcd7 pr28289.c (one): New variable.
gcc/testsuite/
	* gcc.c-torture/execute/pr28289.c (one): New variable.
	(main): Use it instead of argc.
	* gcc.c-torture/execute/20060102-1.c (one): New variable.
	(main): Use it instead of argc.

From-SVN: r117060
2006-09-19 17:44:12 +00:00
Ben Elliston
71e9f91522 * gcc.c-torture/compile/20030405-1.x: Remove.
From-SVN: r117040
2006-09-19 08:25:46 +10:00
Andrew Pinski
a9fdb86b72 re PR tree-optimization/29059 (ICE: verify_stmts failed (invalid operand to unary operator ""[0];))
2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/29059
        * gcc.c-torture/compile/strcpy-1.c: New test.
        * gcc.c-torture/compile/strcpy-2.c: New test.
        * gcc.c-torture/compile/memcpy-1.c: New test.
        * gcc.c-torture/compile/memcpy-2.c: New test.

2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/29059
        * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
        away for the expr argument.

From-SVN: r116997
2006-09-16 15:52:11 -07:00
Andrew Pinski
3c3f1a6f39 re PR debug/28980 (ICE in loc_descriptor_from_tree_1 with -g)
2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR debug/28980
        * dwarf2out.c (loc_descriptor_from_tree_1): Handle
        FUNCTION_DECL.

2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR debug/28980
        * gcc.c-torture/compile/debugvlafunction-1.c: New test.

From-SVN: r116939
2006-09-13 17:37:14 -07:00
Richard Sandiford
4b7b277aff re PR rtl-optimization/28982 (Incorrect reloading of automodification expressions)
gcc/
	PR rtl-optimization/28982
	* reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
	index of a PRE_MODIFY or POST_MODIFY address.
	* reload1.c (inc_for_reload): Use find_replacement on the original
	base and index registers.

gcc/testsuite/
	PR rtl-optimization/28982
	* gcc.c-torture/execute/pr28982a.c: New test.
	* gcc.c-torture/execute/pr28982b.c: Likewise.

From-SVN: r116919
2006-09-13 06:30:59 +00:00
Eric Botcazou
de097a3b99 re PR rtl-optimization/28636 (Miscompiled loop)
PR rtl-optimization/28636
	* combine.c (force_to_mode): Test for side-effects before
	substituting by zero.
	(simplify_shift_const): Likewise for zero or other constants.

From-SVN: r116827
2006-09-10 21:27:36 +00:00
Richard Sandiford
9226543b67 re PR target/29006 (Incorrect zeroing of unaligned 64-bit fields on MIPS targets)
gcc/
	PR target/29006
	* config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
	* config/mips/mips.c (mips_expand_unaligned_store): Use the mode
	returned by mode_for_size, rather than the mode of src itself,
	to choose between 32-bit and 64-bit patterns.
	(mips_mem_fits_mode_p): New function.
	* config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
	that the size of the source matches the size of the destination.
	(mov_<store>l, mov_<store>r): Likewise.

gcc/testsuite/
	PR target/29006
	* gcc.c-torture/execute/pr29006.c: New test.

From-SVN: r116822
2006-09-10 19:28:48 +00:00
Andrew Pinski
c9eee440af re PR middle-end/28862 (attribute ((aligned)) ignored on vector variables)
2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/28862
        * stor-layout.c (relayout_decl): Don't zero the alignment if it
        was set by the user.

2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/28862
        * gcc.c-torture/compile/vector-align-1.c: New test.

From-SVN: r116751
2006-09-07 08:36:50 -07:00
Richard Guenther
b2db922002 re PR tree-optimization/28905 (ICE in compare_name_with_value, at tree-vrp.c:3557)
2006-09-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/28905
	* tree-vrp.c (fix_equivalence_set): Manually implement
	!value_ranges_intersect_p to also handle symbolic ranges.

	* gcc.c-torture/compile/pr28905.c: New testcase.

From-SVN: r116696
2006-09-05 08:36:39 +00:00
Eric Botcazou
fd89bc3f91 20060905-1.c: New test.
* gcc.c-torture/execute/20060905-1.c: New test.

From-SVN: r116692
2006-09-05 07:05:08 +00:00
Eric Botcazou
5bb51e1d55 re PR rtl-optimization/27616 (Infinite loop at -O1 and above in RTL CSE)
PR rtl-optimization/27616
	* cse.c (table_size): New static variable.
	(new_basic_block): Initialize it to 0.
	(remove_from_table): Decrement it.
	(insert): Increment it.
	(fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
	(fold_rtx_mem): Enforce a cap on the recursion depth.  Call
	fold_rtx_mem_1 if under the cap.
	(fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
	the lookup of the equivalent expression and test for equality of the
	first operand of the equivalent expression before in turn looking up
	an equivalent constant for the second operand.

From-SVN: r116683
2006-09-04 19:33:24 +00:00
Richard Guenther
ec6aa5008e 20060826-1.c: New testcase.
2006-08-26  Richard Guenther  <rguenther@suse.de>

	* gcc.c-torture/compile/20060826-1.c: New testcase.

From-SVN: r116477
2006-08-26 19:27:17 +00:00
Jakub Jelinek
fa1ff4eb8c re PR middle-end/28683 (ICE (segfault in add_reg_br_prob_note) when comparing pointers with -O (and higher))
PR middle-end/28683
	* cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
	3 following insns.

	* gcc.c-torture/compile/20060823-1.c: New test.

From-SVN: r116467
2006-08-26 09:31:30 +02:00
Joseph Myers
4c923c2847 re PR c/27893 (ICE with TREE_CONSTANT VLA sizes inside functions)
PR c/27893
	* gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
	omp_add_variable): Treat sizes as variable whenever not
	INTEGER_CST.

testsuite:
	* gcc.c-torture/compile/vla-const-1.c,
	gcc.c-torture/compile/vla-const-2.c: New tests.

From-SVN: r116450
2006-08-26 00:01:16 +01:00
Joseph Myers
a942cc86f8 [multiple changes]
2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>

	PR c/28418
	* c-gimplify.c (gimplify_compound_literal_expr): Don't add
	variable again if DECL_SEEN_IN_BIND_EXPR_P.

2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>

	* gcc.c-torture/compile/compound-literal-1.c: New test.

From-SVN: r116436
2006-08-25 22:14:24 +01:00
Andrew Pinski
aa666e0063 re PR tree-optimization/28807 (wrong code with may_alias and structs)
2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/28807
        * tree-ssa-operands.c (access_can_touch_variable): Don't say
        the access through a base which has an alias set of 0 cannot
        touch the variable.

2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/28807
        * gcc.c-torture/execute/mayalias-2.c: New test.
        * gcc.dg/tree-ssa/alias-13.c: New test.

From-SVN: r116393
2006-08-25 00:13:48 -07:00
Richard Guenther
8a613caeb3 re PR middle-end/28776 (dwarf2out.c:2160: ICE: in build_polynomial_chrec, at tree-chrec.h:108)
2006-08-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/28776
	* tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
	parameter.  Convert arguments to arithmetic expression to the
	chrecs type.
	(analyze_scalar_evolution_1): Adjust caller.

	* gcc.c-torture/compile/pr28776-1.c: New testcase.
	* gcc.c-torture/compile/pr28776-2.c: Likewise.

From-SVN: r116326
2006-08-22 16:26:32 +00:00
J"orn Rennecke
25ff07eb3a * gcc.c-torture/execute/pr28289.c: New test.
From-SVN: r116224
2006-08-17 14:28:03 +01:00
Maxim Kuvyrkov
d3b30e42b7 re PR rtl-optimization/28489 (ICE in move_insn, at haifa-sched.c:1968)
2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR rtl-optimization/28489
	* sched-ebb.c (begin_schedule_ready): Create basic block
	at the right place.
	(advance_target_bb): Skip empty blocks.
	* haifa-sched.c (bb_note): Make global.
	* sched-int.h (bb_note): Add prototype.

2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR rtl-optimization/28489
	* gcc.c-torture/compile/pr28489.c: New test.

From-SVN: r116214
2006-08-17 08:48:37 +00:00