Commit Graph

32689 Commits

Author SHA1 Message Date
Uros Bizjak 459e691ae8 re PR tree-optimization/32243 (ICE in vectorizable_type_promotion, at tree-vect-transform.c:2890)
PR tree-optimization/32243
	* tree-vect-transform.c (vectorizable_type_promotion): Move check
	for ncopies after ratio check between nunits_out and nunits_in.
	(vectorizable_type_demotion): Remove single-use variable "scalar_type".

testsuite/ChangeLog:
	
	PR tree-optimization/32243
	* gcc.dg/vect/vect.exp: Add support for -O3 tests.  Reset default
	flags for -Os tests.
	* gcc.dg/vect/03-vect-pr32243.c: New test.

From-SVN: r125567
2007-06-08 11:06:46 +02:00
Dorit Nuzman 0d2665809f re PR tree-optimization/32224 (ICE in vect_analyze_operations, at tree-vect-analyze.c:374)
PR tree-optimization/32224
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
        vectorization upon a non GIMPLE_MODIFY_STMT.

From-SVN: r125566
2007-06-08 08:57:54 +00:00
Christian Bruel 4aa97413d3 re PR target/29953 ([SH-4] Perfomance regression in loops. cmp/eq used instead of dt)
PR target/29953
* config/sh/sh.md (doloop_end): New pattern and splitter.
* loop-iv.c (simple_rhs_p): Check for hardware registers.

From-SVN: r125564
2007-06-08 09:58:41 +02:00
Zdenek Dvorak 1fc3998daa re PR middle-end/32209 (Boot failure Comparing stages 2 and 3 with --disable-checking)
PR middle-end/32209
	* dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
	functions.
	(verify_dominators): Do not change dominance tree.

