1. 19 Aug, 2007 1 commit
    • dorit's avatar
      * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info · 221e9a92
      dorit authored
              as argument instead of struct loop.
              (nested_in_vect_loop_p): New function.
              (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
              vect_used_in_outer.
              (is_loop_header_bb_p): New. Used to differentiate loop-header phis
              from other phis in the loop.
              (destroy_loop_vec_info): Add additional argument to declaration.
      
              * tree-vectorizer.c (supportable_widening_operation): Also check if
              nested_in_vect_loop_p (don't allow changing the order in this case).
              (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
              of struct loop. Call nested_in_vect_loop_p and don't require
              flag_unsafe_math_optimizations if it returns true.
              (new_stmt_vec_info): When setting def_type for phis differentiate
              loop-header phis from other phis.
              (bb_in_loop_p): New function.
              (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so just
              update their loop_vinfo.  Order of BB traversal now matters - call
              dfs_enumerate_from with bb_in_loop_p.
              (destroy_loop_vec_info): Takes additional argument to control whether
              stmt_vinfo of the loop stmts should be destroyed as well.
              (vect_is_simple_reduction): Allow the "non-reduction" use of a
              reduction stmt to be defines by a non loop-header phi.
              (vectorize_loops): Call destroy_loop_vec_info with additional argument.
      
              * tree-vect-transform.c (vectorizable_reduction): Call
              nested_in_vect_loop_p. Check for multitypes in the inner-loop.
              (vectorizable_call): Likewise.
              (vectorizable_conversion): Likewise.
              (vectorizable_operation): Likewise.
              (vectorizable_type_promotion): Likewise.
              (vectorizable_type_demotion): Likewise.
              (vectorizable_store): Likewise.
              (vectorizable_live_operation): Likewise.
              (vectorizable_reduction): Likewise. Also pass loop_info to
              vect_is_simple_reduction instead of loop.
              (vect_init_vector): Call nested_in_vect_loop_p.
              (get_initial_def_for_reduction): Likewise.
              (vect_create_epilog_for_reduction): Likewise.
              (vect_init_vector): Check which loop to work with, in case there's an
              inner-loop.
              (get_initial_def_for_inducion): Extend to handle outer-loop
              vectorization. Fix indentation.
              (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
              In the case vect_induction_def get the vector def from the induction
              phi node, instead of calling get_initial_def_for_inducion.
              (get_initial_def_for_reduction): Extend to handle outer-loop
              vectorization.
              (vect_create_epilog_for_reduction): Extend to handle outer-loop
              vectorization.
              (vect_transform_loop): Change assert to just skip this case.  Add a
              dump printout.
              (vect_finish_stmt_generation): Add a couple asserts.
      
              (vect_estimate_min_profitable_iters): Multiply
              cost of inner-loop stmts (in outer-loop vectorization) by estimated
              inner-loop bound.
              (vect_model_reduction_cost): Don't add reduction epilogue cost in case
              this is an inner-loop reduction in outer-loop vectorization.
      
              * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
              Same code as what used to be vect_analyze_scalar_cycles, only with
              additional argument loop, and loop_info passed to
              vect_is_simple_reduction instead of loop.
              (vect_analyze_scalar_cycles): Code factored out into
              vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
              Updated documentation.
              (analyze_operations): Check for inner-loop loop-closed exit-phis during
              outer-loop vectorization that are live or not used in the outerloop,
              cause this requires special handling.
              (vect_enhance_data_refs_alignment): Don't consider versioning for
              nested-loops.
              (vect_analyze_data_refs): Check that there are no datarefs in the
              inner-loop.
              (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
              and vect_used_in_outer_by_reduction cases.
              (process_use): Also consider the case of outer-loop stmt defining an
              inner-loop stmt and vice versa.
              (vect_analyze_loop_1): New function.
              (vect_analyze_loop_form): Extend, to allow a restricted form of nested
              loops.  Call vect_analyze_loop_1.
              (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
              been vectorized.  Call destroy_loop_vec_info with additional argument.
      
              * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
              in the inner-loop when doing outer-loop vectorization. Add
              documentation and printout.
              (vect_recog_dot_prod_pattern): Likewise. Also add check for
              GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127623 138bc75d-0d04-0410-961f-82ee72b054a4
      221e9a92
  2. 18 Aug, 2007 2 commits
    • pinskia's avatar
      2007-08-18 Andrew Pinski <pinskia@gmail.com> · 28d4c440
      pinskia authored
              * tree-affine.h (print_aff): New prototype.
              (debug_aff): Likewise.
              * tree-affine.c (print_aff): New function.
              (debug_aff): Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127615 138bc75d-0d04-0410-961f-82ee72b054a4
      28d4c440
    • jsm28's avatar
      2007-08-18 Paul Brook <paul@codesourcery.com> · 5f1f2de5
      jsm28 authored
                  Joseph Myers  <joseph@codesourcery.com>
      
      	* Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
      	(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it.
      	* Makefile.in: Regenerate.
      	* configure.ac (--with-debug-prefix-map): New.
      	* configure: Regenerate.
      
      config:
      2007-08-18  Paul Brook  <paul@codesourcery.com>
                  Joseph Myers  <joseph@codesourcery.com>
      
      	* mt-gnu (CXXFLAGS_FOR_TARGET): Add
      	$(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
      
      gcc:
      2007-08-18  Paul Brook  <paul@codesourcery.com>
                  Joseph Myers  <joseph@codesourcery.com>
      
      	* common.opt (-fdebug-prefix-map=): New option.
      	* opts.c: Include debug.h.
      	(common_handle_option): Handle -fdebug-prefix-map.
      	* final.c: Include ggc.h.
      	(struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
      	remap_debug_filename): New.
      	* Makefile.in (final.o, opts.o): Update dependencies.
      	* debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
      	* configure.ac: Check for assembler --debug-prefix-map support.
      	* configure, config.in: Regenerate.
      	* gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
      	(ASM_DEBUG_SPEC): Include ASM_MAP.
      	* doc/install.texi (--with-debug-prefix-map): Document.
      	* doc/invoke.texi (-fdebug-prefix-map): Document.
      	* dbxout.c (dbxout_init, dbxout_start_source_file,
      	dbxout_source_file): Call remap_debug_filename.
      	* dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
      	dwarf2out_start_source_file, dwarf2out_finish): Call
      	remap_debug_filename.
      	(file_table_relative_p): Do not check d->emitted_number.
      	* toplev.c (output_file_directive): Call remap_debug_filename.
      	* vmsdbgout.c (write_srccorr): Call remap_debug_filename.
      	* xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127613 138bc75d-0d04-0410-961f-82ee72b054a4
      5f1f2de5
  3. 17 Aug, 2007 6 commits
    • ghazi's avatar
      * loop-invariant.c (find_invariants_to_move): Add missing macro · a972e3c6
      ghazi authored
      	argument.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127591 138bc75d-0d04-0410-961f-82ee72b054a4
      a972e3c6
    • tromey's avatar
      gcc: · 638e4b60
      tromey authored
      	* tree.h (struct tree_label_decl): Removed old "java" fields.
      gcc/java:
      	* java-tree.h (LABEL_TYPE_STATE): Removed.
      	(load_type_state): Removed.
      	(LABEL_PC): Removed.
      	(LABEL_VERIFIED): Removed.
      	(type_states): Declare.
      	* expr.c (type_states): New global.
      	(load_type_state): Now static.  Use type_states.  Changed
      	argument.
      	(lookup_label): Don't set LABEL_PC.
      	(expand_byte_code): Don't use LABEL_VERIFIED.
      	(note_instructions): Initialize type_states.
      	* verify-glue.c (vfy_note_stack_depth): Rewrote.
      	(vfy_note_stack_type): Use type_states.
      	(vfy_note_local_type): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127587 138bc75d-0d04-0410-961f-82ee72b054a4
      638e4b60
    • rsandifo's avatar
      2007-08-17 Richard Sandiford <richard@codesourcery.com> · f8520ad7
      rsandifo authored
      	    Nigel Stephens  <nigel@mips.com>
      
      	* config/mt-sde: New file.
      	* configure.ac (mips*-sde-elf*): New stanza.  Use config/mt-sde
      	as target_makefile_frag.
      	* configure: Regenerate.
      
      gcc/
      2007-08-17  Richard Sandiford  <richard@codesourcery.com>
      	    Nigel Stephens  <nigel@mips.com>
      
      	* config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
      	Treat -mno-data-in-code and -mcode-xonly as aliases for
      	-mcode-readable=no and -mcode-readable=pcrel respectively.
      	* config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
      	(MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
      	(MULTILIB_DIRNAMES): Update accordingly.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127586 138bc75d-0d04-0410-961f-82ee72b054a4
      f8520ad7
    • hjl's avatar
      2007-08-17 H.J. Lu <hongjiu.lu@intel.com> · f7a00bdb
      hjl authored
      	* Makefile.in (version.o): Depend on $(REVISION) only if
      	REVISION_s is defined.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127583 138bc75d-0d04-0410-961f-82ee72b054a4
      f7a00bdb
    • bje's avatar
      PR middle-end/32970 · e3c15b04
      bje authored
      gcc/
      	* tree.c (reconstruct_complex_type): For a pointer to a vector,
      	use build_qualified_type to retain qualifiers of the base type.
      testsuite/
      	* g++.dg/ext/altivec-14.C: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127578 138bc75d-0d04-0410-961f-82ee72b054a4
      e3c15b04
    • liqin's avatar
      2007-08-17 Chen Liqin <liqin@sunnorth.com.cn> · ea2342da
      liqin authored
              * config/score/score.md : Update pattern tablejump.
              * config/score/score.c : Update score_initialize_trampoline 
              function.
              * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
              (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
              * doc/contrib.texi: Add my entry.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127577 138bc75d-0d04-0410-961f-82ee72b054a4
      ea2342da
  4. 16 Aug, 2007 7 commits
    • hjl's avatar
      2007-08-16 H.J. Lu <hongjiu.lu@intel.com> · a2b17a85
      hjl authored
      	* Makefile.in (REVISION): New.
      	(REVISION_c): New.
      	(REVISION_s): New.
      	(version.o): Also depend on $(REVISION). Add
      	-DREVISION=$(REVISION_s).
      
      	* version.c (version_string): Add REVISION.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127568 138bc75d-0d04-0410-961f-82ee72b054a4
      a2b17a85
    • spark's avatar
      gcc/ChangeLog: · d43d1c7f
      spark authored
      2007-08-16  Seongbae Park <seongbae.park@gmail.com>
      
      	* tree-eh.c (lower_try_finally_onedest): Reset the locus
      	of GOTO that's relocated to a different block.
      
      gcc/testsuite/ChangeLog:
      2007-08-16  Seongbae Park  <seongbae.park@gmail.com>
      
      	* g++.dg/gcov/gcov-4.C: New test.
      	* lib/gcov.exp (verify-lines): Add support for
      	checking no-coverage lines.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127562 138bc75d-0d04-0410-961f-82ee72b054a4
      d43d1c7f
    • ghazi's avatar
      * c-common.c (const_strip_array_types): New. · f8fd23c0
      ghazi authored
      	* c-common.h (lang_missing_noreturn_ok_p): Delete.
      	(const_strip_array_types): New.
      	* c-objc-common.c (c_disregard_inline_limits,
      	c_warn_unused_global_decl): Constify.
      	* c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
      	c_vla_type_p, c_incomplete_type_error): Likewise.
      	* c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
      	* hooks.c (hook_bool_const_tree_false): New.
      	* hooks.h (hook_bool_const_tree_false): Likewise.
      	* langhooks-def.h (lhd_warn_unused_global_decl,
      	lhd_incomplete_type_error, lhd_expr_size,
      	lhd_tree_inlining_disregard_inline_limits,
      	lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
      	LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
      	* langhooks.c (lhd_warn_unused_global_decl,
      	lhd_incomplete_type_error,
      	lhd_tree_inlining_disregard_inline_limits,
      	lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
      	lhd_expr_size): Likewise.
      	* langhooks.h (lang_hooks_for_tree_inlining,
      	lang_hooks_for_tree_dump, lang_hooks_for_types,
      	lang_hooks_for_decls, lang_hooks): Likewise.
      	* pointer-set.c (pointer_set_t, pointer_set_create,
      	pointer_set_contains, insert_aux, pointer_set_insert,
      	pointer_set_traverse, pointer_map_t, pointer_map_create,
      	pointer_map_contains, pointer_map_insert, pointer_map_traverse):
      	Likewise.
      	* pointer-set.h (pointer_set_contains, pointer_set_insert,
      	pointer_set_traverse, pointer_map_contains, pointer_map_insert,
      	pointer_map_traverse): Likewise.
      	* predict.c (assert_is_empty): Likewise.
      	* tree-affine.c (free_name_expansion): Likewise.
      	* tree-cfg.c (edge_to_cases_cleanup): Likewise.
      	* tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
      	* tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
      	
      ada:
      	* misc.c (gnat_type_max_size): Constify.
      
      cp:
      	* cp-objcp-common.c (cxx_warn_unused_global_decl, cp_expr_size):
      	Constify.
      	* cp-tree.h (local_variable_p, nonstatic_local_decl_p,
      	class_tmpl_impl_spec_p, cp_auto_var_in_fn_p, cp_type_quals,
      	cxx_incomplete_type_diagnostic, cxx_incomplete_type_error,
      	cxx_warn_unused_global_decl, cp_expr_size): Likewise.
      	* decl.c (local_variable_p, nonstatic_local_decl_p): Likewise.
      	* tree.c (class_tmpl_impl_spec_p, cp_auto_var_in_fn_p): Likewise.
      	* typeck.c (cp_type_quals): Likewise.
      	* typeck2.c (cxx_incomplete_type_diagnostic,
      	cxx_incomplete_type_error): Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127560 138bc75d-0d04-0410-961f-82ee72b054a4
      f8fd23c0
    • victork's avatar
      · 45b13dc3
      victork authored
      gcc/ChangeLog
      
      	* tree-vectorizer.c (new_loop_vec_info): Initialize new 
      	field.
      	(destroy_loop_vec_info): Add call to VEC_free.
      	* tree-vectorizer.h (may_alias_ddrs): Define.
      	(LOOP_VINFO_MAY_ALIAS_DDRS): Define.
      	* tree-vect-analyze.c (vect_analyze_data_ref_dependence):
      	Change reporting to dump.
      	(vect_is_duplicate_ddr): New.
      	(vect_mark_for_runtime_alias_test): New.
      	(vect_analyze_data_ref_dependences) Add call to
      	vect_mark_for_runtime_alias_test.
      	(vect_enhance_data_refs_alignment): Define local variable
      	vect_versioning_for_alias_required, don't perform
      	peeling for alignment if versioning for alias is
      	required.
      	(vect_enhance_data_refs_alignment): Use
      	PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
      	PARAM_VECT_MAX_VERSION_CHECKS.
      	* tree-vect-transform.c
      	(vect_create_cond_for_alias_checks): New.
      	(vect_transform_loop): Add call to
      	vect_create_cond_for_alias_checks.
      	(vect_vfa_segment_size): New.
      	* params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
      	Rename.
      	(PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
      	* gcc/doc/invoke.texi
      	(vect-max-version-for-alignment-checks): Document.
      	(vect-max-version-for-alias-checks): Document.
      	(vect-max-version-checks): Remove.
           
      gcc/testsuite/ChangeLog
      
      	* gcc.dg/vect/vect-vfa-01.c: New.
      	* gcc.dg/vect/vect-vfa-02.c: New.
      	* gcc.dg/vect/vect-vfa-03.c: New.
      	* gcc.dg/vect/vect-vfa-04.c: New.
      	* gcc.dg/vect/vect-102a.c, gcc.dg/vect/vect-51.c,
      	gcc.dg/vect/pr29145.c, gcc.dg/vect/vect-43.c,
      	gcc.dg/vect/vect-61.c, gcc.dg/vect/vect-53.c,
      	gcc.dg/vect/vect-45.c, gcc.dg/vect/vect-101.c,
      	gcc.dg/vect/vect-37.c, gcc.dg/vect/vect-79.c,
      	gcc.dg/vect/vect-102.c, gcc.dg/vect/vect-dv-2.c,
      	gcc.dg/vect/vect-57.c, gcc.dg/vect/vect-49.c,
      	gfortran.dg/vect/pr19049.f90: Rename to start with
      	prefix no-vfa-.
      	* gcc.dg/vect/vect.exp: Disable versioning for alias
      	when test starts with no-vfa-.
      	* gfortran.dg/vect/vect.exp: Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127559 138bc75d-0d04-0410-961f-82ee72b054a4
      45b13dc3
    • uros's avatar
      * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on · 20f19272
      uros authored
      	the same line as the instruction for all asm dialects.
      	(*rep_movsi): Ditto.
      	(*rep_movsi_rex64): Ditto.
      	(*rep_movqi): Ditto.
      	(*rep_movqi_rex64): Ditto.
      	(*rep_stosdi_rex64): Ditto.
      	(*rep_stossi): Ditto.
      	(*rep_stossi_rex64): Ditto.
      	(*rep_stosqi): Ditto.
      	(*rep_stosqi_rex64): Ditto.
      	(*cmpstrnqi_nz_1): Ditto.
      	(*cmpstrnqi_nz_rex_1): Ditto.
      	(*cmpstrnqi_1): Ditto.
      	(*cmpstrnqi_rex_1): Ditto.
      	(*strlenqi_1): Ditto.
      	(*strlenqi_rex_1): Ditto.
      	* config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
      	prefix on the same line as the instruction for all asm dialects.
      	(sync_double_compare_and_swap<mode>): Ditto.
      	(*sync_double_compare_and_swapdi_pic): Ditto.
      	(*sync_compare_and_swap_cc<mode>): Ditto.
      	(sync_double_compare_and_swap_cc<mode>): Ditto.
      	(*sync_double_compare_and_swap_ccdi_pic): Ditto.
      	(sync_old_add<mode>): Ditto.
      	(sync_add<mode>): Ditto.
      	(sync_sub<mode>): Ditto.
      	(sync_ior<mode>): Ditto.
      	(sync_and<mode>): Ditto.
      	(sync_xor<mode>): Ditto.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127558 138bc75d-0d04-0410-961f-82ee72b054a4
      20f19272
    • rsandifo's avatar
      gcc/ · 8a72adf4
      rsandifo authored
      	PR middle-end/32897
      	* reload.c (find_reloads): Check that the memory returned by
      	find_reloads_toplev was not the result of forcing a constant
      	to memory.
      	(find_reloads_toplev): Always use simplify_gen_subreg to get
      	the subreg of a constant.  If the result is also a constant,
      	but not a legitimate one, force it into the constant pool
      	and reload its address.
      
      gcc/testsuite/
      	* gcc.dg/torture/pr32897.c: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127536 138bc75d-0d04-0410-961f-82ee72b054a4
      8a72adf4
    • dje's avatar
      * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and · 8ef684b3
      dje authored
              POPCOUNT.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127532 138bc75d-0d04-0410-961f-82ee72b054a4
      8ef684b3
  5. 15 Aug, 2007 8 commits
  6. 14 Aug, 2007 8 commits
    • dberlin's avatar
      2007-08-14 Daniel Berlin <dberlin@dberlin.org> · b1b7c0c4
      dberlin authored
      	* tree-pass.h (PROP_pta): Removed.
      	(TODO_rebuild_alias): New.
      	(pass_may_alias): Removed.
      	* tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
      	aliasing if we changed something.
      	* tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
      	SSA internally.
      	(pass_may_alias): Removed.
      	(create_structure_vars): Return TODO_rebuild_alias.
      	* tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
      	* tree-sra.c (tree_sra): Only rebuild aliasing if something
      	changed.
      	(tree_sra_early): We never affect aliasing right now.
      	* tree-flow.h (compute_may_aliases): New prototype.
      	* passes.c: Remove pass_may_alias from the passes.
      	(execute_function_todo): Support TODO_rebuild_alias.	
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127491 138bc75d-0d04-0410-961f-82ee72b054a4
      b1b7c0c4
    • hubicka's avatar
      * i386.c: (legitimize_address): Move dllimported variable check · fc7fd143
      hubicka authored
      	infront of legitimizing pic address of CONST symbols.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127488 138bc75d-0d04-0410-961f-82ee72b054a4
      fc7fd143
    • sje's avatar
      PR tree-optimization/32941 · 46699809
      sje authored
      	* tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
      	(goto_queue_cmp): Remove.
      	(find_goto_replacement): Change search method.
      	(maybe_record_in_goto_queue): Add assert.
      	(lower_try_finally): Remove qsort call, add pointer_map_destroy call.
      	* Makefile.in (tree-eh.o): Add pointer-set.h dependency.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127487 138bc75d-0d04-0410-961f-82ee72b054a4
      46699809
    • ghazi's avatar
      * alias.c (component_uses_parent_alias_set): Constify. · 1f1872fd
      ghazi authored
      	* alias.h (component_uses_parent_alias_set): Likewise.
      	* cfgrtl.c (print_rtl_with_bb): Likewise.
      	* double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
      	mpz_get_double_int): Likewise.
      	* double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
      	mpz_get_double_int): Likewise.
      	* expr.c (is_aligning_offset, undefined_operand_subword_p,
      	mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
      	Likewise.
      	* expr.h (safe_from_p): Likewise.
      	* gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
      	Likewise.
      	* gimplify.c (should_carry_locus_p, zero_sized_field_decl,
      	zero_sized_type, goa_lhs_expr_p): Likewise.
      	* omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
      	* rtl.h (print_rtl_with_bb): Likewise.
      	* sched-vis.c (print_exp, print_value, print_pattern): Likewise.
      	* tree-cfg.c (const_first_stmt, const_last_stmt): New.
      	* tree-flow-inline.h (bb_stmt_list): Constify.
      	(cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
      	cbsi_stmt): New.
      	* tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
      	const_first_stmt, const_last_stmt): New.
      	(block_may_fallthru, empty_block_p): Constify.
      	* tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
      	EXPR_ONLY_BODY): New.
      	(expr_first, expr_last, expr_only): Use macro for body.
      	(const_expr_first, const_expr_last, const_expr_only): New.
      	* tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
      	ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
      	ctsi_prev, ctsi_stmt): New.
      	* tree-scalar-evolution.c (get_loop_exit_condition): Constify.
      	* tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
      	* tree-ssa-loop-niter.c (loop_only_exit_p,
      	derive_constant_upper_bound): Likewise.
      	* tree-ssa-phiopt.c (empty_block_p): Likewise.
      	* tree-ssa-threadupdate.c (redirection_block_p): Likewise.
      	* tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
      	* tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
      	* tree-vrp.c (vrp_bitmap_equal_p): Likewise.
      	* tree.c (get_type_static_bounds): Likewise.
      	* tree.h (const_expr_first, const_expr_last, const_expr_only): New.
      	(get_type_static_bounds): Constify.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127483 138bc75d-0d04-0410-961f-82ee72b054a4
      1f1872fd
    • rask's avatar
      PR target/30315 · aa8c6aad
      rask authored
      	* config/i386/i386.h (CANONICALIZE_COMPARISON): New.
      	* config/i386/i386.md (plusminus)(addsub)(SWI): New.
      	(*<addsub><mode>3_cc_overflow): New.
      	(*add<mode>3_cconly_overflow): New.
      	(*sub<mode>3_cconly_overflow): New.
      	(*<addsub>si3_zext_cc_overflow): New.
      	* config/i386/predicates.md (fcmov_comparison_operator): Accept
      	CCCmode for LTU, GTU, LEU and GEU.
      	(ix86_comparison_operator): Likewise.
      	(ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
      	* gcc/config/i386/i386.c (put_condition_code): Support CCCmode.
      	(ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
      	or MINUS expressions.
      
      testsuite/
      	PR target/30315
      	* gcc.target/i386/pr30315.c: New.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127481 138bc75d-0d04-0410-961f-82ee72b054a4
      aa8c6aad
    • pinskia's avatar
      2007-08-14 Andrew Pinski <pinskia@gmail.com> · f8629d35
      pinskia authored
              PR c/30428
              * c-typeck.c (build_binary_op): Disallow vector float types with
              BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
      
      2007-08-14  Andrew Pinski  <pinskia@gmail.com>
      
              PR c++/30428
              * typeck.c (build_binary_op): Disallow vector float types with
              BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
      
      2007-08-14  Andrew Pinski  <pinskia@gmail.com>
      
              PR c/30428
              * gcc.dg/vector-2.c: New test.
      
              PR c++/30428
              * g++.dg/ext/vector8.C: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127477 138bc75d-0d04-0410-961f-82ee72b054a4
      f8629d35
    • mkuvyrkov's avatar
      * sched-int.h (struct _dep): Rename field 'kind' to 'type'. · 93f6b030
      mkuvyrkov authored
      	(DEP_KIND): Rename to DEP_TYPE.  Update all uses.
      	(dep_def): New typedef.
      	(init_dep_1, sd_debug_dep): Declare functions.
      	(DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
      	(debug_dep_links): Remove.
      	(struct _deps_list): New field 'n_links'.
      	(DEPS_LIST_N_LINKS): New macro.
      	(FOR_EACH_DEP_LINK): Remove.
      	(create_deps_list, free_deps_list, delete_deps_list): Remove
      	declaration.
      	(deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
      	(find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
      	(copy_deps_list_change_con, move_dep_link): Ditto.
      	(struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
      	and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
      	'dep_count'.
      	(INSN_BACK_DEPS): Remove.
      	(INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
      	New macros.
      	(INSN_DEP_COUNT): Remove.
      	(enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
      	(spec_info, haifa_recovery_block_was_added_during_scheduling_p):
      	Declare global variables.
      	(deps_pools_are_empty_p, sched_free_deps): Declare functions.
      	(add_forw_dep, compute_forward_dependences): Remove declarations.
      	(add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
      	(add_back_forw_dep, delete_back_forw_dep): Ditto.
      	(debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
      	functions.
      	(SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): New
      	constants.
      	(SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
      	(sd_list_types_def): New typedef.
      	(sd_next_list): Declare function.
      	(struct _sd_iterator): New type.
      	(sd_iterator_def): New typedef.
      	(sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
      	functions.
      	(FOR_EACH_DEP): New cycle wrapper.
      	(sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
      	Declare functions.
      	(sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
      	(sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
      	Ditto.
      
      	* sched-deps.c (init_dep_1): Make global.
      	(DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
      	constants.
      	(dump_dep): New static function.
      	(dump_dep_flags): New static variable.
      	(sd_debug_dep): New function.
      	(add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
      	the list.
      	(move_dep_link): Use remove_from_deps_list (), instead of
      	detach_dep_link ().
      	(dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
      	(dep_link_is_detached_p): New static function.
      	(deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
      	instead.
      	(dn_pool, dl_pool): New alloc_pools.
      	(dn_pool_diff, dl_pool_diff): New static variables.
      	(create_dep_node, delete_dep_node): New static function.
      	(create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
      	(deps_list_empty_p): Make it static.  Use 'n_links' field.
      	(deps_pools_are_empty_p): New static function.
      	(alloc_deps_list, delete_deps_list): Remove.
      	(dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
      	(find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
      	(copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
      	(forward_dependency_cache): Remove.
      	(maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
      	'back' from the names.  Change signature to use dep_t instead of
      	equivalent quad.
      	(add_back_dep): Ditto.  Make global.
      	(check_dep_status): Rename to check_dep ().
      	(sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
      	New functions.
      	(sd_finish_insn): Ditto.
      	(sd_find_dep_between_no_cache): New static function.
      	(sd_find_dep_between): New function.
      	(ask_dependency_caches, set_dependency_caches): New static functions.
      	(update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
      	(add_or_update_dep_1): Separate pieces of functionality into
      	ask_dependency_caches (), update_dependency_caches (),
      	change_spec_dep_to_hard (), update_dep ().
      	(get_back_and_forw_lists): New static function.
      	(sd_add_dep): Separate setting of dependency caches into
      	set_dependency_caches ().
      	(sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
      	New functions.
      	(sd_delete_dep): Ditto.
      	(DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
      	(dump_lists): New static function.
      	(sd_debug_lists): New debug function.
      	(delete_all_dependences, fixup_sched_groups): Update to use
      	sd_* infrastructure.
      	(sched_analyze_2): Create data-speculative dependency only if
      	data-speculation is enabled.
      	(sched_analyze_insn): If insn cannot be speculative, make all its
      	dependencies non-speculative.
      	(sched_analyze): Use sd_init_insn ().
      	(add_forw_dep, compute_forward_dependencies): Remove.
      	(delete_dep_nodes_in_back_deps): New static function.
      	(sched_free_deps): New function.
      	(init_dependency_caches): Init alloc_pools.
      	(extend_depedency_caches): Update after removing of
      	forward_dependency_cache.
      	(free_dependency_caches): Ditto.  Free alloc_pools.
      	(adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
      	(delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
      	Ditto.
      	(add_back_forw_dep, delete_back_forw_dep): Ditto.
      	(add_dependence): Use init_dep ().
      	(get_dep_weak_1): New static function.
      	(get_dep_weak): Move logic to get_dep_weak_1 ().
      	(dump_ds): New static function moved from haifa-sched.c:
      	debug_spec_status ().
      	(debug_ds): New debug function.
      	(check_dep_status): Rename to check_dep ().  Update to check whole
      	dependencies.
      
      	* haifa-sched.c (spec_info): Make global.
      	(added_recovery_block_p): Rename to
      	'haifa_recovery_block_was_added_during_current_schedule_block_p'.
      	(haifa_recovery_block_was_added_during_scheduling_p): New variable.
      	(dep_cost, priority, rank_for_schedule, schedule_insn): Update
      	to use new interfaces.
      	(ok_for_early_queue_removal): Ditto.
      	(schedule_block): Initialize logical uids of insns emitted by the
      	target.
      	(sched_init): Initialize new variable.
      	(fix_inter_tick, try_ready, fix_tick_ready): Update to use new
      	interfaces.
      	(extend_global): Initialize insn data.
      	(init_h_i_d): Remove code that is now handled in sd_init_insn ().
      	(process_insn_forw_deps_be_in_spec): Change signature.  Update to use
      	new interfaces.
      	(add_to_speculative_block): Update to use new interfaces.
      	(create_recovery_block): Set new variables.
      	(create_check_block_twin, fix_recovery_deps): Update to use new
      	interfaces.
      	(sched_insn_is_legitimate_for_speculation_p): New function.
      	(speculate_insn): Move checking logic to
      	sched_insn_is_legitimate_for_speculation_p ().
      	(sched_remove_insn): Finalize sched-deps information of instruction.
      	(clear_priorities, add_jump_dependencies): Update to use new
      	interfaces.
      	(debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
      	
      	* sched-rgn.c (set_spec_fed, find_conditional_protection): Update
      	to use new interfaces.
      	(is_conditionally_protected, is_pfree, is_prisky) Ditto.
      	(new_ready): Try to use control speculation only if it is available.
      	(add_branch_dependences): Update to use new interfaces.
      	(compute_block_backward_dependences): Rename to
      	compute_block_dependences ().  Call
      	targetm.sched.dependencies_evaluation_hook ().
      	(free_block_dependencies): New static function.
      	(debug_dependencies): Update to use new interfaces.
      	(schedule_region): Remove separate computation of forward dependencies.
      	Move call of targetm.sched.dependencies_evaluation_hook () to
      	compute_block_dependences ().  Free dependencies at the end of
      	scheduling the region.
      
      	* sched-ebb.c (earliest_block_with_similiar_load): Update to use
      	new interfaces.
      	(add_deps_for_risky_insns): Ditto.
      	(schedule_ebb): Remove separate computation of forward dependencies.
      	Free dependencies at the end of	scheduling the ebb.
      
      	* ddg.c (create_ddg_dependence): Update to use new interfaces.
      	(build_intra_loop_deps): Ditto.  Remove separate computation of forward
      	dependencies.  Free sched-deps dependencies.
      
      	* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
      	to use new interfaces.
      	(ia64_dfa_new_cycle, ia64_gen_check): Ditto.
      
      	* config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
      	new interfaces.
      	(is_costly_group): Ditto.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127405 138bc75d-0d04-0410-961f-82ee72b054a4
      93f6b030
    • ghazi's avatar
      * alias.c (rtx_equal_for_memref_p): Constify. · 7ecb5bb2
      ghazi authored
      	* basic-block.h (const_edge, const_basic_block): New.
      	(reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
      	single_pred_p, single_succ_edge, single_pred_edge, single_succ,
      	single_pred, maybe_hot_bb_p, probably_cold_bb_p,
      	probably_never_executed_bb_p, edge_probability_reliable_p,
      	br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
      	inside_basic_block_p, control_flow_insn_p, dominated_by_p):
      	Likewise.
      	* bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
      	* bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
      	Likewise.
      	* cfganal.c (flow_active_insn_p, forwarder_block_p,
      	flow_nodes_print, dfs_enumerate_from): Likewise.
      	* cfgbuild.c (count_basic_blocks, inside_basic_block_p,
      	control_flow_insn_p, count_basic_blocks): Likewise.
      	* cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
      	get_loop_body_with_size, loop_exit_edge_p): Likewise.
      	* cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
      	average_num_loop_insns, loop_exit_edge_p,
      	just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
      	* cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
      	average_num_loop_insns, seq_cost): Likewise.
      	* cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
      	* dominance.c (dominated_by_p): Likewise.
      	* emit-rtl.c (validate_subreg): Likewise.
      	* except.c (can_throw_internal, can_throw_external): Likewise.
      	* except.h (can_throw_internal, can_throw_external): Likewise.
      	* gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
      	oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
      	compute_transp, load_killed_in_block_p, reg_killed_on_edge,
      	simple_mem, store_ops_ok, load_kills_store, find_loads,
      	store_killed_in_insn, store_killed_after, store_killed_before,
      	gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
      	Likewise.
      	* ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
      	noce_mem_write_may_trap_or_fault_p): Likewise.
      	* pointer-set.c (pointer_set_contains, pointer_map_contains):
      	Likewise.
      	* pointer-set.h (pointer_set_contains, pointer_map_contains):
      	Likewise.
      	* predict.c (can_predict_insn_p, maybe_hot_bb_p,
      	probably_cold_bb_p, probably_never_executed_bb_p,
      	edge_probability_reliable_p, br_prob_note_reliable_p,
      	can_predict_insn_p): Likewise.
      	* regclass.c (reg_set_to_hard_reg_set): Likewise.
      	* resource.c (return_insn_p): Likewise.
      	* rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
      	Likewise.
      	* rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
      	* tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
      	* tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
      	verify_gimple_modify_stmt): Likewise.
      	* tree-chrec.c (is_not_constant_evolution,
      	is_multivariate_chrec_rec, is_multivariate_chrec,
      	chrec_contains_symbols, chrec_contains_undetermined,
      	tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
      	evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
      	eq_evolutions_p, scev_direction): Likewise.
      	* tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
      	eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
      	chrec_contains_symbols_defined_in_loop,
      	chrec_contains_undetermined, tree_contains_chrecs,
      	evolution_function_is_affine_multivariate_p,
      	evolution_function_is_univariate_p, chrec_zerop,
      	evolution_function_is_constant_p, evolution_function_is_affine_p,
      	evolution_function_is_affine_or_constant_p,
      	tree_does_not_contain_chrecs, chrec_type): Likewise.
      	* tree-data-ref.c (tree_fold_divides_p,
      	object_address_invariant_in_loop_p, dr_may_alias_p,
      	ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
      	same_access_functions, constant_access_functions,
      	access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
      	Likewise.
      	* tree-flow.h (scev_direction): Likewise.
      	* tree-gimple.c (is_gimple_stmt): Likewise.
      	* tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
      	Likewise.
      	* tree-pretty-print.c (op_prio): Likewise.
      	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
      	analyzable_condition, backedge_phi_arg_p): Likewise.
      	* tree-scalar-evolution.h (get_chrec_loop): Likewise.
      	* tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
      	* tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
      	Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127404 138bc75d-0d04-0410-961f-82ee72b054a4
      7ecb5bb2
  7. 13 Aug, 2007 3 commits
  8. 12 Aug, 2007 4 commits
  9. 11 Aug, 2007 1 commit
    • hubicka's avatar
      · 2de29097
      hubicka authored
      	* cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
      	(cgraph_process_new_functions): Honor previous value of
      	disregard_inline_limits.
      	* ipa-inline.c (compute_inline_parameters): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127365 138bc75d-0d04-0410-961f-82ee72b054a4
      2de29097