]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Jun 2010 06:44:00 +0000 (06:44 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Jun 2010 06:44:00 +0000 (06:44 +0000)
* config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
predicate in "type" attribute calculation.
(*addsi_1_zext): Ditto.
(*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
(*addsi_2_zext): Ditto.
(*add<mode>_3): Ditto.
(*addsi_3_zext): Ditto.
(*add<mode>_5): Ditto.

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

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

index 1f36abd3bc95aee6ad9368ad1bb02a7d25328201..bab4a24b1473548bf5553a7b86adc4c9c86d9093 100644 (file)
@@ -1,3 +1,15 @@
+2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
+       * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
+       predicate in "type" attribute calculation.
+       (*addsi_1_zext): Ditto.
+       (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
+       (*addsi_2_zext): Ditto.
+       (*add<mode>_3): Ditto.
+       (*addsi_3_zext): Ditto.
+       (*add<mode>_5): Ditto.
+
 2010-06-03  Jan Hubicka  <jh@suse.cz>
 
        * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
@@ -70,7 +82,7 @@
 2010-06-03  Jan Hubicka  <jh@suse.cz>
            Jakub Jelinek  <jakub@redhat.com>
 
-       * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if                                                                        
+       * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
        set->regs[i] is NULL or has just one entry.
 
 2010-06-03  Jan Hubicka  <jh@suse.cz>
 
        PR target/44218
        * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
-       -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision
-       options.
+       -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
 
        * doc/extend.texi (powerpc builtins): Document vec_recip,
        vec_rsqrt, vec_rsqrte altivec/vsx builtins.
 
-       * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New
-       function.
+       * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
        (rs6000_emit_swrsqrt): Ditto.
        (rs6000_emit_swdivsf): Delete.
        (rs6000_emit_swdivdf): Ditto.
        (bdesc_2arg): Add reciprocal estimate builtins.
        (bdesc_1arg): Add reciprocal square root estimate builtins.
        (rs6000_expand_builtin): Rewrite to use a switch statement,
-       instead of multiple if/then/elses.  Add reciprocal estimate
-       builtins.
+       instead of multiple if/then/elses.  Add reciprocal estimate builtins.
        (rs6000_init_builtins): Create declarations for reciprocal
        estimate builtins.
        (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
        (rs6000_emit_swdiv): New common function to be called to replace a
        division with reciprocal estimate and fixup.
        (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
-       for double and vector types.  Add support for high precision
-       machines.
+       for double and vector types.  Add support for high precision machines.
 
        * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
        the reciprocal estimate instructions can be generated.
        (altivec_overloaded_builtins): Add reciprocal estimate builtins.
 
        * config/rs6000/rs6000.opt (-mrecip): Document add support for
-       replacing division instructions with reciprocal estimate and
-       fixup.
+       replacing division instructions with reciprocal estimate and fixup.
        (-mrecip=<opt>): New option.
        (-mrecip-precision): Ditto.
 
        * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
        (UNSPEC_VREFP): Ditto.
        (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
-       conterparts with regard to support of -mno-fused-madd and
-       -ffast-math.
+       conterparts with regard to support of -mno-fused-madd and -ffast-math.
        (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
        reciprocal estimate instructions to be generated.
        (altivec_vrefp): Ditto.
        (fred_fpr): Ditto.
        (rsqrtdf_internal1): New function for frsqrte instruciton.
 
-       * config/rs6000/altivec.h (vec_recipdiv): Define new vector
-       builtin.
+       * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
        (vec_rsqrt): Ditto.
 
 2010-06-03  Richard Guenther  <rguenther@suse.de>
        (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
        *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
        instruction.
-       * config/s390/s390.c: Don't accept fp zeros as valid constants
-       anymore.
+       * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
 
 2010-06-02  Jan Hubicka  <jh@suse.cz>
 
        Include rtl.h.
        (copy_decl_for_dup_finish): Do not use NULL_RTX.
 
-       * tree-loop-linear.c: Do not include diagnostic.h, expr.h,
-       and optabs.h.
+       * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
        * tree-loop-distribution.c: Likewise.
 
 2010-06-01  Jan Hubicka  <jh@suse.cz>
        * emit-rtl.c: (first_insn, last_insn): Remove defines.
        (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
        Move to emit-rtl.h.
-       (set_new_first_and_last_insn, get_last_insn_anywhere, get_first_nonnote_insn,
-       get_last_nonnote_insn, try_split, make_call_insn_raw, add_insn_after,
-       add_insn_before, remove_insn, delete_insns_since, reorder_insns_nobb,
-       emit_insn_after_1, emit_debug_insn_before, emit_insn, start_sequence,
-       push_to_sequence, push_to_sequence2, push_topmost_sequence, end_sequence,
-       copy_insn): Use accessor functions.
+       (set_new_first_and_last_insn, get_last_insn_anywhere,
+       get_first_nonnote_insn, get_last_nonnote_insn, try_split,
+       make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
+       delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
+       emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
+       push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
+       Use accessor functions.
        * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
         gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
        set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
-       mem_expr_equal_p): Move here from rtl.h
+       mem_expr_equal_p): Move here from rtl.h.
        (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
        Move here from emit-rtl.c; make inline.
-       * cfglayout.h: Include emit-rtl.h
+       * cfglayout.h: Include emit-rtl.h.
        * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
         gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
        set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
-       mem_expr_equal_p, get_insns, set_first-insn, get_last_insn, set_last_insn,
-       get_max_uid): Move to emit-rtl.h.
-       * reg-stack.c: Include emit-rtl.h
+       mem_expr_equal_p, get_insns, set_first-insn,
+       get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
+       * reg-stack.c: Include emit-rtl.h.
        * dce.c: Likewise.
 
 2010-06-01  Jan Hubicka  <jh@suse.cz>
        (cgraph_function_versioning): Update prototype.
        * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
        bitmap.
-       (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy. 
+       (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
        (cgraph_materialize_clone, save_inline_function_body): Update use of
        tree_function_versioning.
-       * tree-inline.c (copy_bb): Look for previous copied block to link after;
-       fix debug output.
+       * tree-inline.c (copy_bb): Look for previous copied block to link
+       after; fix debug output.
        (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
        (copy_body): Likewise.
        (expand_call_inline): Update use of copy_body.
        * c-opts.c (c_common_handle_option): Likewise.
 
 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
-            Matthew Gingell  <gingell@adacore.com>
+           Matthew Gingell  <gingell@adacore.com>
 
        * doc/invoke.texi: Mention -fdump-ada-spec.
        * tree-dump.c (dump_files): Add ada-spec.
 
 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
 
-        * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
-        argument for fprintf.
-        (ix86_output_addr_diff_elt): Likewise.
-        (x86_function_profiler): Likewise.
-        * config/cygming.h (LOCAL_LABEL_PREFIX): Fix
-        for x64 no-underscore.
-        (LPREFIX): Likewise.
-        (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+       * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
+       argument for fprintf.
+       (ix86_output_addr_diff_elt): Likewise.
+       (x86_function_profiler): Likewise.
+       * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
+       (LPREFIX): Likewise.
+       (ASM_GENERATE_INTERNAL_LABEL): Likewise.
 
 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
 
 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
 
        PR target/44161
-       * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle
-       flag_pic.
+       * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
 
 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
 
 
 2010-05-31  Richard Guenther  <rguenther@suse.de>
 
-       * tree-ssa-structalias.c (find_func_aliases): Handle
-       BUILT_IN_RETURN.
+       * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
 
 2010-05-30  Jan Hubicka  <jh@suse.cz>
 
        * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
        * config/darwin.h (GLOBAL_ASM_OP): Ditto.
        * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
-       
+
 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
 
        * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
 
        * cgraph.h (cgraph_dump_file): Declare.
        * cgraphunit.c (cgraph_dump_file): Export.
-       * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less
-       verbose.
+       * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
 
 2010-05-30  Jan Hubicka  <jh@suse.cz>
 
        * ipa-pure-const.c (pure_const_names): New static var.
        (check_call): Handle calls not leading to return.
        (pure_const_read_summary): Dump info read.
-       (propagate): Dump info about propagation process; ignore side
-       effects of functions not leading to exit; fix handling of
-       pure functions.
+       (propagate): Dump info about propagation process; ignore side effects
+       of functions not leading to exit; fix handling of pure functions.
 
 2010-05-30  Jan Hubicka  <jh@suse.cz>
 
        debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
        * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
        debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
-       debug_names_replaced_by, debug_update_ssa): Likewise.   
+       debug_names_replaced_by, debug_update_ssa): Likewise.
        * sbitmap.c (debug_sbitmap): Likewise.
        * genrecog.c (debug_decision, debug_decision_list): Likewise.
        * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
        * cgraph.c (clone_function_name): Take SUFFIX argument; export.
        (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
        use of clone_function_name.
-       * cgraph.h (cgraph_create_virtual_clone, 
+       * cgraph.h (cgraph_create_virtual_clone,
        cgraph_function_versioning): update prototypes.
        (clone_function_name): Declare.
        * ipa-cp.c (ipcp_insert_stage): Update call of
 
 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
 
-        * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
+       * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
 
 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
 
 2010-05-27  Jon Beniston <jon@beniston.com>
 
        PR 43726
-       * config/lm32/lm32.h: Remove definition of 
+       * config/lm32/lm32.h: Remove definition of
        GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
 
 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
index 2dd6699ae1d8fc58bc0eb3a48a4383995750a790..6ed8db655946757249c553b80a70070375d84cbe 100644 (file)
              (const_string "lea")
             (eq_attr "alternative" "3")
               (const_string "lea")
-           ; Current assemblers are broken and do not allow @GOTOFF in
-           ; ought but a memory context.
-           (match_operand:SWI48 2 "pic_symbolic_operand" "")
-             (const_string "lea")
            (match_operand:SWI48 2 "incdec_operand" "")
              (const_string "incdec")
           ]
   [(set (attr "type")
      (cond [(eq_attr "alternative" "1")
              (const_string "lea")
-           ; Current assemblers are broken and do not allow @GOTOFF in
-           ; ought but a memory context.
-           (match_operand:SI 2 "pic_symbolic_operand" "")
-             (const_string "lea")
            (match_operand:SI 2 "incdec_operand" "")
              (const_string "incdec")
           ]
    (set (match_operand:SWI48 0 "nonimmediate_operand" "=r,rm")
        (plus:SWI48 (match_dup 1) (match_dup 2)))]
   "ix86_match_ccmode (insn, CCGOCmode)
-   && ix86_binary_operator_ok (PLUS, <MODE>mode, operands)
-   /* Current assemblers are broken and do not allow @GOTOFF in
-      ought but a memory context.  */
-   && ! pic_symbolic_operand (operands[2], VOIDmode)"
+   && ix86_binary_operator_ok (PLUS, <MODE>mode, operands)"
 {
   switch (get_attr_type (insn))
     {
    (set (match_operand:DI 0 "register_operand" "=r")
        (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
   "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
-   && ix86_binary_operator_ok (PLUS, SImode, operands)
-   /* Current assemblers are broken and do not allow @GOTOFF in
-      ought but a memory context.  */
-   && ! pic_symbolic_operand (operands[2], VOIDmode)"
+   && ix86_binary_operator_ok (PLUS, SImode, operands)"
 {
   switch (get_attr_type (insn))
     {
          (match_operand:SWI48 1 "nonimmediate_operand" "%0")))
    (clobber (match_scratch:SWI48 0 "=r"))]
   "ix86_match_ccmode (insn, CCZmode)
-   && !(MEM_P (operands[1]) && MEM_P (operands[2]))
-   /* Current assemblers are broken and do not allow @GOTOFF in
-      ought but a memory context.  */
-   && ! pic_symbolic_operand (operands[2], VOIDmode)"
+   && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
 {
   switch (get_attr_type (insn))
     {
    (set (match_operand:DI 0 "register_operand" "=r")
        (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
   "TARGET_64BIT && ix86_match_ccmode (insn, CCZmode)
-   && ix86_binary_operator_ok (PLUS, SImode, operands)
-   /* Current assemblers are broken and do not allow @GOTOFF in
-      ought but a memory context.  */
-   && ! pic_symbolic_operand (operands[2], VOIDmode)"
+   && ix86_binary_operator_ok (PLUS, SImode, operands)"
 {
   switch (get_attr_type (insn))
     {
          (const_int 0)))
    (clobber (match_scratch:SWI48 0 "=r"))]
   "ix86_match_ccmode (insn, CCGOCmode)
-   && !(MEM_P (operands[1]) && MEM_P (operands[2]))
-   /* Current assemblers are broken and do not allow @GOTOFF in
-      ought but a memory context.  */
-   && ! pic_symbolic_operand (operands[2], VOIDmode)"
+   && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
 {
   switch (get_attr_type (insn))
     {
index 8f901cd87544241dfb3f7b8cbb5cd8e89fa3a833..a33d3af9ec0e9d9199eb877311d5d2098fa8ac33 100644 (file)
     }
 })
 
-;; Return true if the operand contains a @GOT or @GOTOFF reference.
-(define_predicate "pic_symbolic_operand"
-  (match_code "const")
-{
-  op = XEXP (op, 0);
-  if (TARGET_64BIT)
-    {
-      if (GET_CODE (op) == UNSPEC
-         && XINT (op, 1) == UNSPEC_GOTPCREL)
-       return 1;
-      if (GET_CODE (op) == PLUS
-         && GET_CODE (XEXP (op, 0)) == UNSPEC
-         && XINT (XEXP (op, 0), 1) == UNSPEC_GOTPCREL)
-       return 1;
-    }
-  else
-    {
-      if (GET_CODE (op) == UNSPEC)
-       return 1;
-      if (GET_CODE (op) != PLUS
-         || !CONST_INT_P (XEXP (op, 1)))
-       return 0;
-      op = XEXP (op, 0);
-      if (GET_CODE (op) == UNSPEC
-         && XINT (op, 1) != UNSPEC_MACHOPIC_OFFSET)
-       return 1;
-    }
-  return 0;
-})
-
 ;; Return true if OP is a symbolic operand that resolves locally.
 (define_predicate "local_symbolic_operand"
   (match_code "const,label_ref,symbol_ref")