diff options
| author | 2018-04-06 14:26:03 +0000 | |
|---|---|---|
| committer | 2018-04-06 14:26:03 +0000 | |
| commit | bdabc2f19ffb9e20600dad6e8a300842a7bda50e (patch) | |
| tree | c50e7b2e5449b074651bb82a58517a8ebc4a8cf7 /gnu/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp | |
| parent | Print a 'p' flag for file descriptors that were opened after pledge(2). (diff) | |
| download | wireguard-openbsd-bdabc2f19ffb9e20600dad6e8a300842a7bda50e.tar.xz wireguard-openbsd-bdabc2f19ffb9e20600dad6e8a300842a7bda50e.zip | |
Import LLVM 6.0.1 release including clang, lld and lldb.
"where is the kaboom?" deraadt@
Diffstat (limited to 'gnu/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp')
| -rw-r--r-- | gnu/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/gnu/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp b/gnu/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp index 8cb35c50613..150d8c3dc3d 100644 --- a/gnu/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp +++ b/gnu/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp @@ -1,4 +1,4 @@ -//===-- SIAnnotateControlFlow.cpp - ------------------===// +//===- SIAnnotateControlFlow.cpp ------------------------------------------===// // // The LLVM Compiler Infrastructure // @@ -14,16 +14,32 @@ #include "AMDGPU.h" #include "llvm/ADT/DepthFirstIterator.h" +#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/SmallVector.h" #include "llvm/Analysis/DivergenceAnalysis.h" #include "llvm/Analysis/LoopInfo.h" +#include "llvm/IR/BasicBlock.h" +#include "llvm/IR/CFG.h" +#include "llvm/IR/Constant.h" #include "llvm/IR/Constants.h" +#include "llvm/IR/DerivedTypes.h" #include "llvm/IR/Dominators.h" +#include "llvm/IR/Function.h" +#include "llvm/IR/Instruction.h" #include "llvm/IR/Instructions.h" +#include "llvm/IR/Intrinsics.h" #include "llvm/IR/Module.h" +#include "llvm/IR/Type.h" +#include "llvm/IR/ValueHandle.h" #include "llvm/Pass.h" +#include "llvm/Support/Casting.h" +#include "llvm/Support/Debug.h" +#include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/raw_ostream.h" #include "llvm/Transforms/Utils/BasicBlockUtils.h" #include "llvm/Transforms/Utils/Local.h" -#include "llvm/Transforms/Utils/SSAUpdater.h" +#include <cassert> +#include <utility> using namespace llvm; @@ -32,8 +48,8 @@ using namespace llvm; namespace { // Complex types used in this pass -typedef std::pair<BasicBlock *, Value *> StackEntry; -typedef SmallVector<StackEntry, 16> StackVector; +using StackEntry = std::pair<BasicBlock *, Value *>; +using StackVector = SmallVector<StackEntry, 16>; class SIAnnotateControlFlow : public FunctionPass { DivergenceAnalysis *DA; @@ -89,8 +105,7 @@ class SIAnnotateControlFlow : public FunctionPass { public: static char ID; - SIAnnotateControlFlow(): - FunctionPass(ID) { } + SIAnnotateControlFlow() : FunctionPass(ID) {} bool doInitialization(Module &M) override; @@ -105,7 +120,6 @@ public: AU.addPreserved<DominatorTreeWrapperPass>(); FunctionPass::getAnalysisUsage(AU); } - }; } // end anonymous namespace @@ -186,7 +200,7 @@ bool SIAnnotateControlFlow::isElse(PHINode *Phi) { // \brief Erase "Phi" if it is not used any more void SIAnnotateControlFlow::eraseIfUnused(PHINode *Phi) { - if (llvm::RecursivelyDeleteDeadPHINode(Phi)) { + if (RecursivelyDeleteDeadPHINode(Phi)) { DEBUG(dbgs() << "Erased unused condition phi\n"); } } @@ -215,7 +229,6 @@ void SIAnnotateControlFlow::insertElse(BranchInst *Term) { Value *SIAnnotateControlFlow::handleLoopCondition( Value *Cond, PHINode *Broken, llvm::Loop *L, BranchInst *Term, SmallVectorImpl<WeakTrackingVH> &LoopPhiConditions) { - // Only search through PHI nodes which are inside the loop. If we try this // with PHI nodes that are outside of the loop, we end up inserting new PHI // nodes outside of the loop which depend on values defined inside the loop. @@ -223,7 +236,6 @@ Value *SIAnnotateControlFlow::handleLoopCondition( // 'Instruction does not dominate all users!' errors. PHINode *Phi = nullptr; if ((Phi = dyn_cast<PHINode>(Cond)) && L->contains(Phi)) { - BasicBlock *Parent = Phi->getParent(); PHINode *NewPhi = PHINode::Create(Int64, 0, "loop.phi", &Parent->front()); Value *Ret = NewPhi; @@ -333,7 +345,7 @@ void SIAnnotateControlFlow::handleLoop(BranchInst *Term) { Term->setCondition(CallInst::Create(Loop, Arg, "", Term)); - for (WeakTrackingVH Val : reverse(LoopPhiConditions)) { + for (WeakTrackingVH Val : llvm::reverse(LoopPhiConditions)) { if (PHINode *Cond = cast_or_null<PHINode>(Val)) eraseIfUnused(Cond); } @@ -360,7 +372,7 @@ void SIAnnotateControlFlow::closeControlFlow(BasicBlock *BB) { Preds.push_back(Pred); } - BB = llvm::SplitBlockPredecessors(BB, Preds, "endcf.split", DT, LI, false); + BB = SplitBlockPredecessors(BB, Preds, "endcf.split", DT, LI, false); } Value *Exec = popSaved(); |
