Go to the documentation of this file.
43 assert(&
BB.getParent()->getEntryBlock() == &
BB);
44 for (
auto I =
IP,
E =
BB.end();
I !=
E; ++
I) {
45 bool KeepInEntry =
false;
46 if (
auto *AI = dyn_cast<AllocaInst>(
I)) {
47 if (AI->isStaticAlloca())
49 }
else if (
auto *II = dyn_cast<IntrinsicInst>(
I)) {
50 if (II->getIntrinsicID() == llvm::Intrinsic::localescape)
62 const char *NamePrefix) {
84 Comdat *
C =
M->getOrInsertComdat(
F.getName());
85 if (
T.isOSBinFormatELF() || (
T.isOSBinFormatCOFF() && !
F.isWeakForLinker()))
void initializeMemProfilerLegacyPassPass(PassRegistry &)
GlobalVariable * createPrivateGlobalForString(Module &M, StringRef Str, bool AllowMerging, const char *NamePrefix="")
static BasicBlock::iterator moveBeforeInsertPoint(BasicBlock::iterator I, BasicBlock::iterator IP)
Moves I before IP. Returns new insert point.
BasicBlock::iterator PrepareToSplitEntryBlock(BasicBlock &BB, BasicBlock::iterator IP)
Instrumentation passes often insert conditional checks into entry blocks.
This is an optimization pass for GlobalISel generic memory operations.
void initializeBoundsCheckingLegacyPassPass(PassRegistry &)
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
InstListType::iterator iterator
Instruction iterators...
struct LLVMOpaquePassRegistry * LLVMPassRegistryRef
@ NoDeduplicate
No deduplication is performed.
Triple - Helper class for working with autoconf configuration names.
void setUnnamedAddr(UnnamedAddr Val)
LLVM Basic Block Representation.
void initializeCGProfileLegacyPassPass(PassRegistry &)
void initializeDataFlowSanitizerLegacyPassPass(PassRegistry &)
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
(vector float) vec_cmpeq(*A, *B) C
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
Attribute unwrap(LLVMAttributeRef Attr)
void initializeModuleSanitizerCoverageLegacyPassPass(PassRegistry &)
This is an important base class in LLVM.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
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.
Type * getType() const
All values are typed, get the type of this value.
static Constant * getString(LLVMContext &Context, StringRef Initializer, bool AddNull=true)
This method constructs a CDS and initializes it with a text string.
void initializeModuleMemProfilerLegacyPassPass(PassRegistry &)
Comdat * getOrCreateFunctionComdat(Function &F, Triple &T)
void initializeInstrOrderFileLegacyPassPass(PassRegistry &)
@ PrivateLinkage
Like Internal, but omit from symbol table.
A global registry used in conjunction with static constructors to make pluggable components (like tar...
void LLVMInitializeInstrumentation(LLVMPassRegistryRef R)
LLVMInitializeInstrumentation - C binding for initializeInstrumentation.
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB
void setAlignment(MaybeAlign Align)
void initializeInstrProfilingLegacyPassPass(PassRegistry &)
void initializeInstrumentation(PassRegistry &)
Initialize all passes linked into the Instrumentation library.
void initializeControlHeightReductionLegacyPassPass(PassRegistry &)