diff options
author | Richard Henderson <rth@cygnus.com> | 2000-04-17 09:49:00 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-04-17 09:49:00 -0700 |
commit | 994a57cd287e37aaaf909fc1ae671e54b1b360c4 (patch) | |
tree | 463f2ea9fd7c3ba92418e1563975dde99f0150de /gcc/rtl.h | |
parent | 2be5e524b0ce96881e40a84d0355f40edd82e07e (diff) | |
download | gcc-994a57cd287e37aaaf909fc1ae671e54b1b360c4.zip gcc-994a57cd287e37aaaf909fc1ae671e54b1b360c4.tar.gz gcc-994a57cd287e37aaaf909fc1ae671e54b1b360c4.tar.bz2 |
builtins.c (expand_builtin_expect): New.
* builtins.c (expand_builtin_expect): New.
(expand_builtin): Call it.
* builtins.def (BUILT_IN_EXPECT): New.
* c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
* extend.texi: Document it.
* predict.c (expected_value_to_br_prob): New.
(find_expected_value): New.
* basic-block.h (expected_value_to_br_prob): Declare.
* toplev.c (rest_of_compilation): Invoke it.
* rtl.h (NOTE_EXPECTED_VALUE): New.
(NOTE_INSN_EXPECTED_VALUE): New.
* rtl.c (note_insn_name): Update.
* print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
cases; handle NOTE_INSN_EXPECTED_VALUE.
From-SVN: r33211
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -577,6 +577,7 @@ extern const char * const reg_note_name[]; #define NOTE_RANGE_INFO(INSN) XCEXP(INSN, 3, NOTE) #define NOTE_LIVE_INFO(INSN) XCEXP(INSN, 3, NOTE) #define NOTE_BASIC_BLOCK(INSN) XCBBDEF(INSN, 3, NOTE) +#define NOTE_EXPECTED_VALUE(INSN) XCEXP(INSN, 3, NOTE) /* In a NOTE that is a line number, this is the line number. Other kinds of NOTEs are identified by negative numbers here. */ @@ -664,6 +665,10 @@ enum insn_note /* Record the struct for the following basic block. Uses NOTE_BASIC_BLOCK. */ NOTE_INSN_BASIC_BLOCK, + /* Record the expected value of a register at a location. Uses + NOTE_EXPECTED_VALUE; stored as (eq (reg) (const_int)). */ + NOTE_INSN_EXPECTED_VALUE, + NOTE_INSN_MAX }; |