diff options
author | Eugene Zelenko <eugene.zelenko@gmail.com> | 2017-08-08 23:53:55 +0000 |
---|---|---|
committer | Eugene Zelenko <eugene.zelenko@gmail.com> | 2017-08-08 23:53:55 +0000 |
commit | d16eff816b876aac959dbd45dc78d41a06f966ad (patch) | |
tree | a306e9d295d76377cc82b0c802277d5d02e30a14 /llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp | |
parent | e5a9d9f17c1c577075e8a905618b2216d903b6f9 (diff) | |
download | bcm5719-llvm-d16eff816b876aac959dbd45dc78d41a06f966ad.tar.gz bcm5719-llvm-d16eff816b876aac959dbd45dc78d41a06f966ad.zip |
[AMDGPU] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC).
llvm-svn: 310429
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp b/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp index 8c04e2b1962..83e56a9ab49 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp @@ -1,4 +1,4 @@ -//===-- AMDGPURewriteOutArgumentsPass.cpp - Create struct returns ---------===// +//===- AMDGPURewriteOutArgumentsPass.cpp - Create struct returns ----------===// // // The LLVM Compiler Infrastructure // @@ -44,22 +44,39 @@ #include "AMDGPU.h" #include "Utils/AMDGPUBaseInfo.h" - #include "llvm/Analysis/MemoryDependenceAnalysis.h" -#include "llvm/ADT/BitVector.h" -#include "llvm/ADT/SetVector.h" +#include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/SmallSet.h" +#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Analysis/MemoryLocation.h" +#include "llvm/IR/Argument.h" +#include "llvm/IR/Attributes.h" +#include "llvm/IR/BasicBlock.h" +#include "llvm/IR/Constants.h" +#include "llvm/IR/DataLayout.h" +#include "llvm/IR/DerivedTypes.h" +#include "llvm/IR/Function.h" #include "llvm/IR/IRBuilder.h" +#include "llvm/IR/Instructions.h" #include "llvm/IR/Module.h" -#include "llvm/Transforms/Utils/Cloning.h" +#include "llvm/IR/Type.h" +#include "llvm/IR/Use.h" +#include "llvm/IR/User.h" +#include "llvm/IR/Value.h" +#include "llvm/Pass.h" +#include "llvm/Support/Casting.h" +#include "llvm/Support/CommandLine.h" #include "llvm/Support/Debug.h" +#include "llvm/Support/raw_ostream.h" +#include <cassert> +#include <utility> #define DEBUG_TYPE "amdgpu-rewrite-out-arguments" using namespace llvm; -namespace { - static cl::opt<bool> AnyAddressSpace( "amdgpu-any-address-space-out-arguments", cl::desc("Replace pointer out arguments with " @@ -78,6 +95,8 @@ STATISTIC(NumOutArgumentsReplaced, STATISTIC(NumOutArgumentFunctionsReplaced, "Number of functions with out arguments moved to struct return values"); +namespace { + class AMDGPURewriteOutArguments : public FunctionPass { private: const DataLayout *DL = nullptr; @@ -89,11 +108,11 @@ private: #ifndef NDEBUG bool isVec3ToVec4Shuffle(Type *Ty0, Type* Ty1) const; #endif + public: static char ID; - AMDGPURewriteOutArguments() : - FunctionPass(ID) {} + AMDGPURewriteOutArguments() : FunctionPass(ID) {} void getAnalysisUsage(AnalysisUsage &AU) const override { AU.addRequired<MemoryDependenceWrapperPass>(); @@ -101,10 +120,10 @@ public: } bool doInitialization(Module &M) override; - bool runOnFunction(Function &M) override; + bool runOnFunction(Function &F) override; }; -} // End anonymous namespace +} // end anonymous namespace INITIALIZE_PASS_BEGIN(AMDGPURewriteOutArguments, DEBUG_TYPE, "AMDGPU Rewrite Out Arguments", false, false) @@ -239,7 +258,8 @@ bool AMDGPURewriteOutArguments::runOnFunction(Function &F) { if (OutArgs.empty()) return false; - typedef SmallVector<std::pair<Argument *, Value *>, 4> ReplacementVec; + using ReplacementVec = SmallVector<std::pair<Argument *, Value *>, 4>; + DenseMap<ReturnInst *, ReplacementVec> Replacements; SmallVector<ReturnInst *, 4> Returns; @@ -373,7 +393,6 @@ bool AMDGPURewriteOutArguments::runOnFunction(Function &F) { if (RetVal) NewRetVal = B.CreateInsertValue(NewRetVal, RetVal, RetIdx++); - for (std::pair<Argument *, Value *> ReturnPoint : Replacement.second) { Argument *Arg = ReturnPoint.first; Value *Val = ReturnPoint.second; |