diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-09-29 11:40:24 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-09-29 11:40:24 +0000 |
commit | 60f1f5ccc33cee0c5ab6170d0ed29d2b68e182d5 (patch) | |
tree | 86f0f02c1cd763e7136d740c442a6c1fed6e56af /gcc/recog.h | |
parent | 6531eca959da0a7e2999f602420911093844e742 (diff) | |
download | gcc-60f1f5ccc33cee0c5ab6170d0ed29d2b68e182d5.tar.gz |
* final.c (final_scan_insn): Remove extra extract_insn call;
Use caching for constrain_operands.
(cleanup_subreg_operands): Use caching for extract_insn.
* recog.c (constrain_operands_cached): New.
* recog.h (constrain_operands_cached): Declare.
* i386.c (ix86_attr_length_immediate_default,
ix86_attr_length_address_default, ix86_agi_dependant): Cache
extract_insn call.
* recog.c (asm_noperands): Tweak.
(extract_insn): Do not call asm_noperads for non-asm instructions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36665 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.h')
-rw-r--r-- | gcc/recog.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/recog.h b/gcc/recog.h index 3328af6850a..5987cfcbc33 100644 --- a/gcc/recog.h +++ b/gcc/recog.h @@ -21,6 +21,8 @@ Boston, MA 02111-1307, USA. */ /* Random number that should be large enough for all purposes. */ #define MAX_RECOG_ALTERNATIVES 30 +#define recog_memoized(I) (INSN_CODE (I) >= 0 \ + ? INSN_CODE (I) : recog_memoized_1 (I)) /* Types of operands. */ enum op_type { @@ -69,7 +71,7 @@ struct operand_alternative extern void init_recog PARAMS ((void)); extern void init_recog_no_volatile PARAMS ((void)); -extern int recog_memoized PARAMS ((rtx)); +extern int recog_memoized_1 PARAMS ((rtx)); extern int check_asm_operands PARAMS ((rtx)); extern int asm_operand_ok PARAMS ((rtx, const char *)); extern int validate_change PARAMS ((rtx, rtx *, rtx, int)); @@ -77,6 +79,7 @@ extern int apply_change_group PARAMS ((void)); extern int num_validated_changes PARAMS ((void)); extern void cancel_changes PARAMS ((int)); extern int constrain_operands PARAMS ((int)); +extern int constrain_operands_cached PARAMS ((int)); extern int memory_address_p PARAMS ((enum machine_mode, rtx)); extern int strict_memory_address_p PARAMS ((enum machine_mode, rtx)); extern int validate_replace_rtx_subexp PARAMS ((rtx, rtx, rtx, rtx *)); |