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/lib/Bitcode/Writer/ValueEnumerator.cpp | |
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/lib/Bitcode/Writer/ValueEnumerator.cpp')
-rw-r--r-- | contrib/libs/llvm12/lib/Bitcode/Writer/ValueEnumerator.cpp | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/contrib/libs/llvm12/lib/Bitcode/Writer/ValueEnumerator.cpp b/contrib/libs/llvm12/lib/Bitcode/Writer/ValueEnumerator.cpp index bbee8b3249..d7b3b19844 100644 --- a/contrib/libs/llvm12/lib/Bitcode/Writer/ValueEnumerator.cpp +++ b/contrib/libs/llvm12/lib/Bitcode/Writer/ValueEnumerator.cpp @@ -78,16 +78,16 @@ struct OrderMap { } // end anonymous namespace -/// Look for a value that might be wrapped as metadata, e.g. a value in a -/// metadata operand. Returns nullptr for a non-wrapped input value if -/// OnlyWrapped is true, or it returns the input value as-is if false. -static const Value *skipMetadataWrapper(const Value *V, bool OnlyWrapped) { - if (const auto *MAV = dyn_cast<MetadataAsValue>(V)) - if (const auto *VAM = dyn_cast<ValueAsMetadata>(MAV->getMetadata())) - return VAM->getValue(); - return OnlyWrapped ? nullptr : V; -} - +/// Look for a value that might be wrapped as metadata, e.g. a value in a +/// metadata operand. Returns nullptr for a non-wrapped input value if +/// OnlyWrapped is true, or it returns the input value as-is if false. +static const Value *skipMetadataWrapper(const Value *V, bool OnlyWrapped) { + if (const auto *MAV = dyn_cast<MetadataAsValue>(V)) + if (const auto *VAM = dyn_cast<ValueAsMetadata>(MAV->getMetadata())) + return VAM->getValue(); + return OnlyWrapped ? nullptr : V; +} + static void orderValue(const Value *V, OrderMap &OM) { if (OM.lookup(V).first) return; @@ -133,25 +133,25 @@ static OrderMap orderModule(const Module &M) { if (!isa<GlobalValue>(U.get())) orderValue(U.get(), OM); } - - // As constants used in metadata operands are emitted as module-level - // constants, we must order them before other operands. Also, we must order - // these before global values, as these will be read before setting the - // global values' initializers. The latter matters for constants which have - // uses towards other constants that are used as initializers. - for (const Function &F : M) { - if (F.isDeclaration()) - continue; - for (const BasicBlock &BB : F) - for (const Instruction &I : BB) - for (const Value *V : I.operands()) { - if (const Value *Op = skipMetadataWrapper(V, true)) { - if ((isa<Constant>(*Op) && !isa<GlobalValue>(*Op)) || - isa<InlineAsm>(*Op)) - orderValue(Op, OM); - } - } - } + + // As constants used in metadata operands are emitted as module-level + // constants, we must order them before other operands. Also, we must order + // these before global values, as these will be read before setting the + // global values' initializers. The latter matters for constants which have + // uses towards other constants that are used as initializers. + for (const Function &F : M) { + if (F.isDeclaration()) + continue; + for (const BasicBlock &BB : F) + for (const Instruction &I : BB) + for (const Value *V : I.operands()) { + if (const Value *Op = skipMetadataWrapper(V, true)) { + if ((isa<Constant>(*Op) && !isa<GlobalValue>(*Op)) || + isa<InlineAsm>(*Op)) + orderValue(Op, OM); + } + } + } OM.LastGlobalConstantID = OM.size(); // Initializers of GlobalValues are processed in @@ -1002,8 +1002,8 @@ void ValueEnumerator::incorporateFunction(const Function &F) { EnumerateValue(&I); if (I.hasAttribute(Attribute::ByVal)) EnumerateType(I.getParamByValType()); - else if (I.hasAttribute(Attribute::StructRet)) - EnumerateType(I.getParamStructRetType()); + else if (I.hasAttribute(Attribute::StructRet)) + EnumerateType(I.getParamStructRetType()); } FirstFuncConstantID = Values.size(); |