aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMSubtarget.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2009-11-18 03:34:27 +0000
committerBob Wilson <bob.wilson@apple.com>2009-11-18 03:34:27 +0000
commit19194a2f4d58b62e438b2c28f4b42966931cd397 (patch)
tree54f4512d0d88c69265505976b1d17cdd845a2fb9 /lib/Target/ARM/ARMSubtarget.cpp
parentc3bd9875c4cffb6514b54839c0220cfeccb5b7a9 (diff)
downloadexternal_llvm-19194a2f4d58b62e438b2c28f4b42966931cd397.zip
external_llvm-19194a2f4d58b62e438b2c28f4b42966931cd397.tar.gz
external_llvm-19194a2f4d58b62e438b2c28f4b42966931cd397.tar.bz2
Add a target hook to allow changing the tail duplication limit based on the
contents of the block to be duplicated. Use this for ARM Cortex A8/9 to be more aggressive tail duplicating indirect branches, since it makes it much more likely that they will be predicted in the branch target buffer. Testcase coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89187 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMSubtarget.cpp')
-rw-r--r--lib/Target/ARM/ARMSubtarget.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp
index 87b78a9..432ed78 100644
--- a/lib/Target/ARM/ARMSubtarget.cpp
+++ b/lib/Target/ARM/ARMSubtarget.cpp
@@ -109,6 +109,8 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &FS,
if (UseNEONFP.getPosition() == 0)
UseNEONForSinglePrecisionFP = true;
}
+ HasBranchTargetBuffer = (CPUString == "cortex-a8" ||
+ CPUString == "cortex-a9");
}
/// GVIsIndirectSymbol - true if the GV will be accessed via an indirect symbol.