diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2010-06-04 08:44:00 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2010-06-04 08:44:00 +0200 |
commit | 308e51aa12cc0df15a524c9c90f4d349eca90290 (patch) | |
tree | 964680b29c77e748b69023f04069aef58270f518 /gcc | |
parent | f3cf730bdcfbb8b9132aa3c0d310407815f28c46 (diff) | |
download | gcc-308e51aa12cc0df15a524c9c90f4d349eca90290.zip gcc-308e51aa12cc0df15a524c9c90f4d349eca90290.tar.gz gcc-308e51aa12cc0df15a524c9c90f4d349eca90290.tar.bz2 |
predicates.md (pic_symbolic_operand): Remove predicate.
* 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.
From-SVN: r160252
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 111 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 33 | ||||
-rw-r--r-- | gcc/config/i386/predicates.md | 30 |
3 files changed, 60 insertions, 114 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1f36abd..bab4a24 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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> @@ -128,14 +140,12 @@ 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. @@ -162,8 +172,7 @@ (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 @@ -186,8 +195,7 @@ (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. @@ -217,8 +225,7 @@ (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. @@ -230,8 +237,7 @@ * 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. @@ -256,8 +262,7 @@ (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> @@ -364,8 +369,7 @@ (*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> @@ -478,8 +482,7 @@ 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> @@ -518,25 +521,26 @@ * 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> @@ -545,11 +549,11 @@ (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. @@ -577,7 +581,7 @@ * 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. @@ -623,14 +627,13 @@ 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> @@ -678,8 +681,7 @@ 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> @@ -688,8 +690,7 @@ 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> @@ -713,7 +714,7 @@ * 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 @@ -734,8 +735,7 @@ * 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> @@ -752,9 +752,8 @@ * 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> @@ -788,7 +787,7 @@ 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, @@ -986,7 +985,7 @@ * 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 @@ -1152,7 +1151,7 @@ 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> @@ -1433,7 +1432,7 @@ 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> diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 2dd6699a..6ed8db6 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -6118,10 +6118,6 @@ (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") ] @@ -6172,10 +6168,6 @@ [(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") ] @@ -6410,10 +6402,7 @@ (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)) { @@ -6458,10 +6447,7 @@ (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)) { @@ -6576,10 +6562,7 @@ (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)) { @@ -6623,10 +6606,7 @@ (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)) { @@ -6907,10 +6887,7 @@ (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)) { diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md index 8f901cd..a33d3af 100644 --- a/gcc/config/i386/predicates.md +++ b/gcc/config/i386/predicates.md @@ -420,36 +420,6 @@ } }) -;; 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") |