aboutsummaryrefslogtreecommitdiff
path: root/gcc/final.c
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/final.c
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/final.c')
-rw-r--r--gcc/final.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/final.c b/gcc/final.c
index bfd4754..0e22b06 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -2919,7 +2919,6 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
since `reload' should have changed them so that they do. */
insn_code_number = recog_memoized (insn);
- extract_insn (insn);
cleanup_subreg_operands (insn);
/* Dump the insn in the assembly for debugging. */
@@ -2930,7 +2929,7 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
print_rtx_head = "";
}
- if (! constrain_operands (1))
+ if (! constrain_operands_cached (1))
fatal_insn_not_found (insn);
/* Some target machines need to prescan each insn before
@@ -3138,8 +3137,7 @@ cleanup_subreg_operands (insn)
rtx insn;
{
int i;
-
- extract_insn (insn);
+ extract_insn_cached (insn);
for (i = 0; i < recog_data.n_operands; i++)
{
if (GET_CODE (recog_data.operand[i]) == SUBREG)