diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/libs/llvm12/include/llvm/Transforms/Utils/Cloning.h | |
parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
download | ydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/Transforms/Utils/Cloning.h')
-rw-r--r-- | contrib/libs/llvm12/include/llvm/Transforms/Utils/Cloning.h | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/contrib/libs/llvm12/include/llvm/Transforms/Utils/Cloning.h b/contrib/libs/llvm12/include/llvm/Transforms/Utils/Cloning.h index 55e8d5d0b2..d15d6828ce 100644 --- a/contrib/libs/llvm12/include/llvm/Transforms/Utils/Cloning.h +++ b/contrib/libs/llvm12/include/llvm/Transforms/Utils/Cloning.h @@ -275,49 +275,49 @@ void updateProfileCallee( Function *Callee, int64_t entryDelta, const ValueMap<const Value *, WeakTrackingVH> *VMap = nullptr); -/// Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified -/// basic blocks and extract their scope. These are candidates for duplication -/// when cloning. -void identifyNoAliasScopesToClone( - ArrayRef<BasicBlock *> BBs, SmallVectorImpl<MDNode *> &NoAliasDeclScopes); - -/// Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified -/// instruction range and extract their scope. These are candidates for -/// duplication when cloning. -void identifyNoAliasScopesToClone( - BasicBlock::iterator Start, BasicBlock::iterator End, - SmallVectorImpl<MDNode *> &NoAliasDeclScopes); - -/// Duplicate the specified list of noalias decl scopes. -/// The 'Ext' string is added as an extension to the name. -/// Afterwards, the ClonedScopes contains the mapping of the original scope -/// MDNode onto the cloned scope. -/// Be aware that the cloned scopes are still part of the original scope domain. -void cloneNoAliasScopes( - ArrayRef<MDNode *> NoAliasDeclScopes, - DenseMap<MDNode *, MDNode *> &ClonedScopes, - StringRef Ext, LLVMContext &Context); - -/// Adapt the metadata for the specified instruction according to the -/// provided mapping. This is normally used after cloning an instruction, when -/// some noalias scopes needed to be cloned. -void adaptNoAliasScopes( - llvm::Instruction *I, const DenseMap<MDNode *, MDNode *> &ClonedScopes, - LLVMContext &Context); - -/// Clone the specified noalias decl scopes. Then adapt all instructions in the -/// NewBlocks basicblocks to the cloned versions. -/// 'Ext' will be added to the duplicate scope names. -void cloneAndAdaptNoAliasScopes(ArrayRef<MDNode *> NoAliasDeclScopes, - ArrayRef<BasicBlock *> NewBlocks, - LLVMContext &Context, StringRef Ext); - -/// Clone the specified noalias decl scopes. Then adapt all instructions in the -/// [IStart, IEnd] (IEnd included !) range to the cloned versions. 'Ext' will be -/// added to the duplicate scope names. -void cloneAndAdaptNoAliasScopes(ArrayRef<MDNode *> NoAliasDeclScopes, - Instruction *IStart, Instruction *IEnd, - LLVMContext &Context, StringRef Ext); +/// Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified +/// basic blocks and extract their scope. These are candidates for duplication +/// when cloning. +void identifyNoAliasScopesToClone( + ArrayRef<BasicBlock *> BBs, SmallVectorImpl<MDNode *> &NoAliasDeclScopes); + +/// Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified +/// instruction range and extract their scope. These are candidates for +/// duplication when cloning. +void identifyNoAliasScopesToClone( + BasicBlock::iterator Start, BasicBlock::iterator End, + SmallVectorImpl<MDNode *> &NoAliasDeclScopes); + +/// Duplicate the specified list of noalias decl scopes. +/// The 'Ext' string is added as an extension to the name. +/// Afterwards, the ClonedScopes contains the mapping of the original scope +/// MDNode onto the cloned scope. +/// Be aware that the cloned scopes are still part of the original scope domain. +void cloneNoAliasScopes( + ArrayRef<MDNode *> NoAliasDeclScopes, + DenseMap<MDNode *, MDNode *> &ClonedScopes, + StringRef Ext, LLVMContext &Context); + +/// Adapt the metadata for the specified instruction according to the +/// provided mapping. This is normally used after cloning an instruction, when +/// some noalias scopes needed to be cloned. +void adaptNoAliasScopes( + llvm::Instruction *I, const DenseMap<MDNode *, MDNode *> &ClonedScopes, + LLVMContext &Context); + +/// Clone the specified noalias decl scopes. Then adapt all instructions in the +/// NewBlocks basicblocks to the cloned versions. +/// 'Ext' will be added to the duplicate scope names. +void cloneAndAdaptNoAliasScopes(ArrayRef<MDNode *> NoAliasDeclScopes, + ArrayRef<BasicBlock *> NewBlocks, + LLVMContext &Context, StringRef Ext); + +/// Clone the specified noalias decl scopes. Then adapt all instructions in the +/// [IStart, IEnd] (IEnd included !) range to the cloned versions. 'Ext' will be +/// added to the duplicate scope names. +void cloneAndAdaptNoAliasScopes(ArrayRef<MDNode *> NoAliasDeclScopes, + Instruction *IStart, Instruction *IEnd, + LLVMContext &Context, StringRef Ext); } // end namespace llvm #endif // LLVM_TRANSFORMS_UTILS_CLONING_H |