1. 27 Nov, 2006 8 commits
    • cfgexpand.c (construct_exit_block): Don't disturb end of last BB. · 071a42f9
      
      	* cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
      	* rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
      	* final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
      	* insn-notes.def (FUNCTION_END): Remove.
      	* jump.c (delete_related_insns): Don't worry about FUNCTION_END.
      	(redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
      	note.
      	* ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
      	* function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
      	* cfglayout.c (duplicate_insn_chain): Don't worry about
      	NOTE_FUNCTION_END.
      
      From-SVN: r119250
      Jan Hubicka committed
    • target.h (struct gcc_target): Add builtin_vectorized_function target hook. · 2505a3f2
      2006-11-27  Richard Guenther  <rguenther@suse.de>
      	Zdenek Dvorak <dvorakz@suse.cz>
      
      	* target.h (struct gcc_target): Add builtin_vectorized_function
      	target hook.
      	* target-def.h (TARGET_VECTORIZE): Likewise.
      	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
      	Document new target hook.
      	* targhooks.h (default_builtin_vectorized_function): Declare.
      	* targhooks.c (default_builtin_vectorized_function): Define.
      	* tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
      	(vectorizable_call): Declare.
      	* tree-vect-analyze.c (vect_analyze_operations): Call
      	vectorizable_call.
      	* tree-vect-transform.c (vectorizable_function): New static function.
      	(build_vectorized_function_call): Likewise.
      	(vectorizable_call): New function.
      	(vect_transform_stmt): Handle vectorizable calls.
      
      Co-Authored-By: Zdenek Dvorak <dvorakz@suse.cz>
      
      From-SVN: r119249
      Richard Guenther committed
    • re PR fortran/25620 (Missed optimization with power) · 9fca6f97
      2006-11-27  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/25620
      	* builtins.c (expand_builtin_pow): Optimize non integer valued
      	constant exponents using sqrt or cbrt if possible.  Always fall back
      	to expanding via optabs.
      
      	* gcc.target/i386/pow-1.c: New testcase.
      	* gcc.dg/builtins-58.c: Likewise.
      
      From-SVN: r119248
      Richard Guenther committed
    • re PR tree-optimization/22372 (Vectorizer produces mis-match types) · 4090db01
      	PR tree-optimization/22372
      	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
      	the type of the base address.
      	(vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
      	it in the data-ref pointer creation.
      	(vect_init_vector): Add an argument, type of the init vector. Use it in
      	the stmt creation.
      	(vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
      	(get_initial_def_for_reduction): Likewise.
      	(vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
      	void_type_node.
      	(vectorizable_assignment, vect_permute_store_chain): Likewise.
      	(vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
      	correct type in stmt creation.
      	(vect_setup_realignment): Use the correct type in stmt creation.
      	(vect_permute_load_chain): Change type of MODIFY_EXPR to
      	void_type_node.
      	(vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
      	of MODIFY_EXPR to void_type_node.
      	(vectorizable_condition): Change type of MODIFY_EXPR to
      	void_type_node.
      	(vect_update_ivs_after_vectorizer): Use the correct type in stmt
      	creation.
      
      From-SVN: r119247
      Ira Rosen committed
    • revert: i386.c (ix86_rtx_costs): For standard 80387 constants... · ce7d4645
              Revert:
              2006-05-08  Uros Bizjak  <uros@kss-loka.si>
              * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
              standard 80387 constants, raise the cost to prevent
              compress_float_constant() to generate load from memory.
      
              * config/i386/i386.md: Add new splitter pattern to split
              float_extended load of constant from constant pool into
              pure constant load.
      
      From-SVN: r119246
      Uros Bizjak committed
    • re PR c++/29886 (Cast misinterpreted as variable declaration) · 56c7f9c1
      	PR c++/29886
      	* parser.c (cp_parser): Add in_function_body.
      	(cp_parser_new): Initialize it.
      	(cp_parser_primary_expression): Use parser->in_function_body
      	instead of at_function_scope_p.
      	(cp_parser_asm_definition): Likewise.
      	(cp_parser_direct_declarator): Likewise.
      	(cp_parser_class_specifier): Clear parser->in_function_body.
      	(cp_parser_constructor_declarator_p): Use parser->in_function_body
      	instead of at_function_scope_p.
      	(cp_parser_function_body_after_declarator): Set
      	parser->in_function_body.
      	PR c++/29886
      	* g++.dg/expr/cast8.C: New test.
      
      From-SVN: r119242
      Mark Mitchell committed
    • Checkin ChangeLogs from previous checkin. · f019376c
              * configure.in (--with-mpfr-dir, --with-gmp-dir): Remove flags.
              (--with-mpfr-include, --with-mpfr-lib, --with-gmp-include,
              --with-gmp-lib): New flags.
      
              * configure: Regenerate.
      
      gcc:
              * doc/install.texi: Move GMP/MPFR configure options from Fortran
              section to general section.  Remove documentation for
              --with-mpfr-dir and --with-gmp-dir, add documentation for
              --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
              --with-gmp-lib.
      
      From-SVN: r119240
      Kaveh Ghazi committed
    • Daily bump. · 51fe931b
      From-SVN: r119238
      GCC Administrator committed
  2. 26 Nov, 2006 10 commits
  3. 25 Nov, 2006 17 commits
    • re PR fortran/29951 (incorrect conversion from string to integer by TRANSFER()) · 85d6cbd3
      2006-11-25  Andrew Pinski  <pinskia@gmail.com>
      
              PR fortran/29951
              * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Change to
              call memcpy instead of creating a VIEW_CONVERT_EXRP.
      
      2006-11-25  Andrew Pinski  <pinskia@gmail.com>
      
              PR fortran/29951
              * gfortran.fortran-torture/execute/transfer2.f90: New test
      
      From-SVN: r119211
      Andrew Pinski committed
    • reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling. · 56d8eb62
              * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
      
      From-SVN: r119210
      Uros Bizjak committed
    • cse.c (cse_altered): Remove. · 0129d079
      	* cse.c (cse_altered): Remove.
      	(record_jump_equiv): Make true/false argument a bool instead
      	of an int.
      	(cse_insn): Don't set cse_altered.  Use delete_insn_and_edges
      	where appropriate.  Emit a new jump before the existing one
      	instead of after so that delete_insn_and_edges removes the
      	dead edges properly.  Check any_condjump_p before calling
      	record_jump_equiv.
      	(cse_basic_block): Check any_condjump_p before calling
      	record_jump_equiv.
      	(cse_main): Don't set/check cse_altered.  Remove USE_C_ALLOCA.
      
      From-SVN: r119209
      Steven Bosscher committed
    • c.opt: Remove -ffixed-form, -ffixed-line-length-none, and -ffixed-line-length-* options. · bbe7da4a
      * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
      -ffixed-line-length-* options.
      
      From-SVN: r119206
      Brooks Moses committed
    • MAINTAINERS (Write After Approval): Change my email address. · 91ed95ae
      * MAINTAINERS (Write After Approval): Change my email address.
      
      From-SVN: r119205
      Brooks Moses committed
    • Makefile.am: Remove intrinsics/erf.c and intrinsics/bessel.c. · 7afebb02
      	* Makefile.am: Remove intrinsics/erf.c and intrinsics/bessel.c.
      	* Makefile.in: Regenerate.
      	* intrinsics/erf.c: Remove.
      	* intrinsics/bessel.c: Remove.
      	* c99_protos.h: Add prototypes for bessel and error functions.
      	* intrinsics/c99_functions.c: Move content for intrinsics/erf.c
      	and intrinsics/bessel.c here.
      
      From-SVN: r119204
      Francois-Xavier Coudert committed
    • re PR fortran/29711 ([4.2 only] error_print does not support %N$X) · 9406549c
      	PR fortran/29711
      	* error.c (error_print): Handle printf-style position specifiers,
      	of the form "%3$d".
      
      From-SVN: r119203
      Francois-Xavier Coudert committed
    • config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387. · 786f159e
              (fprem1xf4): Rename to fprem1xf4_i387.
      
              (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
              Rename patterns to fmod<mode>3.  Use general_operand operand
              constraint for operands 1 and 2.  Use SSE_FLOAT_MODE_P to disable
              patterns for SSE math.
              (remaindersf3, remainderdf3): Ditto.
      
      From-SVN: r119199
      Uros Bizjak committed
    • re PR fortran/29973 ([4.2 only] CHAR not allowed as actual argument, even in F2003) · e47930a8
      	PR fortran/29973
      	* gfortran.fortran-torture/execute/specifics.f90: Remove test
      	for CHAR.
      
      From-SVN: r119197
      Francois-Xavier Coudert committed
    • Add some missing >s. · bc60d8a0
      From-SVN: r119196
      Jakub Jelinek committed
    • function.c (instantiate_virtual_regs_in_insn): Call force_reg inside… · 6ba1bd36
      function.c (instantiate_virtual_regs_in_insn): Call force_reg inside start_sequence / end_sequence pair.
      
      	* function.c (instantiate_virtual_regs_in_insn): Call force_reg
      	inside start_sequence / end_sequence pair.
      
      From-SVN: r119192
      Joseph Myers committed
    • jump.c (mark_all_labels): Work in cfglayout mode. · 05549c96
      	* jump.c (mark_all_labels): Work in cfglayout mode.
      	* cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
      	when in cfglayout mode, because there are no dead jumptables
      	visible.
      	* cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
      	in cfglayout mode.
      	(commit_edge_insertions): Do not allow insertion of instructions
      	with control flow insns when in cfglayout mode.
      
      From-SVN: r119191
      Steven Bosscher committed
    • [multiple changes] · dc4871cb
      2006-11-25  Paolo Carlini  <pcarlini@suse.de>
      
      	PR libstdc++/29385 (partial)
      	* include/bits/stl_tree.h (_Rb_tree<>::destroy_node): Uglify.
      	(_M_erase, erase(iterator), erase(const_iterator)): Adjust
      
      2006-11-25  Paolo Carlini  <pcarlini@suse.de>
      
      	PR libstdc++/29385 (partial)
      	* include/bits/stl_tree.h (_Rb_tree<>::_M_lower_bound(_Const_Link_type,
      	_Const_Link_type, const _Key&), _M_upper_bound(_Const_Link_type,
      	_Const_Link_type, const _Key&)): Add.
      	(lower_bound(const key_type&), upper_bound(const key_type&),
      	find(const key_type&)): Call the latter.
      
      2006-11-25  Gawain Bolton  <gp.bolton@computer.org>
      
      	PR libstdc++/29385 (partial)
      	* include/bits/stl_tree.h (_Rb_tree_rotate_left,
      	_Rb_tree_rotate_right): Do not declare.
      	(_Rb_tree<>::_M_insert(_Base_ptr, _Base_ptr, const value_type&),
      	_M_insert(_Const_Base_ptr, _Const_Base_ptr, const value_type&),
      	_M_insert_unique(iterator, const value_type&),
      	_M_insert_unique(const_iterator, const value_type&),
      	_M_insert_equal(iterator, const value_type&),
      	_M_insert_equal(const_iterator, const value_type&)):
      	Remove.
      	(_Rb_tree<>::_M_insert_(_Const_Base_ptr, _Const_Base_ptr,
      	const value_type&), _M_insert_unique_(const_iterator,
      	const value_type&), _M_insert_equal_(const_iterator,
      	const value_type&)): Add, adjust all callers.
      	* include/bits/stl_map.h (map<>::insert(iterator, const value_type&)):
      	Adjust.
      	* include/bits/stl_set.h (set<>::insert(iterator, const value_type&)):
      	Likewise.
      	* include/bits/stl_multimap.h (multimap<>::insert(iterator,
      	const value_type&)): Likewise.
      	* include/bits/stl_multiset.h (multiset<>::insert(iterator,
      	const value_type&)): Likewise.
      
      From-SVN: r119190
      Paolo Carlini committed
    • tree-vrp.c (execute_vrp): Do not pass loops structure through arguments. · d73be268
      	* tree-vrp.c (execute_vrp): Do not pass loops structure through
      	arguments.
      	* loop-unswitch.c (unswitch_loops, unswitch_single_loop,
      	unswitch_loop): Ditto.
      	* tree-loop-linear.c (linear_transform_loops): Ditto.
      	* tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
      	tree_ssa_lim): Ditto.
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
      	free_numbers_of_iterations_estimates): Ditto.
      	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
      	tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
      	* cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
      	remove_path, add_loop, loopify, unloop, fix_loop_placements,
      	place_new_loop, duplicate_loop, duplicate_subloops,
      	update_single_exit_for_duplicated_loops, copy_loops_to,
      	duplicate_loop_to_header_edge, create_preheaders,
      	force_single_succ_latches, loop_version, fix_loop_structure):
      	Ditto.
      	* tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
      	tree_unroll_loop): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* tree-scalar-evolution.c (select_loops_exit_conditions,
      	scev_initialize, scev_analysis): Ditto.
      	* tree-scalar-evolution.h (scev_initialize): Ditto.
      	* cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
      	* cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
      	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
      	* modulo-sched.c (sms_schedule): Ditto.
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
      	* loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
      	rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
      	* ifcvt.c (if_convert): Ditto.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
      	canonicalize_loop_induction_variables,
      	canonicalize_induction_variables,
      	tree_unroll_loops_completely, remove_empty_loops): Ditto.
      	* tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
      	tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
      	tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
      	tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
      	tree_ssa_loop_done): Ditto.
      	* predict.c (predict_loops, tree_estimate_probability, estimate_loops,
      	estimate_bb_frequencies): Ditto.
      	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
      	slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
      	* loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
      	decide_unrolling_and_peeling, peel_loop_completely,
      	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
      	peel_loop_simple, unroll_loop_stupid): Ditto.
      	* loop-doloop.c (doloop_optimize_loops): Ditto.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
      	* loop-invariant.c (move_loop_invariants): Ditto.
      	* tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
      	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
      	tree_ssa_prefetch_arrays): Ditto.
      	* lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
      	Ditto.
      	* tree-vect-transform.c (vect_do_peeling_for_loop_bound,
      	vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
      	* cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
      	mark_single_exit_loops, cancel_loop, cancel_loop_tree,
      	verify_loop_structure): Ditto.
      	* tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
      	canonicalize_induction_variables, tree_unroll_loops_completely,
      	tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
      	estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
      	tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
      	tree_unroll_loop, linear_transform_loops): Declaration changed.
      	* basic-block.h: Remove declaration of struct loops.
      	* cfghooks.h (struct cfg_hooks): Change type of
      	cfg_hook_duplicate_loop_to_header_edge.
      	(cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
      	* tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
      	vect_transform_loop): Declaration changed.
      	* lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
      	* cfgloop.h (flow_loops_dump, fix_loop_structure,
      	mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
      	cancel_loop_tree, create_preheaders, force_single_succ_latches,
      	verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
      	loopify, loop_version, remove_path, unswitch_loops,
      	unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
      	Declaration changed.
      
      From-SVN: r119189
      Zdenek Dvorak committed
    • config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition. · 01302104
              (X87MODEF): New mode macro.
              (ssemodefsuffix): New mode attribute.
              (truncxf<mode>2_i387_noop_unspec): New insn pattern.
              (sqrt_extend<mode>xf2_i387): New insn pattern.
              (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
              insn and truncate result back to original mode using
              UNSPEC_TRUNC_NOOP truncation.
              (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
              ssemodefsuffix mode attribute.
              (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
              (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
              (*sqrtextenddfxf2_i387): Remove insn patterns.
      
              (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
              truncation patterns.
      
              reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
      
      From-SVN: r119188
      Uros Bizjak committed
    • re PR libfortran/29936 (Missed constraint on RECL=specifier in unformatted sequential WRITE) · 0513be5b
      2006-11-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/29936
      	* gfortran.dg/write_check3.f90: New test.
      
      From-SVN: r119183
      Jerry DeLisle committed
    • Daily bump. · daf26d0c
      From-SVN: r119181
      GCC Administrator committed
  4. 24 Nov, 2006 5 commits