Commit Graph

32421 Commits

Author SHA1 Message Date
Janis Johnson 589dd99500 c-cppbuiltin.c (c_cpp_builtins): Remove definition of __STDC_WANT_DEC_FP__.
* c-cppbuiltin.c (c_cpp_builtins): Remove definition of
	__STDC_WANT_DEC_FP__.

From-SVN: r123973
2007-04-19 16:57:23 +00:00
Joseph Myers f7cc5390ec configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu* for long double compatibility.
gcc:
	* configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
	for long double compatibility.
	* configure: Regenerate.

libstdc++-v3:
	* configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
	for long double compatibility.
	* configure: Regenerate.
	* src/complex_io.cc, src/istream-inst.cc, src/ostream-inst.cc:
	Condition some _GLIBCXX_LDBL_COMPAT calls on _GLIBCXX_USE_WCHAR_T.

From-SVN: r123972
2007-04-19 13:11:07 +01:00
Eric Botcazou d47a8b8331 re PR rtl-optimization/29841 (ICE with scheduling and __builtin_trap)
PR rtl-optimization/29841
	* cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
	trap instructions.
	* sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
	that may cause control flow transfer from being moved.

From-SVN: r123970
2007-04-19 11:19:16 +00:00
Jan Hubicka 8d5d586529 fold-const.c (div_if_zero_remainder): Do signed divide for pointer types.
* fold-const.c (div_if_zero_remainder): Do signed divide for pointer
	types.

From-SVN: r123966
2007-04-19 01:35:25 +00:00
Eric Christopher 316fbf1945 darwin.md (load_macho_picbase): Use link register only.
2007-04-18  Eric Christopher  <echristo@apple.com>

        * config/rs6000/darwin.md (load_macho_picbase): Use link register
        only. Update operands.
        * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
        * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
        link register to pic register.

From-SVN: r123960
2007-04-18 22:27:51 +00:00
Philippe De Muyter 5083912dfa m68k.c (output_btst): Use `movew to ccr' when useful.
2007-04-18  Philippe De Muyter  <phdm@macqel.be>

	* config/m68k/m68k.c (output_btst): Use `movew to ccr' when useful.

