diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2022-04-26 11:08:55 -0700 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2024-07-08 10:47:09 +0800 |
commit | a910c30c7c27cd0f6d2d2694544a09fb11d611b9 (patch) | |
tree | 76e7f3869fe95113a50976bacd980d2159366380 /gcc/tree-pass.h | |
parent | 53eef7915ac1a9b9ad672cc2e80509c15a764ca2 (diff) | |
download | gcc-a910c30c7c27cd0f6d2d2694544a09fb11d611b9.zip gcc-a910c30c7c27cd0f6d2d2694544a09fb11d611b9.tar.gz gcc-a910c30c7c27cd0f6d2d2694544a09fb11d611b9.tar.bz2 |
x86: Update branch hint for Redwood Cove.
According to Intel® 64 and IA-32 Architectures Optimization Reference
Manual[1], Branch Hint is updated for Redwood Cove.
--------cut from [1]-------------------------
Starting with the Redwood Cove microarchitecture, if the predictor has
no stored information about a branch, the branch has the Intel® SSE2
branch taken hint (i.e., instruction prefix 3EH), When the codec
decodes the branch, it flips the branch’s prediction from not-taken to
taken. It then flushes the pipeline in front of it and steers this
pipeline to fetch the taken path of the branch.
--------cut end -----------------------------
Split tune branch_prediction_hints into branch_prediction_hints_taken
and branch_prediction_hints_not_taken, always generate branch hint for
conditional branches, both tunes are disabled by default.
[1] https://www.intel.com/content/www/us/en/content-details/821612/intel-64-and-ia-32-architectures-optimization-reference-manual-volume-1.html
gcc/
* config/i386/i386.cc (ix86_print_operand): Always generate
branch hint for conditional branches.
* config/i386/i386.h (TARGET_BRANCH_PREDICTION_HINTS): Split
into ..
(TARGET_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and ..
(TARGET_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this.
* config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS):
Split into ..
(X86_TUNE_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and ..
(X86_TUNE_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this.
Diffstat (limited to 'gcc/tree-pass.h')
0 files changed, 0 insertions, 0 deletions