predicates.md (ext_QIreg_operand): Remove extra mode check.

* config/i386/predicates.md (ext_QIreg_operand): Remove extra
	mode check.
	(ext_QIreg_nomode_operands): Remove.
	* config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
	(*andsi_1): Ditto.
	(*andhi_1): Ditto.

From-SVN: r172965
This commit is contained in:
Uros Bizjak 2011-04-26 15:02:55 +02:00
parent e6e26e59a3
commit 77fa1d54b9
3 changed files with 55 additions and 47 deletions

View File

@ -1,3 +1,12 @@
2011-04-26 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (ext_QIreg_operand): Remove extra
mode check.
(ext_QIreg_nomode_operands): Remove.
* config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
(*andsi_1): Ditto.
(*andhi_1): Ditto.
2011-04-26 Andrew Stubbs <ams@codesourcery.com>
* config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
@ -12,14 +21,12 @@
PR middle-end/48694
* tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
* fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat
trees with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF
is set.
compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
* c-family/c-common.c (struct c_common_resword): Add
__underlying_type.
* c-family/c-common.c (struct c_common_resword): Add __underlying_type.
* c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
* doc/extend.texi: Document __underlying_type.
@ -51,9 +58,9 @@
* ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
WPA hack.
* ipa-prop.h (ipa_get_param, ipa_is_param_used, ipa_param_cannot_devirtualize_p,
ipa_param_types_vec_empty, ipa_get_ith_jump_func, ipa_get_lattice):
Fortify array bounds.
* ipa-prop.h (ipa_get_param, ipa_is_param_used,
ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
* ipa-inline-analysis.c (add_clause): Fix clause ordering.
(and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
Sanity check predicate length.
@ -92,23 +99,24 @@
2011-04-22 Jan Hubicka <jh@suse.cz>
* gengtype.c (open_base_files): Add ipa-inline.h include.
* ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to ipa-prop.c
update all uses.
* ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
ipa-prop.c; update all uses.
* ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
* ipa-inline-transform.c (inline_call): Use inline_merge_summary to merge
summary of inlined function into former caller.
* ipa-inline-transform.c (inline_call): Use inline_merge_summary to
merge summary of inlined function into former caller.
* ipa-inline.c (max_benefit): Remove.
(edge_badness): Compensate for removal of benefits.
(update_caller_keys): Use reset_node_growth_cache/reset_edge_growth_cache.
(update_caller_keys): Use
reset_node_growth_cache/reset_edge_growth_cache.
(update_callee_keys): Likewise.
(update_all_callee_keys): Likewise.
(inline_small_functions): Do not collect max_benefit; do not
reset stimated_growth; call free_growth_caches and initialize_growth_caches.
* ipa-inline.h (struct condition, type clause_t, struct predicate, struct
size_time_entry): New structures.
(inline_small_functions): Do not collect max_benefit; do not reset
estimated_growth; call free_growth_caches and initialize_growth_caches.
* ipa-inline.h (struct condition, type clause_t, struct predicate,
struct size_time_entry): New structures.
(INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
(inline_summary): Remove size_inlining_benefit, time_inlining_benefit and
estimated_growth.
(inline_summary): Remove size_inlining_benefit, time_inlining_benefit
and estimated_growth.
(edge_growth_cache_entry): New structure.
(node_growth_cache, edge_growth_cache): New global vars.
(estimate_growth): Turn into inline.
@ -116,16 +124,18 @@
initialize_growth_caches, free_growth_caches): Declare.
(estimate_edge_growth): Rewrite.
(estimate_edge_time): Implement as inline cache lookup.
(reset_node_growth_cache, reset_edge_growth_cache): New inline functions.
(reset_node_growth_cache, reset_edge_growth_cache): New inline
functions.
(MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
(NUM_CONDITIONS): New constant.
(predicate_conditions): New enum.
(IS_NOT_CONSTANT): New constant.
(edge_removal_hook_holder): New var.
(node_growth_cache, edge_growth_cache): New global vars.
(true_predicate, single_cond_predicate, false_predicate, not_inlined_predicate,
add_condition, add_clause, and_predicates, or_predicates, predicates_equal_p,
evaulate_predicate, dump_condition, dump_clause, dump_predicate, account_size_time,
(true_predicate, single_cond_predicate, false_predicate,
not_inlined_predicate, add_condition, add_clause, and_predicates,
or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
dump_clause, dump_predicate, account_size_time,
evaulate_conditions_for_edge): New functions.
(inline_summary_alloc): Move to heap.
(inline_node_removal_hook): Clear condition and entry vectors.
@ -152,14 +162,16 @@
(inline_write_summary): Write all the new data.
* ipa-prop.c (ipa_get_param_decl_index): Export.
(ipa_lattice_from_jfunc): Move here from ipa-cp.c
* ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc): Declare.
(ipa_get_lattice): Move hre from ipa-cp.c
* ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
Declare.
(ipa_get_lattice): Move here from ipa-cp.c
* Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
* params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
* cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
cgraph_edge_inlinable_p): Remove.
* cgraphunit.c: Include ipainline.h
(cgraph_process_new_functions): Update call of compute_inline_parameters.
(cgraph_process_new_functions): Update call of
compute_inline_parameters.
2011-04-22 Richard Guenther <rguenther@suse.de>
@ -276,8 +288,7 @@
2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
Jeff Law <law@redhat.com>
* gengtype-state.c (read_a_state_token): Fix argument to
obstack_free.
* gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
* gengtype.c (matching_file_name_substitute): Likewise.
2011-04-21 Richard Guenther <rguenther@suse.de>

View File

@ -7932,7 +7932,7 @@
(if_then_else
(and (eq_attr "type" "imovx")
(and (ne (symbol_ref "INTVAL (operands[2]) == 0xff") (const_int 0))
(match_operand 1 "ext_QIreg_nomode_operand" "")))
(match_operand 1 "ext_QIreg_operand" "")))
(const_string "1")
(const_string "*")))
(set_attr "mode" "SI,DI,DI,SI")])
@ -7976,7 +7976,7 @@
(if_then_else
(and (eq_attr "type" "imovx")
(and (ne (symbol_ref "INTVAL (operands[2]) == 0xff") (const_int 0))
(match_operand 1 "ext_QIreg_nomode_operand" "")))
(match_operand 1 "ext_QIreg_operand" "")))
(const_string "1")
(const_string "*")))
(set_attr "length_immediate" "*,*,0")
@ -8019,7 +8019,7 @@
(set (attr "prefix_rex")
(if_then_else
(and (eq_attr "type" "imovx")
(match_operand 1 "ext_QIreg_nomode_operand" ""))
(match_operand 1 "ext_QIreg_operand" ""))
(const_string "1")
(const_string "*")))
(set_attr "mode" "HI,HI,SI")])

