Commit Graph

137 Commits

Author SHA1 Message Date
Uros Bizjak 13c594155d re PR target/27855 (reassociation causes the RA to be confused)
PR target/27855
        * doc/extend.texi: Add ftree-reassoc flag.
        * common.opt (ftree-reassoc): New flag.
        * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
        (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.

From-SVN: r126491
2007-07-09 21:22:03 +02:00
Nick Clifton 6ae4be32f1 common.opt (fipa-matrix-reorg): Add Optimization attribute.
* common.opt (fipa-matrix-reorg): Add Optimization attribute.
  (fdce, fdse, fpredictive-commoning): Likewise.

From-SVN: r126073
2007-06-28 09:30:57 +00:00
Seongbae Park 0a090f42f6 opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
2007-06-12  Seongbae Park  <seongbae.park@gmail.com>

	* opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
	* dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
	to indicate an error.
	(dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
	(dbg_cnt_process_opt): Print an error on a bad argument.
	* dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
	* common.opt (-fdbg-cnt-list): New.
	* doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.

From-SVN: r125657
2007-06-12 20:47:16 +00:00
Daniel Berlin 6fb5fa3cbc Merge dataflow branch into mainline
From-SVN: r125624
2007-06-11 18:02:15 +00:00
Harsha Jagasia 792ed98bb7 extend.texi: Add fvect-cost-model flag.
gcc/ChangeLog:
2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
            Tony Linthicum <tony.linthicum@amd.com>

	* doc/extend.texi: Add fvect-cost-model flag.
	* common.opt (fvect-cost-model): New flag.
	* tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
	cost fields in stmt_vec_info struct for STMT.
	* tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
	fields in stmt_vec_info struct and access functions for the same.
	(TARG_COND_BRANCH_COST): Define cost of conditional branch.
	(TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
	load, store and vector to scalar operation.
	(TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
	(TARG_VEC_LOAD_COST): Define cost of aligned vector load.
	(TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
	(TARG_VEC_STORE_COST): Define cost of vector store.
	(vect_estimate_min_profitable_iters): Define new function.
	* tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
	check to evaluate if loop iterations are less than minimum profitable
	iterations determined by cost model or minimum vect loop bound defined
	by user, whichever is more conservative.
	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
	run-time check to evaluate if loop iterations are less than minimum
	profitable iterations determined by cost model or minimum vect loop
	bound defined by user, whichever is more conservative.
	(vect_estimate_min_profitable_iterations): New function to estimate
	mimimimum iterartions required for vector version of loop to be
	profitable over scalar version.
        (vect_model_reduction_cost): New function.
	(vect_model_induction_cost): New function.
	(vect_model_simple_cost): New function.
	(vect_cost_strided_group_size): New function.
	(vect_model_store_cost): New function.
	(vect_model_load_cost): New function.
	(vectorizable_reduction): Call vect_model_reduction_cost during
	analysis phase.
	(vectorizable_induction): Call vect_model_induction_cost during
	analysis phase.
	(vectorizable_load): Call vect_model_load_cost during analysis phase.
	(vectorizable_store): Call vect_model_store_cost during analysis phase.
	(vectorizable_call, vectorizable_assignment, vectorizable_operation,
	vectorizable_promotion, vectorizable_demotion): Call 
	vect_model_simple_cost during analysis phase.

gcc/testsuite/ChangeLog:
2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>

	* gcc.dg/vect/costmodel: New directory.
	* gcc.dg/vect/costmodel/i386: New directory.
	* gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp: New testsuite.
	* gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c:
	New test.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-31.c: New test.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-33.c: New test.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-68.c: New test.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c: New test.
	* gcc.dg/vect/costmodel/x86_64: New directory.
	* gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp:
	New testsuite.	
	* gcc.dg/vect/costmodel/x86_64/costmodel-fast-math-vect-pr29925.c:
	New test.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c: New test.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c: New test.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-68.c: New test.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: New test.
	* gcc.dg/vect/costmodel/x86_64/costmodel-pr30843.c: New test.

Co-Authored-By: Tony Linthicum <tony.linthicum@amd.com>

From-SVN: r125575
2007-06-08 16:30:49 +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
Zdenek Dvorak bbc8a8dc0d passes.texi: Document predictive commoning.
* doc/passes.texi: Document predictive commoning.
	* doc/invoke.texi (-fpredictive-commoning): Document.
	* opts.c (decode_options): Enable flag_predictive_commoning on -O3.
	* tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
	adding indices to the generated name.
	(schedule_sm): Pass 0 to get_lsm_tmp_name.
	* tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
	* tree-pretty-print.c (op_symbol_1): Renamed to ...
	(op_symbol_code): ... and exported.
	(dump_omp_clause, op_symbol): Use op_symbol_code
	instead of op_symbol_1.
	* tree-pass.h (pass_predcom): Declare.
	* timevar.def (TV_PREDCOM): New timevar.
	* tree-ssa-loop.c (run_tree_predictive_commoning,
	gate_tree_predictive_commoning, pass_predcom): New.
	* tree-data-ref.c (find_data_references_in_loop): Find the
	references in dominance order.
	(canonicalize_base_object_address): Ensure that the result has
	pointer type.
	(dr_analyze_innermost): Export.
	(create_data_ref): Code to fail for references with invariant
	address moved ...
	(find_data_references_in_stmt): ... here.
	* tree-data-ref.h (dr_analyze_innermost): Declare.
	* tree-affine.c: Include tree-gimple.h and hashtab.h.
	(aff_combination_find_elt, name_expansion_hash,
	name_expansion_eq, tree_to_aff_combination_expand,
	double_int_constant_multiple_p, aff_combination_constant_multiple_p):
	New functions.
	* tree-affine.h (aff_combination_constant_multiple_p,
	tree_to_aff_combination_expand): Declare.
	* tree-predcom.c: New file.
	* common.opt (fpredictive-commoning): New option.
	* tree-flow.h (op_symbol_code, tree_predictive_commoning,
	stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
	* Makefile.in (tree-predcom.o): Add.
	(tree-affine.o): Add TREE_GIMPLE_H dependency.
	* passes.c (init_optimization_passes):  Add dceloop after
	copy propagation in loop optimizer.  Add predictive commoning
	to loop optimizer passes.

	* gcc.dg/tree-ssa/predcom-1.c: New test.
	* gcc.dg/tree-ssa/predcom-2.c: New test.
	* gcc.dg/tree-ssa/predcom-3.c: New test.
	* gcc.dg/tree-ssa/predcom-4.c: New test.
	* gcc.dg/tree-ssa/predcom-5.c: New test.
	* gcc.dg/vect/dump-tree-dceloop-pr26359.c: Test dceloop2 dumps.

From-SVN: r125030
2007-05-24 16:09:26 +00:00
Steven Bosscher 2ca2b6071b * common.opt (fforward-propagate): Fix "Optimization" annotation.
From-SVN: r123830
2007-04-14 22:38:16 +00:00
Dirk Mueller 63a0874077 re PR c/17946 (wanted: warning for "a && MASK" when "a & MASK" was probably intended)
2007-03-09  Dirk Mueller  <dmueller@suse.de>

       PR c++/17946
       * doc/invoke.texi (-Wlogical-op): Document.
       * common.opt (-Wlogical-op): New.
       * c-common.h (warn_logical_operator): Declare.
       * c-common.c (warn_logical_operator): Define.
       * c-typeck.c (parser_build_binary_op): Call
       warn_logical_operator.

       * cp/call.c (build_new_op): Call warn_logical_operator.

       * testsuite/gcc.dg/Wlogical-op-1.c: New.
       * testsuite/g++.dg/warn/Wlogical-op-1.C: New.

From-SVN: r122751
2007-03-09 16:16:35 +00:00
Sebastian Pop 3d8864c06f loop.texi: Document the Omega linear constraints solver.
* doc/loop.texi: Document the Omega linear constraints solver.
	* doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
	omega-max-geqs, omega-max-eqs, omega-max-wild-cards, 
	omega-hash-table-size, omega-max-keys, and 
	omega-eliminate-redundant-constraints.
	* tree-pass.h (pass_check_data_deps): Declared.
	* omega.c: New.
	* omega.h: New.
	* timevar.def (TV_CHECK_DATA_DEPS): Declared.
	* tree-ssa-loop.c (check_data_deps, gate_check_data_deps, 
	pass_check_data_deps): New.
	* tree-data-ref.c (init_data_ref): Remove declaration.
	(dump_data_dependence_relation): Dump DDR_INNER_LOOP.
	(analyze_array): Renamed init_array_ref, move up initializations.
	(init_data_ref): Renamed init_pointer_ref.  Moved before its call.
	Removed arguments that are set to NULL.
	(analyze_indirect_ref): Correct indentation, correct call to 
	init_pointer_ref.
	(object_analysis): Call init_array_ref instead of analyze_array.
	(initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
	(access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
	of DR_ACCESS_FNS_ADDR.
	(init_omega_eq_with_af, omega_extract_distance_vectors, 
	omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
	ddr_consistent_p): New.
	(compute_affine_dependence): Check consistency of ddrs when 
	flag_check_data_deps is passed.
	(analyze_all_data_dependences): Uncomment.
	(tree_check_data_deps): New.
	* tree-data-ref.h: Include omega.h.
	(DR_ACCESS_FNS_ADDR): Removed.
	(data_dependence_relation): Add inner_loop.
	(DDR_INNER_LOOP): New.
	* common.opt (fcheck-data-deps): New.
	* tree-flow.h (tree_check_data_deps): Declare.
	* Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
	(OBJS-common): Depend on omega.o.
	(omega.o): Define.
	* passes.c (pass_check_data_deps): Scheduled.
	* params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, 
	PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
	PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
	PARAM_VECT_MAX_VERSION_CHECKS,
	PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.

From-SVN: r122749
2007-03-09 12:39:49 +00:00
Nick Clifton 21af5cdfe2 common.opt (Warray-bounds): Add Warning attribute.
* common.opt (Warray-bounds): Add Warning attribute.
  (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch): Likewise.
  (fsized-zeroes): Add Optimization attribute.
  (fsplit-wide-types, ftree-scev-cprop): Likewise.
* c.opt (Wc++0x-compat): Add Warning attribute.

From-SVN: r122200
2007-02-21 15:40:29 +00:00
Manuel López-Ibáñez c116cd05fb c.opt (Waddress): New.
2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

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

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

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

From-SVN: r122136
2007-02-19 20:02:28 +00:00
Ian Lance Taylor 6ac015100f common.opt: Add Wstrict-overflow and Wstrict-overflow=.
./:	* common.opt: Add Wstrict-overflow and Wstrict-overflow=.
	* flags.h (warn_strict_overflow): Declare.
	(enum warn_strict_overflow_code): Define.
	(issue_strict_overflow_warning): New static inline function.
	* opts.c (warn_strict_overflow): New variable.
	(common_handle_option): Handle OPT_Wstrict_overflow and
	OPT_Wstrict_overflow_.
	* c-opts.c (c_common_handle_option): Set warn_strict_overflow for
	OPT_Wall.
	* fold-const.c: Include intl.h.
	(fold_deferring_overflow_warnings): New static variable.
	(fold_deferred_overflow_warning): New static variable.
	(fold_deferred_overflow_code): New static variable.
	(fold_defer_overflow_warnings): New function.
	(fold_undefer_overflow_warnings): New function.
	(fold_undefer_and_ignore_overflow_warnings): New function.
	(fold_deferring_overflow_warnings_p): New function.
	(fold_overflow_warning): New static function.
	(make_range): Add strict_overflow_p parameter.  Change all
	callers.
	(extract_muldiv, extract_muldiv_1): Likewise.
	(fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
	tree_expr_nonnegative_p.
	(fold_negate_expr): Call fold_overflow_warning.
	(fold_range_test): Likewise.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
	instead of tree_expr_nonnegative_p.
	(tree_expr_nonnegative_warnv_p): Rename from
	tree_expr_nonnegative_p, add strict_overflow_p parameter.
	(tree_expr_nonnegative_p): New function.
	(tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
	strict_overflow_p parameter.
	(tree_expr_nonzero_p): New function.
	* passes.c (verify_interpass_invariants): New static function.
	(execute_one_pass): Call it.
	* tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
	warnings.
	(number_of_iterations_exit, loop_niter_by_eval): Likewise.
	(estimate_numbers_of_iterations): Likewise.
	(scev_probably_wraps_p): Likewise.
	* tree-ssa-ccp.c: Include "toplev.h".
	(evaluate_stmt): Defer fold overflow warnings until we know we are
	going to optimize.
	(struct fold_stmt_r_data): Add stmt field.
	(fold_stmt_r): Defer fold overflow warnings until we know we
	optimized.
	(fold_stmt): Initialize stmt field of fold_stmt_r_data.
	(fold_stmt_inplace): Likewise.
	* tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
	(cleanup_control_expr_graph): Defer fold overflow warnings until
	we know we are going to optimize.
	* tree-cfg.c (fold_cond_expr_cond): Likewise.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition):
	Likewise.
	* tree-vrp.c (vrp_expr_computes_nonnegative): Call
	tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* c-typeck.c (build_conditional_expr): Likewise.
	(build_binary_op): Likewise.
	* tree-vrp.c (vrp_expr_computes_nonzero): Call
	tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
	(extract_range_from_unary_expr): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Warn when
	assuming that signed overflow does not occur.
	* c-common.c (pointer_int_sum): Ignore fold overflow warnings.
	* tree.h (tree_expr_nonnegative_warnv_p): Declare.
	(fold_defer_overflow_warnings): Declare.
	(fold_undefer_overflow_warnings): Declare.
	(fold_undefer_and_ignore_overflow_warnings): Declare.
	(fold_deferring_overflow_warnings_p): Declare.
	(tree_expr_nonzero_warnv_p): Declare.
	* doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
	of warning options.
	(Warning Options): Document -Wstrict-overflow.
	* Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
	(tree-ssa-ccp.o): Likewise.
	(tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
	(fold-const.o): Depend on intl.h.
testsuite/:
	* gcc.dg/Wstrict-overflow-1.c: New test.
	* gcc.dg/Wstrict-overflow-2.c: New test.
	* gcc.dg/Wstrict-overflow-3.c: New test.
	* gcc.dg/Wstrict-overflow-4.c: New test.
	* gcc.dg/Wstrict-overflow-5.c: New test.
	* gcc.dg/Wstrict-overflow-6.c: New test.
	* gcc.dg/Wstrict-overflow-7.c: New test.
	* gcc.dg/Wstrict-overflow-8.c: New test.
	* gcc.dg/Wstrict-overflow-9.c: New test.
	* gcc.dg/Wstrict-overflow-10.c: New test.

From-SVN: r121895
2007-02-13 22:34:45 +00:00
Nick Clifton c662432e8c invoke.texi (Overall Options): Document --help=.
* doc/invoke.texi (Overall Options): Document --help=.                                                        
* gcc.c (target_help_flag): Rename to print_subprocess_flag.                                                  
  (cc1_options): Pass --help= on to cc1.                                                                      
  (display_help): Add description of --help=.                                                                 
  (process_command): Add code to handle --help=.  Allow translated                                            
  --help and --target-help switches to be passed on to compiler sub-process.                                                                                               
  (main): Remove unused if statement.                                                                         
* opts.c (columns): Remove.                                                                                   
  (LEFT_COLUMN): Define.                                                                                      
  (wrap_help): Add columns argument.                                                                          
  (print_filtered_help): Change parameters to be an include bitmask,                                          
  an exclude bitmask, an any bitmask and the column width.  Move the                                          
  code to display the params list here.  Add code to display the                                              
  status of options rather than their descriptions if the quiet flag                                          
  is not active.                                                                                              
  (print_specific_help): Change parameters to be an include bitmask,                                          
  an exclude bitmask and an any bitmask.  Move code to look up the                                            
  column width here.  Decide upon the title for an options listing.                                           
  (common_handle_options): Add code to handle --help=.  Adapt code                                            
  for --help and --target-help to use the revised form of the                                                 
  print_specific_help function.                                                                               
  (print_help): Delete.                                                                                       
  (print_param_help): Delete.                                                                                 
  (print_switch): Delete.                                                                                     
* opts.h (cl_lang_count): Add prototype.                                                                      
 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS, CL_MAX_OPTION_CLASS): New defines.            
* optc-gen.awk: Add construction of cl_lang_count.                                                            
* c.opt: Add Warning attribute to warning options and Optimization attribute to optimization options.         
* common.opt: Likewise.                                                                                       
  Add --help=.                                                                                                
  Add -fhelp and -ftarget-help as aliases for the transformed --help and --target-help options.               
* opt-functions.awk: Add code to handle Warning and Optimization attributes.

From-SVN: r121849
2007-02-12 16:25:14 +00:00
Dorit Nuzman fbf798fcc5 tree-vectorizer.c (vect_is_simple_use): Support induction.
2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
            Victor Kaplansky  <victork@il.ibm.com>

        * tree-vectorizer.c (vect_is_simple_use): Support induction.
        (vect_is_simple_reduction): Support reduction with induction as
        one of the operands.
        (vect_is_simple_iv_evolution): Fix formatting.
        * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
        formatting.  Don't mark induction phis for vectorization.
        (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
        * tree-vect-transform.c (get_initial_def_for_induction): New function.
        (vect_get_vec_def_for_operand): Support induction.
        (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
        induction case.
        (vectorizable_reduction): Support reduction with induction as one of
        the operands.
        (vectorizable_type_demotion): Use def-type of stmt argument rather
        than dummy def-type.

        * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
        flag_tree_scev_cprop.
        * common.opt (tree-scev-cprop): New flag.

        * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
        call to vect_get_new_vect_var.


Co-Authored-By: Victor Kaplansky <victork@il.ibm.com>

From-SVN: r121643
2007-02-06 10:08:51 +00:00
Ian Lance Taylor e53a16e75f lower-subreg.c: New file.
gcc/:
	* lower-subreg.c: New file.
	* rtl.def (CONCATN): Define.
	* passes.c (init_optimization_passes): Add pass_lower_subreg and
	pass_lower_subreg2.
	* emit-rtl.c (update_reg_offset): New static function, broken out
	of gen_rtx_REG_offset.
	(gen_rtx_REG_offset): Call update_reg_offset.
	(gen_reg_rtx_offset): New function.
	* regclass.c: Revert patch of 2006-03-05, restoring
	reg_scan_update.
	(clear_reg_info_regno): New function.
	* dwarf2out.c (concatn_loc_descriptor): New static function.
	(loc_descriptor): Handle CONCATN.
	* common.opt (fsplit_wide_types): New option.
	* opts.c (decode_options): Set flag_split_wide_types when
	optimizing.
	* timevar.def (TV_LOWER_SUBREG): Define.
	* rtl.h (gen_reg_rtx_offset): Declare.
	(reg_scan_update): Declare.
	* regs.h (clear_reg_info_regno): Declare.
	* tree-pass.h (pass_lower_subreg): Declare.
	(pass_lower_subreg2): Declare.
	* doc/invoke.texi (Option Summary): List -fno-split-wide-types.
	(Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
	-fsplit-wide-types.
	* doc/rtl.texi (Regs and Memory): Document concat and concatn.
	* Makefile.in (OBJS-common): Add lower-subreg.o.
	(lower-subreg.o): New target.
gcc/testsuite/:
	* gcc.dg/lower-subreg-1.c (test): New test.

From-SVN: r121453
2007-02-01 01:09:35 +00:00
Ian Lance Taylor eeef0e452e common.opt: Add fstrict-overflow.
./:	* common.opt: Add fstrict-overflow.
	* opts.c (decode_options): Set flag_strict_overflow if -O2.
	* flags.h (TYPE_OVERFLOW_WRAPS): Define.
	(TYPE_OVERFLOW_UNDEFINED): Define.
	(TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
	Replace all uses.
	* tree.h (TYPE_TRAP_SIGNED): Don't define.
	* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
	(fold_negate_expr): Likewise.
	(make_range): Likewise.
	(extract_muldiv_1): Likewise.
	(maybe_canonicalize_comparison): Likewise.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.
	(tree_expr_nonnegative_p): Likewise.
	(tree_expr_nonzero_p): Likewise.
	* tree-vrp.c (compare_values): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
	Likewise.
	(nowrap_type_p): Likewise.
	* tree-scalar-evolution.c (simple_iv): Likewise.
	* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
	(build_range_check): Likewise.
	(extract_muldiv_1): Likewise.
	(fold_comparison): Likewise.
	* tree-vrp.c (vrp_int_const_binop): Likewise.
	(extract_range_from_unary_expr): Likewise.
	* convert.c (convert_to_integer): Likewise.
	* fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* tree-vectorizer.c (vect_is_simple_reduction): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Check
	flag_strict_overflow and flag_trapv.
	(simplify_const_relational_operation): Likewise.
	* doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
	(Optimize Options): Add -fstrict-overflow to -O2 list.  Document
	-fstrict-overflow.
testsuite/:
	* gcc.dg/strict-overflow-1.c: New test.
	* gcc.dg/no-strict-overflow-1.c: New test.
	* gcc.dg/strict-overflow-2.c: New test.
	* gcc.dg/no-strict-overflow-2.c: New test.
	* gcc.dg/strict-overflow-3.c: New test.
	* gcc.dg/no-strict-overflow-3.c: New test.
	* gcc.dg/strict-overflow-4.c: New test.
	* gcc.dg/no-strict-overflow-4.c: New test.
	* gcc.dg/fold-mod-1.c: Add -fstrict-overflow option.
	* gcc.dg/pr15784-1.c: Likewise.
	* gcc.dg/pr20922-1.c: Likewise.
	* gcc.dg/pr20922-3.c: Likewise.
	* gcc.dg/pr20922-4.c: Likewise.
	* gcc.dg/pr20922-6.c: Likewise.
	* gcc.dg/compare-4.c: Likewise.
	* gcc.dg/torture/pr26898-1.c: Likewise.
	* gcc.dg/tree-ssa/divide-1.c: Likewise.
	* gcc.dg/tree-ssa/divide-2.c: Likewise.
	* gcc.dg/tree-ssa/divide-3.c: Likewise.
	* gcc.dg/tree-ssa/divide-4.c: Likewise.
	* gcc.dg/tree-ssa/pr14490-1.c: Likewise.
	* gcc.dg/tree-ssa/pr14490-3.c: Likewise.
	* gcc.dg/tree-ssa/pr21082.c: Likewise.
	* gcc.dg/tree-ssa/pr26899.c: Likewise.
	* g++.dg/tree-ssa/pr21082.C: Likewise.

From-SVN: r121254
2007-01-28 05:15:06 +00:00
Richard Guenther 16c1c158d8 invoke.texi (-Wcoverage-mismatch): Document.
2007-01-25  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-Wcoverage-mismatch): Document.
	* common.opt (-Wcoverage-mismatch): New warning option.
	* coverage.c (get_coverage_counts): Ignore coverage mismatch
	if -Wcoverage-mismatch is given.

	* gcc.dg/tree-prof/tree-prof.exp: Define _PROFILE_GENERATE
	and _PROFILE_USE.
	* gcc.dg/tree-prof/wcoverage-mismatch.c: New testcase.

From-SVN: r121169
2007-01-25 12:35:13 +00:00
Roger Sayle db02da7917 common.opt (fsigned-zeros): New command line option.
* common.opt (fsigned-zeros): New command line option.
	* flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
	of flag_unsafe_math_optimizations.
	* opts.c (set_fast_math_flags): The -ffast-math command line option
	implies -fno-signed-zeros.
	(fast_math_flags_set_p): Likewise.

	* doc/invoke.texi: Document new -fno-signed-zeros option, and update
	the documentation of -ffast-math appropriately.  Wrap long lines.

	* gcc.dg/pr30172-1.c: Specify the -fno-signed-zeros command line
	option instead of -funsafe-math-optimizations.

From-SVN: r120978
2007-01-19 19:35:22 +00:00
Dirk Mueller 590b1f2d1f · Richard Guenther <rguenther@suse.de>
2007-01-18  Dirk Mueller  <dmueller@suse.de>
·           Richard Guenther <rguenther@suse.de>

·       PR diagnostic/8268
·       * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
·       * common.opt (Warray-bounds): Add new warning option.
·       * c-opts.c (c_common_handle_option): Define -Warray-bounds
·       if -Wall is given.
        * Makefile.in: make tree-vrp.o depend on toplev.h
·       * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
·       is enabled.
·       (check_array_refs, check_array_bounds, check_array_ref): New.

·       * gcc.dg/Warray-bounds.c: New testcase.
        * gcc.dg/Warray-bounds-2.c: New testcase.
        * g++.dg/warn/Warray-bounds.C: New testcase.
        * g++.dg/warn/Warray-bounds-2.C: New testcase.

From-SVN: r120898
2007-01-18 13:00:33 +00:00
Kazu Hirata 8aceba8c95 common.opt (flag_force_mem): Remove.
* common.opt (flag_force_mem): Remove.
	* doc/invoke.texi (-fforce-mem): Remove.
	* opts.c (common_handle_option): Don't handle OPT_fforce_mem.

From-SVN: r120176
2006-12-23 21:54:59 +00:00
Jan Hubicka a5573239ec toplev.c (dump_memory_report): Break out from...
* toplev.c (dump_memory_report): Break out from...
	(finalize): Here.
	* toplev.h (dump_memory_report): Declare.
	(cmp_statistic): Rename to ...
	(final_cmp_statistic): ... this one
	(cmp_statistic): New.
	(dump_ggc_loc_staitsitcs): New FINAL parpameter.
	* common.opt (-fpre-ipa-mem-report, -fpost-ipa-mem-report): Declare.
	* varray.c (dump_varray_staitiscs): Do not segfault when no varray was
	allocated so far.

From-SVN: r120168
2006-12-23 14:30:36 +00:00
Andrew MacLeod 7290d709ef New out of ssa Coalescer.
2006-12-10  Andrew MacLeod  <amacleod@redhat.com>

	* common.opt (-ftree-lrs): Remove live range splitting option.
	* makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies.
	* opts.c (decode_options): Remove flag_tree_live_range_split.
	* tree-flow.h (struct var_ann_d): Rename fields from root_ to base_.
	* tree-flow-inline.h (single_imm_use_p): New.  Check for single use.
	* tree-outof-ssa.c: Remove header files which aren't needed.
	(SSANORM_*): Remove flags.
	(print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, 
	coalesce_result_decls_and_copies, coalesce_asm_operands): Remove.
	(coalesce_ssa_name): Move to tree-ssa-coalesce.c.
	(assign_vars): Use Basevar instead of root_var structure.
	(replace_def_variable): Dont do anything if def is replaceable.
	(remove_ssa_form): Integrate functional changes.
	(rewrite_out_of_ssa): Remove live-range_split option.
	* tree-ssa-coalesce.c: New File for ssa-name coalescing.
	(coalesce_cost): Calculate the cost of a coalesce.
	(coalesce_cost_bb): Calculate the coalesce cost within a BB.
	(coalesce_cost_edge): Calculate the coalesce cost on an edge.
	(pop_cost_one_pair): Remove the best coalesce with cost 1 from the list.
	(pop_best_coalesce): Remove the best coalesce from the list.
	(coalesce_pair_map_hash): Calculate coalesce pair hash.
	(coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function.
	(create_coalesce_list): Create a coalesce list object.
	(delete_coalesce_list): Free a coalesce list object.
	(find_coalesce_pair): Find matching pair in the coalesce list.
	(add_cost_one_coalesce): Add a coalesce to the "cost one" list.
	(add_coalesce): Add a coalesce to the coalesce list.
	(compare_pairs): Comparision function to determine pair sorted order.
	(num_coalesce_pairs): Number of coalesced pairs.
	(first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair):
	Coalesce pair iterator functions.
	(sort_coalesce_list): Sort coalesce pairs in order of expense.
	(dump_coalesce_list): Show coalesce list.
	(ssa_conflicts_new): Create an SSA conflict graph.
	(ssa_conflicts_delete): Delete an SSA conflict graph.
	(ssa_conflicts_test_p): Test for conflicts.
	(ssa_conflicts_add_one): Add a single conflict.
	(ssa_conflicts_add): Add a conflict pair.
	(ssa_conflicts_merge): Merge conflicts.
	(struct live_track_d): Struct for tracking live partitions.
	(new_live_track): Create new live_track object.
	(delete_live_track): Delete a live_track object.
	(live_track_remove_partition): Remove a partition from the live list.
	(live_track_add_partition): Add a partition from the live list.
	(live_track_clear_var): Take VAR from the live list.
	(live_track_live_p): Is var live?
	(live_track_process_use): Make var come alive.
	(live_track_process_def): Make var go dead, add conflicts.
	(live_track_init): Initialize to a live on exit set.
	(live_track_clear_base_vars): Clear live partitions.
	(build_ssa_conflict_graph): Build a conflict graph.
	(print_exprs): Common debug output routine.
	(abnormal_corrupt): Output info about a failed coalesce across an
	abnormal edge.
	(fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE.
	(create_outofssa_var_map): Create a var map and coalesce list.
	(attempt_coalesce): Coalesce a pair.
	(coalesce_partitions): Coalesce all pairs in a coalesce list.
	(coalesce_ssa_name): Entry point.  Determine what ssa_names to coalesce.
	* tree-ssa-live.c: Remove header files which aren't needed.
	(var_map_base_init): New.  Initialize a basevar list.
	(var_map_base_fini): New.  Finish a basevar list.
	(init_var_map): Initialize new fields.
	(delete_var_map): Free new fields.
	(var_union): Use renamed fields.
	(compact_var_map): Remove.
	(partition_to_view_init): Use renamed fields, change order of an if.
	(partition_view_fini): Use renamed fields.
	(partition_view_normal): Create basevar list if requested.
	(partition_view_bitmap): Create a view based on a bitmap of partitions.
	(change_partition_var): Use renamed fields.
	(create_ssa_var_map): Remove.
	(tpa_init, tpa_remove_partition, tpa_delete, tpa_compact,
	root_var_init): Remove.
	(partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list,
	delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce,
	compare_pairs, num_coalesce_pairs, first_partition_pair,
	end_partition_pair_p, next_partition_pair, sort_coalesce_list,
	pop_best_coalesce, add_conflicts_if_valid, set_if_valid,
	build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list,
	tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there.
	(dump_var_map): Use renamed fields.
	* tree-ssa-live.h (struct  _var_map): Modify fields.
	(partition_to_var, version_to_var, var_to_partition): Use renamed 
	fields.
	(basevar_index): New.  Index of the base variable of a partition.
	(num_basevars): New.  Number of unique base variables in partition map.
	(register_ssa_partition): Use renamed fields.
	(struct tree_partition_associator_d): Remove.
	(tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition,
	tpa_find_tree, tpa_decompact, root_var_init, root_var_num,
	root_var, root_var_first_partition, root_var_next_partition,
	root_var_dump, root_var_delete, root_var_remove_partition, 
	root_var_find, root_var_compact, root_var_decompact): Remove.
	(struct partition_pair, struct coalesce_list_d): Moved to 
	tree-ssa-coalesce.c
	* tree-ssa-ter.c: Remove header files which aren't needed.

From-SVN: r119711
2006-12-10 21:25:40 +00:00
Nick Clifton e0d9d0ddb6 common.opt (record-gcc-switches): New command line switch.
* common.opt (record-gcc-switches): New command line switch.
* target.h (print_switch_type): New enum.
  (print_switch_fn_type): New typedef for a function pointer.
  (struct gcc_target): Add record_gcc_switches and record_gcc_switches_section fields.
* target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a default definition.
  (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default definition.
* toplev.c (print_single_switch): Simplify by providing a pointer to function that will format and output the switch appropriately.
  (print_switch_values): Likewise.
  (print_to_asm_out_file): New function.
  (print_to_stderr): New function.
  (init_asm_output): If flag_record_gcc_switches is set then if the target supports recording the switches then emit them into the assembler output file, otherwise tell the user that the switch is not supported.
* varasm.c (eld_record_gcc_switches): New function.  Example handler for the record_gcc_switches target hook.
* doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new target hook.
  (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise.
* doc/invoke.texi (-frecord-gcc-switches): Document.

From-SVN: r119615
2006-12-07 10:54:13 +00:00
Andrew MacLeod 7c6a62dd39 common.opt (ftree-combine-temps): Remove.
* common.opt (ftree-combine-temps): Remove.
	* tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
	(coalesce_ssa_name): Don't check for combine-temps.
	(coalesce_vars): Remove.
	(check_replaceable): Use num_imm_uses.
	(remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't 
	check for combine-temps.
	(rewrite_out_of_ssa): Never create a ref_count in the var_map.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
	to register_ssa_partition calls.
	* tree-ssa-live.c (register_ssa_partition): Remove prototype.
	(init_var_map, delete_var_map): remove refernces to ref_count.
	(create_ssa_var_map): Never calculate a ref count.
	(type_var_init): Remove.
	* tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
	(SSA_VAR_MAP_REF_COUNT): Delete.
	(create_ssa_var_map): Change Prototype to have no parameters.
	(version_ref_count): Delete.
	(register_ssa_partition): Remove 'is_use' paramater and don't set the
	ref_count vector.
	(type_var_num, type_var, type_var_first_partition,
	type_var_next_partition, type_var_dump, type_var_delete,
	type_var_remove_partition, type_var_find, type_var_compact,
	type_var_decompact): Remove.

	* gcc.dg/max-1.c: Remove reference to -fno-tree-lrs option.

From-SVN: r119409
2006-12-01 19:53:29 +00:00
Paolo Bonzini a52b023a5f fwprop.c: New file.
2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
            Steven Bosscher  <stevenb.gcc@gmail.com>

        * fwprop.c: New file.
        * Makefile.in: Add fwprop.o.
        * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
        * passes.c (init_optimization_passes): Schedule forward propagation.
        * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
        parameter.
        * timevar.def (TV_FWPROP): New.
        * common.opt (-fforward-propagate): New.
        * opts.c (decode_options): Enable forward propagation at -O2.
        * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
        * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
        canon_for_address, table_size): Remove.
        (new_basic_block, insert, remove_from_table): Remove references to
        table_size.
        (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
        simplification loop more straightforward by not calling fold_rtx
        recursively.
        (equiv_constant): Move here a small part of fold_rtx_subreg,
        do not call fold_rtx.  Call avoid_constant_pool_reference
        to process MEMs.
        * recog.c (canonicalize_change_group): New.
        * recog.h (canonicalize_change_group): New.

        * doc/invoke.texi (Optimization Options): Document fwprop.
        * doc/passes.texi (RTL passes): Document fwprop.


Co-Authored-By: Steven Bosscher <stevenb.gcc@gmail.com>

From-SVN: r118475
2006-11-04 08:36:45 +00:00
J"orn Rennecke 24a7799ea4 re PR other/28251 (dumped addresses makes diffing dumps unusable)
gcc:
	PR other/28251
	* tree.h (dump_addr): Declare.
	* print-tree.c (dump_addr): New function.
	(print_node_brief, print_node): Use it.
	* print-rtl.c (print_rtx): Likewise.
	* common.opt (-fdump-noaddr): New option.
	* doc/invoke.texi (-fdump-noaddr): Document.
	* loop-unroll.c (si_info_hash): Make hash independent of addresses.
	(ve_info_hash): Likewise.
gcc/testsuite:
	PR other/28251
	gcc.c-torture/unsorted/dump-noaddr.c: New test.
	gcc.c-torture/unsorted/dump-noaddr.x: New driver.

From-SVN: r115519
2006-07-17 15:44:48 +01:00
Mike Stump c22cacf346 Whitespace fixups
From-SVN: r113893
2006-05-18 22:16:23 +00:00
H.J. Lu 14c7833ccd re PR target/26885 (-m64 -m32 no longer creates 32-bit object)
gcc/

2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/26885
	* Makefile.in (GCC_OBJS): New.
	(OBJS-common): Add opts-common.o.
	(xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
	(cpp$(exeext)): Likewise.
	(gcc.o): Also depend on opts.h.
	(opts-common.o): New.

	* common.opt (gcoff): Add Negative(gdwarf-2).
	(gdwarf-2): Add Negative(gstabs).
	(gstabs): Add Negative(gstabs+).
	(gstabs+): Add Negative(gvms).
	(gvms): Add Negative(gxcoff).
	(gxcoff): Add Negative(gxcoff+).
	(gxcoff+): Add Negative(gcoff).
	* config/i386/i386.opt (m32): Add Negative(m64).
	(m64): Add Negative(m32).

	* doc/options.texi: Document the Negative option.

	* gcc.c: Include "opts.h".
	(main): Call prune_options after expandargv.

	* optc-gen.awk: Generate common declarations for all flag
	variables in options.c. Output the neg_index field.

	* opts.c (find_opt): Moved to ...
	* opts-common.c: Here. New file.

	* opts.h (cl_option): Add a neg_index field.
	(find_opt): New.
	(prune_options): Likewise.

gcc/cp/

2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/26885
	* Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).

gcc/fortran/

2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/26885
	* Make-lang.in (GFORTRAN_D_OBJS): Replace gcc.o with
	$(GCC_OBJS).

gcc/java/

2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/26885
	* Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
	$(GCC_OBJS).

gcc/treelang/

2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/26885
	* Make-lang.in (gtreelang$(exeext)): Replace gcc.o with
	$(GCC_OBJS).

From-SVN: r113824
2006-05-16 07:27:18 -07:00
Razya Ladelsky 8cd37d0b6c [multiple changes]
2006-05-04  Leehod Baruch  <leehod@il.ibm.com>

        * see.c: New file.
        * Makefile.in (OBJS-common): Add see.o.
        (see.o): Add dependencies.
        * common.opt (fsee): New flag for the see optimization was added.
        * opts.c (flag_see): Initialized.
        * passes.c (init_optimization_passes, pass_see): New pass.
        * rtl.h (see_main): Declaration as extern.
        * timevar.def (TV_SEE): New.
        * tree-pass.h (pass_see): Declaration as extern.
        * invoke.texi (-fsee): Document.
        * recog.c (validate_simplify_insn): New function.
        * recog.h (validate_simplify_insn): Declaration as extern.
        * df-problems.c (df_chain_dump): Check for NULL.

2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
            Daniel Berlin  <dberlin@dberlin.org>

        * cfgrtl.c (insert_insn_bb_end_new): New function.
        * basic-block.h (insert_insn_bb_end_new): Declaration as extern.

2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>

        * df.h (struct web_entry): Moved from web.c.
        (union_defs): Declaration as extern.
        (unionfind_root): Likewise.
        (unionfind_union): Likewise.
        * web.c (struct web_entry): Moved to df.h.
        (unionfind_root): Remove static declaration.
        (unionfind_union): Likewise.
        (union_defs): Likewise and generalize to use callback function.
        (web_main): Update arguments for union_defs function call.

From-SVN: r113518
2006-05-04 09:19:02 +00:00
Roger Sayle 71834ad346 common.opt (Woverflow): New command line option.
* common.opt (Woverflow): New command line option.
	* c-common.c (constant_expression_warning): Check warn_overflow.
	(overflow_waring): Pass OPT_Woverflow to warning.
	(unsigned_conversion_warning): Likewise.
	(convert_and_check): Likewise.
	* doc/invoke.texi: Document new command line option.

	* gcc.dg/Woverflow-1.c: New test case.
	* gcc.dg/Woverflow-2.c: Likewise.
	* gcc.dg/Woverflow-3.c: Likewise.

From-SVN: r113408
2006-05-01 04:27:15 +00:00
Frank Ch. Eigler 110c45636c re PR libmudflap/26864 (multithreaded mudflap not working)
2006-04-22  Frank Ch. Eigler  <fche@redhat.com>

	PR libmudflap/26864
	* common.opt (flag_mudflap_threads): Overload flag_mudflap.
	* tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.

From-SVN: r113179
2006-04-22 16:22:54 +00:00
Carlos O'Donell e713adf645 invoke.texi: Document -femit-class-debug-always
gcc/

2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>

	* doc/invoke.texi: Document -femit-class-debug-always
	* common.opt: Add -femit-class-debug-always.

gcc/cp/

2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>

	* search.c (maybe_suppress_debug_info): If
	flag_emit_class_debug_always then don't suppress.

From-SVN: r112360
2006-03-24 21:17:41 +00:00
Toon Moene 0698a1d2bd options.c (gfc_init_options): Initialize flag_argument_noalias to 3.
2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>

	* fortran/options.c (gfc_init_options): Initialize
	flag_argument_noalias to 3.
	* doc/invoke.texi: Document new flag -fargument-noalias-anything.
	* tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
	argument pointers may not alias any other storage.
	* common.opt: Define option -fargument-noalias-anything.
	* tree-ssa-structalias.c (intra_create_variable_infos): Fortran
	alias semantics is specified by flag_argument_noalias > 2.

From-SVN: r112243
2006-03-21 06:32:57 +00:00
Kazu Hirata c0220ea4c5 builtins.c, [...]: Fix comment typos.
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
	combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
	config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
	config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
	df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
	loop-invariant.c, omp-low.c, opts.c, passes.c,
	rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
	tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
	tree-ssa-structalias.c, tree-ssa-threadedge.c,
	tree-ssa-threadupdate.c, tree-vect-patterns.c,
	tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
	unwind-dw2.c: Fix comment typos.  Follow spelling conventions.

From-SVN: r111721
2006-03-04 23:05:24 +00:00
Zdenek Dvorak efa1cdf018 opts.c (decode_options): Do not handle flag_strength_reduce.
* opts.c (decode_options): Do not handle flag_strength_reduce.
	(common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
	and OPT_fstrength_reduce.
	* tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
	flag_prefetch_loop_arrays for being nonzero.
	* common.opt (floop-optimize, frerun-loop-opt): Resurrected as
	no-ops.
	(fprefetch-loop-arrays-rtl): Removed.
	(flag_prefetch_loop_arrays): Do not specify the value.

	* doc/passes.texi: Update documentation of loop optimizer
	passes.
	* doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
	-frerun-loop-opt): Remove.

	* gcc.target/i386/20000614-2.c: Do not use -fno-strength-reduce.
	* gcc.dg/20030324-1.c: Do not use -fstrength-reduce.

From-SVN: r111469
2006-02-27 01:32:56 +00:00
Steven Bosscher 37818e7cec common.opt (-floop-optimize, [...]): Remove.
gcc/
	* common.opt (-floop-optimize, -frerun-loop-opt): Remove.
	* tree-pass.h (pass_loop_optimize): Remove.
	* passes.c (pass_loop_optimize): Never run it.
	* toplev.c (backend_init): Don't call init_loop.
	* opts.c (flag_loop_optimize_set): Remove.
	(decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
	(common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
	the old RTL loop optimizer when profiling enabled.
	* predict.c (tree_estimate_probability): Always strip builtin_expect.
	* cfgcleanup.c (try_forward_edges): Don't avoid killing loop
	pre-headers for the sake of the old RTL loop optimizer.
	* Makefile.in: Remove all references to loop.o.

	* doc/invoke.texi: Remove all references to -floop-optimize
	and -frerun-loop-opt.

testsuite/
	* gcc.dg/20031201-1.c: Don't use -frerun-loop-opt.
	* g++.old-deja/g++.robertl/eb132.C: Likewise.

From-SVN: r111459
2006-02-26 20:23:40 +00:00
Richard Sandiford f5e605e540 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
(ASM_OUTPUT_SHARED_LOCAL): Delete.
	* doc/invoke.texi (-fshared-data): Delete.
	* common.opt (fshared-data): Delete.
	* varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
	(assemble_static_space): Remove #if 0 code.
	* system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
	(ASM_OUTPUT_SHARED_LOCAL): Poison.
	* config/cris/cris.h: Remove FIXME.

From-SVN: r111330
2006-02-21 08:51:26 +00:00
Daniel Berlin 4cf4d6a323 invoke.texi: Document -fipa-pta.
2006-02-19  Daniel Berlin  <dberlin@dberlin.org>

	* doc/invoke.texi: Document -fipa-pta.
	* common.opt: Add ipa-pta option.
	* tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
	(do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
	(do_ds_constraint): Ditto.
	(get_constraint_for): Only add to referenced_vars if
	referenced_vars exists.
	(insert_into_field_list): Rewrite to do this unsorted.
	(insert_into_field_list_sorted): Rename old insert_into_field_list
	to this.
	(create_function_info_for): Use insert_into_field_list_sorted.
	(create_variable_info_for): Rewrite so it uses unsorted version,
	since the field list is sorted.
	(intra_create_variable_infos): Only add to referenced_vars if
	referenced_vars exists.
	(ipa_pta_execute): Init heapvars, and delete when done.
	* passes.c (init_optimization_passes): Add call to pass_ipa_pta.

From-SVN: r111273
2006-02-19 18:26:00 +00:00
Richard Sandiford aacd3885eb re PR target/9703 ([arm] Accessing data through constant pool more times could be solved in less instructions)
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
	* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
	(copy_insn_1): Likewise.  Don't copy each field individually.
	Reindent.
	* read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
	of RTX_SIZE.
	* reload1.c (eliminate_regs): Use shallow_copy_rtx.
	* rtl.c (rtx_size): Rename variable to...
	(rtx_code_size): ...this.
	(rtx_size): New function.
	(rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
	(copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
	Reindent.
	(shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
	* rtl.h (rtx_code_size): New variable.
	(rtx_size): Change from a variable to a function.
	(RTX_SIZE): Rename to...
	(RTX_CODE_SIZE): ...this.

	PR target/9703
	PR tree-optimization/17106
	* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
	(Anchored Addresses): New section.
	* doc/invoke.texi (-fsection-anchors): Document.
	* doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
	(SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
	(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
	* hooks.c (hook_bool_mode_rtx_false): New function.
	* hooks.h (hook_bool_mode_rtx_false): Declare.
	* gengtype.c (create_optional_field): New function.
	(adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
	SYMBOL_REF_IN_BLOCK_P is true.
	* target.h (output_anchor, use_blocks_for_constant_p): New hooks.
	(min_anchor_offset, max_anchor_offset): Likewise.
	(use_anchors_for_symbol_p): New hook.
	* toplev.c (compile_file): Call output_object_blocks.
	(target_supports_section_anchors_p): New function.
	(process_options): Check that -fsection-anchors is only used on
	targets that support it and when -funit-at-a-time is in effect.
	* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
	if the decl doesn't have one.
	* dwarf2out.c: Remove instantiations of VEC(rtx,gc).
	* expr.c (emit_move_multi_word, emit_move_insn): Pass the result
	of force_const_mem through use_anchored_address.
	(expand_expr_constant): New function.
	(expand_expr_addr_expr_1): Call it.  Use the same modifier when
	calling expand_expr for INDIRECT_REF.
	(expand_expr_real_1): Pass DECL_RTL through use_anchored_address
	for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
	* expr.h (use_anchored_address): Declare.
	* loop-unroll.c: Don't declare rtx vectors here.
	* explow.c: Include output.h.
	(validize_mem): Call use_anchored_address.
	(use_anchored_address): New function.
	* common.opt (-fsection-anchors): New switch.
	* varasm.c (object_block_htab, anchor_labelno): New variables.
	(hash_section, object_block_entry_eq, object_block_entry_hash)
	(use_object_blocks_p, get_block_for_section, create_block_symbol)
	(use_blocks_for_decl_p, change_symbol_section): New functions.
	(get_variable_section): New function, split out from assemble_variable.
	(make_decl_rtl): Create a block symbol if use_object_blocks_p and
	use_blocks_for_decl_p say so.  Use change_symbol_section if the
	symbol has already been created.
	(assemble_variable_contents): New function, split out from...
	(assemble_variable): ...here.  Don't output any code for
	block symbols; just pass them to place_block_symbol.
	Use get_variable_section and assemble_variable_contents.
	(get_constant_alignment, get_constant_section, get_constant_size): New
	functions, split from output_constant_def_contents.
	(build_constant_desc): Create a block symbol if use_object_blocks_p
	says so.  Or into SYMBOL_REF_FLAGS.
	(assemble_constant_contents): New function, split from...
	(output_constant_def_contents): ...here.  Don't output any code
	for block symbols; just pass them to place_section_symbol.
	Use get_constant_section and get_constant_alignment.
	(force_const_mem): Create a block symbol if use_object_blocks_p and
	use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
	(output_constant_pool_1): Add an explicit alignment argument.
	Don't switch sections here.
	(output_constant_pool): Adjust call to output_constant_pool_1.
	Switch sections here instead.  Don't output anything for block symbols;
	just pass them to place_block_symbol.
	(init_varasm_once): Initialize object_block_htab.
	(default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
	(default_asm_output_anchor, default_use_aenchors_for_symbol_p)
	(place_block_symbol, get_section_anchor, output_object_block)
	(output_object_block_htab, output_object_blocks): New functions.
	* target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
	(TARGET_ASM_OUT): Include it.
	(TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
	(TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
	(TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
	(TARGET_INITIALIZER): Include them.
	* rtl.c (rtl_check_failed_block_symbol): New function.
	* rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
	(block_symbol, object_block): New structures.
	(rtx_def): Add a block_symbol field to the union.
	(BLOCK_SYMBOL_CHECK): New macro.
	(rtl_check_failed_block_symbol): Declare.
	(SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
	(SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
	(SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
	(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
	* output.h (output_section_symbols): Declare.
	(object_block): Name structure.
	(place_section_symbol, get_section_anchor, default_asm_output_anchor)
	(default_use_anchors_for_symbol_p): Declare.
	* Makefile.in (RTL_BASE_H): Add vec.h.
	(explow.o): Depend on output.h.
	* config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
	(TARGET_MAX_ANCHOR_OFFSET): Likewise.
	(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
	(rs6000_use_blocks_for_constant_p): New function.

From-SVN: r111254
2006-02-18 22:06:53 +00:00
Zdenek Dvorak 1768461812 invoke.texi (-fprefetch-loop-arrays, [...]): Document.
* doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
	Document.
	* tree-ssa-loop-niter.c (number_of_iterations_ne,
	number_of_iterations_lt, number_of_iterations_cond): Remember the shape
	of the ending condition.
	* tree-ssa-loop-manip.c: Include params.h.
	(build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
	tree_unroll_loop): New functions.
	* tree-pass.h (pass_loop_prefetch): Declare.
	* loop.c (rest_of_handle_loop_optimize): Test for
	-fprefetch-loop-arrays-rtl.
	* tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
	* timevar.def (TV_TREE_PREFETCH): New timevar.
	* tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
	pass_loop_prefetch): New.
	* tree-cfgcleanup.c: Include tree-scalar-evolution.h.
	(cleanup_tree_cfg_loop): Call scev_reset.
	* common.opt (fprefetch-loop-arrays-rtl): Add.
	* tree-ssa-loop-prefetch.c: New file.
	* tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
	(new_temp_expr_table): Initialize expr_vars.
	(free_temp_expr_table): Cleanup expr_vars.
	(check_replaceable, find_replaceable_in_bb): Prevent accumulating
	expressions from being merged into one.
	* tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
	(struct tree_niter_desc): Add control, bound and cmp fields.
	(tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
	Declare.
	* Makefile.in (tree-ssa-loop-prefetch.o): Add.
	(tree-cfgcleanup.o): Add SCEV_H dependency.
	(tree-ssa-loop-manip.o): Add PARAMS_H dependency.
	* passes.c (init_optimization_passes): Add pass_loop_prefetch.

From-SVN: r110964
2006-02-14 12:22:11 +00:00
Zdenek Dvorak 1f92226479 invoke.texi (-floop-optimize2): Removed.
* doc/invoke.texi (-floop-optimize2): Removed.
	* toplev.c (process_options): Remove handling of flag_loop_optimize2.
	* loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
	Test flag_branch_on_count_reg only if HAVE_doloop_end.
	* common.opt (floop-optimize2): Removed.
	(fmove-loop-invariants): Enabled by default.

	* gcc.dg/20050105-1.c: Do not use -floop-optimize2.

From-SVN: r110852
2006-02-10 21:01:10 +00:00
DJ Delorie 79cf599406 c-pragma.c (handle_pragma_diagnostic): New.
* c-pragma.c (handle_pragma_diagnostic): New.
(init_pragma): Register it.
* doc/extend.texi: Document it.

* diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
* diagnostic.h (diagnostic_classify_diagnostic): Declare.
(diagnostic_context): Add classify_diagnostic[].
* diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
as errors if they're overridden to DK_WARNING.
(diagnostic_initialize): Initialize classify_diagnostic[].
(diagnostic_set_kind_override): New.
(diagnostic_report_diagnostic): Check for kind changes.
* opts.c (common_handle_option): Take lang_mask.  Update callers.
Handle OPT_Werror_.
* common.opt (Werror=): New.
* doc/invoke.texi: Document -Werror=*

From-SVN: r109907
2006-01-18 15:02:42 -05:00
Ian Lance Taylor 474eccc603 common.opt (ftoplevel-reorder): New option.
./:	* common.opt (ftoplevel-reorder): New option.
	* cgraph.c (cgraph_asm_nodes): New global variable.
	(cgraph_asm_last_node): New static variable.
	(cgraph_order): New global variable.
	(cgraph_create_node): Set new order field.
	(cgraph_varpool_node): Likewise.
	(decide_is_variable_needed): Return true if not
	flag_toplevel_reorder.
	(cgraph_add_asm_node): New function.
	* cgraph.h (struct cgraph_node): Add order field.
	(struct cgraph_varpool_node): Add order field.
	(struct cgraph_asm_node): Define.
	(cgraph_asm_nodes, cgraph_order): Declare.
	(cgraph_add_asm_node): Declare.
	* cgraphunit.c (cgraph_varpool_assemble_decl): New static
	function.
	(cgraph_varpool_assemble_pending_decls): Call it.
	(cgraph_output_pending_asms): New static function.
	(cgraph_finalize_compilation_unit): Call it.
	(struct cgraph_order_sort): Define.
	(cgraph_output_in_order): New static function.
	(cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
	!flag_toplevel_reorder case.
	* c-parser.c: Include "cgraph.h".
	(c_parser_asm_definition): Call cgraph_add_asm_node rather than
	assemble_asm.
	* Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
	than -fno-unit-at-a-time.
	* doc/invoke.texi (Option Summary): Mention
	-fno-toplevel-reorder.
	(Optimize Options): Document -fno-toplevel-reorder.  Mention it in
	-funit-at-a-time documentation.
cp/:
	* parser.c: Include "cgraph.h".
	(cp_parser_asm_definition): Call cgraph_add_asm_node rather than
	assemble_asm.

From-SVN: r109811
2006-01-17 07:04:20 +00:00
Gabor Loki 38109dab82 rtl-factoring.c: Add sequence abstraction algorithm.
2006-01-16  Gabor Loki <loki@gcc.gnu.org>

	* rtl-factoring.c : Add sequence abstraction algorithm.
	* cfgcleanup.c (outgoing_edges_match): Extra checks.
	(try_crossjump_to_edge): Avoid deleting preserve label when redirecting
	ABNORMAL edges.
	(block_has_preserve_label): New function.
	* common.opt: Register new pass.
	* Makefile.in: Ditto.
	* passes.c: Ditto.
	* timevar.def: Ditto.
	* tree-pass.h: Ditto.
	* emit-rtl.c (make_jump_insn_raw): Remove forward decl.
	* rtl.h (make_jump_insn_raw): Add forward decl.
	* doc/invoke.texi: Add documentation for
																	                  -frtl-abstract-sequences.

From-SVN: r109750
2006-01-16 15:56:47 +00:00
Ben Elliston 690a704a4e c-common.c (c_common_truthvalue_conversion): Generalise warning for addresses converted to booleans; not just function addresses.
* c-common.c (c_common_truthvalue_conversion): Generalise warning
	for addresses converted to booleans; not just function addresses.
	* c-typeck.c (build_binary_op): Warn for address comparisons which
	can never be NULL (eg. func == NULL or &var == NULL).
	* common.opt (Walways-true): New option.
	* c-opts.c (c_common_handle_option): Set it with -Wall.
	* doc/invoke.texi: Document it.
testsuite/
	* gcc.dg/warn-addr-cmp.c: New test.

From-SVN: r108489
2005-12-14 10:33:26 +11:00
Roger Sayle e994a705a9 re PR c/7776 (const char* p = "foo"; if (p == "foo") ... is compiled without warning!)
PR c/7776
	* common.opt (Wstring-literal-comparison): New command line option.
	* c-opts.c (c_common_handle_option): Set it with -Wall.
	* c-typeck.c (parser_build_binary_op): Issue warning if either
	operand of a comparison operator is a string literal, except for
	testing equality or inequality against NULL.

	* doc/invoke.texi: Document new -Wstring-literal-comparison option.

	* gcc.dg/Wstring-literal-comparison-1.c: New test case.
	* gcc.dg/Wstring-literal-comparison-2.c: Likewise.
	* gcc.dg/Wstring-literal-comparison-3.c: Likewise.
	* gcc.dg/Wstring-literal-comparison-4.c: Likewise.

From-SVN: r108018
2005-12-04 19:56:47 +00:00
David Edelsohn d35a40fca5 re PR c/24644 (gcc-4.1 compiled ppc64 kernels do not boot)
PR 24644
        * common.opt (Wvolatile-register-var): New.
        * varasm.c (make_decl_rtl): Only emit warning when option
        specified.  Clarify warning message.
        * doc/invoke.texi (Wvolatile-register-var): Document new option.

        * doc/md.texi (copysign): Document standard named pattern.

From-SVN: r106791
2005-11-11 12:59:54 -05:00
Keith Besaw c12cc93047 common.opt: Add option ftree-vect-loop-version.
* common.opt: Add option ftree-vect-loop-version.
        * params.def: Add --param vect-max-version-checks.
        * doc/invoke.texi: Document ftree-vect-loop-version and
        --param vect-max-version-checks.
        * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
        may_misalign_stmts and defines for accessors.
        * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
        LOOP_VINFO_MAY_MISALIGN_STMTS.
        (destroy_loop_vec_info): VEC_free for
        LOOP_VINFO_MAY_MISALIGN_STMTS.
        * tree-vect-analyze.c (vect_compute_data_ref_alignment):
        Update documentation.
        (vect_update_misalignment_for_peel): New.
        (vect_enhance_data_refs_alignment): Update to choose loop
        peeling or loop versioning if appropriate for the (potentially)
        unaligned data references in the loop.
        (vect_analyze_data_refs_alignment): Remove call to
        vect_enhance_data_refs_alignment so the checks can be done
        earlier.
        (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
        and move up call to vect_analyze_data_refs_alignment.
        * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
        (vect_transform_loop): Add call to loop_version.

From-SVN: r103941
2005-09-06 10:59:58 +00:00
Richard Guenther 355866de65 re PR tree-optimization/15366 ([3.4 only][unit-at-a-time] -fno-inline-functions is ignored for static functions)
2005-09-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/15366
	* common.opt: Add -finline-functions-called-once.
	Put -fearly-inlining in alphabetically ordered place.
	* doc/invoke.texi: Document new option.
	* ipa-inline.c (cgraph_decide_inlining): Honour
	flag_inline_functions_called_once.

From-SVN: r103722
2005-09-01 08:54:40 +00:00