summaryrefslogtreecommitdiff
path: root/gcc/recog.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-11 23:54:11 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-11 23:54:11 +0000
commit0edc2b1cc887e4e3e9cdd3d45512e553d0ed4d84 (patch)
treea4a10ad41eb4009a3a451fc4518e9f29cc1010ab /gcc/recog.h
parentc6322c9a3ef07e3a3073e64c3edc4990419b346f (diff)
downloadgcc-0edc2b1cc887e4e3e9cdd3d45512e553d0ed4d84.tar.gz
* i386.md (add?i_3, add?i_5): New.
(add?i_4): Rename from add?i_3; Fix compare pattern. (sub?i_3, xor?i_3, ior?i_3): New. * genrecog.c (write_tree): Output code to clear insn_extract cache. * genattrtab.c (write_attr_case): Gen call to extract_insn_cache instead of extract_insn and extract_constrain_insn_cache instead of extract_insn and constrain_operands. * recog.c (extract_insn_cached, extract_constrain_insn_cached): New functions. (extract_insn): Clear which_alternative. (constrain_operands): Set which_alternative to -1 when failed. * recog.h (extract_constrain_insn_cached, extract_insn_cached): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36342 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.h')
-rw-r--r--gcc/recog.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/recog.h b/gcc/recog.h
index d4fd4fd6934..3328af6850a 100644
--- a/gcc/recog.h
+++ b/gcc/recog.h
@@ -116,6 +116,8 @@ extern int recog PARAMS ((rtx, rtx, int *));
extern void add_clobbers PARAMS ((rtx, int));
extern void insn_extract PARAMS ((rtx));
extern void extract_insn PARAMS ((rtx));
+extern void extract_constrain_insn_cached PARAMS ((rtx));
+extern void extract_insn_cached PARAMS ((rtx));
extern void preprocess_constraints PARAMS ((void));
extern rtx peep2_next_insn PARAMS ((int));
extern int peep2_regno_dead_p PARAMS ((int, int));
@@ -186,6 +188,9 @@ struct recog_data
/* The number of alternatives in the constraints for the insn. */
char n_alternatives;
+
+ /* In case we are caching, hold insn data was generated for. */
+ rtx insn;
};
extern struct recog_data recog_data;