diff options
author | Jan Hubicka <jh@suse.cz> | 2000-09-29 11:40:24 +0000 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2000-09-29 11:40:24 +0000 |
commit | 6c698a6d9b4a78f1258cbf2432047a4e23fbc9d5 (patch) | |
tree | 86f0f02c1cd763e7136d740c442a6c1fed6e56af /gcc/recog.h | |
parent | b1cdafbb6c7bef4c21922ae2ce25b64445dc49cc (diff) | |
download | gcc-6c698a6d9b4a78f1258cbf2432047a4e23fbc9d5.zip gcc-6c698a6d9b4a78f1258cbf2432047a4e23fbc9d5.tar.gz gcc-6c698a6d9b4a78f1258cbf2432047a4e23fbc9d5.tar.bz2 |
final.c (final_scan_insn): Remove extra extract_insn call; Use caching for constrain_operands.
* 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.
From-SVN: r36665
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 3328af6..5987cfc 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 *)); |