diff options
Diffstat (limited to 'lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp')
-rw-r--r-- | lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp b/lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp index 44234e8..2b459a4 100644 --- a/lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp +++ b/lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp @@ -33,15 +33,16 @@ namespace { HexagonRemoveExtendArgs() : FunctionPass(ID) { initializeHexagonRemoveExtendArgsPass(*PassRegistry::getPassRegistry()); } - virtual bool runOnFunction(Function &F); + bool runOnFunction(Function &F) override; - const char *getPassName() const { + const char *getPassName() const override { return "Remove sign extends"; } - virtual void getAnalysisUsage(AnalysisUsage &AU) const { + void getAnalysisUsage(AnalysisUsage &AU) const override { AU.addRequired<MachineFunctionAnalysis>(); AU.addPreserved<MachineFunctionAnalysis>(); + AU.addPreserved("stack-protector"); FunctionPass::getAnalysisUsage(AU); } }; @@ -59,18 +60,17 @@ bool HexagonRemoveExtendArgs::runOnFunction(Function &F) { if (F.getAttributes().hasAttribute(Idx, Attribute::SExt)) { Argument* Arg = AI; if (!isa<PointerType>(Arg->getType())) { - for (Instruction::use_iterator UI = Arg->use_begin(); - UI != Arg->use_end();) { + for (auto UI = Arg->user_begin(); UI != Arg->user_end();) { if (isa<SExtInst>(*UI)) { - Instruction* Use = cast<Instruction>(*UI); - SExtInst* SI = new SExtInst(Arg, Use->getType()); + Instruction* I = cast<Instruction>(*UI); + SExtInst* SI = new SExtInst(Arg, I->getType()); assert (EVT::getEVT(SI->getType()) == - (EVT::getEVT(Use->getType()))); + (EVT::getEVT(I->getType()))); ++UI; - Use->replaceAllUsesWith(SI); + I->replaceAllUsesWith(SI); Instruction* First = F.getEntryBlock().begin(); SI->insertBefore(First); - Use->eraseFromParent(); + I->eraseFromParent(); } else { ++UI; } |