Commit Graph

31788 Commits

Author SHA1 Message Date
Kaveh R. Ghazi 8df79ac594 fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb, scalbn and scalbln.
* fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
	scalbn and scalbln.

testsuite:
	* gcc.dg/torture/builtin-nonneg-1.c: Add checks for scalb, scalbn
	and scalbln.

From-SVN: r122169
2007-02-20 19:29:48 +00:00
Geoffrey Keating 32ec65429c Index: gcc/ChangeLog
2007-02-20  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
	if user didn't pass it.
	* config/i386/darwin.h (CC1_SPEC): Likewise.
	* config/rs6000/darwin.h (CC1_SPEC): Likewise.
	(DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
	-mmacosx-version-min.

Index: gcc/testsuite/ChangeLog
2007-02-20  Geoffrey Keating  <geoffk@apple.com>

	* gcc.dg/darwin-minversion-1.c: New.
	* gcc.dg/darwin-minversion-2.c: New.

From-SVN: r122166
2007-02-20 16:45:38 +00:00
Kaveh R. Ghazi 0c0d910d23 optabs.h (enum optab_index): Add new OTI_scalb.
* optabs.h (enum optab_index): Add new OTI_scalb.
	(scalb_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize scalb_optab.
	* genopinit.c (optabs): Implement scalb_optab using scalb?f3
	patterns.
	* builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
	BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
	(expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
	and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
	flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
	to implement scalbf, scalb and scalbl built-ins as inline x87
	intrinsics.

testsuite/ChangeLog

	* gcc.dg/builtins-34.c: Add scalb/scalbn/scalbln cases.

From-SVN: r122162
2007-02-20 14:33:51 +01:00
Manuel López-Ibáñez 4e2bae26bf re PR other/30824 (-Werror -Wfatal-errors should stop after the first warning)
2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
            DJ Delorie <dj@redhat.com>

	PR other/30824
	* diagnostic.c (diagnostic_count_diagnostic): Move -Werror
	logic to...
	(diagnostic_report_diagnostic): ... here, and turn them into
	real errors. If warnings are inhibited, no need to do
	anything.

testsuite/
	* gcc.dg/Wfatal.c: New.
	* gcc.dg/Wfatal-2.c: New.
	* gcc.dg/Werror-1.c: Adjust expectations.
	* gcc.dg/Werror-5.c: Likewise.
	* gcc.dg/Werror-7.c: Likewise.
	* gcc.dg/Werror-10.c: Likewise.
	* gcc.dg/Werror-11.c: Likewise.

Co-Authored-By: DJ Delorie <dj@redhat.com>

From-SVN: r122159
2007-02-20 10:18:58 +00:00
Uros Bizjak 6bdcc60c75 i386.md (expm1xf2): Reorder insn sequence for better code generation.
* config/i386/i386.md (expm1xf2): Reorder insn sequence for
	better code generation.

From-SVN: r122158
2007-02-20 10:39:25 +01:00
Ben Elliston 9e4bd0ea12 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
From-SVN: r122152
2007-02-20 14:38:39 +11:00
Kazu Hirata a7b376eeb6 c4x.md, [...]: Follow spelling conventions.
* config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
	config/fr30/fr30.md, config/i386/i386.h,
	config/iq2000/iq2000.h, config/iq2000/predicates.md,
	config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
	config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
	config/pdp11/pdp11.c, config/pdp11/pdp11.h,
	config/rs6000/altivec.md, config/rs6000/rs6000.c,
	config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
	config/sparc/sparc.c, config/sparc/sparc.h,
	config/sparc/sparc.md, config/spu/constraints.md,
	config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
	conventions.

From-SVN: r122151
2007-02-20 02:26:06 +00:00
Kazu Hirata a50aa82741 alpha.c, [...]: Follow spelling conventions.
* config/alpha/alpha.c, config/alpha/alpha.md,
	config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
	config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
	config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
	config/arm/lib1funcs.asm: Follow spelling conventions.

From-SVN: r122150
2007-02-20 02:10:57 +00:00
Alan Modra 10daf67706 re PR middle-end/29943 (gcc generate incorrect alias symbols for PPC)
PR target/29943
	* varasm.c (use_blocks_for_decl_p): Return false for decls with
	alias attribute.

From-SVN: r122148
2007-02-20 11:55:41 +10:30
Kazu Hirata 8af636537a * doc/invoke.texi (-ftree-lrs): Remove.
From-SVN: r122141
2007-02-19 23:35:48 +00:00
Diego Novillo ac02df494c tree-ssa-pre.c (create_value_expr_from): Initialize POOL to NULL.
* tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
	NULL.

From-SVN: r122140
2007-02-19 18:26:38 -05:00
Lee Millward 767fad4cb9 ia64.c (ia64_expand_builtin): Use the new CALL_EXPR_FN macro for retrieving the function declaration of the...
* config/ia64/ia64.c (ia64_expand_builtin): Use the
	new CALL_EXPR_FN macro for retrieving the function 
	declaration of the input expression.

From-SVN: r122139
2007-02-19 22:39:13 +00:00
Manuel López-Ibáñez c116cd05fb c.opt (Waddress): New.
2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c.opt (Waddress): New.
	* common.opt (Walways-true): Delete.
	(Wstring-literal-comparison): Delete.
	* doc/invoke.texi (Warning Options): Delete -Walways-true and
	-Wstring-literal-comparison. Add -Waddress.
	(Waddress): New.
	(Walways-true): Delete.
	(Wstring-literal-comparison): Delete.
	* doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
	consistently instead of -Walways-true in example.
	* c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
	* c-typeck.c (parser_build_binary_op): Replace
	-Wstring-literal-comparison and -Walways-true with -Waddress.
	* c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
	with -Waddress.

cp/
	* typeck.c (build_binary_op): Replace -Wstring-literal-comparison
	and -Walways-true with -Waddress.
	* cvt.c (convert_to_void): Replace unconditional warning with
	-Waddress.

testsuite/
	* gcc.dg/20031012-1.c: Replace -Walways-true with -Waddress.
	* gcc.dg/Walways-true-1.c: Likewise.
	* gcc.dg/weak/weak-3.c: Likewise.
	* gcc.dg/Werror-1.c: Likewise.
	* gcc.dg/Werror-3.c: Likewise.
	* gcc.dg/Werror-4.c: Likewise.
	* gcc.dg/Werror-5.c: Likewise.
	* gcc.dg/Werror-6.c: Likewise.
	* gcc.dg/Werror-7.c: Likewise.
	* gcc.dg/Werror-8.c: Likewise.
	* gcc.dg/Werror-10.c: Likewise.
	* gcc.dg/Werror-11.c: Likewise.
	* gcc.dg/Werror-12.c: Likewise.
	* g++.old-deja/g++.mike/warn8.C: Likewise.
	* g++.dg/warn/Walways-true-1.C: Likewise.
	* g++.dg/warn/Walways-true-2.C: Likewise.
	* g++.dg/warn/noeffect8.C: Warn only with -Waddress.
	* g++.dg/warn/Wstring-literal-comparison-1.C: Replace
	-Wstring-literal-comparison with -Waddress.
	* gcc.dg/Wstring-literal-comparison-4.c: Replace
	-Wno-string-literal-comparison with -Wno-address.

From-SVN: r122136
2007-02-19 20:02:28 +00:00
Eric Botcazou 459ffad3fd tree-cfg.c (dump_function_to_file): Be prepared for functions without DECL_STRUCT_FUNCTION initialized.
* tree-cfg.c (dump_function_to_file): Be prepared for functions
	without DECL_STRUCT_FUNCTION initialized.

From-SVN: r122135
2007-02-19 19:26:16 +00:00
Eric Botcazou df10ee2a5a gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap due to calls to functions taking pointers as parameters.
* gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
	due to calls to functions taking pointers as parameters.

From-SVN: r122133
2007-02-19 19:11:37 +00:00
Richard Henderson 80a3af5be7 re PR debug/29558 (ICE in set_variable_part, at var-tracking.c:2140)
PR debug/29558
        * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
        in memory.

From-SVN: r122131
2007-02-19 08:21:59 -08:00
Andreas Krebbel 9a6f71b45c s390.c (s390_call_saved_register_used, [...]): Adjust the way CALL_EXPR arguments are accessed to the new scheme.
2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_call_saved_register_used,
	s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
	accessed to the new scheme.

From-SVN: r122129
2007-02-19 14:35:10 +00:00
Jan-Benedict Glaw 991c42ace3 * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
(cris_print_index, cris_print_operand, cris_print_operand_address)
	(cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
	(cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
	(cris_expand_pic_call_address): Use xxx_P predicate macros instead of
	GET_CODE () == xxx.
	* config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
	EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
	GO_IF_LEGITIMATE_ADDRESS): Ditto.
	* config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
	(*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
	(*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
	(*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
	(*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
	(*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
	(uminsi3, call, call_value): Ditto.
	(define_split: indir_to_reg_split, unnamed): Ditto.

From-SVN: r122128
2007-02-19 12:34:12 +00:00
Dorit Nuzman 602fea7c26 re PR tree-optimization/30795 (ice for legal code with -ftree-vectorize -O2)
PR tree-optimization/30975
        * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
        wrong assert.

From-SVN: r122127
2007-02-19 08:46:45 +00:00
Eric Christopher 5646ba1294 mips.c (mips_prepare_builtin_arg): Add argnum parameter.
2007-02-18  Eric Christopher  <echristo@gmail.com>

        * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
        Remove use of arglist.
        (mips_expand_builtin): Remove use of arglist, pass in expr.
        (mips_expand_builtin_direct): Rewrite handling for arglist removal.
        (mips_expand_builtin_movtf): Ditto.
        (mips_expand_builtin_compare): Ditto.

From-SVN: r122126
2007-02-19 07:14:24 +00:00
Alexandre Oliva 300471993f tree-sra.c (sra_build_assignment): Replace assertion checking with a comment explaining why it can't be done.
* tree-sra.c (sra_build_assignment): Replace assertion
checking with a comment explaining why it can't be done.

From-SVN: r122123
2007-02-19 06:22:43 +00:00
Sandra Loosemore 3328fbb7d1 re PR middle-end/30833 (ICE with -fdump-tree-all)
2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/30833
	* tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
	during CALL_EXPR representation conversion.
	* tree-ssa-propagate.c (set_rhs): Likewise.

From-SVN: r122122
2007-02-18 23:12:49 -05:00
Alexandre Oliva eb441084eb tree-sra.c (sra_build_assignment): Disable assertion checking for now.
* tree-sra.c (sra_build_assignment): Disable assertion checking
for now.

From-SVN: r122121
2007-02-19 03:51:24 +00:00
Roger Sayle b56b9fe39d function.c (gimplify_parameters): Call build_gimple_modify_stmt instead of calling build2 with a GIMPLE_MODIFY_STMT.
* function.c (gimplify_parameters): Call build_gimple_modify_stmt
	instead of calling build2 with a GIMPLE_MODIFY_STMT.
	* gimple-low.c (lower_function_body, lower_builtin_setjmp):
	Likewise.
	* gimplify.c (build_stack_save_restore, gimplify_return_expr,
	gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
	gimplify_init_ctor_eval_range, gimple_push_cleanup,
	gimplify_omp_for, gimplify_omp_atomic_pipeline, 
	gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
	force_gimple_operand): Likewise.
	* ipa-cp.c (constant_val_insert): Likewise.
	* lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
	lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
	perfect_nestify): Likewise.
	* langhooks.c (lhd_omp_assignment): Likewise.
	* omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
	lower_copyprivate_clauses, lower_send_clauses,
	lower_send_shared_vars, expand_parallel_call,
	expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk, expand_omp_sections,
	lower_omp_single_copy, lower_omp_for_lastprivate,
	lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
	* value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
	tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
	Likewise.

From-SVN: r122120
2007-02-19 02:45:34 +00:00
Kazu Hirata da08281c06 linux-unwind.h: Fix a comment typo.
* config/m68k/linux-unwind.h: Fix a comment typo.
	* target.h: Follow spelling conventions.

From-SVN: r122119
2007-02-19 01:36:11 +00:00
Kazu Hirata 2300b9ddbb frv.c, [...]: Follow spelling conventions.
* config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
	config/frv/predicates.md: Follow spelling conventions.

From-SVN: r122118
2007-02-19 01:27:56 +00:00
Kazu Hirata 3b962ea0f7 divtab.c, [...]: Follow spelling conventions.
* config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
	config/sh/sh.md: Follow spelling conventions.

From-SVN: r122117
2007-02-19 01:20:56 +00:00
Roger Sayle 49e7a9d4b8 re PR rtl-optimization/28173 (misses constant folding)
PR rtl-optimization/28173
	* simplify-rtx.c (simplify_binary_operation_1) <IOR>:  Optimize
	(X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
	Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
	Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
	<AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).

	* gcc.target/i386/andor-1.c: New test case.

From-SVN: r122116
2007-02-19 00:54:29 +00:00
Kaveh R. Ghazi 2b5e5642e3 builtins.c (fold_builtin_load_exponent): New.
* builtins.c (fold_builtin_load_exponent): New.
	(fold_builtin_2): Use it.

testsuite:
	* gcc.dg/torture/builtin-ldexp-1.c: New.
	* gcc.dg/torture/builtin-math-2.c: Add ldexp/scalbn/scalbln cases.

From-SVN: r122110
2007-02-19 00:14:14 +00:00
Steven Bosscher 8800a9b349 re PR rtl-optimization/30773 (Spec cpu2k6/h264ref and sphinx3 miscompare regression)
PR rtl-optimization/30773
	* local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
	if we fail to attach a REG_EQUIV note.

From-SVN: r122106
2007-02-18 22:33:23 +00:00
David Edelsohn 03f79051ae rs6000.md (bswapsi2): New define_insn and splitter.
2007-02-18  David Edelsohn  <edelsohn@gnu.org>
            Roger Sayle  <roger@eyesopen.com>

        * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.

Co-Authored-By: Roger Sayle <roger@eyesopen.com>

From-SVN: r122104
2007-02-18 15:55:31 -05:00
Sandra Loosemore 078a18a423 calls.c (initialize_argument_information): Pass original EXP and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.
2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>

	* calls.c (initialize_argument_information): Pass original EXP
	and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
	code to split complex arguments here, as part of initializing the
	ARGS array.
	(expand_call): Remove code that builds a list of arguments and
	inserts implicit arguments into it.  Instead, just count how many
	implicit arguments there will be so we can determine the size of
	the ARGS array, and let initialize_argument_information do the work.
	(split_complex_values): Delete unused function.

From-SVN: r122101
2007-02-18 14:34:28 -05:00
Eric Botcazou 483edb9201 tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
* tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.

From-SVN: r122097
2007-02-18 14:03:24 +00:00
Eric Botcazou ae22dcff00 calls.c (mem_overlaps_already_clobbered_arg_p): Return true for arg pointer based indexed addressing.
* calls.c (mem_overlaps_already_clobbered_arg_p): Return true
	for arg pointer based indexed addressing.

From-SVN: r122095
2007-02-18 13:52:46 +00:00
Kazu Hirata 27a9b99d08 ia64.h, [...]: Follow spelling conventions.
* config/ia64/ia64.h, config/ia64/ia64.md,
	config/ia64/predicates.md, config/ia64/sysv4.h: Follow
	spelling conventions.

From-SVN: r122087
2007-02-18 02:18:25 +00:00
Roman Zippel 01e304f8a9 m68k.c (split_di): New.
* config/m68k/m68k.c (split_di): New.
	* config/m68k/m68k-protos.h: Declare split_di.
	* config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
	  Improve predicate handling and split constant shifts.

From-SVN: r122084
2007-02-18 01:30:58 +00:00
Roman Zippel 3670ec284d m68k.md (extv,extzv,insv): disable dynamic parameter for register bitfield operations...
* config/m68k/m68k.md (extv,extzv,insv): disable dynamic
	parameter for register bitfield operations, general predicates
	cleanup

From-SVN: r122083
2007-02-18 01:20:15 +00:00
Roman Zippel 19a956978f linux.h (MD_UNWIND_SUPPORT): Define.
* config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
	* config/m68k/linux-unwind.h: New file.

From-SVN: r122082
2007-02-18 01:16:55 +00:00
Kazu Hirata ea2c620c64 cfgloop.c, [...]: Fix comment typos.
* cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
	config/i386/athlon.md, config/ia64/ia64.md,
	config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
	df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
	ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
	tree-ssa-loop-niter.c, tree-vect-analyze.c,
	tree-vect-transform.c: Fix comment typos.

From-SVN: r122080
2007-02-18 00:52:51 +00:00
Kazu Hirata 51db94a08e sched-deps.c (find_insn_list): Remove.
* sched-deps.c (find_insn_list): Remove.
	* sched-int.h: Remove the prototype for find_insn_list.

From-SVN: r122069
2007-02-17 04:01:30 +00:00
Geoffrey Keating e4cad568ec darwin.h (LINK_SPEC): Always pass -macosx_version_min to linker.
* config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
	to linker.
	(DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
	darwin_rs6000_override_options.
	(C_COMMON_OVERRIDE_OPTIONS): Expect
	darwin_macosx_version_min to be non-NULL always.
	(TARGET_C99_FUNCTIONS): Likewise.
	(CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
	(DARWIN_MINVERSION_SPEC): New.
	* config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
	* config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
	to cc1*.  
	(DARWIN_MINVERSION_SPEC): New.
	* config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
	value.
	* config/darwin-c.c (darwin_cpp_builtins): Expect
	darwin_macosx_version_min to be non-NULL always.

From-SVN: r122067
2007-02-17 01:47:38 +00:00
Geoffrey Keating 982afe020c * config/rs6000/rs6000.c: Clean up trailing whitespace.
From-SVN: r122066
2007-02-17 01:28:16 +00:00
Uros Bizjak fa681e3960 i386.h (x86_use_xchgb): New.
* config/i386/i386.h (x86_use_xchgb): New.
        (TARGET_USE_XCHGB): New macro.
        * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
        * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
        Split after reload into bswaphi for shifts of 8.
        (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
        (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
        or when optimizing for size.

testsuite/ChangeLog:

        * gcc.target/i386/builtin-bswap-1.c: Remove -march=nocona.
        * gcc.target/i386/builtin-bswap-3.c: Ditto.
        * gcc.target/i386/xchg-1.c: New test.
        * gcc.target/i386/xchg-2.c: New test.

From-SVN: r122049
2007-02-16 19:36:01 +01:00
Richard Guenther 421076b552 fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like DECLs but prefer SSA_NAMEs over DECLs.
2007-02-16  Richard Guenther  <rguenther@suse.de>
	Christian Bruel  <christian.bruel@st.com>

	* fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
	DECLs but prefer SSA_NAMEs over DECLs.

	* gcc.dg/strict-overflow-5.c: New testcase.

Co-Authored-By: Christian Bruel <christian.bruel@st.com>

From-SVN: r122040
2007-02-16 13:41:03 +00:00
Richard Guenther 40b448ef3a tree-flow-inline.h (single_imm_use_p): Remove.
2007-02-16  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (single_imm_use_p): Remove.
	(zero_imm_uses_p): Likewise.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
	instead of single_imm_use_p.
	* tree-cfg.c (replace_uses_by): Use has_zero_use instead of
	zero_imm_uses_p.

From-SVN: r122036
2007-02-16 09:34:24 +00:00
Ralf Wildenhues 70d0631e69 re PR other/27843 (gcc-4.2-20060527 make install fails on alphaev68-dec-osf5.1b)
2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR other/27843
	* Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
	nested double- and backquotes.

From-SVN: r122032
2007-02-16 08:53:51 +00:00
Roger Sayle 939409afce re PR middle-end/30391 (ICE at -O1 with conditional expressions and GIMPLE_MODIFY_STMT)
PR middle-end/30391
	* tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
	should be unreachable.
	(build2_stat): Allow construction of MODIFY_EXPR at any time.
	For the time being redirect GIMPLE_MODIFY_STMT to the new
	(renamed) build_gimple_modify_stmt_stat.
	(build2_gimple_stat): Rename to...
	(build_gimple_modify_stmt_stat): Now longer take a CODE argument.
	Always build a GIMPLE_MODIFY_STMT node.
	* tree.h (build2_gimple, build2_gimple_stat): Delete.
	(build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
	declarations.

	* tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
	gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
	* tree-complex.c (set_component_ssa_name, expand_complex_move,
	expand_complex_div_wide): Likewise.
	* tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
	* tree-ssa-loop-im.c (schedule_sm): Likewise.
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
	abs_replacement): Likewise.
	* tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
	realify_fake_stores): Likewise.

	* builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
	node rather than a GIMPLE_MODIFY_STMT node.
	(std_gimpify_va_arg_expr, expand_builtin_va_copy,
	fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
	Likewise.
	(integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
	* expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
	GIMPLE_MODIFY_STMT.

	* gfortran.dg/pr30391-1.f90: New test case.

From-SVN: r122030
2007-02-16 03:38:22 +00:00
Andrew Pinski 3c32c87f60 re PR middle-end/30433 (no longer folding __complex__(0.0, 1.0) == __complex__(1.0, 0.0))
2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/30433
        * fold-const.c (fold_comparison): Add back the
        folding of constant complex comparisions.
2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/30433
        * gcc.c-torture/compile/pr30433.c: New testcase to check
        that complex constants comparisions are foldded.

From-SVN: r122029
2007-02-15 17:27:42 -08:00
Andrew Pinski d3d6f724f2 re PR middle-end/30729 (value computed is not used warning with unused result of va_arg)
2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/30729
        * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
        effects unknown to this function, return early.

2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/30729
        * gcc.dg/Wunused-value-2.c: New testcase.

From-SVN: r122027
2007-02-15 17:19:23 -08:00
Ian Lance Taylor 73663bb75e lower-subreg.c (move_eh_region_note): New static function.
./:	* lower-subreg.c (move_eh_region_note): New static function.
	(resolve_simple_move): Call it.
	(decompose_multiword_subregs): Track blocks for which we resolve a
	simple move which is also a control flow insn.  Pass them to
	find_many_sub_basic_blocks.
	(pass_lower_subreg): Add TODO_verify_flow.
	(pass_lower_subreg2): Likewise.
testsuite/:
	* g++.dg/eh/subreg-1.C: New test.

From-SVN: r122025
2007-02-16 00:42:11 +00:00