aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2000-09-29 11:40:24 +0000
committerJan Hubicka <hubicka@gcc.gnu.org>2000-09-29 11:40:24 +0000
commit6c698a6d9b4a78f1258cbf2432047a4e23fbc9d5 (patch)
tree86f0f02c1cd763e7136d740c442a6c1fed6e56af /gcc/recog.h
parentb1cdafbb6c7bef4c21922ae2ce25b64445dc49cc (diff)
downloadgcc-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.h5
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 *));