1. 26 Aug, 2010 8 commits
  2. 25 Aug, 2010 14 commits
  3. 24 Aug, 2010 10 commits
    • Speed-up ifcvt_memrefs_wont_trap caching previous results. · 4b9c23ea
      This patch speeds up the ifcvt_memrefs_wont_trap computation by
      caching the results of the computations in the data references ->aux
      fields.
      
      	* tree-if-conv.c (struct ifc_dr): New.
      	(IFC_DR): New.
      	(DR_WRITTEN_AT_LEAST_ONCE): New.
      	(DR_RW_UNCONDITIONALLY): New.
      	(memref_read_or_written_unconditionally): Use the cached values
      	when possible.
      	(write_memref_written_at_least_once): Same.
      	(if_convertible_loop_p): Initialize and free DR->aux fields.
      
      From-SVN: r163532
      Sebastian Pop committed
    • Do not check whether memory references accessed in every iteration trap. · e1fd038a
      This patch relaxes the checks from gimple_could_trap_p in order to
      allow the flag_loop_if_convert_stores to if-convert more loops
      in which it is possible to prove that:
      
      - the accesses to an array in a loop do not trap (more than the
        original non-if-converted loop).  This is true when the memory
        accesses are executed at every iteration of the if-converted loop.
      
      - the writes to memory occur on arrays that are not const qualified.
        This is true when there exists at least one unconditional write to
        the array in the analyzed program.  In this patch this analysis is
        limited to the loop to be if-converted.
      
      	* gimple.c (gimple_could_trap_p_1): Not static anymore.
      	Pass an extra bool parameter include_mem.
      	(gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
      	(gimple_assign_rhs_could_trap_p): Same.
      	* gimple.h (gimple_could_trap_p_1): Declared.
      	* tree-data-ref.h (same_data_refs_base_objects): New.
      	(same_data_refs): New.
      	* tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
      	(write_memrefs_written_at_least_once): New.
      	(ifcvt_memrefs_wont_trap): New.
      	(operations_could_trap): New.
      	(ifcvt_could_trap_p): New.
      	(if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
      	Gets a vector of data refs.
      	(if_convertible_stmt_p): Same.
      	(if_convertible_loop_p_1): New.
      	(if_convertible_loop_p): Call if_convertible_loop_p_1.
      
      	* gcc.dg/tree-ssa/ifc-5.c: New.
      
      From-SVN: r163531
      Sebastian Pop committed
    • Add flag -ftree-loop-if-convert-stores. · bd544141
      This patch adds a flag that controls the replacement of the memory
      writes that are in predicated basic blocks with a full write:
      
      for (...)
        if (cond)
          A[i] = foo
      
      is replaced with:
      
      for (...)
        A[i] = cond ? foo : A[i]
      
      In order to do this, we have to call gimple_could_trap_p instead of
      gimple_assign_rhs_could_trap_p, as we have to also check that the LHS
      of assign stmts does not trap.
      
      	* common.opt (ftree-loop-if-convert-stores): New flag.
      	* doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
      	* tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
      	the created statement before GSI.
      	(if_convertible_phi_p): Allow virtual phi nodes when
      	flag_loop_if_convert_stores is set.
      	(if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
      	Do not handle types that do not match is_gimple_reg_type.
      	Remove loop and bb parameters.  Call gimple_could_trap_p instead of
      	when flag_loop_if_convert_stores is set, as LHS can contain
      	memory refs.
      	(if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
      	to if_convertible_gimple_assign_stmt_p.
      	(if_convertible_loop_p): Update call to if_convertible_stmt_p.
      	(replace_phi_with_cond_gimple_assign_stmt): Renamed
      	predicate_scalar_phi.  Do not handle virtual phi nodes.
      	(ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
      	Call predicate_scalar_phi.
      	(insert_gimplified_predicates): Insert the gimplified predicate of a BB
      	just after the labels for flag_loop_if_convert_stores, otherwise
      	insert the predicate in the end of the BB.
      	(predicate_mem_writes): New.
      	(combine_blocks): Call predicate_all_scalar_phis.  When
      	flag_loop_if_convert_stores is set, call predicate_mem_writes.
      	(tree_if_conversion): Call mark_sym_for_renaming when
      	flag_loop_if_convert_stores is set.
      	(main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
      	flag_loop_if_convert_stores is set.
      
      	* gcc.dg/tree-ssa/ifc-4.c: New.
      	* gcc.dg/tree-ssa/ifc-7.c: New.
      
      From-SVN: r163530
      Sebastian Pop committed
    • MAINTAINERS (OS Port Maintainers): Remove myself from windows ports · 3a9abc98
      	* MAINTAINERS (OS Port Maintainers): Remove myself from windows
      	ports
      
      From-SVN: r163529
      Danny Smith committed
    • re PR bootstrap/45376 (no such instruction: `pcmpestri $0,(%rdi),%xmm0') · 6f173e52
              PR bootstrap/45376
              * configure.ac (HAVE_SSE4): New check.
              * configure, config.in: Rebuild.
              * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
      
      From-SVN: r163528
      Richard Henderson committed
    • pa.c (hppa_register_move_cost, [...]): New. · 8a5b8538
      	* config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
      	pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
      	(pa_function_value): Make static.
      	(override_options): Rename to...
      	(pa_option_override): ...this. Make static.
      	(TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
      	TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
      	TARGET_OPTION_OVERRIDE): Define.
      	* config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
      	LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
      	Remove.
      	* config/pa/pa-protos.h (override_options): Remove.
      
      From-SVN: r163525
      Anatoly Sokolov committed
    • lex.c: Disable init_vectorized_lexer etc. · 789d73cb
      	* lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
      	etc. on Solaris 2/x86.
      
      From-SVN: r163522
      Rainer Orth committed
    • re PR middle-end/45379 (~10% slowdown on test_fpu at revision 163278) · d15adbeb
      2010-08-24  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/45379
      	* tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
      	if addr->index is NULL or zero.
      	* tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
      	TARGET_MEM_REF more properly.
      	(indirect_ref_may_alias_decl_p): Likewise.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
      	* alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more
      	properly.
      
      From-SVN: r163519
      Richard Guenther committed
    • check loongson targets in vect.exp · 1991282b
      From-SVN: r163495
      Mingjie Xing committed
    • Daily bump. · e1768322
      From-SVN: r163494
      GCC Administrator committed
  4. 23 Aug, 2010 8 commits