From-SVN: r125563
2007-06-08 07:28:50 +00:00
Kaz Kojima 32a7ab3d80 constraints.md: New file.
* config/sh/constraints.md: New file.
	* config/sh/sh.c: Include tm-constrs.h.
	(reg_class_from_letter): Remove.
	(prepare_cbranch_operands): Use satisfies_constraint_*
	function instead of macro.
	(andcosts, broken_move, sh_secondary_reload): Likewise.
	* config/sh/predicates.md (trapping_target_operand): Likewise.
	(and_operand, arith_operand, arith_reg_or_0_operand,
	cmp_operand, logical_operand, target_operand,
	ua_address_operand, ua_offset, xor_operand): Likewise.
	* config/sh/sh.md: Include constraints.md.
	(*movsicc_t_false): Use satisfies_constraint_* function
	instead of macro.
	(*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
	lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
	movdi_const_16bit+1, beq, bne, *ptb): Likewise.
	* config/sh/sh.h (reg_class_from_letter): Remove prototype.
	(OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
	(REG_CLASS_FROM_CONSTRAINT): Remove.
	(CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
	CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
	CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
	CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
	CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
	(SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
	function instead of macro.
	(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
	(EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
	EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
	EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
	(IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
	(IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
	(IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
	(IS_NON_EXPLICIT_CONSTANT_P): Likewise.
	(EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
	EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
	EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
	EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
	EXTRA_CONSTRAINT_STR): Likewise.
	(GO_IF_LEGITIMATE_INDEX): Fix indentation.

From-SVN: r125561
2007-06-08 06:59:55 +00:00
Geoffrey Keating 2734e1c321 darwin.h (STACK_BOUNDARY): Define.
* config/i386/darwin.h (STACK_BOUNDARY): Define.

Co-Authored-By: Hui-May Chang <hm.chang@apple.com>

From-SVN: r125555
2007-06-08 03:22:56 +00:00
Simon Martin c1ae8be51f re PR c++/30759 (initializer-list accepted for object of non-POD type)
gcc/

2007-06-07  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/30759
	* c-common.h (flag_cpp0x): Replaced by...
	(cxx_dialect): ... this new variable specifying the C++ dialect that
	is used.
	* c-common.c (flag_cpp0x): Removed.
	(cxx_dialect): Defined.
	* c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
	cxx_dialect.
	* c-opts.c (c_common_post_options): Likewise.
	(set_std_cxx98): Set cxx_dialect to cxx98.
	(set_std_cxx0x): Set cxx_dialect to cxx0x.

gcc/cp/

2007-06-07  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/30759
	* decl.c (check_initializer): Report an error when a brace enclosed
	initializer is used for a non-aggregate type in C++98.
	(redeclaration_error_message): Rewrote flag_cpp0x in terms of
	cxx_dialect.
	(grokdeclarator): Likewise.
	(move_fn_p): Likewise.
	* typeck.c (check_return_expr): Likewise.
	* call.c (reference_binding): Likewise.
	* error.c (cp_cpp_error): Likewise.
	* pt.c (check_default_tmpl_args): Likewise.
	(tsubst): Likewise.
	* lex.c (init_reswords): Likewise.
	* parser.c (p_parser_primary_expression): Likewise.
	(TOKEN_PRECEDENCE): Likewise.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_ptr_operator): Likewise.
	(cp_parser_parameter_declaration): Likewise.
	(cp_parser_enclosed_template_argument_list): Likewise.
	(cp_parser_skip_to_end_of_template_parameter_list): Likewise.
	(cp_parser_next_token_ends_template_argument_p): Likewise.

gcc/testsuite/

2007-06-07  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/30759
	* g++.dg/init/brace6.C: New test.

From-SVN: r125539
2007-06-07 19:59:33 +00:00
Geoffrey Keating e46b55d038 Index: ChangeLog
2007-06-06  Geoffrey Keating  <geoffk@apple.com>
	    Hui-May Chang <hm.chang@apple.com>

	* doc/invoke.texi (Darwin Options): Update documentation for
	-mmacosx-version-min.
	* config.gcc (*-*-darwin*): Set extra_gcc_objs.
	* config/darwin-driver.c: New file.
	* config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
	* config/t-darwin (darwin-driver.o): New rule.

	* config/darwin-c.c (version_as_macro): Ignore low digit.

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

	* gcc.dg/darwin-minversion-3.c: New.

Co-Authored-By: Hui-May Chang <hm.chang@apple.com>

From-SVN: r125537
2007-06-07 18:56:51 +00:00
Uros Bizjak edc5bbcd8f i386.md (standard sse constant splitter): Handle TFmode.
* config/i386/i386.md (standard sse constant splitter): Handle TFmode.
        (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
        (CSGNMODE): New mode macro.
        (CSGNVMODE): New mode attribute.
        (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
        expander using CSGNMODE mode macro.  Handle TFmode.
        (copysign<mode>3_const): Rename from copysignsf3_const and
        copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
        Handle TFmode.
        (copysign<mode>3_var): Rename from copysignsf3_var and
        copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
        Handle TFmode.
        (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
        mode macro.  Handle TFmode.
        * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
        (iortf3, *iortf3): Ditto.
        (xortf3, *xortf3): Ditto.
        * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
        TFmode and TImode masks.
        (ix86_expand_copysign): Expand TFmode copysign insn.
        (IX86_BUILTIN_INFQ): New.
        (IX86_BUILTIN_FABSQ): Ditto.
        (IX86_BUILTIN_COPYSIGNQ): Ditto.
        (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
        [__builtin_fabsq]: Ditto.
        [__builtin_copysignq]: Ditto.
        (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
        [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
        [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
        ix86_expand_unop_builtin().

testsuite/ChangeLog:
    
        * gcc.target/i386/builtin-copysign.c: New test.

From-SVN: r125535
2007-06-07 20:31:40 +02:00
Bob Wilson 125253d945 * config/xtensa/lib1funcs.asm: Clean up whitespace.
From-SVN: r125534
2007-06-07 18:27:42 +00:00
Steve Ellcey bb27eeda7d re PR target/31850 (gcc.c-torture/compile/limits-fnargs.c is slow at compiling for spu-elf)
PR target/31850
	* rtl.h (push_to_sequence2): New.
	* emit-rtl.c (push_to_sequence2): New.
	* function.c (assign_parm_data_all): Add new fields.
	(assign_parm_setup_block): Call push_to_sequence2 instead of 
	push_to_sequence.
	(assign_parm_setup_reg): Ditto.
	(assign_parm_setup_stack): Ditto.
	(assign_parms_unsplit_complex): Ditto.
	(assign_parms): Change field name.

From-SVN: r125532
2007-06-07 16:46:26 +00:00
Zdenek Dvorak 1b0cfaa6a8 re PR tree-optimization/32220 (internal compiler error: in eliminate_temp_copies, at tree-predcom.c:1937)
PR tree-optimization/32220
	* tree-predcom.c (eliminate_temp_copies): Handle the case that loop
	phi node is reached before defining statement.

	* gfortran.dg/predcom-2.f: New testcase.

From-SVN: r125531
2007-06-07 15:34:40 +00:00
Andrew Pinski 1344284efa re PR tree-optimization/32231 (Segfault in verify_ssa_name)
2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/32231
        * tree-vect-transform.c (vectorizable_call): Call update_stmt
        after changing the right hand side of the assignment.

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

        PR tree-opt/32231
        * gcc.target/i386/vectorize4.c: New test.

From-SVN: r125521
2007-06-06 19:12:31 -07:00
Eric Christopher 7a1eca8375 config.gcc (i?86-*-darwin*): Remove arch parameter.
2007-06-06  Eric Christopher  <echristo@apple.com>

	    * config.gcc (i?86-*-darwin*): Remove arch parameter.
	    (x86_64-*-darwin*): Ditto.
	    * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
	    (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.

From-SVN: r125508
2007-06-06 22:43:49 +00:00
Thomas Neumann c22940cd7c tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the coding conventions.
* tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
	coding conventions.
	(add_key): Likewise.
	* tree-ssa.c (init_tree_ssa): Use type safe memory macros.
	* tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
	variable names.
	* tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
	(add_cost_one_coalesce): Likewise.
	* tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
	variable names. Rename orig to orig_name for consistency.
	* tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
	conventions.
	(cprop_into_successor_phis): Avoid using C++ keywords as variable names.
	(record_equivalences_from_stmt): Likewise.
	* tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
	the coding conventions.
	(memory_ssa_name_same): Likewise.
	(dse_optimize_stmt): Likewise.
	(dse_record_phis): Likewise.
	(dse_finalize_block): Likewise.
	* tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
	keywords as variable names.
	(may_move_till): Cast according to the coding conventions.
	(force_move_till_expr): Avoid using C++ keywords as variable names.
	(force_move_till): Cast according to the coding conventions.
	(memref_hash): Likewise.
	(memref_eq): Likewise.
	(gather_mem_refs_stmt): Likewise.
	* tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
	keywords as variable names.
	(idx_find_step): Cast according to the coding conventions.
	(idx_record_use): Likewise.
	(find_depends): Likewise.
	(prepare_decl_rtl): Likewise.
	(mbc_entry_hash): Likewise.
	(mbc_entry_eq): Likewise.
	* tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
	(simplify_replace_tree): Avoid using C++ keywords as variable names.
	(idx_infer_loop_bounds): Cast according to the coding conventions.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
	* tree-ssa-math-opts.c (occ_new ): Likwise.
	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
	macros.
	* tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
	names.
	(add_use_op): Likewise.
	(add_vop): Likewise.
	(add_vuse_op): Likewise.
	(add_vdef_op): Likewise.
	(get_expr_operands): Likewise.
	(push_stmt_changes): Use type safe memory macros.
	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
	keywords as variable names.
	(conditional_replacement): Likewise.
	(minmax_replacement): Likewise.
	(abs_replacement): Likewise.
	* tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
	coding conventions.
	(insert_fake_stores): Avoid using C++ keywords as variable names.
	* tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
	conventions.
	* tree-ssa-structalias.c (heapvar_lookup): Likewise.
	(heapvar_insert): Use type safe memory macros.
	(new_var_info): Cast according to the coding conventions.
	(new_constraint): Likewise.
	(remove_preds_and_fake_succs): Use type safe memory macros.
	* tree-ssa-threadupdate.c (thread_block): Cast according to the coding
	conventions.
	(thread_single_edge): Likewise.

From-SVN: r125504
2007-06-06 20:18:47 +00:00
Eric Christopher d6b0b376ea i386.c (override_options): Move handling of TARGET_SUBTARGET* earlier.
2007-06-06  Eric Christopher  <echristo@apple.com>

        * config/i386/i386.c (override_options): Move handling
        of TARGET_SUBTARGET* earlier.

From-SVN: r125497
2007-06-06 18:39:25 +00:00
Paolo Bonzini 7258e976ea genmodes.c (tagged_printf, [...]): Don't use %n on printf.
2007-06-06  Paolo Bonzini  <bonzini@gnu.org>

	* genmodes.c (tagged_printf, emit_insn_modes_h): Don't
	use %n on printf.

From-SVN: r125494
2007-06-06 15:43:29 +00:00
Zdenek Dvorak a7b87f730f haifa-sched.c (restore_bb_notes): Clear bb field of the notes emited outside of basic block.
* haifa-sched.c (restore_bb_notes): Clear bb field of the notes
	emited outside of basic block.
	* cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
	the created blocks.
	* rtl.h (delete_insn_chain): Declaration changed.
	* cfgrtl.c (delete_insn_chain): Add option to clear bb field for
	non-removed insns.
	(rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
	(delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
	rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false 
	to delete_insn_chain.
	(rtl_verify_flow_info_1): Verify that the insns in header and footer
	do not have bb field set.
	(rtl_verify_flow_info): Verify that insns between basic blocks do not
	have bb field set.
	* recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
	* cfgcleanup.c (try_optimize_cfg): Ditto.

From-SVN: r125492
2007-06-06 14:46:34 +00:00
Thomas Neumann 45222d4a3d lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
* lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
	(lambda_body_vector_new): Use type safe memory macros.
	(lambda_linear_expression_new): Likewise.
	(lambda_loopnest_new): Likewise.
	(lambda_lattice_new): Likewise.
	(replace_uses_equiv_to_x_with_y): Cast according to the coding
	conventions. Use type safe memory macros.
	* lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
	(lambda_body_vector_s): Likewise.
	* lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
	* lambda-trans.c (lambda_trans_matrix_new): Likewise.

From-SVN: r125491
2007-06-06 14:33:57 +00:00
Richard Biener 68c834d087 tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2 if we need to schedule cfg_cleanup.
2007-06-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
	if we need to schedule cfg_cleanup.
	(tree_ssa_forward_propagate_single_use_vars): Do so.

From-SVN: r125490
2007-06-06 13:58:41 +00:00
Ian Lance Taylor 39ac2ffc71 fold-const.c (merge_ranges): If range_successor or range_predecessor fail, just return 0.
./:	* fold-const.c (merge_ranges): If range_successor or
	range_predecessor fail, just return 0.
testsuite/:
	* g++.dg/conversion/enum1.C: New test.

From-SVN: r125486
2007-06-06 13:56:00 +00:00
Uros Bizjak 9f106823dc re PR tree-optimization/32216 (ICE: verify_stmts failed (invalid reference prefix) with -ftree-vectorize)
PR tree-optimization/32216
	* tree-vectorizer.c (supportable_widening_operation): Determine
	signedness of FIX_TRUNC_EXPR from output operand.
	(supportable_narrowing_operation): Ditto.
	* tree-vect-generic.c (expand_vector_operations_1): Determine
	signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
	from input operand.

testsuite/ChangeLog:
	
	PR tree-optimization/32216
	* gcc.dg/vect/pr32216.c: New test.

From-SVN: r125482
2007-06-06 14:12:32 +02:00
Thomas Neumann 9415ab7da8 i386.c (enum pta_flags): Move out of struct scope...
* config/i386/i386.c (enum pta_flags): Move out of struct scope...
	(struct pta): ...from here. Change flags to unsigned to avoid excessive
	casting (as it is used as a bit mask).
	(override_options): Add casts according to the coding convenventions.
	(x86_64_elf_unique_section): Likewise.
	(examine_argument): Avoid using C++ keywords as variable names.
	(construct_container): Likewise.
	(legitimize_pic_address): Likewise.
	(get_dllimport_decl): Cast according to the coding conventions. Use
	type safe memory macros.
	(legitimize_address): Cast according to the coding conventions.
	(emit_i387_cw_initialization): Corrected the type of slot to enum
	ix86_stack_slot.
	(ix86_init_machine_status): Use type safe memory macros.
	(bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
	(bdesc_pcmpistr): Likewise.
	(bdesc_crc32): Likewise.
	(bdesc_sse_3arg): Likewise.
	(bdesc_2arg): Likewise.
	(bdesc_1arg): Likewise.
	(ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
	(ix86_expand_sse_pcmpistr): Likewise.
	(ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
	(ix86_builtin_vectorized_function): Change the type of fn to unsigned
	int to match the langhook definition.
	(ix86_builtin_conversion): Change the type of code to unsigned init to
	match the langhook definition.
	(ix86_preferred_reload_class): Avoid using C++ keywords as variable
	names.
	(ix86_preferred_output_reload_class): Likewise.
	(ix86_cannot_change_mode_class): Likewise.
	(ix86_memory_move_cost): Likewise.
	(ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
	avoid excessive casting later on.
	(x86_output_mi_thunk): Avoid using C++ keywords as variable names.

From-SVN: r125357
2007-06-06 08:02:56 +00:00
Uros Bizjak f28eb39cee sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm as flags setting insn.
* config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
	as flags setting insn.
	(sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.

	* config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
	(UNSPEC_ROUND): New.
	("sse4_1_round<mode>2"): New insn pattern.
	("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
	SSE4.1 targets.
	("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
	expander using SSEMODEF mode macro.  Expand using
	"sse4_1_round<mode>2" pattern for SSE4.1 targets.
	("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
	expander using SSEMODEF mode macro.  Expand using
	"sse4_1_round<mode>2" pattern for SSE4.1 targets.
	("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
	expander using SSEMODEF mode macro.  Expand using
	"sse4_1_round<mode>2" pattern for SSE4.1 targets.
	* config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
	UNSPEC_ROUND instead of UNSPEC_ROUNDP.
	("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
	UNSPEC_ROUNDS.

From-SVN: r125356
2007-06-06 08:53:29 +02:00
Jan Sjodin 69f2880c76 lambda.h (build_linear_expr): New.
* lambda.h (build_linear_expr): New.
	* lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression): 
	Use build_linear_expr, call fold and force_gimple_operand.
	(lambda_loopnest_to_gcc_loopnest): Check that there is
	something to insert.
	* testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.


Co-Authored-By: Sebastian Pop <sebpop@gmail.com>

From-SVN: r125355
2007-06-06 06:08:58 +00:00
Joerg Wunsch f7fd775f02 re PR preprocessor/23479 (Implement binary constants with a "0b" prefix)
2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>

	PR preprocessor/23479
gcc/
	* doc/extend.texi: Document the 0b-prefixed binary integer
	constant extension.

libcpp/
	* expr.c (cpp_classify_number): Implement 0b-prefixed binary
	integer constants.
	(append_digit): Likewise.
	* include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
	binary integer constants.

testsuite/
	* testsuite/gcc.dg/binary-constants-1.c: Add test suites for
	the 0b-prefixed binary integer constants.
	* testsuite/gcc.dg/binary-constants-2.c: Ditto.
	* testsuite/gcc.dg/binary-constants-3.c: Ditto.
	* testsuite/gcc.dg/binary-constants-4.c: Ditto.

From-SVN: r125346
2007-06-05 22:25:27 +00:00
Uros Bizjak 1a5f8b894c re PR tree-optimization/32215 (ICE in supportable_narrowing_operation, at tree-vectorizer.c:1907)
PR tree-optimization/32215
        * tree-vectorizer.c (supportable_widening_operation): Return false
        for unsupported FIX_TRUNC_EXPR tree code.
        (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.

From-SVN: r125343
2007-06-05 22:23:58 +02:00
Nathan Froyd 52ff33d0eb rs6000.h (FIXED_SCRATCH): Use r0 as a scratch register on SPE targets.
* config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
	register on SPE targets.  Change documentation to reflect
	reality.
	* config/rs6000/rs6000.c (rs6000_conditional_register_usage):
	Change FIXED_SCRATCH to 14 and document why we're keeping r14
	out of the register allocation pool.
	(rs6000_reg_live_or_pic_offset_p): New function.
	(rs6000_emit_prologue): Move the actual saving of LR up to free
	r0 for holding r11.  Split saving of SPE 64-bit registers into
	its own case.  Ensure that offsets will always be in-range for
	'evstdd' by using r11 as a scratch register to point at the start
	of the SPE save area.  Save r11 if necessary, as it is the static
	chain register.
	(rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
	into its own case.  Ensure that offsets will always be in-range
	for 'evldd' by using r11 as a scratch register to point at the
	start of the SPE save area.  Also adjust r11 when restoring
	the stack pointer to compensate for pre-loading r11.

From-SVN: r125340
2007-06-05 19:46:23 +00:00
Thomas Neumann 7fc40a9c9c typo
From-SVN: r125338
2007-06-05 16:16:23 +00:00
Thomas Neumann ae50c0cbc8 cfg.c (init_flow): Use type safe memory macros.
* cfg.c (init_flow): Use type safe memory macros.
	(alloc_block): Likewise.
	(unchecked_make_edge): Likewise.
	(dump_flow_info): Avoid using C++ keywords as variable names.
	(copy_original_table_clear): Cast according to the coding conventions.
	(copy_original_table_set): Likewise.
	* cfgexpand (label_rtx_for_bb): Likewise.
	(expand_gimüle_basic_block): Likewise.
	* cfghooks.c (dump_bb): Likewise.
	(lv_adjust_loop_header_phi): Avoid using C++ keywords as variable names.
	(lv_add_condition_to_bb): Likewise.
	* cfglayout (relink_block_chain): Cast according to the coding
	conventions.
	(fixup_reorder_chain): Likewise.
	(fixup_fallthru_exit_predecessor): Likewise.
	* cfgloop.c (glb_enum_p): Likewise.
	(get_exit_description): Likewise.
	(dump_recorded_exit): Likewise.
	* cfgloop.h (enum loop_estimation): Move out of struct scope...
	(struct loop): ... from here.
	* cfgloopmanip (rpe_enum_p): Cast according to the coding conventions.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	(rtl_split_block): Likewise.
	(rtl_dump_bb): Likewise.
	(cfg_layout_split_block): Likewise.
	(init_rtl_bb_info): Use typesafe memory macros.

	* graphds.h (struct graph_edge): Renamed edge to graph_edge.
	* graphds.h: Updated all usages of edge to graph_edge.
	* graphds.c: Likewise.
	* cfgloopanal.c: Likewise.

From-SVN: r125336
2007-06-05 15:41:04 +00:00
Ian Lance Taylor 3fe5bcaf11 tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a PLUS_EXPR or MINUS_EXPR node before setting...
./:	* tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
	PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
	(extract_range_from_assert): Set TREE_NO_WARNING when creating an
	expression.
	(test_for_singularity): Likewise.
testsuite/:
	* gcc.dg/Wstrict-overflow-19.c: New test.

From-SVN: r125334
2007-06-05 13:18:22 +00:00
H.J. Lu a176d60f9d constraints.md ("Y2"): Replaced by ...
2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/constraints.md ("Y2"): Replaced by ...
	("Yt"): This.
	* config/i386/i386.md: Likewise.
	* config/i386/mmx.md: Likewise.
	* config/i386/sse.md: Likewise.

From-SVN: r125333
2007-06-05 05:54:41 -07:00
H.J. Lu c3b9a8d688 constraints.md ("z"): Replaced by ...
2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/constraints.md ("z"): Replaced by ...
	("Y0"): This.
	* config/i386/sse.md (sse4_1_blendvpd): Likewise.
	(sse4_1_blendvps): Likewise.
	(sse4_1_pblendvb): Likewise.
	(sse4_2_pcmpestr): Likewise.
	(sse4_2_pcmpestrm): Likewise.
	(sse4_2_pcmpestr_cconly): Likewise.
	(sse4_2_pcmpistr): Likewise.
	(sse4_2_pcmpistrm): Likewise.
	(sse4_2_pcmpistr_cconly): Likewise.

Move testsuite ChangeLog to testsuite/ChangeLog.

From-SVN: r125332
2007-06-05 05:53:27 -07:00
Razya Ladelsky b8ff1d5bbb matrix-reorg.c (transform_access_sites): Fix computation.
2007-06-05  Razya Ladelsky  <razya@il.ibm.com>

        * matrix-reorg.c (transform_access_sites): Fix computation.
        (transform_allocation_sites): Same.
        * testsuite/gcc.dg/matrix/matrix-6.c: Remove conversion.

From-SVN: r125331
2007-06-05 10:48:33 +00:00
Uros Bizjak cc55c4b074 i386.c (override_options): Use TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
* config/i386/i386.c (override_options): Use
	TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.

From-SVN: r125328
2007-06-05 08:44:17 +02:00
Uros Bizjak cb4828955f md (reg_not_xmm0_operand): New predicate.
* config/i386/predicates/md (reg_not_xmm0_operand): New predicate.
	(nonimm_not_xmm0_operand): Ditto.
	* config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
	as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
	as operand[2] predicate.  Require "z" class XMM register for
	operand[3].  Adjust asm template.
	("sse4_1_blendvpd"): Ditto.
	("sse4_1_pblendvb"): Ditto.
 	* config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
	force op2 into xmm0 register for variable blend instructions.

From-SVN: r125327
2007-06-05 07:35:39 +02:00
Tom Tromey 7114359fb6 c-tree.h (start_enum): Update.
* c-tree.h (start_enum): Update.
	(build_enumerator): Likewise.
	* c-decl.c (enum_next_value): Removed.
	(enum_overflow): Likewise.
	(start_enum): Add c_enum_contents argument.  Don't use globals.
	(build_enumerator): Likewise.
	* c-tree.h (struct c_enum_contents): New struct.

From-SVN: r125322
2007-06-04 23:19:19 +00:00
Tom Tromey 762f7d9d8a * c-common.c (c_common_get_alias_set): Fix indentation.
From-SVN: r125321
2007-06-04 22:13:40 +00:00
Ian Lance Taylor 9a46cc164c tree-vrp.c (adjust_range_with_scev): When loop is not expected to overflow, reduce overflow infinity to regular infinity.
./:	* tree-vrp.c (adjust_range_with_scev): When loop is not expected
	to overflow, reduce overflow infinity to regular infinity.
	(vrp_var_may_overflow): New static function.
	(vrp_visit_phi_node): Check vrp_var_may_overflow.
testsuite/:
	* gcc.dg/Wstrict-overflow-18.c: New test.

From-SVN: r125319
2007-06-04 21:56:10 +00:00
Kazu Hirata b9d493510e * stor-layout.c (layout_type): Remove duplicate code.
From-SVN: r125318
2007-06-04 21:29:01 +00:00
Uros Bizjak 8de7ef2a87 re PR c/32191 (ICE with complex __float128)
PR c/32191
        * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
        before build_common_builtin_nodes ().

testsuite/ChangeLog:

        PR c/32191
        * gcc.dg/pr32191.c: New test.

From-SVN: r125314
2007-06-04 22:07:37 +02:00
Steve Ellcey 15eb3a2e59 re PR target/31733 (ICE in rtl_verify_flow_info, at cfgrtl.c:2050: {return_internal} (nil))
PR target/31733
	* cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.

From-SVN: r125312
2007-06-04 15:58:12 +00:00
Jan Hubicka c443019c4d tree-predcom.c (replace_ref_with, [...]): Call build_gimple_modify_stmt instead of _stat version.
* tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
	reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
	instead of _stat version.

From-SVN: r125308
2007-06-04 07:20:01 +00:00
Zdenek Dvorak 49379cb193 re PR tree-optimization/32194 (ice for legal code with -O3 with complex in loop)
PR tree-optimization/32194
	* tree-predcom.c (determine_offset): Check that both references have
	the same type.

From-SVN: r125298
2007-06-03 19:21:12 +00:00
Zdenek Dvorak 66f97d31f2 cfgloopmanip.c (remove_path, [...]): Change dom_bbs to vector.
* cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
	Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
	* loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
	* tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
	Add argument to iterate_fix_dominators call.
	(remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
	* gcse.c (hoist_code): Change domby to vector.
	* cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
	Add argument to iterate_fix_dominators call.
	* loop-doloop.c (doloop_modify): Changed recount_dominator to
	recompute_dominator.
	* lambda-code.c (perfect_nestify): Ditto.
	* cfgloopanal.c: Include graphds.h.
	(struct edge, struct vertex, struct graph, dump_graph, new_graph,
	add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
	(mark_irreducible_loops): Use graphds_scc.  Remove argument from
	add_edge call.
	* graphds.c: New file.
	* graphds.h: New file.
	* dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
	(get_dominated_by, get_dominated_by_region): Change return type to
	vector.
	(verify_dominators): Recompute all dominators and compare the results.
	(recount_dominator): Renamed to ...
	(recompute_dominator): ... this.  Do not check that the block is
	dominated by entry.
	(iterate_fix_dominators): Reimplemented.
	(prune_bbs_to_update_dominators, root_of_dom_tree,
	determine_dominators_for_sons): New functions.
	* et-forest.c (et_root): New function.
	* et-forest.h (et_root): Declare.
	* Makefile.in (graphds.o): Add.
	(cfgloopanal.o): Add graphds.h dependency.
	(dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
	* basic-block.h (get_dominated_by, get_dominated_by_region,
	iterate_fix_dominators): Declaration changed.
	(recount_dominator): Renamed to ...
	(recompute_dominator): ... this.
	* tree-ssa-threadupdate.c (thread_block): Free dominance info.
	(thread_through_all_blocks): Do not free dominance info.

From-SVN: r125297
2007-06-03 19:10:44 +00:00
Andreas Schwab b6a9c30c80 m68k.c (override_options): Don't override REAL_MODE_FORMAT.
* config/m68k/m68k.c (override_options): Don't override
	REAL_MODE_FORMAT.
	* config/m68k/m68k-modes.def (SF, DF): Define to use
	motorola_single_format and motorola_double_format, resp.
	* real.c (motorola_single_format): Renamed from
	coldfire_single_format.
	(motorola_double_format): Renamed from coldfire_double_format.
	(encode_ieee_extended): Generate a proper canonical NaN image
	respecting canonical_nan_lsbs_set.
	(ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
	true.
	* real.h: Adjust declarations.

From-SVN: r125295
2007-06-03 14:32:43 +00:00
Kaz Kojima 439211a08d re PR target/32163 (Compiling with stack protector causes reigster spill failure)
PR target/32163
	* config/sh/sh.md (symGOT_load): Don't schedule insns when
	the symbol is generated with the stack protector.

From-SVN: r125292
2007-06-03 04:38:52 +00:00
Kazu Hirata 2bccb817ce m68k.c (m68k_attribute_table): Add "interrupt".
* config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
	(m68k_get_function_kind): Return m68k_fk_interrupt_handler on
	"interrupt".
	* doc/extend.texi (interrupt): Mention m68k.

From-SVN: r125290
2007-06-03 00:43:21 +00:00
Uros Bizjak 57d47da6b8 revert: sse.md ("sse4_1_blendvpd"): Require "z" class XMM register for operand[3].
Revert:

 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
 
       * config/i386/sse.md ("sse4_1_blendvpd"): Require "z" class XMM
       register for operand[3].  Adjust asm template.
       ("sse4_1_blendvpd"): Ditto.
       ("sse4_1_pblendvb"): Ditto.
        * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
       force operands[3] into xmm0 register for variable blend instructions.

From-SVN: r125285
2007-06-02 20:29:03 +02:00
H.J. Lu 8cdf2fb9d6 Fix a typo in ChangeLog.
From-SVN: r125284
2007-06-02 10:44:29 -07:00
Uros Bizjak c7a69424c9 i386.md ("sse4_1_blendvpd"): Require "z" class XMM register for operand[3].
* config/i386/i386.md ("sse4_1_blendvpd"): Require "z" class XMM
        register for operand[3].  Adjust asm template.
        ("sse4_1_blendvpd"): Ditto.
        ("sse4_1_pblendvb"): Ditto.
        * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
        safe_vector_operand() if input operand is VECTOR_MODE_P operand. Do not
        force operands[3] into xmm0 register for variable blend instructions.
        (ix86_expand_sse_pcmpestr): Do not check operands for
        "register_operand", when insn operand predicate is "register_operand".
        (ix86_expand_sse_pcmpistr): Ditto.

From-SVN: r125280
2007-06-02 14:49:07 +02:00
H.J. Lu 06f4e35d82 i386.h (enum reg_class): New.
* config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
        (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
        (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
        (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
        * config/i386/constraints.md ("z"): New register constraint
        for members of SSE_FIRST_REG class.
        * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
        * config/i386/i386.c (regclass_map): Change class of %xmm0 to
        SSE_FIRST_REG class.
        (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
        (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
        (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
        (IX86_BUILTIN_PCMPESTRM128): Likewise.
        (IX86_BUILTIN_PCMPESTRA128): Likewise.
        (IX86_BUILTIN_PCMPESTRC128): Likewise.
        (IX86_BUILTIN_PCMPESTRO128): Likewise.
        (IX86_BUILTIN_PCMPESTRS128): Likewise.
        (IX86_BUILTIN_PCMPESTRZ128): Likewise.
        (IX86_BUILTIN_PCMPISTRI128): Likewise.
        (IX86_BUILTIN_PCMPISTRM128): Likewise.
        (IX86_BUILTIN_PCMPISTRA128): Likewise.
        (IX86_BUILTIN_PCMPISTRC128): Likewise.
        (IX86_BUILTIN_PCMPISTRO128): Likewise.
        (IX86_BUILTIN_PCMPISTRS128): Likewise.
        (IX86_BUILTIN_PCMPISTRZ128): Likewise.
        (struct builtin_description): Change "flag" field to unsigned.
        (bdesc_pcmpestr): New builtin description table.
        (bdesc_pcmpistr): Likewise.
        (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
        v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
        Initialize pcmp[ei]str[im] insns for SSE4.2.
        (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
        (ix86_expand_sse_pcmpistr): Likewise.
        (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
        * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
        (UNSPEC_PCMPISTR): Likewise.
        * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
        (sse4_2_pcmpestri):New isns pattern.
        (sse4_2_pcmpestrm): Likewise.
        (sse4_2_pcmpestr_cconly): Likewise.
        (sse4_2_pcmpistr): New insn patern and splitter.
        (sse4_2_pcmpistri):New isns pattern.
        (sse4_2_pcmpistrm): Likewise.
        (sse4_2_pcmpistr_cconly): Likewise.
        * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
        in SSE4.2.


Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r125279
2007-06-02 11:07:00 +02:00
David Daney adb04511e3 mips.c (mips_output_mi_thunk): Only load gp if not LOADGP_ABSOLUTE and not binds_local_p.
* config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
	LOADGP_ABSOLUTE and not binds_local_p.

From-SVN: r125276
2007-06-02 04:27:40 +00:00
Geoffrey Keating 648beecdcd darwin.h (LINK_SPEC): Pass -fpie through to the linker.
2007-06-01  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.

Index: testsuite/ChangeLog
2007-06-01  Geoffrey Keating  <geoffk@apple.com>

	* gcc.dg/pie-link.c: New test.

From-SVN: r125270
2007-06-01 22:58:14 +00:00
Ian Lance Taylor e07e405d7b tree-vrp.c (compare_name_with_value): Always set used_strict_overflow if we get a result from the variable itself.
./:	* tree-vrp.c (compare_name_with_value): Always set
	used_strict_overflow if we get a result from the variable itself.
testsuite/:
	* gcc.dg/Wstrict-overflow-17.c: New test.

From-SVN: r125269
2007-06-01 22:47:02 +00:00
Ian Lance Taylor 0374328683 re PR rtl-optimization/31455 (lower subreg causes a performance regression in the inner loop sometimes)
PR rtl-optimization/31455
	* lower-subreg.c (find_decomposable_subregs): Don't decompose
	subregs which have a cast between modes which are not tieable.

From-SVN: r125265
2007-06-01 15:06:19 +00:00
Uros Bizjak b7e6d1da6e expr.c (force_operand): Remove breaks after return statements.
* expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
	breaks after return statements.

From-SVN: r125259
2007-06-01 07:59:23 +02:00
Kaz Kojima 5e77c6f932 sh.c (fpscr_set_from_mem): Call get_free_reg only after no_new_pseudos.
* config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
	only after no_new_pseudos.

From-SVN: r125258
2007-06-01 04:58:23 +00:00
Eric Christopher ed1223badd expr.c (convert_move): Assert that we don't have a BLKmode operand.
2007-05-31  Eric Christopher  <echristo@apple.com>

	* expr.c (convert_move): Assert that we don't have a BLKmode
	operand.
	(store_expr): Handle BLKmode moves by calling emit_block_move.

From-SVN: r125246
2007-06-01 00:08:26 +00:00
Daniel Berlin 2c751309df in gcc/ 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
in gcc/
2007-05-31  Daniel Berlin  <dberlin@dberlin.org>

	* c-typeck.c (build_indirect_ref): Include type in error message.
	(build_binary_op): Pass types to binary_op_error.
	* c-common.c (binary_op_error): Take two type arguments, print out
	types with error.
	* c-common.h (binary_op_error): Update prototype.
In gcc/cp
2007-05-31  Daniel Berlin  <dberlin@dberlin.org>

	* typeck.c (build_binary_op): Include types in error.

From-SVN: r125239
2007-05-31 20:58:29 +00:00
H.J. Lu 6847c43d73 i386.c: Correct coments on -mno-sse4.
2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c: Correct coments on -mno-sse4.

From-SVN: r125238
2007-05-31 13:50:51 -07:00
H.J. Lu 3b8dd0716f config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (i[34567]86-*-*): Add nmmintrin.h to
	extra_headers.
	(x86_64-*-*): Likewise.

	* config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
	(OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE2_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE3_UNSET): Likewise.
	(OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4): Likewise.
	(OPTION_MASK_ISA_SSE4_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
	(ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle
	SSE4.2.
	(override_options): Support SSE4.2.
	(ix86_build_const_vector): Support SImode and DImode.
	(ix86_build_signbit_mask): Likewise.
	(ix86_expand_int_vcond): Support V2DImode.
	(IX86_BUILTIN_CRC32QI): New for SSE4.2.
	(IX86_BUILTIN_CRC32HI): Likewise.
	(IX86_BUILTIN_CRC32SI): Likewise.
	(IX86_BUILTIN_CRC32DI): Likewise.
	(IX86_BUILTIN_PCMPGTQ): Likewise.
	(bdesc_crc32): Likewise.
	(bdesc_sse_3arg): Likewise.
	(ix86_expand_crc32): Likewise.
	(ix86_init_mmx_sse_builtins): Support SSE4.2.
	(ix86_expand_builtin): Likewise.

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
	__SSE4_2__ for -msse4.2.

	* config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
	(CRC32MODE): Likewise.
	(crc32modesuffix): Likewise.
	(crc32modeconstraint): Likewise.
	(sse4_2_crc32<mode>): Likewise.
	(sse4_2_crc32di): Likewise.

	* config/i386/i386.opt (msse4.2): New for SSE4.2.
	(msse4): Likewise.

	* config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header
	file.

	* config/i386/smmintrin.h: Add SSE4.2 intrinsics.

	* config/i386/sse.md (sse4_2_gtv2di3): New pattern for
	SSE4.2.
	(vcond<mode>): Use SSEMODEI instead of SSEMODE124.
	(vcondu<mode>): Likewise.

	* doc/extend.texi: Document SSE4.2 built-in functions.

	* doc/invoke.texi: Document -msse4.2/-msse4.

From-SVN: r125236
2007-05-31 12:52:24 -07:00
Zdenek Dvorak 2664efb66b re PR tree-optimization/32160 (ICE with -O3 in verify_ssa)
PR tree-optimization/32160
	* tree-predcom.c (predcom_tmp_var): New function.  Mark created
	variable as gimple reg.
	(initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.

	* gfortran.dg/predcom-1.f: New test.

From-SVN: r125228
2007-05-31 16:27:05 +00:00
Kazu Hirata 01e4dd0dad gcc.c (main): Don't consider linker options when issuing the warning about a linker input...
* gcc.c (main): Don't consider linker options when issuing the
	warning about a linker input file not being used.

From-SVN: r125226
2007-05-31 14:48:06 +00:00
Ralf Wildenhues 3b7bab4d68 * tree-vrp.c (compare_names): Initialize sop.
From-SVN: r125203
2007-05-30 22:51:22 +00:00
Dirk Mueller 62090afbfb cgraphunit.c (cgraph_analyze_function): Remove computation of inline parameters.
* cgraphunit.c (cgraph_analyze_function): Remove
        computation of inline parameters.

From-SVN: r125202
2007-05-30 22:22:43 +00:00
Uros Bizjak b42f4d620b * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
From-SVN: r125198
2007-05-30 22:07:06 +02:00
Richard Sandiford 9403b7f7ca config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
gcc/
	* config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
	Add vx-common.h.  Include vxworks.h between vx-common.h and
	arm/vxworks.h.
	* config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
	redefining.
	* config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
	(TARGET_ASM_DESTRUCTOR): Likewise.
	* config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
	instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
	(OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
	(CC1_SPEC): Add -tstrongarm.  Line up backslashes.
	(VXWORKS_ENDIAN_SPEC): Define.
	(ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
	(LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
	VXWORKS_* equivalents.
	(LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
	(ASM_FILE_START): Delete.
	(TARGET_VERSION): Reformat.
	(FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
	(DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
	* config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
	(FPBIT, DPBIT): Define.
	(fp-bit.c, dp-bit.c): New rules.
	(MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
	* config/arm/arm-protos.h (arm_emit_call_insn): Declare.
	* config/arm/arm.h: Include vxworks-dummy.h.
	* config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
	Mark with ATTRIBUTE_UNUSED.
	(arm_override_options): Do not allow VxWorks RTP PIC to be used
	for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
	make it incompatible with -msingle-pic-base.
	(arm_function_ok_for_sibcall): Return false for calls that might
	go through a VxWorks PIC PLT entry.
	(require_pic_register): New function, split out from...
	(legitimize_pic_address): ...here.  Do not use GOTOFF accesses
	for VxWorks RTPs.
	(arm_load_pic_register): Handle the VxWorks RTP initialization
	sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
	(arm_emit_call_insn): New function.
	(arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
	* config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
	(pic_offset_arm): New pattern.
	(call, call_value): Use arm_emit_call_insn.
	(call_internal, call_value_internal): New expanders.
	* config/arm/lib1funcs.asm (__PLT__): Define to empty for
	VxWorks unless __PIC__.

From-SVN: r125196
2007-05-30 19:04:09 +00:00
Eric Christopher 5abc5de971 genrecog.c: Include regs.h in generated file.
2007-05-30  Eric Christopher  <echristo@gmail.com>

	* genrecog.c: Include regs.h in generated file.
	* genemit.c: Ditto. Fix up formatting.
	* config/mn10300/constraints.md: New.
	* config/mn10300/mn10300.md: Include.
	* config/mn10300/mn10300.c(mn10300_secondary_reload_class):
	Fix up for removed macro.
	* config/mn10300/predicates.md (call_address_operand):  Ditto.
	* config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_I): Ditto.
	(CONST_OK_FOR_J): Ditto.
	(CONST_OK_FOR_K): Ditto.
	(CONST_OK_FOR_L): Ditto.
	(CONST_OK_FOR_M): Ditto.
	(CONST_OK_FOR_N): Ditto.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
	(OK_FOR_Q): Ditto.
	(OK_FOR_R): Ditto.
	(OK_FOR_T): Ditto.
	(EXTRA_CONSTRAINT): Ditto.

From-SVN: r125192
2007-05-30 17:07:58 +00:00
Uros Bizjak 853a33f384 i386.h (MASK_64BIT, [...]): Remove defines.
* config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
	Remove defines.
	* config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
	OPTION_MASK_ISA_64BIT.
	* config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.

From-SVN: r125189
2007-05-30 16:44:35 +02:00
Richard Guenther fa13976560 re PR middle-end/32152 (omp lowering creates mismatched types)
2007-05-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32152
	* gimplify.c (gimplify_omp_atomic_pipeline): Use correct
	types for comparison.
	* fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
	with original typed arguments.
	* config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.

From-SVN: r125187
2007-05-30 14:11:06 +00:00
Jakub Jelinek 722ba5eeac re PR tree-optimization/31769 (ICE with OpenMP and exceptions)
PR tree-optimization/31769
	* except.c (duplicate_eh_regions): Clear prev_try if
	ERT_MUST_NOT_THROW region is inside of ERT_TRY region.

	* g++.dg/gomp/pr31769.C: New test.

From-SVN: r125183
2007-05-30 15:46:25 +02:00
Zdenek Dvorak 1896570321 tree-scalar-evolution.c (scev_const_prop): Do not create labels.
* tree-scalar-evolution.c (scev_const_prop): Do not create labels.
	* tree-ssa-sink.c (statement_sink_location): Return basic block and
	bsi of the location where statements should be inserted.
	(sink_code_in_bb): Take bsi from statement_sink_location.
	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
	instead of bsi_start.
	* tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
	bsi_insert_after.
	* tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
	(bsi_move_before): Document inconsistency with bsi_move_after.
	(tree_redirect_edge_and_branch): Do not create labels if not necessary.

From-SVN: r125181
2007-05-30 13:29:51 +00:00
Uros Bizjak 0a1c5e5520 i386.h (TARGET_ABM): New define.
* config/i386/i386.h (TARGET_ABM): New define.
	(TARGET_POPCNT): Ditto.
	(TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
	New temporary defines to redefine from OPTION_ISA_* defines.
	(MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
	New temporary defines to redefine from OPTION_MASK_ISA_* defines.
	(ix86_isa_flags): New extern int declaration.
	(TARGET_SUBTARGET_DEFAULT): New define.
	(TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
	(TARGET_SUBTARGET32_DEFAULT): Ditto.
	(TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
	(TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
	* config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
	* config/i386/darwin.h: Change TARGET_64BIT define to
	OPTION_ISA_64BIT.

	* config/i386/i386.opt (m3dnowa): Define as undocumented option
	using existing "ix86_isa_flags" varible.
	(m32, m64): Use existing "ix86_isa_flags" variable.
	(mmmx, m3dnow): Ditto.
	(msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
	(mabm): Define as non-negative option using "x86_abm" variable.
	(mpopcnt): Define as non-negative option using "x86_popcnt" variable.

	* config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
	Rewrite feature test bitmap.
	(ix86_isa_flags): New initialized global int varible.
	(ix86_isa_flags_explicit): New static int variable.
	(ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
	msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
	i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
	target_flags_explicit.
	(override_options): Remove "target_enable" and "target_disable" fields
	from "struct ptt". Update processor_target_table accordingly. Remove
	PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
	defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
	"target_flags" and "ix86_isa_flags_explicit" instead of
	"target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
	MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
	PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
	to true when either of PTA_POPCNT or PTA_ABM is set in
	processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
	when either of PTA_PREFETCH_SSE or PTA_SSE is set in
	processor_alias_table flags entry.  Remove handling of
	"target_enable" and "target_disable" fields of processor_target_table.
	Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
	targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
	Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
	targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
	(def_builtin): Mask "mask" variable with "ix86_isa_flags", not
	"target_flags".
	(TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.

From-SVN: r125180
2007-05-30 13:24:32 +02:00
David Daney e440de0e40 re PR target/31975 (segfault in try_split on mips during bootstrap)
PR gcc/31975
	* config/mips/mips.c (mips_output_mi_thunk): Emit
	NOTE_INSN_PROLOGUE_END at beginning of the thunk.

From-SVN: r125178
2007-05-30 04:21:24 +00:00
Hui-May Chang f2f0a9602a i386.c (ix86_function_regparm): Added checking of ix86_force_align_arg_pointer to determine the number of...
* config/i386/i386.c (ix86_function_regparm): Added checking of 
	ix86_force_align_arg_pointer to determine the number of
	register parameters.
	* gcc.target/i386/stack-realign.c: New.

From-SVN: r125173
2007-05-29 22:49:42 +00:00
Zdenek Dvorak 5417e0224b tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
* tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
	(SET_DR_MISALIGNMENT): New.
	* tree-vect-analyze.c (vect_compute_data_ref_alignment,
	vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
	Use SET_DR_MISALIGNMENT.
	* tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
	pointer.
	* tree-data-ref.c (create_data_ref, compute_all_dependences,
	find_loop_nest): Export.
	* tree-data-ref.h (struct data_reference): Change aux field to pointer.
	(create_data_ref, compute_all_dependences, find_loop_nest): Declare.
	* tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
	(L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
	New macros.
	(struct mem_ref): Add field reuse_distance.
	(find_or_create_group, record_ref): Use XNEW instead of xcalloc.
	Initialize reuse_distance field.
	(issue_prefetch_ref): Select temporality of prefetch according to
	reuse_distance.
	(volume_of_references, volume_of_dist_vector, add_subscript_strides,
	self_reuse_distance, determine_loop_nest_reuse): New functions.
	(loop_prefetch_arrays): Call determine_loop_nest_reuse.
	(tree_ssa_prefetch_arrays): Dump L2 cache size.
	* Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
	dependency.

	* gcc.dg/tree-ssa/prefetch-6.c: New test.

From-SVN: r125172
2007-05-29 21:55:47 +00:00
Daniel Berlin 6e2dc028a3 tree-ssa-alias.c: Add aliasing overview.
2007-05-29  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-alias.c: Add aliasing overview.

From-SVN: r125162
2007-05-29 13:09:30 +00:00
Zuxy Meng 9bd196f0e3 re PR target/29498 (FTZ/DAZ for SSE should be ported to mingw32)
libgcc 
	PR target/29498
	* config.host (i[34567]86-*-cygwin* | i[34567]86-*-mingw*) Add
	crtfastmath.o to extra_parts.  Add i386/t-crtfm to tmake_file.
	* config/i386/t-crtfm: Compile crtfastmath.o with
	-minline-all-stringops.

gcc

	PR target/29498
	* config/i386/t-crtfm: Compile crtfastmath.o with
	-minline-all-stringops.
	* config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
	* config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.


Co-Authored-By: Danny Smith <dannysmith@users.sourceforge.net>

From-SVN: r125160
2007-05-29 08:09:16 +00:00
John David Anglin 8119b4e4bb md.texi: Document constraints on HP PA-RISC.
* doc/md.texi: Document constraints on HP PA-RISC.

From-SVN: r125158
2007-05-29 01:12:58 +00:00
John David Anglin 5b28114174 constraints.md: New file.
* pa/constraints.md: New file.
	* pa.md: Include constraints.md.
	* pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
	(integer_store_memory_operand, ldil_cint_p): New functions.
	* pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
	* pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
	IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
	* pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
	* pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.

From-SVN: r125157
2007-05-29 01:01:32 +00:00
Andrew Pinski a87db577fb [multiple changes]
2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>

        PR c/31339
        * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
        case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
        case POSTDECREMENT_EXPR>): Return the error_mark_node
        if either the real or imaginary parts would an
        error_mark_node.

2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>

        PR c++/31339
        * typeck.c (build_unary_op <case PREINCREMENT_EXPR,
        case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
        case POSTDECREMENT_EXPR>): Return the error_mark_node
        if either the real or imaginary parts would an
        error_mark_node.

2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR c/31339
        * gcc.dg/boolcomplex-1.c: New test.

        PR c++/31339
        * g++.dg/ext/boolcomplex-1.c: New test

From-SVN: r125156
2007-05-28 17:25:25 -07:00
Daniel Berlin 3659e0cd91 tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA name when we remove it from a call.
2007-05-28  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
	name when we remove it from a call.

From-SVN: r125147
2007-05-28 21:56:51 +00:00
Kazu Hirata 179daa1590 * global.c (EXECUTE_IF_CONFLICT): Remove.
From-SVN: r125146
2007-05-28 21:29:29 +00:00
Kazu Hirata 70ea680b5d langhooks-def.h: Remove the prototype for hook_get_alias_set_0.
* langhooks-def.h: Remove the prototype for
	hook_get_alias_set_0.
	* langhooks.c (hook_get_alias_set_0): Remove.

From-SVN: r125145
2007-05-28 21:28:31 +00:00
Kazu Hirata cf9226fbc5 targhooks.c (default_narrow_bitfield): Remove.
* targhooks.c (default_narrow_bitfield): Remove.
	* targhooks.h: Remove the prototype for
	default_narrow_bitfield.

From-SVN: r125144
2007-05-28 21:27:29 +00:00
Andrew Pinski 3613c7abfa re PR tree-optimization/32100 (vrp bitfield miscompilation)
2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/32100
        * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
        return true when truth_value_p is true and the type
        is of signed:1.

2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/32100
         * gcc.c-torture/execute/vrp-7.c: New test.

From-SVN: r125139
2007-05-28 12:43:10 -07:00
Gerald Pfeifer 565f8ce5ff install.texi (Prerequisites): We no longer require Autoconf 2.13 for the top-level.
* doc/install.texi (Prerequisites): We no longer require Autoconf
	2.13 for the top-level.

From-SVN: r125131
2007-05-28 15:42:25 +00:00
Uros Bizjak e9dd4c3e04 i386.c (ix86_expand_vector_move): Expand unaligned memory access via x86_expand_vector_move_misalign() only for...
* target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
	memory access via x86_expand_vector_move_misalign() only for
	TImode values on 32-bit targets.

From-SVN: r125129
2007-05-28 14:17:42 +02:00
Razya Ladelsky 138e99d1a0 Change date of changelog
From-SVN: r125127
2007-05-28 11:23:08 +00:00
Razya Ladelsky 43d861a5bc matrix-reorg.c: New file.
2007-05-07  Razya Ladelsky  <razya@il.ibm.com>  
        
        * matrix-reorg.c: New file. Implement matrix flattening and transposing
	    optimization.
        * tree-pass.h: Add matrix reorg pass.
        * common.opt: Add fipa-mreorg flag.
        * Makefile.in: Add matrix-reorg.c.
        * passes.c: Add matrix reorg pass.
	  * varpool.c (add_new_static_var): New function.
	  * cgraph.h (add_new_static_var): Declare.

From-SVN: r125126
2007-05-28 11:10:27 +00:00
Eric Christopher bcb2d70142 rs6000.c (rs6000_emit_prologue): Update sp_offset depending on stack size.
2007-05-27  Eric Christopher  <echristo@apple.com>

	    * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
	    sp_offset depending on stack size. Save r12 depending
	    on registers we're saving later.
	    (rs6000_emit_epilogue): Update sp_offset depending only
	    on stack size.

From-SVN: r125116
2007-05-27 19:13:07 +00:00
Zdenek Dvorak d51157deee tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
* tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
	* tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
	* ifcvt.c (if_convert): Ditto.
	* tree-ssa-threadupdate.c (thread_block): Ditto.
	(thread_through_all_blocks): Ditto.  Assert that loops were analysed.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
	verify_loop_closed_ssa): Check number_of_loops instead of current_loops.
	* predict.c (tree_estimate_probability): Ditto.
	* tree-if-conv.c (main_tree_if_conversion): Ditto.
	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* tree-scalar-evolution.c (scev_const_prop): Ditto.
	(scev_finalize): Do not do anything if scev analysis was not
	initialized.
	* cfgloopanal.c (mark_irreducible_loops): Do not check whether
	current_loops == NULL.
	(mark_loop_exit_edges): Check number_of_loops instead of current_loops.
	* loop-init.c (loop_optimizer_init): Do not free current_loops when
	there are no loops.
	(loop_optimizer_finalize): Assert that loops were analyzed.
	(rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
	rtl_doloop): Check number_of_loops instead of current_loops.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
	current_loops == NULL.
	(tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
	gate_tree_vectorize tree_linear_transform, check_data_deps,
	tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
	tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
	Check number_of_loops instead of current_loops.
	(tree_ssa_loop_done): Do not check whether current_loops == NULL.
	* tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
	free loops if available.
	(execute_pre): Do not pass do_fre to fini_pre.

From-SVN: r125114
2007-05-27 17:23:11 +00:00
Tobias Burnus fe67caf629 re PR middle-end/32083 (bug in transfer integer->real->integer)
2007-05-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32083
	* real.c (mpfr_from_real): Fix sign of -Inf.

2007-05-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32083
	* gfortran.dg/transfer_simplify_3.f90: New.

From-SVN: r125108
2007-05-27 10:09:51 +02:00
H.J. Lu 8ff43db0f9 tree-vect-transform.c (vectorizable_conversion): Initialize tree_code variables to ERROR_MARK.
2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-vect-transform.c (vectorizable_conversion): Initialize
	tree_code variables to ERROR_MARK.
	(vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion): Likewise.

From-SVN: r125107
2007-05-27 00:21:58 -07:00
Uros Bizjak 72bd078f6e re PR target/32065 (Many dfp testsuite failures for -msse targets)
PR target/32065
        * config/i386/i386.md (movti): Handle push operands via
        ix86_expand_push().

testsuite/ChangeLog:

        PR target/32065
        * gcc.target/i386/pr32065-1.c: Rename from pr32065.c.  Add -std=gnu99
        to compile options.
        * gcc.target/i386/pr32065-2.c: New test.

From-SVN: r125102
2007-05-26 23:35:41 +02:00
Kazu Hirata 5ef1348f3c tree-flow.h: Remove the prototype for is_aliased_with.
* tree-flow.h: Remove the prototype for is_aliased_with.
	* tree-ssa-alias.c (is_aliased_with): Remove.

From-SVN: r125095
2007-05-26 15:17:38 +00:00
Kazu Hirata eb83419390 basic-block.h: Remove the prototype for merge_seq_blocks.
* basic-block.h: Remove the prototype for merge_seq_blocks.
	* cfgcleanup.c (merge_seq_blocks): Remove.

From-SVN: r125094
2007-05-26 15:16:45 +00:00
H.J. Lu e5ac0b9bce i386-protos.h (ix86_expand_sse4_unpack): New.
2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.

	* config/i386/i386.c (ix86_expand_sse4_unpack): New.

	* config/i386/sse.md (vec_unpacku_hi_v16qi): Call
	ix86_expand_sse4_unpack if SSE4.1 is enabled.
	(vec_unpacks_hi_v16qi): Likewise.
	(vec_unpacku_lo_v16qi): Likewise.
	(vec_unpacks_lo_v16qi): Likewise.
	(vec_unpacku_hi_v8hi): Likewise.
	(vec_unpacks_hi_v8hi): Likewise.
	(vec_unpacku_lo_v8hi): Likewise.
	(vec_unpacks_lo_v8hi): Likewise.
	(vec_unpacku_hi_v4si): Likewise.
	(vec_unpacks_hi_v4si): Likewise.
	(vec_unpacku_lo_v4si): Likewise.
	(vec_unpacks_lo_v4si): Likewise.

From-SVN: r125093
2007-05-26 07:34:21 -07:00
Kazu Hirata 110abdbc68 i386.c, [...]: Fix comment typos.
* config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
	df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
	fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
	tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
	tree-vrp.c: Fix comment typos.  Follow spelling conventions.
	* doc/tm.texi: Follow spelling conventions.

From-SVN: r125090
2007-05-26 13:00:47 +00:00