]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/i386/predicates.md (ext_QIreg_operand): Remove extra
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Apr 2011 13:02:55 +0000 (13:02 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Apr 2011 13:02:55 +0000 (13:02 +0000)
mode check.
(ext_QIreg_nomode_operands): Remove.
* config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
(*andsi_1): Ditto.
(*andhi_1): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172965 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.md
gcc/config/i386/predicates.md

index 100fc50e2cdd31ad511c4e1a66c751b80748f20c..4d2bd987d29ec15be237aa1ea5d21325b7868661 100644 (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.
        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.
 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.
        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.
        (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>
 
 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>
index ff0e723593c4fbf2ba21801d53846c5d09167d0e..e66d650251c69010c976d5758def4203e203323a 100644 (file)
      (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")])
      (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")
    (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")])
index 32d8efdd837c070f667cabb51e7ea61d535bf53c..b8b6bf615be16a3e5b0797c57b356addcc67f403 100644 (file)
 ;; %[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"
 
 ;; 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")
 ;; 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.
 ;; 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"
 ;; 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"
 (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"
 
 (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"))