diff options
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -819,6 +819,7 @@ extern const char * const reg_note_name[]; #define NOTE_EXPECTED_VALUE(INSN) XCEXP (INSN, 4, NOTE) #define NOTE_PREDICTION(INSN) XCINT (INSN, 4, NOTE) #define NOTE_PRECONDITIONED(INSN) XCINT (INSN, 4, NOTE) +#define NOTE_VAR_LOCATION(INSN) XCEXP (INSN, 4, NOTE) /* In a NOTE that is a line number, this is the line number. Other kinds of NOTEs are identified by negative numbers here. */ @@ -834,6 +835,12 @@ extern const char * const reg_note_name[]; #define NOTE_PREDICTION_FLAGS(INSN) (XCINT(INSN, 4, NOTE)&0xff) #define NOTE_PREDICT(ALG,FLAGS) ((ALG<<8)+(FLAGS)) +/* Variable declaration and the location of a variable. */ +#define NOTE_VAR_LOCATION_DECL(INSN) (XCTREE (XCEXP (INSN, 4, NOTE), \ + 0, VAR_LOCATION)) +#define NOTE_VAR_LOCATION_LOC(INSN) (XCEXP (XCEXP (INSN, 4, NOTE), \ + 1, VAR_LOCATION)) + /* Codes that appear in the NOTE_LINE_NUMBER field for kinds of notes that are not line numbers. @@ -917,6 +924,9 @@ enum insn_note /* Record a prediction. Uses NOTE_PREDICTION. */ NOTE_INSN_PREDICTION, + /* The location of a variable. */ + NOTE_INSN_VAR_LOCATION, + NOTE_INSN_MAX }; @@ -2343,4 +2353,7 @@ extern bool expensive_function_p (int); /* In tracer.c */ extern void tracer (void); +/* In var-tracking.c */ +extern void variable_tracking_main (void); + #endif /* ! GCC_RTL_H */ |