summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/StackProtector.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-06-19 20:51:24 +0000
committerBill Wendling <isanbard@gmail.com>2013-06-19 20:51:24 +0000
commitafc1036f3e4c66261800f4ea896cd393a079a1a3 (patch)
tree019c14650310f4d08ecb2c50af95cb84d681696a /llvm/lib/CodeGen/StackProtector.cpp
parent6eed5c4c45aa00409c370098d402300a1610c067 (diff)
downloadbcm5719-llvm-afc1036f3e4c66261800f4ea896cd393a079a1a3.tar.gz
bcm5719-llvm-afc1036f3e4c66261800f4ea896cd393a079a1a3.zip
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.
llvm-svn: 184349
Diffstat (limited to 'llvm/lib/CodeGen/StackProtector.cpp')
-rw-r--r--llvm/lib/CodeGen/StackProtector.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/StackProtector.cpp b/llvm/lib/CodeGen/StackProtector.cpp
index 389793ebc12..1f673ab0377 100644
--- a/llvm/lib/CodeGen/StackProtector.cpp
+++ b/llvm/lib/CodeGen/StackProtector.cpp
@@ -41,9 +41,11 @@ STATISTIC(NumAddrTaken, "Number of local variables that have their address"
namespace {
class StackProtector : public FunctionPass {
+ const TargetMachine *TM;
+
/// TLI - Keep a pointer of a TargetLowering to consult for determining
/// target type sizes.
- const TargetLoweringBase *const TLI;
+ const TargetLoweringBase *TLI;
const Triple Trip;
Function *F;
@@ -83,12 +85,11 @@ namespace {
bool RequiresStackProtector();
public:
static char ID; // Pass identification, replacement for typeid.
- StackProtector() : FunctionPass(ID), TLI(0) {
+ StackProtector() : FunctionPass(ID), TM(0), TLI(0) {
initializeStackProtectorPass(*PassRegistry::getPassRegistry());
}
- StackProtector(const TargetLoweringBase *tli)
- : FunctionPass(ID), TLI(tli),
- Trip(tli->getTargetMachine().getTargetTriple()) {
+ StackProtector(const TargetMachine *TM)
+ : FunctionPass(ID), TM(TM), TLI(0), Trip(TM->getTargetTriple()) {
initializeStackProtectorPass(*PassRegistry::getPassRegistry());
}
@@ -104,14 +105,15 @@ char StackProtector::ID = 0;
INITIALIZE_PASS(StackProtector, "stack-protector",
"Insert stack protectors", false, false)
-FunctionPass *llvm::createStackProtectorPass(const TargetLoweringBase *tli) {
- return new StackProtector(tli);
+FunctionPass *llvm::createStackProtectorPass(const TargetMachine *TM) {
+ return new StackProtector(TM);
}
bool StackProtector::runOnFunction(Function &Fn) {
F = &Fn;
M = F->getParent();
DT = getAnalysisIfAvailable<DominatorTree>();
+ TLI = TM->getTargetLowering();
if (!RequiresStackProtector()) return false;
OpenPOWER on IntegriCloud