27 NVPTXAllocaHoisting() : FunctionPass(ID) {}
29 void getAnalysisUsage(AnalysisUsage &AU)
const override {
33 StringRef getPassName()
const override {
34 return "NVPTX specific alloca hoisting";
42 bool functionModified =
false;
51 functionModified =
true;
56 return functionModified;
59char NVPTXAllocaHoisting::ID = 0;
62 NVPTXAllocaHoisting,
"alloca-hoisting",
63 "Hoisting alloca instructions in non-entry blocks to the entry block",
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
This file contains the declarations for the subclasses of Constant, which represent the different fla...
static bool runOnFunction(Function &F, bool PostInlining)
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
dot regions Print regions of function to dot true view regions View regions of function(with no function bodies)"
const Value * getArraySize() const
Get the number of elements allocated.
AnalysisUsage & addPreserved()
Add the specified Pass class to the set of analyses preserved by this pass.
InstListType::iterator iterator
Instruction iterators...
FunctionPass class - This class is used to implement most global optimizations.
BasicBlockListType::iterator iterator
LLVM_ABI void moveBefore(InstListType::iterator InsertPos)
Unlink this instruction from its current basic block and insert it into the basic block that MovePos ...
self_iterator getIterator()
friend class Instruction
Iterator for Instructions in a `BasicBlock.
LLVM_ABI Instruction * getTerminator() const
This is an optimization pass for GlobalISel generic memory operations.
decltype(auto) dyn_cast(const From &Val)
dyn_cast<X> - Return the argument parameter cast to the specified type.
FunctionPass * createAllocaHoisting()
bool isa(const From &Val)
isa<X> - Return true if the parameter to the template is an instance of one of the template type argu...