From eeaec7291a2bb01278fd8c1df04674db98548f98 Mon Sep 17 00:00:00 2001 From: uros Date: Fri, 4 Jun 2010 06:44:00 +0000 Subject: [PATCH] * config/i386/predicates.md (pic_symbolic_operand): Remove predicate. * config/i386/i386.md (*add_1): Do not use pic_symbolic_operand predicate in "type" attribute calculation. (*addsi_1_zext): Ditto. (*add_2): Do not use pic_symbolic_operand in insn predicate. (*addsi_2_zext): Ditto. (*add_3): Ditto. (*addsi_3_zext): Ditto. (*add_5): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160252 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 111 +++++++++++++++++----------------- gcc/config/i386/i386.md | 33 ++-------- gcc/config/i386/predicates.md | 30 --------- 3 files changed, 60 insertions(+), 114 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1f36abd3bc95..bab4a24b1473 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2010-06-04 Uros Bizjak + + * config/i386/predicates.md (pic_symbolic_operand): Remove predicate. + * config/i386/i386.md (*add_1): Do not use pic_symbolic_operand + predicate in "type" attribute calculation. + (*addsi_1_zext): Ditto. + (*add_2): Do not use pic_symbolic_operand in insn predicate. + (*addsi_2_zext): Ditto. + (*add_3): Ditto. + (*addsi_3_zext): Ditto. + (*add_5): Ditto. + 2010-06-03 Jan Hubicka * tree-into-ssa.c (mark_block_for_update): Avoid redundant call @@ -70,7 +82,7 @@ 2010-06-03 Jan Hubicka Jakub Jelinek - * 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 @@ -128,14 +140,12 @@ PR target/44218 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete - -mswdiv option. Add -mrecip, -mrecip=, -mrecip-precision - options. + -mswdiv option. Add -mrecip, -mrecip=, -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=): 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 @@ -364,8 +369,7 @@ (*mov_64 TD_TF, *mov_31 TD_TF, *mov_64dfp DD_DF, *mov_64 DD_DF, *mov_31, mov): 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 @@ -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 @@ -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 @@ -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 - Matthew Gingell + Matthew Gingell * doc/invoke.texi: Mention -fdump-ada-spec. * tree-dump.c (dump_files): Add ada-spec. @@ -623,14 +627,13 @@ 2010-06-01 Kai Tietz - * 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 @@ -678,8 +681,7 @@ 2010-05-31 Kai Tietz 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 @@ -688,8 +690,7 @@ 2010-05-31 Richard Guenther - * 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 @@ -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 * 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 @@ -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 @@ -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 - * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin. + * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin. 2010-05-28 Maxim Kuvyrkov @@ -1433,7 +1432,7 @@ 2010-05-27 Jon Beniston 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 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 2dd6699ae1d8..6ed8db655946 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, 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, 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 8f901cd87544..a33d3af9ec0e 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") -- 2.47.2