View File

@ -86,15 +86,8 @@
;; %[abcd][hl].
(define_predicate "ext_QIreg_operand"
(and (match_code "reg")
(match_test "TARGET_64BIT
&& GET_MODE (op) == QImode
&& REGNO (op) > BX_REG")))
;; Similarly, but don't check mode of the operand.
(define_predicate "ext_QIreg_nomode_operand"
(and (match_code "reg")
(match_test "TARGET_64BIT
&& REGNO (op) > BX_REG")))
(match_test "TARGET_64BIT")
(match_test "REGNO (op) > BX_REG")))
;; Return true if op is not xmm0 register.
(define_predicate "reg_not_xmm0_operand"
@ -391,7 +384,8 @@
;; Return true if OP is nonmemory operand acceptable by movabs patterns.
(define_predicate "x86_64_movabs_operand"
(if_then_else (match_test "!TARGET_64BIT || !flag_pic")
(if_then_else (not (and (match_test "TARGET_64BIT")
(match_test "flag_pic")))
(match_operand 0 "nonmemory_operand")
(ior (match_operand 0 "register_operand")
(and (match_operand 0 "const_double_operand")
@ -483,7 +477,7 @@
;; scripts means that we can't be sure of that in general, so assume
;; that @GOTOFF is never valid on VxWorks.
(define_predicate "gotoff_operand"
(and (match_test "!TARGET_VXWORKS_RTP")
(and (not (match_test "TARGET_VXWORKS_RTP"))
(match_operand 0 "local_symbolic_operand")))
;; Test for various thread-local symbols.
@ -611,7 +605,8 @@
;; Match 0 or 1.
(define_predicate "const_0_to_1_operand"
(and (match_code "const_int")
(match_test "op == const0_rtx || op == const1_rtx")))
(ior (match_test "op == const0_rtx")
(match_test "op == const1_rtx"))))
;; Match 0 to 3.
(define_predicate "const_0_to_3_operand"
@ -696,7 +691,8 @@
;; Match exactly one bit in 2-bit mask.
(define_predicate "const_pow2_1_to_2_operand"
(and (match_code "const_int")
(match_test "INTVAL (op) == 1 || INTVAL (op) == 2")))
(ior (match_test "op == const1_rtx")
(match_test "op == const2_rtx"))))
;; Match exactly one bit in 4-bit mask.
(define_predicate "const_pow2_1_to_8_operand"
@ -737,7 +733,8 @@
(define_predicate "reg_or_pm1_operand"
(ior (match_operand 0 "register_operand")
(and (match_code "const_int")
(match_test "op == const1_rtx || op == constm1_rtx"))))
(ior (match_test "op == const1_rtx")
(match_test "op == constm1_rtx")))))
;; True if OP is acceptable as operand of DImode shift expander.
(define_predicate "shiftdi_operand"
@ -984,8 +981,8 @@
(define_predicate "sse_comparison_operator"
(ior (match_code "eq,ne,lt,le,unordered,unge,ungt,ordered")
(and (match_code "ge,gt,uneq,unle,unlt,ltgt")
(match_test "TARGET_AVX"))))
(and (match_test "TARGET_AVX")
(match_code "ge,gt,uneq,unle,unlt,ltgt"))))
(define_predicate "ix86_comparison_int_operator"
(match_code "ne,eq,ge,gt,le,lt"))