LLVM 20.0.0git
|
This struct can be used to capture information about code being cloned, while it is being cloned. More...
#include "llvm/Transforms/Utils/Cloning.h"
Public Member Functions | |
ClonedCodeInfo ()=default | |
bool | isSimplified (const Value *From, const Value *To) const |
Public Attributes | |
bool | ContainsCalls = false |
This is set to true if the cloned code contains a normal call instruction. | |
bool | ContainsMemProfMetadata = false |
This is set to true if there is memprof related metadata (memprof or callsite metadata) in the cloned code. | |
bool | ContainsDynamicAllocas = false |
This is set to true if the cloned code contains a 'dynamic' alloca. | |
std::vector< WeakTrackingVH > | OperandBundleCallSites |
All cloned call sites that have operand bundles attached are appended to this vector. | |
DenseMap< const Value *, const Value * > | OrigVMap |
Like VMap, but maps only unsimplified instructions. | |
This struct can be used to capture information about code being cloned, while it is being cloned.
|
default |
Definition at line 88 of file Cloning.h.
References From, and OrigVMap.
Referenced by AddAliasScopeMetadata(), AddParamAndFnBasicAttributes(), and AddReturnAttributes().
bool llvm::ClonedCodeInfo::ContainsCalls = false |
This is set to true if the cloned code contains a normal call instruction.
Definition at line 65 of file Cloning.h.
Referenced by llvm::CloneBasicBlock(), HandleInlinedEHPad(), HandleInlinedLandingPad(), and llvm::InlineFunction().
bool llvm::ClonedCodeInfo::ContainsDynamicAllocas = false |
This is set to true if the cloned code contains a 'dynamic' alloca.
Dynamic allocas are allocas that are either not in the entry block or they are in the entry block but are not a constant size.
Definition at line 74 of file Cloning.h.
Referenced by llvm::CloneBasicBlock(), and llvm::InlineFunction().
bool llvm::ClonedCodeInfo::ContainsMemProfMetadata = false |
This is set to true if there is memprof related metadata (memprof or callsite metadata) in the cloned code.
Definition at line 69 of file Cloning.h.
Referenced by llvm::CloneBasicBlock(), and llvm::InlineFunction().
std::vector<WeakTrackingVH> llvm::ClonedCodeInfo::OperandBundleCallSites |
All cloned call sites that have operand bundles attached are appended to this vector.
This vector may contain nulls or undefs if some of the originally inserted callsites were DCE'ed after they were cloned.
Definition at line 79 of file Cloning.h.
Referenced by llvm::InlineFunction().
Like VMap, but maps only unsimplified instructions.
Values in the map may be dangling, it is only intended to be used via isSimplified(), to check whether the main VMap mapping involves simplification or not.
Definition at line 84 of file Cloning.h.
Referenced by isSimplified().