41 for (
auto I = IP,
E = BB.
end();
I !=
E; ++
I) {
42 bool KeepInEntry =
false;
43 if (
auto *AI = dyn_cast<AllocaInst>(
I)) {
44 if (AI->isStaticAlloca())
46 }
else if (
auto *II = dyn_cast<IntrinsicInst>(
I)) {
47 if (II->getIntrinsicID() == llvm::Intrinsic::localescape)
59 const char *NamePrefix) {
81 Comdat *
C = M->getOrInsertComdat(
F.getName());
82 if (
T.isOSBinFormatELF() || (
T.isOSBinFormatCOFF() && !
F.isWeakForLinker()))
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
static BasicBlock::iterator moveBeforeInsertPoint(BasicBlock::iterator I, BasicBlock::iterator IP)
Moves I before IP. Returns new insert point.
Module.h This file contains the declarations for the Module class.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
LLVM Basic Block Representation.
const Function * getParent() const
Return the enclosing method, or null if none.
InstListType::iterator iterator
Instruction iterators...
@ NoDeduplicate
No deduplication is performed.
static Constant * getString(LLVMContext &Context, StringRef Initializer, bool AddNull=true)
This method constructs a CDS and initializes it with a text string.
This is an important base class in LLVM.
const BasicBlock & getEntryBlock() const
void setAlignment(Align Align)
Sets the alignment attribute of the GlobalObject.
void setUnnamedAddr(UnnamedAddr Val)
@ PrivateLinkage
Like Internal, but omit from symbol table.
A Module instance is used to store all the information related to an LLVM module.
StringRef - Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
Type * getType() const
All values are typed, get the type of this value.
@ C
The default llvm calling convention, compatible with C.
This is an optimization pass for GlobalISel generic memory operations.
GlobalVariable * createPrivateGlobalForString(Module &M, StringRef Str, bool AllowMerging, const char *NamePrefix="")
Comdat * getOrCreateFunctionComdat(Function &F, Triple &T)
BasicBlock::iterator PrepareToSplitEntryBlock(BasicBlock &BB, BasicBlock::iterator IP)
Instrumentation passes often insert conditional checks into entry blocks.
This struct is a compact representation of a valid (non-zero power of two) alignment.