From-SVN: r123959
2007-04-18 20:51:42 +00:00
Dirk Mueller 05fb69e4c9 re PR tree-optimization/31227 (-Warray-bounds doesn't play together with loop optimizations)
2007-04-18  Dirk Mueller  <dmueller@suse.de>

       PR diagnostic/31227
       * tree-vrp.c (search_for_addr_array): New.
       (check_array_bounds): Suppress warning about
       address taken of array refs if its not de-referenced.

       * gcc.dg/Warray-bounds-3.c: New.

From-SVN: r123958
2007-04-18 20:09:21 +00:00
Dorit Nuzman 28e44f4fe6 tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
* tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
        * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.

        * tree-vectorizer.h (NITERS_KNOWN_P): New.
        * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
        instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.

        * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
        dump print.
        (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
        print message.
        (vect_analyze_scalar_cycles): Fix indentation.
        (vect_enhance_data_refs_alignment): Fix check in case of peeling.
        (vect_mark_relevant): Include phis in relevance analysis.

        * tree-vect-transform.c (vect_transform_loop): Add an assert.

From-SVN: r123955
2007-04-18 17:43:27 +00:00
Anatoly Sokolov 3639b3fac4 avr.c (ptrreg_to_str): Replace error() with output_operand_lossage().
* config/avr/avr.c (ptrreg_to_str): Replace error() with
	output_operand_lossage().

From-SVN: r123949
2007-04-18 20:21:57 +04:00
Dorit Nuzman f7c1d73d8d tree-vect-transform.c (get_initial_def_for_reduction): Clean away the unused code for reduction without adjust-in-epilog to simplify...
* tree-vect-transform.c (get_initial_def_for_reduction): Clean away
        the unused code for reduction without adjust-in-epilog to simplify the
        function.

From-SVN: r123948
2007-04-18 11:53:37 +00:00
Wolfgang Gellerich 638e37c250 s390.h (S390_TDC_POSITIVE_ZERO): New constant.
2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
	(S390_TDC_NEGATIVE_ZERO): New constant.
	(S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
	(S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
	(S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
	(S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
	(S390_TDC_POSITIVE_INFINITY): New constant.
	(S390_TDC_NEGATIVE_INFINITY): New constant.
	(S390_TDC_POSITIVE_QUIET_NAN): New constant.
	(S390_TDC_NEGATIVE_QUIET_NAN): New constant.
	(S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
	(S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
	(S390_TDC_INFINITY): New constant.
	* config/s390/s390.c (s390_canonicalize_comparison): Renamed
	UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
	optimization for UNSPEC_CCZ_TO_INT.
	* config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
	("*ccz_to_int"): New insn.
	("isinf<mode>2"): New insn.
	(UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
	(UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
	(UNSPEC_CCZ_TO_INT): New constant.

From-SVN: r123947
2007-04-18 11:51:06 +00:00
Richard Guenther 3b48ccbc89 re PR tree-optimization/19431 (missed optimization with ifs and deferencing)
2007-04-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19431
	PR tree-optimization/21463
	* tree-pass.h (pass_phiprop): Declare.
	* passes.c (init_optimization_passes): New phiprop pass.
	* tree-ssa-forwprop.c (struct phiprop_d): New structure.
	(phivn_valid_p): New helper function.
	(phiprop_insert_phi): Likewise.
	(propagate_with_phi): Likewise.
	(tree_ssa_phiprop): New propagator propagating loads
	through phi nodes if profitable.

	* gcc.c-torture/execute/20070212-1.c: New testcase.
	* gcc.c-torture/execute/20070212-2.c: Likewise.
	* gcc.c-torture/execute/20070212-3.c: Likewise.
	* gcc.dg/tree-ssa/pr19431.c: Likewise.
	* gcc.dg/tree-ssa/pr21463.c: Likewise.
	* g++.dg/tree-ssa/pr21463.C: Likewise.
	* g++.dg/tree-ssa/pr30738.C: Likewise.

From-SVN: r123946
2007-04-18 11:45:09 +00:00
Dorit Nuzman 8cf81ddffd tree-vect-analyze.c (process_use): New function.
* tree-vect-analyze.c (process_use): New function.
        (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
        Check phis in all bbs.
        * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
        assert.

From-SVN: r123943
2007-04-18 07:55:34 +00:00
Bernd Schmidt 7c11b28c57 reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way we use REG_EQUAL.
* reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
	we use REG_EQUAL.

From-SVN: r123932
2007-04-17 22:35:47 +00:00
Anatoly Sokolov 5594a6c8c0 re PR target/30483 (Internal compiler error with inline volatile assembly on AVR)
PR target/30483
	* config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
	error().

From-SVN: r123926
2007-04-18 00:08:46 +04:00
H.J. Lu ce217d7583 sse.md (sse_vmaddv4sf3): Use register_operand on "0".
2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
	on "0".
	(sse_vmmulv4sf3): Likewise.
	(sse2_vmaddv2df3): Likewise.
	(sse2_vmmulv2df3): Likewise.

From-SVN: r123920
2007-04-17 10:30:40 -07:00
Zdenek Dvorak a154b43a81 re PR rtl-optimization/31360 (RTL loop invariant is not aggressive enough)
PR rtl-optimization/31360
	* cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
	(target_reg_cost): New.
	(init_set_costs): Initialize target_reg_cost.  Add comments
	regarding the rationale of the costs.
	(global_cost_for_size): Renamed to...
	(estimate_reg_pressure_cost): ... and simplify.  Decrease importance
	of register pressure.
	* tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
	estimate_reg_pressure_cost.  Add number of ivs.
	(determine_set_costs): Dump target_reg_cost.
	* loop-invariant.c (gain_for_invariant):  Use
	estimate_reg_pressure_cost.  Removed n_inv_uses argument.
	(best_gain_for_invariant, find_invariants_to_move): Remove
	n_inv_uses.
	* cfgloop.h (target_small_cost, target_pres_cost): Removed.
	(target_reg_cost): Declare.
	(global_cost_for_size): Declaration removed.
	(estimate_reg_pressure_cost): Declare.

	* gcc.dg/loop-7.c: New test.

From-SVN: r123919
2007-04-17 16:42:29 +00:00
Peter Bergner c092b0457f rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode regnos into even/odd register pairs.
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
	regnos into even/odd register pairs.
	* config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
	TDmode similar to the other floating point modes.
	[SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
	* config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
	define_expand's.
	(negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
	nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
	(movdd_hardfloat64): Use TARGET_MFPGPR.

From-SVN: r123916
2007-04-17 11:07:05 -05:00
Bernd Schmidt f2eb49dcfa re PR rtl-optimization/10692 ([m68k] miscompilation of perl with -O2 -fPIC)
* reload1.c (delete_output_reload): Don't count output in n_inherited.

	Revert
	2005-01-05  Richard Henderson  <rth@redhat.com>
	PR rtl-opt/10692
	* reload1.c (do_input_reload): Restrict the optimization deleteing
	a previous output reload to RELOAD_FOR_INPUT.

From-SVN: r123913
2007-04-17 15:29:34 +00:00
Dorit Nuzman cd38ca7f15 tree-vectorizer.h (stmt_vec_info_type): Add enum value induc_vec_info_type.
* tree-vectorizer.h (stmt_vec_info_type): Add enum value
        induc_vec_info_type.
        (vectorizable_induction): New function declaration.
        * tree-vect-transform.c (get_initial_def_for_induction): No need to
        check if already vectorized.  Find first place in BB where new stmts
        can be inserted.  Takes only one argument.
        (vectorizable_induction): New function.
        (vect_transform_stmt): Add case for induc_vec_info_type to call
        vectorizable_induction.
        (vect_transform_loop): Consider phis for vectorization.
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
        condition.
        (analyze_operations): Call vectorizable_induction when analyzing phis.
        Fix comment.
        (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
        (vect_mark_relevant): Include phis in relevance analysis.
        (vect_mark_stmts_to_be_vectorize): Likewise.
        * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.

From-SVN: r123910
2007-04-17 07:31:45 +00:00
Lawrence Crowl 39ef65923c invoke.texi (Debugging Options): Add documentation for the -femit-struct-debug options...
./:	* doc/invoke.texi (Debugging Options): Add documentation for the
	-femit-struct-debug options -femit-struct-debug-baseonly,
	-femit-struct-debug-reduced, and
	-femit-struct-debug-detailed[=...].

	* c-opts.c (c_common_handle_option): Add
	OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
	and OPT_femit_struct_debug_detailed_.
	* c.opt: Add specifications for
	-femit-struct-debug-baseonly, -femit-struct-debug-reduced,
	and -femit-struct-debug-detailed[=...].
	* opts.c (set_struct_debug_option): Parse the
	-femit-struct-debug-... options.
	* opts.c (matches_main_base, main_input_basename,
	main_input_baselength, base_of_path, matches_main_base): Add
	variables and functions to compare header base name to compilation
	unit base name.
	* opts.c (should_emit_struct_debug): Add to determine to emit a
	structure based on the option.
	(dump_struct_debug) Also disabled function to debug this
	function.
	* opts.c (handle_options): Save the base name of the
	compilation unit.

	* langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
        (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
	This hook indicates if a type is generic.  Set it by default
	to "never generic".
	* langhooks.h (struct lang_hooks_for_types): Add a new hook
	to determine if a struct type is generic or not.
	* cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
	* cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
	* cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
	with live C++ hook.

	* flags.h (enum debug_info_usage): Add an enumeration to describe
	a program's use of a structure type.
	* dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
	to indicate the program's usage of the type.  Filter structs based
	on the -femit-struct-debug-... specification.
	(gen_type_die): Split into two routines, gen_type_die and
	gen_type_die_with_usage.  gen_type_die is now a wrapper
	that assumes direct usage.
	(gen_type_die_with_usage): Replace calls to gen_type_die
	with gen_type_die_with_usage adding the program usage of
	the referenced type.
	(dwarf2out_imported_module_or_decl): Suppress struct debug
	information using should_emit_struct_debug when appropriate.
testsuite/:
	* g++.dg/other/fesd-any.C: Test -femit-struct-debug-detailed=any.
	* g++.dg/other/fesd-any.h: Test -femit-struct-debug-detailed=any.
	* g++.dg/other/fesd-baseonly.C: Test -femit-struct-debug-baseonly.
	* g++.dg/other/fesd-baseonly.h: Test -femit-struct-debug-baseonly.
	* g++.dg/other/fesd-none.C: Test -femit-struct-debug-detailed=none.
	* g++.dg/other/fesd-none.h: Test -femit-struct-debug-detailed=none.
	* g++.dg/other/fesd-reduced.C: Test -femit-struct-debug-reduced.
	* g++.dg/other/fesd-reduced.h: Test -femit-struct-debug-reduced.
	* g++.dg/other/fesd-sys.C: Test -femit-struct-debug-detailed=sys.
	* g++.dg/other/fesd-sys.h: Test -femit-struct-debug-detailed=sys.
	* g++.dg/other/fesd.h: Common to -femit-struct-debug-... tests.

	* gcc.dg/fesd-any.c: Test -femit-struct-debug-detailed=any.
	* gcc.dg/fesd-any.h: Test -femit-struct-debug-detailed=any.
	* gcc.dg/fesd-baseonly.c: Test -femit-struct-debug-baseonly.
	* gcc.dg/fesd-baseonly.h: Test -femit-struct-debug-baseonly.
	* gcc.dg/fesd-none.c: Test -femit-struct-debug-detailed=none.
	* gcc.dg/fesd-none.h: Test -femit-struct-debug-detailed=none.
	* gcc.dg/fesd-reduced.c: Test -femit-struct-debug-reduced.
	* gcc.dg/fesd-reduced.h: Test -femit-struct-debug-reduced.
	* gcc.dg/fesd-sys.c: Test -femit-struct-debug-detailed=sys.
	* gcc.dg/fesd-sys.h: Test -femit-struct-debug-detailed=sys.
	* gcc.dg/fesd.h: Common to -femit-struct-debug-... tests.

From-SVN: r123909
2007-04-17 06:19:36 +00:00
Ian Lance Taylor fc6827fe9f re PR tree-optimization/31522 (False overflow warning with phi nodes)
./:	PR tree-optimization/31522
	* tree-vrp.c (vr_phi_edge_counts): New static variable.
	(vrp_initialize): Allocate vr_phi_edge_counts.
	(vrp_visit_phi_node): Don't push to infinity if we saw a new
	executable edge.  Drop test for all constants.
	(vrp_finalize): Free vrp_phi_edge_counts.
testsuite/:
	PR tree-optimization/31522
	* gcc.dg/Wstrict-overflow-16.c: New test.

From-SVN: r123908
2007-04-17 05:33:38 +00:00
Ian Lance Taylor 4075e23198 cpp.texi (Common Predefined Macros): Clarify description of __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
* doc/cpp.texi (Common Predefined Macros): Clarify description of
	__GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.

From-SVN: r123907
2007-04-17 05:19:22 +00:00
Ian Lance Taylor 5a0ed003f0 tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer predecessors at head rather than tail.
* tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
	predecessors at head rather than tail.

From-SVN: r123906
2007-04-17 05:16:07 +00:00
Matthias Klose bdede2ace5 linux.h (CPP_SPEC): Define.
2007-04-16  Matthias Klose  <doko@debian.org>

        * gcc/config/alpha/linux.h (CPP_SPEC): Define.
        * gcc/config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.

From-SVN: r123888
2007-04-16 20:12:05 +00:00
Aldy Hernandez 52d412e76f * function.h: Remove sequence_stack extern declaration.
From-SVN: r123885
2007-04-16 18:55:33 +00:00
Kazu Hirata 7212046395 m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on TARGET_FIDOA.
* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
	TARGET_FIDOA.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
	defined.

From-SVN: r123884
2007-04-16 18:01:12 +00:00
Anatoly Sokolov 1468317475 avr.c (avr_arch_types): Rearranging array.
* config/avr/avr.c (avr_arch_types): Rearranging  array.
	(enum avr_arch): Add.
	(avr_mcu_types): Use avr_arch enumeration constants instead of 
	numbers.
	* config/avr/avr.h (LINK_SPEC): Simplify.

From-SVN: r123882
2007-04-16 21:50:26 +04:00
Seongbae Park fe24078a22 Correct the misplaced ChangeLog.
From-SVN: r123880
2007-04-16 17:07:04 +00:00
Seongbae Park 8fff206014 re PR c++/29365 (Unnecessary anonymous namespace warnings)
gcc/ChangeLog:

2007-04-16  Seongbae Park <seongbae.park@gmail.com>

	PR c++/29365

	* cp/decl2.c (constrain_class_visibility):
	Do not warn about the use of anonymous namespace in the main input file.

gcc/testsuite/ChangeLog:

2007-04-16  Seongbae Park <seongbae.park@gmail.com>

	PR c++/29365
	Testcase for c++ anonymous namespace warning

	* g++.dg/warn/anonymous-namespace-1.C: New test
	* g++.dg/warn/anonymous-namespace-1.h: New test

From-SVN: r123879
2007-04-16 16:49:02 +00:00
Kazu Hirata de41203b65 m68k.h (FRAME_POINTER_REGNUM): Use A6_REG instead.
* config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
	instead.
	(M68K_REGNAME): Use A6_REG.
	* config/m68k/m68k.md (FP_REG): Rename to A6_REG.

From-SVN: r123878
2007-04-16 16:47:44 +00:00
Kazu Hirata 8d989403d6 m68k.c (m68k_libcall_value, [...]): Use macros for register names more.
* config/m68k/m68k.c (m68k_libcall_value,
	m68k_function_value): Use macros for register names more.

From-SVN: r123877
2007-04-16 16:23:09 +00:00
Maxim Kuvyrkov bdbf40a536 re PR middle-end/28071 (A file that can not be compiled in reasonable time/space)
PR middle-end/28071
* sched-int.h (struct deps): Split field 'pending_lists_length' into
'pending_read_list_length' and 'pending_write_list_length'.  Update
comment.
* sched-deps.c (add_insn_mem_dependence): Change signature.  Update
to handle two length counters instead of one.  Update all uses.
(flush_pending_lists, sched_analyze_1, init_deps): Update to handle
two length counters instead of one.
* sched-rgn.c (propagate_deps): Update to handle two length counters
instead of one.

From-SVN: r123874
2007-04-16 15:04:18 +00:00
H.J. Lu 7bb4a6be35 re PR target/31582 (ix86_expand_vec_set_builtin modifies source)
2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31582
	* config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
	copy of source, pass it to ix86_expand_vector_set and return
	it as target.

From-SVN: r123866
2007-04-16 06:49:14 -07:00
David Ung 8dd58f012c mips.h (PROCESSOR_74KC, [...]): Define.
2007-04-16  David Ung  <davidu@mips.com>
            Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
	PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
	* config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
	Add 74K processor information.
	* config/mips/mips.md: Include 74k.md.
	(cpu): Add 74kc,74kf,74kx.
	(ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
	* config/mips/74k.md: New.
	* doc/invoke.texi (MIPS Options): Document 74K support.

Co-Authored-By: Joseph Myers <joseph@codesourcery.com>

From-SVN: r123863
2007-04-16 14:45:24 +01:00
Dorit Nuzman 60555ced95 tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to vectorizable_* functions.
* tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
        vectorizable_* functions.
        * tree-vect-transform.c (vectorizable_call): Add check for
        STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
        (vectorizable_store): likewise.
        (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
        Add comments.
        (vectorizable_operation, vectorizable_type_demotion): Likewise.
        (vectorizable_type_promotion, vectorizable_load): Likewise.
        (vectorizable_live_operation, vectorizable_condition): Likewise.
        (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
        STMT_VINFO_LIVE_P.
        (vect_transform_stmt): Reorganize calls to vectorizable_* functions.

From-SVN: r123861
2007-04-16 12:54:01 +00:00
Andrew Pinski d0b73842be Fix typo in my last changelog entry.
From-SVN: r123853
2007-04-15 13:58:09 -07:00
Kazu Hirata 3bfe36dce0 linux.h (FUNCTION_VALUE_REGNO_P): Use macros for register numbers more.
* config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
	register numbers more.
	* config/m68k/m68k.h (STACK_POINTER_REGNUM,
	FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
	M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
	FUNCTION_VALUE_REGNO_P): Likewise.
	* config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
	STATIC_CHAIN_REGNUM): Likewise.
	* config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
	* config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
	STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
	* config/m68k/m68k.md (FP_REG): New.

From-SVN: r123850
2007-04-15 15:54:36 +00:00
Kazu Hirata e3e093ecef m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit alignment on fido.
* config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
	alignment on fido.

From-SVN: r123848
2007-04-15 15:27:06 +00:00
Kazu Hirata 7fa7289d9a i386.c, [...]: Fix comment typos.
* config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
	tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
	comment typos.

From-SVN: r123847
2007-04-15 14:46:34 +00:00
Zdenek Dvorak 2732d76752 tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore cold loops.
* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
	cold loops.

From-SVN: r123843
2007-04-15 03:36:25 +00:00
Andrew Pinski aa24028daf re PR c/31520 (Latent bug in finish_decl causing an errorous "array subscript is above array bounds")
2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR c/31520
        * c-del.c (finish_decl): Grab the type of the decl after the call
        to store_init_value.
2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR C/31520
        * testsuite/gcc.dg/gnu89-init-4.c: New testcase.

From-SVN: r123835
2007-04-14 17:59:15 -07:00
Steven Bosscher 2ca2b6071b * common.opt (fforward-propagate): Fix "Optimization" annotation.
From-SVN: r123830
2007-04-14 22:38:16 +00:00
Jakub Jelinek b1483e87c9 re PR c++/25874 ([gomp] ICE in calc_dfs_tree())
PR c++/25874
	* omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
	post dominators and cleanup cfg before returning.

	* gcc.dg/gomp/pr25874.c: Add dg-options.
	* g++.dg/gomp/pr25874.C: Add dg-options.

From-SVN: r123822
2007-04-14 20:52:45 +02:00
Bernd Schmidt 4d4f2837c5 bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
* config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
	* config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.

From-SVN: r123813
2007-04-14 10:50:45 +00:00
Kazu Hirata 7d33c31d9a config.gcc: Recognize fido.
gcc/
	* config.gcc: Recognize fido.
	* config/m68k/m68k-devices.def (fidoa): New.
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
	__mfido__.
	(FL_FIDOA, TARGET_FIDOA): New.
	* config/m68k/m68k.opt (mfidoa): New.

libgcc/
	* config.host: Recognize fido.

From-SVN: r123811
2007-04-14 02:15:45 +00:00
John David Anglin 2a6acff7f9 re PR middle-end/31322 (ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).)
PR middle-end/31322
	* dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
	when a personality function is used.

From-SVN: r123806
2007-04-14 00:17:41 +00:00
Bob Wilson ec3643e8c4 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
From-SVN: r123797
2007-04-13 20:35:50 +00:00
Mike Stump c40ce8f320 darwin-c.c (handle_c_option): Handle -fapple-kext here so we can...
* config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
	we can...
	* config/darwin.opt (fapple-kext): Make C++ only.
	* config/darwin.c (darwin_override_options): Remove code to ensure
	-fapple-kext is given for C++ only.

From-SVN: r123792
2007-04-13 17:29:27 +00:00
Richard Sandiford d1138d8e5e vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
gcc/
	* config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
	* config/mips/mips.c (override_options): Call
	SUBTARGET_OVERRIDE_OPTIONS, if defined.

From-SVN: r123788
2007-04-13 13:48:08 +00:00
H.J. Lu c33104d6c9 i386.opt (msvr3-shlib): Removed.
2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.opt (msvr3-shlib): Removed.

	* doc/invoke.texi: Remove -msvr3-shlib.

From-SVN: r123787
2007-04-13 06:29:45 -07:00
H.J. Lu b194a08cd4 i386.opt (mpopcnt): Replace "popcount" instruction with "popcnt" instruction.
2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
	with "popcnt" instruction.

From-SVN: r123786
2007-04-13 06:28:39 -07:00
Richard Guenther 9bb6aa4304 re PR tree-optimization/21258 (Teach VRP to pick up a constant from case label.)
2007-04-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/21258
	* tree-vrp.c (compare_case_labels): New helper.
	(find_switch_asserts): New function.
	(find_assert_locations): Call it for SWITCH_EXPRs.

	* gcc.dg/tree-ssa/vrp34.c: New testcase.

From-SVN: r123778
2007-04-13 09:21:22 +00:00
Uros Bizjak 27ac40e2a0 i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
* config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
        * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
        check is now implied in X87_FLOAT_MODE_P.
        (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
        (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
        (fix_trunc<mode>_i386_fisttp): Ditto.
        (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
        (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
        (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
        (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
        (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
        (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
        (unnamed_splitters): Ditto.
        * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
        for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
        FIRST_SSE_REG for local functions when SSE math is enabled or
        for functions with sseregparm attribute.
        (standard_80387_constant_p): Return -1 if mode is not
        X87_FLOAT_MODE_P.
        (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
        (ix86_expand_compare): Ditto.
        (ix86_expand_carry_flag_compare): Ditto.
        (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
        of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
        DECIMAL_FLOAT_MODE_P.
        (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
        of SCALAR_FLOAT_MODE_P.
        (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
        [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
        checks before FLOAT_MODE_P.
        [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
        before FLOAT_MODE_P.
        [DIV]: Ditto.
        [NEG]: Ditto.
        [ABS]: Ditto.
        [SQRT]: Ditto.
        [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.

From-SVN: r123777
2007-04-13 10:14:57 +02:00
Paolo Bonzini be0fe523e7 Makefile.in (stamp-as, [...]): Remove.
2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
            Charles Wilson  <libtool@cwilson.fastmail.fm>

	* Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
	(libgcc.mvars): Don't depend on them.
	* configure.ac (as, collect-ld, nm): Create from exec-tool.in.
	* exec-tool.in: New.


Co-Authored-By: Charles Wilson <libtool@cwilson.fastmail.fm>

From-SVN: r123775
2007-04-13 07:04:39 +00:00
Brooks Moses 06a9756916 * doc/invoke.text (--help): Document --help=common.
From-SVN: r123769
2007-04-12 14:13:32 -07:00
Thomas Neumann 4557bf49fa stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>

	* stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.

From-SVN: r123764
2007-04-12 19:00:38 +00:00
Richard Sandiford 8cb6400cda Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
gcc/
	* Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
	* genemit.c (main): Emit #include "integrate.h".
	* config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
	(LOADGP_RTP): New mips_loadgp_style.
	* config/mips/mips.h: Include config/vxworks-dummy.h.
	(TARGET_RTP_PIC): New macro.
	(TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
	(TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
	for TARGET_RTP_PIC.
	* config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
	-mvxworks-pic when using -mrtp and a PIC option.
	* config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
	for RTP PIC.
	(mips_symbolic_constant_p, mips_symbolic_address_p)
	(mips_symbol_insns): Handle SYMBOL_HALF.
	(override_options): Warn about -G and -mrtp being used together.
	Initialize mips_lo_relocs[SYMBOL_HALF].
	(mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
	(mips_emit_loadgp): Handle LOADGP_RTP.
	(mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
	* config/mips/mips.md (loadgp_rtp): New insn and splitter.
	(tablejump): Handle function-relative case table entries if
	TARGET_RTP_PIC.
	* config/mips/predicates.md (symbol_ref_operand): New predicate.

From-SVN: r123757
2007-04-12 17:59:57 +00:00
Richard Sandiford f28d806256 mips.md (load_call<mode>): Allow any general register.
gcc/
	* config/mips/mips.md (load_call<mode>): Allow any general register.
	destination.
	(sibcall_value_internal, sibcall_value_multiple_internal)
	(call_value_internal, call_value_split, call_value_multiple_internal)
	(call_value_multiple_split): Remove constraints from operand 0.

From-SVN: r123756
2007-04-12 17:44:57 +00:00
Richard Sandiford dc7750b1a9 mips-protos.h: In comments, refer to loadgp_absolute rather than loadgp_noshared.
gcc/
	* config/mips/mips-protos.h: In comments, refer to loadgp_absolute
	rather than loadgp_noshared.
	* config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
	instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
	gen_loadgp.
	* config/mips/mips.md (loadgp): Rename to...
	(loadgp_newabi): ...this.
	(loadgp_noshared): Rename to...
	(loadgp_absolute): ...this.

From-SVN: r123755
2007-04-12 17:39:58 +00:00
Richard Sandiford 006257dc5b mips.c (mips_ok_for_lazy_binding_p): Always return false for locally-binding symbols.
gcc/
	* config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
	false for locally-binding symbols.
	(mips_dangerous_for_la25_p): Check mips_global_symbol_p.

From-SVN: r123754
2007-04-12 17:37:25 +00:00
Richard Sandiford 08e7ceb3d3 mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
gcc/
	* config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
	(SYMBOL_GOT_PAGE_OFST): ...this.
	(SYMBOL_GOT_GLOBAL): Rename to...
	(SYMBOL_GOT_DISP): ...this.
	(SYMBOL_GOTOFF_GLOBAL): Rename to...
	(SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
	* config/mips/mips.c (mips_global_symbol_p): New function.
	(mips_symbol_binds_local_p): Likewise.
	(mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
	and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use mips_global_symbol_p
	and mips_symbol_binds_local_p.
	(mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
	(override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
	SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
	SYMBOL_GOTOFF_DISP.
	(mips_ok_for_lazy_binding_p): New function.
	(mips_load_call_address, mips_expand_call): Use it.
	(mips_dangerous_for_la25_p): Likewise.
	* config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
	(*got_disp<mode>): Use got_disp_operand instead of
	global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
	SYMBOL_GOTOFF_GLOBAL.
	(*got_page<mode>): Use got_page_ofst_operand instead of
	local_got_operand.
	* config/mips/predicates.md (const_call_insn_operand): Use
	SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
	(global_got_operand): Rename to...
	(got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
	SYMBOL_GOT_GLOBAL.
	(local_got_operand): Rename to...
	(got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
	of SYMBOL_GOT_LOCAL.

From-SVN: r123752
2007-04-12 17:26:45 +00:00
Richard Sandiford 14976818e7 mips.h (TARGET_SPLIT_CALLS): Check TARGET_CALL_CLOBBERED_GP.
gcc/
	* config/mips/mips.h (TARGET_SPLIT_CALLS): Check
	TARGET_CALL_CLOBBERED_GP.
	(TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
	(TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
	(TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
	(STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
	of TARGET_ABICALLS && !TARGET_NEWABI.
	(MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
	* config/mips/mips.c (mips_load_call_address): Check
	TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
	(mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
	Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
	(mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
	TARGET_ABICALLS && TARGET_NEWABI.
	(mips_current_loadgp_style): Check TARGET_USE_GOT instead of
	TARGET_ABICALLS.
	(mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
	(mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
	TARGET_ABICALLS && TARGET_NEWABI.
	(mips_output_mi_thunk): Check TARGET_USE_GOT instead of
	TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
	TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
	whether indirect calls must use $25.
	(mips_extra_live_on_entry): Check TARGET_GOT instead of
	TARGET_ABICALLS.
	* config/mips/mips.md (jal_macro): Check flag_pic and
	TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
	(builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
	instead of TARGET_ABICALLS.
	(exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
	TARGET_ABICALLS && TARGET_OLDABI.
	(load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
	(sibcall): In the comment above the define_insn, mention
	TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
	* config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
	instead of TARGET_ABICALLS.

From-SVN: r123751
2007-04-12 17:10:56 +00:00
Bernd Schmidt 2d3649b23f bfin.md (movhi_low2high, [...]): Delete, merge functionality into...
* config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
	movhi_high2low): Delete, merge functionality into...
	(packv2hi): ... this pattern.

From-SVN: r123749
2007-04-12 15:22:06 +00:00
Bernd Schmidt 3fbee523e2 lib1funcs.asm (___umulsi3_highpart, [...]): Use a more efficient implementation.
* config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
	Use a more efficient implementation.
	* config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
	inline sequences when not optimizing for size.

From-SVN: r123748
2007-04-12 13:39:35 +00:00
Bernd Schmidt 9d3f9aa3a5 bfin.opt (msim): New option.
2007-02-11  Jie Zhang  <jie.zhang@analog.com>
	* config/bfin/bfin.opt (msim): New option.
	(mcpu=): New option.
	* config/bfin/bfin-protos.h (enum bfin_cpu): New.
	(bfin_cpu_t): Typedef of enum bfin_cpu.
	(bfin_cpu_type): New declaration.
	* config/bfin/elf.h (STARTFILE_SPEC): Add support for
	-msim and -mcpu= options.
	(LIB_SPEC): Likewise.
	* config/bfin/bfin.c (bfin_cpu_type): Define.
	(bfin_handle_option): Handle -mcpu= option.
	* config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
	(TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
	__ADSPBF533__ or __ADSPBF537__ according to the cpu type.

From-SVN: r123747
2007-04-12 13:21:01 +00:00
Bernd Schmidt 3efd5670ca md.texi (Blackfin family constraints): Document PA and PB.
* doc/md.texi (Blackfin family constraints): Document PA and PB.
	* config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
	(MACFLAGS_MATCH_P): New macro.
	* config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
	(bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
	* config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
	the other MACFLAG constants.
	(sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
	(flag_machi): Tighten constraints.  Renumber some of the operands.
	(flag_machi_acconly): Tighten constraints.  Correct operand numbers in
	output template.
	(flag_machi_parts_acconly): New pattern.
	(flag_macinithi): Tighten constraints.  Allow any accumulator to be
	used.
	(flag_macinit1hi): Tighten constraints.
	(flag_mul_macv2hi_parts_acconly): New pattern.

From-SVN: r123745
2007-04-12 13:03:17 +00:00
Richard Sandiford f4de8ba686 config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
gcc/
	* config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
	(arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
	(powerpc-wrs-vxworksae): Use ${tm_file}.
	(i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
	after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
	* config/i386/vx-common.h: New file.

From-SVN: r123744
2007-04-12 12:47:05 +00:00
Richard Sandiford b83b15dae3 vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead of crt0.o%s.
gcc/
	* config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
	of crt0.o%s.

From-SVN: r123743
2007-04-12 12:44:31 +00:00
Andreas Krebbel bf259a7704 s390.md ("trunctddd2"): Use TDmode for the target of ldxtr.
2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
	ldxtr.

From-SVN: r123741
2007-04-12 12:07:24 +00:00
Douglas Gregor 9576481824 re PR c++/31078 (warning: same canonical type node for different types with const strings)
2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/31078
	PR c++/31103
	* c-common.c (c_build_qualified_type): Set canonical type
	appropriately.  

2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/31078
	* g++.dg/other/pr31078.C: New.

From-SVN: r123740
2007-04-12 11:47:56 +00:00
Richard Guenther a670437d92 tree-pretty-print.c (dump_generic_node): Print ARRAY_REF lower bound and element size if...
2007-04-12  Richard Guenther  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
	lower bound and element size if lower bound is not zero
	or either of the ARRAY_REF operands is set.

From-SVN: r123738
2007-04-12 09:25:04 +00:00
Richard Guenther 5852948c5b re PR tree-optimization/24689 (operand_equal_p does not return true for some equivalent ARRAY_REF)
2007-04-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/24689
	PR tree-optimization/31307
	* fold-const.c (operand_equal_p): Compare INTEGER_CST array
	indices by value.
	* gimplify.c (canonicalize_addr_expr): To be consistent with
	gimplify_compound_lval only set operands two and three of
	ARRAY_REFs if they are not gimple_min_invariant.  This makes
	it never at this place.
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.

	* g++.dg/tree-ssa/pr31307.C: New testcase.
	* gcc.dg/tree-ssa/pr24689.c: Likewise.

From-SVN: r123736
2007-04-12 09:15:53 +00:00
John David Anglin 8c5e065b53 pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not null before emitting a .nsubspa directive.
* pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
	null before emitting a .nsubspa directive.

From-SVN: r123733
2007-04-12 00:46:13 +00:00
Diego Novillo 0de107cf67 tree-ssa-alias.c (dump_mem_ref_stats): Do not call need_to_partition_p if there are no memory statements in the function.
* tree-ssa-alias.c (dump_mem_ref_stats): Do not call
	need_to_partition_p if there are no memory statements in the
	function.

From-SVN: r123732
2007-04-11 19:46:43 -04:00
Zdenek Dvorak 55a700ac1f tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
* tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
	(gcd_of_steps_may_divide_p): New function.
	(analyze_miv_subscript): Use gcd_of_steps_may_divide_p.

From-SVN: r123731
2007-04-11 23:18:58 +00:00
Bernd Schmidt 0f4b25a3e3 reload.c (find_reloads_toplev, [...]): Use rtx_equal_p...
* reload.c (find_reloads_toplev, find_reloads_address,
	find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
	not a pointer equality test, to decide if we need to call
	push_reg_equiv_alt_mem.

From-SVN: r123724
2007-04-11 19:44:07 +00:00
Sebastian Pop 1baf2906ef tree-data-ref.c (affine_function_zero_p, [...]): New.
* tree-data-ref.c (affine_function_zero_p, constant_access_functions,
	insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
	(build_classic_dist_vector): Call add_distance_for_zero_overlaps.

From-SVN: r123721
2007-04-11 17:10:23 +00:00
Zdenek Dvorak 0ca2faee4f tree-data-ref.c (add_multivariate_self_dist): Force the distance vector to be positive.
* tree-data-ref.c (add_multivariate_self_dist): Force the distance
	vector to be positive.

From-SVN: r123720
2007-04-11 16:45:47 +00:00
Diego Novillo e9e0aa2c96 re PR tree-optimization/30735 (50% slow down due to mem-ssa merge)
PR 30735
	PR 31090
	* doc/invoke.texi: Document --params max-aliased-vops and
	avg-aliased-vops.
	* tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
	debug_memory_partitions): Move to tree-flow.h
	* params.h (AVG_ALIASED_VOPS): Define.
	* tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
	users.
	(mp_info_t): Likewise.
	(get_mem_sym_stats_for): New.
	(set_memory_partition): Move from tree-flow-inline.h.
	(mark_non_addressable): Only clear the set of symbols for the
	partition if it exists.
	(dump_memory_partitions): Move from tree-ssa-operands.c
	(debug_memory_partitions): Likewise.
	(need_to_partition_p): New.
	(dump_mem_ref_stats): New.
	(debug_mem_ref_stats): New.
	(dump_mem_sym_stats): New.
	(debug_mem_sym_stats): New.
	(update_mem_sym_stats_from_stmt): New.
	(compare_mp_info_entries): New.
	(mp_info_cmp): Call it.
	(sort_mp_info): Change argument to a list of mem_sym_stats_t
	objects.
	(get_mpt_for): Move from tree-ssa-operands.c.
	(find_partition_for): New.
	(create_partition_for): Remove.
	(estimate_vop_reduction): New.
	(update_reference_counts): New.
	(build_mp_info): New.
	(compute_memory_partitions): Refactor.
	Document new heuristic.
	Call build_mp_info, update_reference_counts,
	find_partition_for and estimate_vop_reduction.
	(compute_may_aliases): Populate virtual operands before
	calling debugging dumps.
	(delete_mem_sym_stats): New.
	(delete_mem_ref_stats): New.
	(init_mem_ref_stats): New.
	(init_alias_info): Call it.
	(maybe_create_global_var): Remove alias_info argument.
	Get number of call sites and number of pure/const call sites
	from gimple_mem_ref_stats().
	(dump_alias_info): Call dump_memory_partitions first.
	(dump_points_to_info_for): Show how many times a pointer has
	been dereferenced.
	* opts.c (decode_options): For -O2 set --param
	max-aliased-vops to 500.
	For -O3 set --param max-aliased-vops to 1000 and --param
	avg-aliased-vops to 3.
	* fortran/options.c (gfc_init_options): Remove assignment to
	MAX_ALIASED_VOPS.
	* tree-flow-inline.h (gimple_mem_ref_stats): New.
	* tree-dfa.c (dump_variable): Dump memory reference
	statistics.
	Dump NO_ALIAS* settings.
	(referenced_var_lookup): Tidy.
	(mem_sym_stats): New.
	* tree-ssa-copy.c (may_propagate_copy): Return true if DEST
	and ORIG are different SSA names for a memory partition.
	* tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
	* tree-flow.h (struct mem_sym_stats_d): Define.
	(mem_sym_stats_t): Define.
	(struct mem_ref_stats_d): Define.
	(struct gimple_df): Add field mem_ref_stats.
	(enum noalias_state): Define.
	(struct var_ann_d): Add bitfield noalias_state.
	(mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
	debug_mem_ref_stats, debug_memory_partitions,
	debug_mem_sym_stats): Declare.
	* tree-ssa-structalias.c (update_alias_info): Update call
	sites, pure/const call sites and asm sites in structure
	returned by gimple_mem_ref_stats.
	Remove local variable IS_POTENTIAL_DEREF.
	Increase NUM_DEREFS if the memory expression is a potential
	dereference.
	Call update_mem_sym_stats_from_stmt.
	If the memory references memory, call
	update_mem_sym_stats_from_stmt for all the direct memory
	symbol references found.
	(intra_create_variable_infos): Set noalias_state field for
	pointer arguments according to the value of
	flag_argument_noalias.
	* tree-ssa-structalias.h (struct alias_info): Remove fields
	num_calls_found and num_pure_const_calls_found.
	(update_mem_sym_stats_from_stmt): Declare.
	* params.def (PARAM_MAX_ALIASED_VOPS): Change description.
	Set default value to 100.
	(PARAM_AVG_ALIASED_VOPS): Define.

From-SVN: r123719
2007-04-11 12:14:06 -04:00
Richard Guenther 4bf371ea7e re PR middle-end/31530 (Incorrect folding of multiplication and sign change when followed by an addition)
2007-04-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31530
	* simplify-rtx.c (simplify_binary_operation_1): Do not simplify
	a * -b + c as c - a * b if we honor sign dependent rounding.

From-SVN: r123715
2007-04-11 11:13:54 +00:00
Bernd Schmidt 266d11d862 bfin-protos.h (bfin_expand_movmem): Renamed from bfin_expand_strmov.
* config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
	bfin_expand_strmov.
	* config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
	bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
	variables.
	(initialize_trampoline): Don't use old-style function definition.
	(bfin_secondary_reload): Mark IN_P argument as unused.

From-SVN: r123714
2007-04-11 11:06:44 +00:00
Sebastian Pop e9793dae58 re PR tree-optimization/31343 (ICE in data-refs dependence testing)
PR tree-optimization/31343
	* tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
	(build_polynomial_chrec): Return a scalar when the evolution is zero.
	* testsuite/gcc.dg/vect/pr31343.c: New.

From-SVN: r123708
2007-04-11 00:09:35 +00:00
Eric Christopher 54a8809004 i386.h (X87_FLOAT_MODE_P): New.
2007-04-10  Eric Christopher  <echristo@apple.com>

	    * config/i386/i386.h (X87_FLOAT_MODE_P): New.
	    * config/i386/i386.md (*cmpfp0): Use.
	    (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
	    (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
	    (fix_trunc<mode>_i386_fisttp): Ditto.
	    (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
	    (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
	    (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
	    (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
	    (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
	    (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
	    (unnamed_splitters): Ditto.
	    * config/i386/i386.c (output_fix_trunc): Assert that
	    we're not being passed a TFmode operand.

From-SVN: r123700
2007-04-10 22:41:28 +00:00
Zdenek Dvorak 7c57be853d re PR tree-optimization/31526 (ICE in alloc_aux_for_block())
PR tree-optimization/31526
	* tree-inline.c (copy_cfg_body): Use last_basic_block instead of
	n_basic_blocks to find newly added blocks.

From-SVN: r123699
2007-04-10 21:10:26 +00:00
Uros Bizjak 0218c0120c i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm" alternative.
* config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
	alternative.
	(fix_trunc<mode>si_sse): Ditto.
	(*floatsisf2_mixed, *floatsisf2_sse): Ditto.
	(*floatsidf2_mixed, *floatsidf2_sse): Ditto.
	(*floatdisf2_mixed, *floatdisf2_sse): Ditto.
	(*floatdidf2_mixed, *floatdidf2_sse): Ditto.
	(floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
	expander using SSEMODEF mode macro.
	(floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
	expander using SSEMODEF mode macro.
	(*floathi<mode>2_i387): Rename from *floathisf2_i387 and
	*floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
	(*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
	*floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
	(*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
	*floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
	(float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
	Macroize insn using X87MODEF mode macro.

From-SVN: r123693
2007-04-10 13:41:01 +02:00
H.J. Lu 3117d1b509 sse.md (sse2_pinsrw): Removed.
2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (sse2_pinsrw): Removed.
	(sse2_pextrw): Renamed to ...
	(*sse2_pextrw): This.

From-SVN: r123689
2007-04-09 18:58:03 -07:00
Jan Hubicka c141e4992b re PR target/27869 ("-O -fregmove" handles SSE scalar instructions incorrectly)
PR target/27869
	* config/i386/sse.md
	(sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
	(sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
	(sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
	(sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.

From-SVN: r123682
2007-04-09 23:06:16 +00:00
Jan Hubicka 6e6e19cbf5 foldaddr-3.c: New file.
* gcc.dg/tree-ssa/foldaddr-3.c: New file.

	* tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
	multiple fields of union.

From-SVN: r123674
2007-04-09 17:00:10 +00:00
Zdenek Dvorak c7b852c8a6 cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
* cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
	(create_preheaders): Check that loops are available.
	(fix_loop_structure): Clean up, improve comments.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
	Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
	state flags.
	* tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
	* predict.c (tree_estimate_probability): Do not call
	calculate_dominance_info.  Call create_preheaders.
	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
	rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
	flags.
	* cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
	* cfgloop.h (LOOP_CLOSED_SSA): New constant.
	* tree-cfg.c (tree_split_edge): Make an assert more precise.
	* tree-ssa-threadedge.c (thread_across_edge): Comment the function
	arguments.

From-SVN: r123670
2007-04-09 06:51:43 +00:00
Jan Hubicka c586d32a1e tree.h (maybe_fold_offset_to_component_ref): Declare.
* tree.h (maybe_fold_offset_to_component_ref): Declare.
	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
	* fold-const.c (fold_unary): Use it.

	* gcc.dg/tree-ssa/foldaddr-2.c: New file.

From-SVN: r123664
2007-04-08 22:12:21 +00:00
Andrew Pinski 136cdb2250 varasm.c (assemble_variable): Remove call to lang_hooks.decls.prepare_assemble_variable.
2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * varasm.c (assemble_variable): Remove call to
        lang_hooks.decls.prepare_assemble_variable.
        * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
        (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
        * langhooks.h (lang_hooks_for_decls): Remove
        prepare_assemble_variable.

From-SVN: r123663
2007-04-08 12:30:06 -07:00
Mike Stump 77c1632f35 * config/i386/i386.c: Use inc/dec on Core2.
From-SVN: r123662
2007-04-08 16:30:23 +00:00
Steven Bosscher cb9c159dc0 langhooks.c (lhd_tree_inlining_add_pending_fn_decls, [...]): Remove.
* langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
	lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
	lhd_tree_inlining_end_inlining): Remove.
	* langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
	add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
	end_inlining hooks.
	* langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
	lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
	lhd_tree_inlining_end_inlining): Remove prototypes.
	(LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
	LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
	LANG_HOOKS_TREE_INLINING_START_INLINING,
	LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.

	* c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
	not set it.

cp/
	* cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS):
	Do not set it.
	(LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do not set it.
	* tree.c (cp_add_pending_fn_decls): Remove.
	* cp-tree.h (cp_add_pending_fn_decls): Remove prototype.

From-SVN: r123658
2007-04-08 13:14:39 +00:00
Anatoly Sokolov d8a1f0fb64 re PR target/29932 (avr-gcc wrongly optimizes bit sets/resets for IO register 0x20)
PR target/29932
	* config/avr/predicates.md (io_address_operand): Delete predicate.
	(low_io_address_operand): Don't use 'mode' argument.
	(higth_io_address_operand): Rename ...
	(high_io_address_operand): ... to this. Don't use 'mode' argument.
	* config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
	for above change.

From-SVN: r123657
2007-04-08 14:38:38 +04:00
Daniel Berlin 270c60bb5f 2007-04-07 Daniel Berlin <dberlin@dberlin.org>
Revert change removing staticp.

From-SVN: r123650
2007-04-07 23:08:23 +00:00
Anatoly Sokolov ee57a66148 re PR target/30289 (avr-gcc: builtin memset(): wrong code)
PR target/30289
	* config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as 
	earlyclobber.

From-SVN: r123647
2007-04-08 02:00:33 +04:00
Bruce Korb ca178f85a6 Separate NUL byte detection from rest of -Wformat warnings
From-SVN: r123640
2007-04-07 17:55:07 +00:00
H.J. Lu 594dc04813 i386.c (ix86_handle_option): Handle SSSE3.
2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_handle_option): Handle SSSE3.

From-SVN: r123639
2007-04-07 08:58:00 -07:00
Daniel Berlin 1df918ac8e in / 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
in /
2007-04-06  Daniel Berlin  <dberlin@dberlin.org>

	* tree.c (staticp): No longer use staticp langhook.
	* langhooks.c (lhd_staticp): Removed.
	* langhooks.h (struct lang_hooks): Remove staticp.
	* c-common.c (c_staticp): Remove.
	* c-common.h (c_staticp): Ditto.
	* langhooks-defs.h (lhd_staticp): Ditto.
	(LHD_HOOKS_STATICP): Ditto
	* tree.h (gcc_assert_lowered): New macro.

in cp/				       

2007-04-06  Daniel Berlin  <dberlin@dberlin.org>

	* cp-objcp-common.c (cxx_staticp): Remove.
	* cp-objcp-common.h (LANG_HOOKS_STATICP): Remove.
	* cp-tree.h (cxx_staticp):

From-SVN: r123636
2007-04-07 00:19:46 +00:00
Zdenek Dvorak ac84e05eb6 tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use argument "reliable".
* tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
	argument "reliable".
	(infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
	Add argument "reliable".  Propagate it through calls.
	(infer_loop_bounds_from_undefined):  Derive number of iterations
	estimates from references in blocks that do not dominate loop latch.
	(gcov_type_to_double_int): New function.
	(estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
	and expected_loop_iterations_unbounded.
	* cfgloopanal.c (expected_loop_iterations_unbounded): New function.
	(expected_loop_iterations): Use expected_loop_iterations_unbounded.
	* tree-data-ref.c (estimated_loop_iterations): Export.
	(get_references_in_stmt): Fix -- do not return addresses of local
	objects.
	* cfgloop.h (expected_loop_iterations_unbounded,
	estimated_loop_iterations): Declare.

From-SVN: r123630
2007-04-06 23:11:15 +00:00
H.J. Lu 64199a9eed Remove ">>>>>>> .r123627".
From-SVN: r123629
2007-04-06 14:24:17 -07:00
Andreas Tobler 4de5c5d3bf tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>

        * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.

From-SVN: r123628
2007-04-06 22:55:24 +02:00
Uros Bizjak a344e3cbb6 i386.md (extend<mode>xf2): Rename from extendsfxf2 and extenddfxf2.
* config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
        and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
        (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
        Use output_387_reg_move().
        (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
        expander using X87MODEF12 mode macro.
        (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
        choosing register preferences.  Use output_387_reg_move().
        (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
        instead of "x".  Use output_387_reg_move().
        (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
        *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
        (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
        *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
        Use output_387_reg_move().
        (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
        mode macro.
        (*truncxf?f_i387 splitter): Ditto.

From-SVN: r123626
2007-04-06 22:14:12 +02:00
Daniel Berlin 9c269bf8e5 langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_SAFE_FROM_P.
2007-04-06  Daniel Berlin  <dberlin@dberlin.org>

	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
	LANG_HOOKS_SAFE_FROM_P.
	* expr.c (safe_from_p): Remove langhook call.
	* langhooks.h (lang_hooks): Remove safe_from_p.
	(lhd_safe_from_p): Remove prototype.
	* langhooks.c (lhd_safe_from_p): Remove.

From-SVN: r123624
2007-04-06 16:51:18 +00:00
Jan Hubicka b521dcbee1 cgraphunit.c (decide_is_function_needed): Do not keep always_inline functions.
* cgraphunit.c (decide_is_function_needed): Do not keep always_inline
	functions.

From-SVN: r123614
2007-04-06 12:56:50 +00:00
Uros Bizjak d869c35152 i386.c (output_387_reg_move): Handle memory operand[0].
* config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
	* config/i386/i386.md (*movsf_1, *movdf_nointeger,
	*movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
	*movxf_integer): Use output_387_reg_move() for x87 reg->mem
	alternative.
	(*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
	*extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.

From-SVN: r123613
2007-04-06 12:59:53 +02:00
Richard Henderson e4bec63824 alpha.c (print_operand): Remove.
* config/alpha/alpha.c (print_operand) [+]: Remove.
        (alpha_end_function): Print nop if call at end of function.
        * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
        * config/alpha/alpha.md (UNSPEC_LDGP1): New.
        (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
        (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
        (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
        the call pattern. Update peepholes to match.

From-SVN: r123529
2007-04-05 15:39:56 -07:00
Janis Johnson 44aea9acab extend.texi (Other Builtins): Add decimal float variants of signbit.
* doc/extend.texi (Other Builtins): Add decimal float variants
	of signbit.
	* builtins.def: Ditto.
	* builtins.c (expand_builtin): Ditto.
testsuite/
	* gcc.dg/dfp/signbit-1.c
	* gcc.dg/dfp/signbit-2.c
M    gcc/doc/extend.texi
M    gcc/builtins.c
M    gcc/ChangeLog
A    gcc/testsuite/gcc.dg/dfp/signbit-2.c
A    gcc/testsuite/gcc.dg/dfp/signbit-1.c
M    gcc/testsuite/ChangeLog
M    gcc/builtins.def

From-SVN: r123528
2007-04-05 22:10:28 +00:00
Uros Bizjak 27120a5993 re PR target/31478 (Typos in sse2_umulv2siv2di3, sse2_pmaddwd, sdot_prodv8hi)
2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31478
	* config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
	of V8HImode when calling ix86_binary_operator_ok.
	(sse2_pmaddwd): Call ix86_binary_operator_ok.
	(sdot_prodv8hi): Operands 1 and 2 must be register.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>

From-SVN: r123527
2007-04-05 14:16:37 -07:00
Alexandre Oliva fa574e5154 tree-sra.c (try_instantiate_multiple_fields): Needlessly initialize align to silence bogus warning.
* tree-sra.c (try_instantiate_multiple_fields): Needlessly
initialize align to silence bogus warning.

From-SVN: r123526
2007-04-05 21:10:26 +00:00
Alexandre Oliva dc808df68a re PR middle-end/22156 (bit-field copying regressed)
PR middle-end/22156
* tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
all_no_warning.
(struct sra_walk_fns): Remove use_all parameter from use.
(sra_hash_tree): Handle BIT_FIELD_REFs.
(sra_elt_hash): Don't hash bitfld blocks.
(sra_elt_eq): Skip them in parent compares as well.  Handle
BIT_FIELD_REFs.
(sra_walk_expr): Don't maintain or pass down use_all_p.
(scan_use): Remove use_all parameter.
(scalarize_use): Likewise.  Re-expand assignment to
BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
output, and re-scalarize after output.  Don't mark anything
for no warning.
(scalarize_ldst): Adjust.
(scalarize_walk_gimple_modify_statement): Likewise.
(build_element_name_1): Handle BIT_FIELD_REFs.
(instantiate_element): Don't warn for any element whose parent
is used as a whole.
(instantiate_missing_elements_1): Return the sra_elt.
(canon_type_for_field): New.
(try_instantiate_multiple_fields): New.
(instantiate_missing_elemnts): Use them.
(mark_no_warning): Removed.
(generate_one_element_ref): Handle BIT_FIELD_REFs.
(REPLDUP, sra_build_elt_assignment): New.
(generate_copy_inout): Use them.
(generate_element_copy): Likewise.  Handle bitfld differences.
(generate_element_zero): Don't recurse for blocks.  Use
sra_build_elt_assignment.
(generate_one_element_int): Take elt instead of var.  Use
sra_build_elt_assignment.
(generate_element_init_1): Adjust.
(scalarize_use, scalarize_copy): Use REPLDUP.
(scalarize_ldst): Move assert before dereference.
(dump_sra_elt_name): Handle BIT_FIELD_REFs.

From-SVN: r123524
2007-04-05 18:50:34 +00:00
Steven Bosscher 21f7aaa496 * regmove.c: Fix unused variable warnings due to previous commit.
From-SVN: r123523
2007-04-05 17:57:13 +00:00
Steven Bosscher a78f3e715c regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
* regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
	(regmove_bb_head): Remove.
	(copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
	(regmove_optimize): Don't do unnecessary CFG fixes for non-existing
	problems with fixup_match_1.
	Don't initialize/free regmove_bb_head.

	(reg_is_remote_constant_p): If an insn is in the same basic block
	but not before INSN, consider it remote, too.

From-SVN: r123522
2007-04-05 16:52:26 +00:00
Anatoly Sokolov f9ca0dee6d re PR target/25448 (Unfounded warnings from the AVR backend)
PR target/25448
	* config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
	DECL_ASSEMBLER_NAME, not the DECL_NAME.

From-SVN: r123519
2007-04-05 19:43:35 +04:00
H.J. Lu 7706ca5daa i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
	(CONDITIONAL_REGISTER_USAGE): Likewise.

From-SVN: r123516
2007-04-05 06:17:13 -07:00
Richard Henderson 51a6c5b351 * config/alpha/lib1funcs.asm: Remove unused file.
From-SVN: r123510
2007-04-04 16:34:03 -07:00
Martin Michlmayr 59af43910d typo fix
From-SVN: r123500
2007-04-04 18:29:20 +00:00
Brooks Moses b5456e04b4 re PR other/31356 (gcc --help=<language> option has problems in the output header line.)
PR other/31356
* gcc.c (print_specific_help): Fix --help=<language>
header line.
(common_handle_option): Support --help=common.

From-SVN: r123499
2007-04-04 11:17:30 -07:00
Brooks Moses 2c4c82dde6 re PR driver/31353 (gcc --help=target gives a linker error.)
PR other/31353
* gcc.c (main): Do not run the linker if
print_subprocess_help indicates that it shouldn't be
run.

From-SVN: r123498
2007-04-04 11:10:17 -07:00
Brooks Moses 5bb43e6d24 PRR doc/31355
PRR doc/31355
* doc/invoke.texi (--help=): Document <languages> value, fix
formatting in tables of values.

From-SVN: r123497
2007-04-04 11:09:06 -07:00
Danny Smith 6acd883864 winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore dllimport attribute of virtual methods.
gcc
	* config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
	dllimport attribute of virtual methods.

gcc/cp
	* class.c (check_for_override): Don't remove dllmport attribute of
	virtual methods.

gcc/testsuite

	* g++.dg/ext/dllimport12.C: Update comments

From-SVN: r123492
2007-04-04 08:00:56 +00:00
Chen Liqin c668146359 crti.asm: Change _bss_start to __bss_start.
2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>

        * config/score/crti.asm: Change _bss_start to __bss_start.
        * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
        (OUTGOING_REG_PARM_STACK_SPACE) update.
        * config/score/score.opt: add options to make backend support
        score5, score5u, score7 and score7d.
        * config/score/score.md: Likewise.
        * config/score/misc.md: Likewise.
        * config/score/mac.md: Likewise.
        * doc/invoke.texi: Likewise.
        * doc/md.texi: update constraints define.

From-SVN: r123490
2007-04-04 01:49:10 +00:00
Richard Henderson fdd84500ae expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield an appropriate type...
* expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
        an appropriate type, use the mode instead.

From-SVN: r123477
2007-04-03 08:50:42 -07:00
Uros Bizjak 81e864cb18 re PR target/31175 (isinf incorrectly expanded)
PR target/31175
       * config/i386/i386.md (isinf<mode>2): Expand only when
       TARGET_C99_FUNCTIONS is set.

From-SVN: r123465
2007-04-03 12:20:53 +02:00
Richard Sandiford 9200d6c868 config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
gcc/
	* config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
	Set the default --with-arch setting to mips2.
	* config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
	(MULTILIB_EXCEPTIONS): Redefine with new multilibs.
	(MULTILIB_OSDIRNAMES): Delete.
	(MULTILIB_DIRNAMES): Define.
	* config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
	(LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
	(TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
	definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
	VXWORKS_OS_CPP_BUILTINS.
	(SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
	(MIPS_DEBUGGING_INFO): Undefine.
	(FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.

From-SVN: r123459
2007-04-03 09:17:56 +00:00
Jakub Jelinek 0a9430a831 re PR middle-end/30704 (Incorrect constant generation for long long)
PR middle-end/30704
	* fold-const.c (native_encode_real): Encode real.c provided longs
	as a series of 32-bit native integers.
	(native_interpret_real): Interpret buffer as a series of 32-bit
	native integers.

	* gcc.c-torture/execute/ieee/pr30704.c: New test.

From-SVN: r123455
2007-04-03 11:05:38 +02:00
Richard Guenther 5be527d081 genpreds.c (write_insn_constraint_len): Write function optimized for CONSTRAINT_LEN implementation.
2007-04-03  Richard Guenther  <rguenther@suse.de>

	* genpreds.c (write_insn_constraint_len): Write function
	optimized for CONSTRAINT_LEN implementation.
	(write_tm_preds_h): Output insn_constraint_len inline and
	use it for CONSTRAINT_LEN.
	(write_insn_preds_c): Don't output insn_constraint_len.
	* doc/md.texi (define_register_constraint): Document multi-letter
	constraints shall have the same length if they start with the same
	letter.

From-SVN: r123451
2007-04-03 08:31:27 +00:00
Uros Bizjak 577565f934 config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
* config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
	(x86_64-*-linux*): Ditto.
	* config/i386/i386.opt (mpc): New option.
	* config/i386/i386.c (overrride_options): Handle
	ix87_precision_string.
	* config/i386/crtprec.c: New file.
	* config/i386/t-crtpc: Ditto.
	* config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
	and -mpc80 options.
	* config/i386/linux64.h (ENDFILE_SPEC): Ditto.
	* config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
	crtprec32.o, crtprec64.o and crtprec80.o.

	* doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
	and -mpc80 options.
	(i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.

libgcc/ChangeLog:

	* config/i386/t-crtpc: New file.
	* config.host (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
        (x86_64-*-linux*): Ditto.

From-SVN: r123450
2007-04-03 09:37:56 +02:00
Eric Christopher cb7ad97b41 invoke.texi (i386 and x86-64 Options): Document -m64 limitations on darwin.
2007-04-02  Eric Christopher  <echristo@apple.com>

	    * doc/invoke.texi (i386 and x86-64 Options): Document -m64
	    limitations on darwin.

From-SVN: r123446
2007-04-03 01:03:36 +00:00
Anatoly Sokolov c8bbabf282 re PR target/31137 (missing "break" in switch for MULT in avr_rtx_costs)
PR target/31137
	* config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.

From-SVN: r123437
2007-04-03 01:43:53 +04:00
Dave Korn ae65d51219 ChangeLog: Fixed trivial whitespace formatting error.
* ChangeLog: Fixed trivial whitespace formatting error.

From-SVN: r123420
2007-04-02 08:27:37 +00:00
Dave Korn f71e957e40 tm.texi (FUNCTION_MODE): Update and extend documentation.
2007-04-02  Dave Korn  <dave.korn@artimi.com>

	* doc/tm.texi (FUNCTION_MODE):  Update and extend documentation.

From-SVN: r123419
2007-04-02 08:16:44 +00:00
Dave Korn c82476bfff libgcc2.h (exception_descriptor): Don't forward-declare.
2007-04-02  Dave Korn  <dave.korn@artimi.com>

	* libgcc2.h (exception_descriptor):  Don't forward-declare.
	(__get_eh_table_language, __get_eh_table_version):  Delete
	prototypes of long-dead functions.

From-SVN: r123418
2007-04-02 08:09:09 +00:00
Daniel Berlin 53a853de22 ebitmap.h: New file
2007-04-01  Daniel Berlin  <dberlin@dberlin.org>

	* ebitmap.h: New file
	* ebitmap.c: New file
	* Makefile.in (ebitmap.o): New target.

From-SVN: r123415
2007-04-02 03:44:25 +00:00
Jan Hubicka 26cb39935f emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit before very first instruction.
* emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
	before very first instruction.

	* ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
	waring on 64bit hosts.
	* bitmap.h: Fix typo in bitmap_head_def.

From-SVN: r123408
2007-04-01 19:48:01 +00:00
Steven Bosscher 5b52976bb8 re PR rtl-optimization/31391 (undefined label with -O -g due to cfglayout)
PR rtl-optimization/31391
	* cfgcleanup.c (try_optimize_cfg): If a removed label is turned
	into a DELETED_LABEL note, and the label is in an empty basic
	block, update BB_END as well as BB_HEAD.

From-SVN: r123406
2007-04-01 18:26:00 +00:00
Richard Henderson af33044f05 re PR tree-optimization/31169 (Bootstrap comparison error at revision 122821)
PR tree-optimization/31169 
        * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
        to varying if the range is outside [0,  prec-1].

From-SVN: r123405
2007-04-01 11:17:38 -07:00
Richard Sandiford 1732457d7f re PR target/31388 (ICE building libiberty multilib for mips16 multilibs)
gcc/
	PR target/31388
	* config/mips/mips.md (load_const_gp): New insn.
	* config/mips/mips.c (mips_split_symbol): Avoid using or creating
	the MIPS16 GP pseudo register if no_new_pseudos.
	(mips16_gp_pseudo_reg): Use gen_load_const_gp.

From-SVN: r123398
2007-04-01 11:23:54 +00:00
Andrew Pinski ee05ef5682 re PR target/31364 (secureplt breaks bootstrap)
2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR target/31364
        * config/rs6000/rs6000.md (call): Convert to LR hard reg for
        secureplt.
        (call_value): Likewise.

From-SVN: r123390
2007-03-31 14:29:21 -07:00
Wolfgang Bangerth c9516c38e3 re PR rtl-optimization/14737 (Purge political statement from -ffast-math docs)
2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
            Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 14737
	* doc/invoke.texi: (optimization options): Reword description
	of -ffast-math. Document its primary purpose.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r123382
2007-03-31 15:22:51 +00:00
Richard Guenther 6be42dd4a2 omp-low.c (splay-tree.h): Include.
2007-03-31  Richard Guenther  <rguenther@suse.de>

	* omp-low.c (splay-tree.h): Include.
	(lookup_decl): Replace splay-tree usage by pointer-map.
	(maybe_lookup_decl): Likewise.
	(new_omp_context): Likewise.
	(delete_omp_context): Likewise.
	* gimplify.c (splay-tree.h): Include.
	* tree-inline.c (insert_decl_map): Replace splay-tree usage by
	pointer-map.
	(remap_ssa_name): Likewise.
	(remap_decl): Likewise.
	(remap_type_1): Likewise.
	(remap_type): Likewise.
	(copy_body_r): Likewise.
	(expand_call_inline): Likewise.
	(clone_body): Likewise.
	(copy_tree_r): Likewise.
	(remap_save_expr): Likewise.
	(unsave_r): Likewise.
	(unsave_expr_now): Likewise.
	(tree_function_versioning): Likewise.
	(build_duplicate_type): Likewise.
	* tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
	(struct copy_body_data): Replace splay-tree by pointer-map.
	* Makefile.in (TREE_INLINE_H): Depend on pointer-map.h, not $(SPLAY_TREE_H).
	(gimplify.o): Depend on $(SPLAY_TREE_H).
	(omp-low.p): Likewise.

	* optimize.c (maybe_clone_body): Replace splay-tree usage by
	pointer-map.

From-SVN: r123381
2007-03-31 14:07:29 +00:00
Anatoly Sokolov d54a92b5f6 predicates.md (even_register_operand, [...]): New predicates.
* config/avr/predicates.md (even_register_operand, 
	odd_register_operand): New predicates.
	* config/avr/avr.md (movw peephole2): New.
	(movw_r peephole2): New.

From-SVN: r123379
2007-03-31 13:03:10 +04:00
Rafael Avila de Espindola 47ecd38dbf typeck.c (java_signed_or_unsigned_type): Remove.
gcc/java/ChangeLog:
   * typeck.c (java_signed_or_unsigned_type): Remove.
   (java_signed_type): use get_signed_or_unsigned_type instead of
java_signed_or_unsigned_type.
   (java_unsigned_type): Ditto.
   * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
   * java-tree.h (java_signed_or_unsigned_type): Remove

gcc/Changelog:
   * tree.h(get_signed_or_unsigned_type): New
   * fold-const.c (operand_equal_for_comparison_p): Use
get_signed_or_unsigned_type instead of
lang_hooks.types.signed_or_unsigned_type.
   * expr.c (store_expr): Ditto.
   * langhooks.c (get_signed_or_unsigned_type): New.
     (lhd_signed_or_unsigned_type): New
   * langhooks.h (lhd_signed_or_unsigned_type): New.
   * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.

gcc/treelang/ChangeLog:
   * treetree.c (tree_lang_signed_or_unsigned_type): Remove.
   (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE) Remove.

gcc/ada/ChangeLog:
    * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
instead of gnat_signed_or_unsigned_type.
    * utils.c (gnat_signed_or_unsigned_type): Remove.
    * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
    * gigi.h (gnat_signed_or_unsigned_type): Remove

gcc/forrtan/trans-types.c:
   * trans-types.c (gfc_signed_or_unsigned_type): Remove.
     (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of
gfc_signed_or_unsigned_type.
     (gfc_signed_type): Ditto.
   * trans-types.h (gfc_signed_or_unsigned_type): Remove.
   * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.

From-SVN: r123373
2007-03-30 22:09:01 +00:00
Richard Henderson ccf8e764e9 cygming.h (DWARF2_DEBUGGING_INFO): Enable by default for 64-bit.
gcc/
	* config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
	default for 64-bit.
	(PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
	(TARGET_64BIT_MS_ABI): New.
	(DBX_REGISTER_NUMBER): Handle 64-bit.
	(SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
	(LONG_TYPE_SIZE): Force to 32.
	(REG_PARM_STACK_SPACE): New.
	(OUTGOING_REG_PARM_STACK_SPACE): New.
	(REGPARM_MAX, SSE_REGPARM_MAX): New.
	(HANDLE_PRAGMA_PUSH_POP_MACRO): New.
	(STACK_BOUNDARY): Use 128 for 64-bit.
	* config/i386/cygwin.asm: Use push/ret to preserve call stack.
	Add 64-bit implementation.
	* config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
	argument unused.
	* config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
	(override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
	Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
	for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
	(ix86_handle_cconv_attribute): Don't warn when ignoring if
	TARGET_64BIT_MS_ABI.
	(ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
	(ix86_pass_by_reference): Likewise.
	(ix86_function_value_regno_p): Likewise.
	(ix86_build_builtin_va_list): Likewise.
	(ix86_va_start, ix86_gimplify_va_arg): Likewise.
	(function_arg_advance_ms_64): New.
	(function_arg_advance): Call it.
	(function_arg_ms_64): New.
	(function_arg): Call it.
	(function_value_ms_64): New.
	(ix86_function_value_1): Call it.
	(return_in_memory_ms_64): New.
	(ix86_return_in_memory): Call it.
	(setup_incoming_varargs_ms_64): New.
	(ix86_setup_incoming_varargs): Call it.
	(ix86_expand_prologue): Handle 64-bit stack probing.
	(legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
	(output_pic_addr_const): Likewise.
	(x86_this_parameter): Likewise.
	(x86_output_mi_thunk): Likewise.
	(x86_function_profiler): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): New.
	* config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
	(TARGET_64BIT_MS_ABI): New.
	(CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
	* config/i386/i386.md (allocate_stack_worker): Remove.
	(allocate_stack_worker_32): Rename from allocate_stack_worker_1;
	describe the clobber of eax without a match_scratch.
	(allocate_stack_worker_postreload): Remove.
	(allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
	describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
	(allocate_stack_worker_rex64_postreload): Remove.
	(allocate_stack): Handle 64-bit.
	* config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
	* config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
	(EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
	(STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
	(STANDARD_STARTFILE_PREFIX_1): Likewise.
	* config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
	* config.build (x86_64-*-mingw*): New host.
	* config.host (x86_64-*-mingw*): New host.
	* config.gcc (x86_64-*-mingw*): New target.
	* gthr-win32.h (__gthread_key_create): Mark dtor unused.
libgcc/
	* config.host (x86_64-*-mingw*): New target.

Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>

From-SVN: r123372
2007-03-30 14:45:03 -07:00
Richard Henderson 121de39fc0 directives.c (lex_macro_node_from_str): New.
libcpp/
        * directives.c (lex_macro_node_from_str): New.
        (cpp_push_definition, cpp_pop_definition): New.
        * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
gcc/
        * c-pragma.c (struct def_pragma_macro_value): New.
        (struct def_pragma_macro): New.
        (pushed_macro_table): New.
        (dpm_hash, dpm_eq): New.
        (handle_pragma_push_macro, handle_pragma_pop_macro): New.
        (init_pragma): Install them.
        * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.

Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>

From-SVN: r123370
2007-03-30 14:12:53 -07:00
Anatoly Sokolov 6c7ac15dc6 avr.c (avr_override_options): Clear 'flag_delete_null_pointer_checks'.
* config/avr/avr.c (avr_override_options): Clear 
	'flag_delete_null_pointer_checks'.

From-SVN: r123367
2007-03-31 00:28:55 +04:00
Paolo Carlini cb68ec5005 re PR c++/26099 (support for type traits is not available)
gcc/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
	RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
	RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
	RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
	RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
	RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
	RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
	C++ extensions.
	* doc/extend.texi (Extensions to the C++ Language): Add Type Traits.

gcc/cp/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* cp-tree.h (enum cp_trait_kind, struct tree_trait_expr,
	TRAIT_EXPR_TYPE1, TRAIT_EXPR_TYPE2, TRAIT_EXPR_KIND): Add.
	(enum cp_tree_node_structure_enum, union lang_tree_node): Update.
	(CLASS_TYPE_NON_UNION_P): Add.
	(struct lang_type_class): Add has_complex_dflt.
	(TYPE_HAS_COMPLEX_DFLT, TYPE_HAS_TRIVIAL_DFLT): Add.
	(locate_copy, locate_ctor, locate_dtor, finish_trait_expr): Declare.
	* cp-tree.def: Add TRAIT_EXPR.
	* cp-objcp-common.c (cp_tree_size): Add TRAIT_EXPR case.
	* lex.c (struct resword): Add __has_nothrow_assign,
	__has_nothrow_constructor, __has_nothrow_copy, __has_trivial_assign,
	__has_trivial_constructor, __has_trivial_copy,
	__has_trivial_destructor, __has_virtual_destructor, __is_abstract,
	__is_base_of, __is_class, __is_convertible_to, __is_empty, __is_enum,
	__is_pod, __is_polymorphic, __is_union.
	* parser.c (cp_parser_primary_expression): Deal with the new RIDs.
	(cp_parser_trait_expr): New.
	* semantics.c (finish_trait_expr, trait_expr_value
	classtype_has_nothrow_copy_or_assign_p): New.
	* method.c (locate_copy, locate_ctor, locate_dtor): Do not define
	as static.
	* decl.c (cp_tree_node_structure): Add TRAIT_EXPR.
	* class.c (check_bases, check_field_decl, check_bases_and_members):
	Deal with TYPE_HAS_COMPLEX_DFLT (t) too.
	* pt.c (uses_template_parms, tsubst_copy_and_build,
	value_dependent_expression_p, type_dependent_expression_p): Deal with
	TRAIT_EXPR.
	* tree.c (cp_walk_subtrees): Deal with TRAIT_EXPR.

gcc/testsuite/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* g++.dg/ext/is_base_of.C: New.
	* g++.dg/ext/has_virtual_destructor.C: New.
	* g++.dg/ext/is_polymorphic.C: New.
	* g++.dg/ext/is_base_of_diagnostic.C: New.
	* g++.dg/ext/is_enum.C: New.
	* g++.dg/ext/has_nothrow_assign.C: New.
	* g++.dg/ext/has_nothrow_constructor.C: New.
	* g++.dg/ext/is_empty.C: New.
	* g++.dg/ext/has_trivial_copy.C: New.
	* g++.dg/ext/has_trivial_assign.C: New.
	* g++.dg/ext/is_abstract.C: New.
	* g++.dg/ext/is_pod.C: New.
	* g++.dg/ext/has_nothrow_copy.C: New.
	* g++.dg/ext/is_class.C: New.
	* g++.dg/ext/has_trivial_constructor.C: New.
	* g++.dg/ext/is_union.C: New.
	* g++.dg/ext/has_trivial_destructor.C: New.
	* g++.dg/tree-ssa/pr22444.C: Adjust, avoid __is_pod.
	* g++.dg/template/crash43.C: Likewise.

libstdc++-v3/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* include/bits/cpp_type_traits.h (struct __is_pod, struct __is_empty):
	Remove.
	* include/bits/valarray_array.h: Adjust.
	* include/bits/allocator.h: Likewise.
	* include/bits/stl_tree.h: Likewise.

From-SVN: r123366
2007-03-30 19:45:57 +00:00
Steven Bosscher c7a0240aa5 regmove.c: Move all of pass_stack_adjustments from here...
* regmove.c: Move all of pass_stack_adjustments from here...
	* combine-stack-adj.c: ...to this new file.
	* Makefile.in: Add rules for combine-stack-adj.o.

From-SVN: r123363
2007-03-30 18:17:31 +00:00
Zdenek Dvorak f86289d5e5 re PR tree-optimization/31383 (ICE with -O2 -ftree-vectorize (regression))
PR tree-optimization/31383
	* tree-data-ref.c (affine_function_equal_p): Do not require the vectors
	to have the same length.

From-SVN: r123359
2007-03-30 09:36:19 +00:00
Jan Hubicka 4f40bddfb0 PR middle-end/PR30700
PR middle-end/PR30700
	* dwarf2out.c (reference_to_unused): Ask cgraph for functions 
	availablility; add more sanity checking; ask varpool only about
	VAR_DECL.

From-SVN: r123358
2007-03-30 08:03:55 +00:00
Richard Henderson 58c1146737 unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG to decide, but __SIZEOF_LONG_LONG__.
* unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
        to decide, but __SIZEOF_LONG_LONG__.

From-SVN: r123352
2007-03-29 16:35:33 -07:00
Richard Henderson 5b77de89ae emutls.c (struct __emutls_array): New.
* emutls.c (struct __emutls_array): New.
        (emutls_destroy): Use it instead of casting element 0 from void*.
        (__emutls_get_address): Likewise.

From-SVN: r123351
2007-03-29 16:34:10 -07:00
Richard Henderson da489f7340 varasm.c (initializer_constant_valid_p): Don't deny DECL_DLLIMPORT_P on functions.
* varasm.c (initializer_constant_valid_p): Don't deny
	DECL_DLLIMPORT_P on functions.

	* config/i386/cygming.h: Remove function declarations.
	(SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
	(ASM_OUTPUT_LABELREF): Remove.
	(COMMON_ASM_OP): Remove.
	(ASM_OUTPUT_COMMON): Remove.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
	(ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
	(ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
	Rename from TARGET_ENCODE_SECTION_INFO.
	* config/i386/netware.h: Likewise.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
	of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
	(legitimate_constant_p): Reject dllimports.
	(dllimport_map, get_dllimport_decl): New.
	(legitimize_dllimport_symbol): New.
	(legitimize_address, ix86_expand_move): Use it.
	(TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
	* config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
	(SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
	(SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
	* config/i386/predicates.md (constant_call_address_operand): Only
	accept symbols; reject dllimport_p symbols.
	* config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
	i386_pe_maybe_record_exported_symbol.
	* config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
	(i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
	(i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
	trust the setting of DECL_DLLIMPORT_P.
	(i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
	(i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
	(gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
	tidy the argument scanning loop.
	(i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
	SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
	(i386_pe_strip_name_encoding): Remove.
	(i386_pe_binds_local_p): New.
	(i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
	(i386_pe_output_labelref): Remove.
	(i386_pe_asm_output_aligned_decl_common): New.
	(i386_pe_maybe_record_exported_symbol): Rename from
	i386_pe_record_exported_symbol; check for dllexported symbols.

From-SVN: r123344
2007-03-29 14:54:35 -07:00
Mike Stump ab1da110d0 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
From-SVN: r123337
2007-03-29 16:17:42 +00:00
Zack Weinberg 311e3ff0b6 gengtype.c (oprintf): Mostly revert changes from 2007-03-26...
* gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
	add comment explaining why vsnprintf cannot be used.

From-SVN: r123332
2007-03-29 14:59:52 +00:00
Douglas Gregor e89886a0ea re PR middle-end/30666 (warning: canonical types differ for identical types double __complex__ and double __complex__)
2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>

	PR tree-optimization/30666
	* tree.c (build_complex_type): When creating type names for DWARF2
	debug info, create TYPE_DECLs for TYPE_NAME instead of
	IDENTIFIER_NODEs.
	(build_common_tree_nodes_2): Use build_complex_type when building
	predefined complex types, to preserve canonical types.

From-SVN: r123330
2007-03-29 14:11:28 +00:00
Steven Bosscher cab6e7717e ifcvt.c (struct noce_if_info): Add then_else_reversed field.
* ifcvt.c (struct noce_if_info): Add then_else_reversed field.
	(noce_get_alt_condition): Look at it to determine whether to
	reverse the condition or not.
	(noce_get_condition): Substitute the truth for lies.
	(noce_find_if_block): Set the then_else_reversed field.

From-SVN: r123327
2007-03-29 12:04:09 +00:00
Lars Poeschel ed31d14caf fr30.md (movdi): Do not accept immediates as the destination of this insn.
* config/fr30/fr30.md (movdi): Do not accept immediates as the destination of this insn.
* config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather than calling gen_rtx_SET directly.
  Use r0 to hold the value of 'address + 4' rather than a stack based temporary which can be
  mis-optimized away.

From-SVN: r123326
2007-03-29 10:23:27 +00:00
Andreas Krebbel 833cd70a0c s390.c (s390_secondary_input_reload_class, [...]): Functions removed.
2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_secondary_input_reload_class,
	s390_secondary_output_reload_class): Functions removed.
	(s390_secondary_reload): New function.
	(TARGET_SECONDARY_RELOAD): Target macro defined.
	* config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
	SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
	* config/s390/s390.md ("reload_outti", "reload_outdi",
	"reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
	"reload_out<mode>"): Expanders removed.
	("reload<mode>_plus", "reload<mode>_nonoffmem_in",
	"reload<mode>_nonoffmem_out"): Expanders added.

From-SVN: r123324
2007-03-29 06:58:42 +00:00
Andreas Krebbel 040f69ebaa regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if SRC->DEST replacement failed anyway.
2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>

	* regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
	SRC->DEST replacement failed anyway.

From-SVN: r123323
2007-03-29 06:57:42 +00:00
Mike Stump 4beb5c4bd1 darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
* config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
	* config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.

testsuite:
	* gcc.dg/darwin-comm.c: Add.

From-SVN: r123321
2007-03-29 01:44:26 +00:00
Dwarakanath Rajagopal aafc814c7b Adding barcelona as a variant of amdfam10 architecture
From-SVN: r123313
2007-03-28 21:44:56 +00:00
Eric Botcazou 8975ae2285 tree-dfa.c (get_ref_base_and_extent): Do not expect positive offsets for BIT_FIELD_REF and COMPONENT_REF.
* tree-dfa.c (get_ref_base_and_extent): Do not expect positive
	offsets for BIT_FIELD_REF and COMPONENT_REF.

From-SVN: r123311
2007-03-28 20:11:20 +00:00
Richard Guenther 1c2e50d8fa tree.c (is_global_var): Move ...
2007-03-28  Richard Guenther  <rguenther@suse.de>

	* tree.c (is_global_var): Move ...
	* tree-flow-inline.h (is_global_var): ... here.
	* tree.h (is_global_var): Remove declaration.

From-SVN: r123303
2007-03-28 15:01:08 +00:00
Uros Bizjak a646adedf0 i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning option.
* config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
        option.
        (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
        * config/i386/i386.c (ix86_tune_features): Initialize new
        tuning option.
        * config/i386/predicates.md (promotable_binary_operator): Use
        TARGET_TUNE_PROMOTE_HIMODE_IMUL.

From-SVN: r123301
2007-03-28 16:05:48 +02:00
Grigory Zagorodnev e701c05c17 re PR target/31380 ([4.1/4.2]: Typo in gcc/config/i386/sse.md)
2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>

	PR target/31380
	* config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.

From-SVN: r123299
2007-03-28 06:38:24 -07:00
Nick Clifton 446347f9c4 Fix dates on recent entries
From-SVN: r123298
2007-03-28 12:58:02 +00:00
Lars Poeschel 0893725024 fr30.md (movsi_internal): Change destination constraint from m to V and add m to the end.
* config/fr30/fr30.md (movsi_internal): Change destination
  constraint from m to V and add m to the end.

From-SVN: r123297
2007-03-28 12:56:11 +00:00
Christian Bruel 5261837677 sh.md (movsi_i): Fix type attribute.
* config/sh/sh.md (movsi_i): Fix type attribute.

From-SVN: r123296
2007-03-28 12:52:07 +00:00
Christian Bruel bbccf9081e sh.md (movsi_ie): Fix memory constraints attribute length.
* config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
	(movsf_ie): Likewise.

From-SVN: r123295
2007-03-28 12:37:12 +00:00
Christian Bruel 27a0ce7d42 config.gcc: Add sh4-300 to multilib.
* config.gcc: Add sh4-300 to multilib.
	* config/sh/t-mlib-sh4-300: New file.

From-SVN: r123292
2007-03-28 12:18:51 +00:00
Andreas Krebbel 99cd7dd0e6 s390.md ("fix_trunc<mode>di2"): New expander.
2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
	("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
	fix_trunc<mode>di2.
	("fixuns_truncdddi2", "fixuns_trunctddi2"): Use 
	fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
	("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
	"fixuns_trunctddi2"): Whitespace fix.

From-SVN: r123291
2007-03-28 08:39:03 +00:00
Kaz Kojima e318fc8fab sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after the definition of struct sh_args.
* config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
	the definition of struct sh_args.
	(CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
	CALL_COOKIE_INT_REG_GET): Likewise.

From-SVN: r123290
2007-03-28 05:18:03 +00:00
Steven Bosscher 96647293f6 ifcvt.c (cond_exec_find_if_block): Return FALSE if no transformations are applied successfully.
* ifcvt.c (cond_exec_find_if_block): Return FALSE if no
	transformations are applied successfully.

From-SVN: r123289
2007-03-28 04:13:10 +00:00
Douglas Gregor 00ffc97ce5 tree.c (tree_contains_struct): Permit 512 tree codes.
2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>

	* tree.c (tree_contains_struct): Permit 512 tree codes.
	* tree.h (tree_contains_struct): Ditto.
	(MAX_TREE_CODES): Ditto.
	(struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
	SPARE member to store remaining padding bits.

From-SVN: r123287
2007-03-28 01:56:58 +00:00
Anatoly Sokolov 39418b53b8 avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' architecture.
* config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' 
	architecture.

From-SVN: r123273
2007-03-28 02:44:34 +04:00
Janis Johnson 0d74c0ee2f configure.ac: Fix assembler test for powerpc*-linux decimal float.
* configure.ac: Fix assembler test for powerpc*-linux decimal float.
	* configure: Regenerate.

From-SVN: r123272
2007-03-27 22:14:02 +00:00
Janis Johnson a3bba7679c * configure: Regenerate using the correct version of autoconf.
From-SVN: r123271
2007-03-27 22:06:52 +00:00
Anatoly Sokolov deb2378c15 Fix year in CangeLog.
From-SVN: r123264
2007-03-27 21:59:23 +04:00
Anatoly Sokolov 2cd11105ec avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack pointer regs.
* config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
	pointer regs.
	* config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
	regs to "__SP_L__" and "__SP_H__".

From-SVN: r123263
2007-03-27 21:53:51 +04:00
Richard Guenther c21c775aeb tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and computations with it with a HOST_WIDE_INT variable.
2007-03-27  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
	computations with it with a HOST_WIDE_INT variable.

From-SVN: r123259
2007-03-27 15:40:09 +00:00
Mike Stump 6b692a83a1 darwin.h (DARWIN_MINVERSION_SPEC): Add objective-c-header, objective-c++-header and objc++-cpp-output support.
* config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
	objective-c-header, objective-c++-header and objc++-cpp-output
	support.
	* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.

From-SVN: r123252
2007-03-27 01:04:30 +00:00
Richard Henderson 24bfafbc9d re PR target/31361 (SSE2 generation bug with shifts)
PR target/31361
        * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
        IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
        IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
        IX86_BUILTIN_PSRLQ128): New.
        (ix86_init_mmx_sse_builtins): Add them.
        (ix86_expand_builtin): Expand them.
        * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
        operand 2 be TImode.
        * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
        _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
        _mm_srli_epi64): Mark __B const.
        (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
        (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
        _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use 
        new two-vector shift builtins.

From-SVN: r123250
2007-03-26 17:30:32 -07:00
Ian Lance Taylor fa6338517f re PR tree-optimization/31345 (ICE in set_value_range, at tree-vrp.c:269)
./:	PR tree-optimization/31345
	* tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
	[+INF, +INF(OVF)] into VARYING.
testsuite/:
	PR tree-optimization/31345
	* gcc.c-torture/compile/pr31345-1.c: New test.

From-SVN: r123237
2007-03-26 21:43:30 +00:00
Zack Weinberg 01d419aec1 gengtype-parse.c: New file.
* gengtype-parse.c: New file.
	* gengtype-yacc.y: Delete.
	* gengtype-lex.l: Don't include gengtype-yacc.h.
	Define YY_DECL and yyterminate appropriately for recursive
	descent parser.  yylval is now a string out-parameter to yylex.
	(HWS, EOID): New shorthand.
	(IWORD): Add a couple more types.
	(yylex): Add a setup stanza.  Remove the complex rules for
	detecting GTY'ed types and typedefs; replace with simple
	keyword detectors.  Adjust everything for the changed
	definition of yylval.  Ignore all pp-directives, not just #define.
	(yyerror): Delete.
	(parse_file): Rename yybegin; do not call yyparse.
	(yyend): New.
	* gengtype.c (xasprintf): Export again.
	(this_file): New.  Use everywhere __FILE__ was being used.
	(get_lang_bitmap): Special case types defined in gengtype.c.
	(do_typedef, new_structure): Suppress definition of certain types.
	(new_structure): Improve diagnostics of duplicate definitions.
	Make sure location_s is associated with input.h.
	(nreverse_pairs, define_location_structures): New functions.
	(main): Improve tagging of kludge types.  Remove old kludges
	for input.h types; use define_location_structures.
	* gengtype.h: Update prototypes.  Define token codes here.
	* Makefile.in: Remove all references to gengtype-yacc.
	Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
	and gengtype.
	* bitmap.h (struct bitmap_head_def): Coalesce definitions,
	add GTY((skip)) to the field that's only conditionally there.
	* doc/install.texi: Document that Bison is no longer required
	unless building treelang.

From-SVN: r123235
2007-03-26 21:18:43 +00:00
Zack Weinberg 11a675992a gengtype.c: Don't include gtyp-gen.h.
* gengtype.c: Don't include gtyp-gen.h.
	(srcdir): Declare here.
	(base_files, lang_dir_names): Allocate dynamically.
	(gt_files, num_gt_files, num_lang_dirs): New globals.
	(measure_input_list, read_input_line, read_input_list)
	(set_lang_bitmap): New functions.
	(get_base_file_bitmap): Rename get_lang_bitmap and drastically
	simplify, relying on read_input_list to set up the bitmaps.
	(main): Arguments are no longer unused.  Check for correct number
	of command line arguments, set srcdir and srcdir_len, then call
	read_input_list, before doing anything else.  No need to worry
	about duplicates in main loop.
	* configure.ac: Simplify the calculation of all_gtfiles.
	Put language tags in there.  Don't set or substitute
	all_gtfiles_files_langs or all_gtfiles_files_frags.
	* Makefile.in: Revamp the way gengtype is invoked, now that it
	takes a file on its command line with a much simpler format.
	Remove or replace with gtyp-input.list all references to gtyp-gen.h.
	(GTFILES): Remove duplicates and C source files.
	* c-config-lang.in, cp/config-lang.in, objc/config-lang.in
	* objcp/config-lang.in: Add c-pragma.h to gtfiles.
	* configure: Regenerate.

From-SVN: r123234
2007-03-26 21:07:27 +00:00
Zack Weinberg 065ae61175 gengtype.h: Remove all type definitions to gengtype.c...
* gengtype.h: Remove all type definitions to gengtype.c; leave
	only definitions of options_p, type_p, and pair_p as opaque
	pointers.  Update prototypes.
	* gengtype.c: Many type definitions moved here from gengtype.h.
	Consolidate type definitions at the top of the file.
	(xvasprintf): Delete.
	(xasprintf): Make static.
	(create_nested_pointer_option): Add 'next' parameter.
	(create_field_all, create_field_at): New functions.
	(create_field): Now a thin wrapper around create_field_all.
	(create_optional_field): Rename create_optional_field_ and add
	line argument.  Original name is now a macro which supplies
	__LINE__.
	(oprintf): Use vsnprintf directly.
	(close_output_files): Use fatal rather than perror/exit.
	(note_def_vec, note_def_vec_alloc): Use create_field_at.
	(main): Set progname.  Don't use exit.
	* gengtype-yacc.y (struct_fields): Use create_field_at.
	(option, optionseqopt): Delete.
	(optionseq): Consolidate productions from option here so we
	can use the first argument to create_option.

From-SVN: r123233
2007-03-26 21:04:59 +00:00
Zack Weinberg 17defa6a13 gengtype-lex.l: Distinguish unions from structures in the token type.
* gengtype-lex.l: Distinguish unions from structures in the
	token type.  Don't call find_structure; return the tag as a string.
	* gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
	Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
	Reorganize typedef_struct production accordingly.
	Use create_nested_ptr_option.
	* gengtype.c (create_nested_ptr_option): New function.
	* gengtype.h: Declare it.

From-SVN: r123232
2007-03-26 21:00:20 +00:00
Zack Weinberg 95161faf6d gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
* gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
	(string_type): Don't declare.
	(do_scalar_typedef): Declare.
	(create_scalar_type): Update prototype.
	* gengtype.c (string_type): Make static.
	(scalar_nonchar, scalar_char): New.
	(do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
	(resolve_typedef): Use scalar_nonchar for error recovery.
	(create_scalar_type): Remove name_len field.  Return scalar_char
	or scalar_nonchar as appropriate.
	(adjust_field_type): Look at scalar_is_char boolean to decide whether
	to use string_type.
	(throughout): Use scalar_nonchar instead of calling create_scalar_type,
	whenever possible.
	(main): Initialize scalar_char and scalar_nonchar before calling
	gen_rtx_next.
	* gengtype-lex.l: Adjust for removal of second argument to
	create_scalar_type.  Use yylval.s instead of yylval.t when
	returning SCALAR.
	* gengtype-yacc.y: Type of SCALAR is string.  Call
	create_scalar_type from type:SCALAR rule.  Adjust for removal of
	second argument to create_scalar_type.

From-SVN: r123231
2007-03-26 20:55:10 +00:00
Zack Weinberg 4a399aef3a vec.h: Remove all #if IN_GENGTYPE blocks.
* vec.h: Remove all #if IN_GENGTYPE blocks.
	Add comment saying that changes may require adjustments to gengtype.
	* gengtype.c: Don't include coretypes.h or tm.h.
	Add comment to inclusion of errors.h.
	(note_def_vec, note_def_vec_alloc): New functions.
	* gengtype.h: Declare new functions.
	* gengtype-lex.l: Don't include coretypes.h.
	(YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
	Delete.
	(update_lineno): Remove unnecessary prototype.
	(DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
	(VEC rule): Just return VEC_TOKEN.
	* gengtype-yacc.y (VEC_TOKEN): New token type.
	(type): Add a production for VEC(a,b).
	* Makefile.in: Update dependencies.

From-SVN: r123229
2007-03-26 20:49:17 +00:00
Zack Weinberg d287ace688 gengtype-lex.l: Remove rules for parsing pointer-to-function typedefs that use the old PARAMS macro.
* gengtype-lex.l: Remove rules for parsing pointer-to-function
	typedefs that use the old PARAMS macro.

From-SVN: r123227
2007-03-26 20:46:29 +00:00
Zack Weinberg cff4720f62 gengtype-lex.l: Remove all rules and states relating to yacc input files.
* gengtype-lex.l: Remove all rules and states relating to yacc
	input files.
	* gengtype-yacc.y: Similarly.
	* gengtype.c (note_yacc_type): Delete function.
	* gengtype.h: Update prototypes.

From-SVN: r123226
2007-03-26 20:45:01 +00:00
Joseph Myers 71175bf368 tree-pretty-print.c (dump_generic_node): Report precision of unnamed integer types.
* tree-pretty-print.c (dump_generic_node): Report precision of
	unnamed integer types.

From-SVN: r123224
2007-03-26 20:56:59 +01:00
Steven Bosscher 93242b9c1b ifcvt.c (noce_try_store_flag_constants): Don't check no_new_pseudos here.
* ifcvt.c (noce_try_store_flag_constants): Don't check
	no_new_pseudos here.
	(noce_try_store_flag_constants): Don't check no_new_pseudos.
	(noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
	noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
	noce_try_sign_mask): Likewise.
	(if_convert): Check no_new_pseudos here.

	(cond_exec_process_if_block, noce_process_if_block, find_if_block):
	Remove prototypes.
	(struct noce_if_info): Add then_bb, else_bb, join_bb members.
	(noce_get_condition): Handle new then_else_reversed argument.
	(noce_init_if_info): Remove, fold into noce_find_if_block.
	(noce_process_if_block): Take a struct noce_if_info as the
	argument.  Don't set up one based on ce_if_info.  Update pointer
	references accordingly.
	(cond_move_process_if_block): Likewise.
	(process_if_block): Removed.
	(find_if_block): Removed.  Move functionality two new functions,
	noce_find_if_block and cond_exec_find_if_block.
	(noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
	blocks and the symmetric IF-ELSE-JOIN case.
	(cond_exec_find_if_block): Also new function mostly based on old
	find_if_block and process_if_block.
	(find_if_header): Replace find_if_block call with separately
	guarded calls to noce_find_if_block and cond_exec_find_if_block.
	(find_cond_trap): Update noce_get_condition call.
	(dead_or_predicable): Likewise.

From-SVN: r123223
2007-03-26 19:37:11 +00:00
Jakub Jelinek 85acef0e28 i386.c (IX86_BUILTIN_CMPNEPD, [...]): Remove.
* config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
	Remove.
	(IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
	IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
	IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
	(ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
	v4si_ftype_v4si_v2di.   Remove __builtin_ia32_psllw128,
	__builtin_ia32_pslld128, __builtin_ia32_psllq128,
	__builtin_ia32_psrlw128, __builtin_ia32_psrld128,
	__builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
	__builtin_ia32_psrad128 builtins.

From-SVN: r123215
2007-03-26 15:23:17 +02:00
Uros Bizjak 8dde5924c6 reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
* reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
        * config/i386/constraints.md
	(define_constraint "I"): Use IN_RANGE macro.
	(define_constraint "J"): Ditto.
	(define_constraint "K"): Ditto.
	(define_constraint "M"): Ditto.
	(define_constraint "N"): Ditto.
	(define_constraint "O"): Ditto.
	* config/i386/predicates.md
	(define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
	(define_predicate "const_0_to_3_operand"): Ditto.
	(define_predicate "const_0_to_7_operand"): Ditto.
	(define_predicate "const_0_to_15_operand"): Ditto.
	(define_predicate "const_0_to_63_operand"): Ditto.
	(define_predicate "const_0_to_255_operand"): Ditto.
	(define_predicate "const_1_to_31_operand"): Ditto.
	(define_predicate "const_2_to_3_operand"): Ditto.
	(define_predicate "const_4_to_7_operand"): Ditto.

From-SVN: r123210
2007-03-26 10:34:01 +02:00
David Edelsohn a5ad201780 rs6000.c (rs6000_emit_prologue): Always clobber LR in SImode for save_world.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
        in SImode for save_world.
        * config/rs6000/altivec.md (save_world, restore_world): Convert to
        LR hard reg.

From-SVN: r123198
2007-03-25 08:44:40 -04:00
Dorit Nuzman 5773afc5b5 re PR middle-end/30784 (ICE on loop vectorization (-O1 -march=athlon-xp -ftree-vectorize))
PR tree-optimization/30784
        * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
        BIT_FIELD_REF.

From-SVN: r123197
2007-03-25 11:08:29 +00:00
Revital Eres 3ece6cc239 fix in tree-if-conv.c
From-SVN: r123194
2007-03-25 06:53:02 +00:00