aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
diff options
context:
space:
mode:
authorPaul Robinson <paul.robinson@sony.com>2018-11-19 18:29:28 +0000
committerPaul Robinson <paul.robinson@sony.com>2018-11-19 18:29:28 +0000
commitcda5421016f67236f60bbc1ba9e4e847e6dbeb71 (patch)
tree4bd81caf1ef021ef98f84e73e902845b359170c4 /llvm/lib/Bitcode/Reader/MetadataLoader.cpp
parent1c803f5988af77cc2d1d4ca12b9b4a3e1a094c35 (diff)
downloadllvm-cda5421016f67236f60bbc1ba9e4e847e6dbeb71.zip
llvm-cda5421016f67236f60bbc1ba9e4e847e6dbeb71.tar.gz
llvm-cda5421016f67236f60bbc1ba9e4e847e6dbeb71.tar.bz2
[DebugInfo] DISubprogram flags get their own flags word. NFC.
This will hold flags specific to subprograms. In the future we could potentially free up scarce bits in DIFlags by moving subprogram-specific flags from there to the new flags word. This patch does not change IR/bitcode formats, that will be done in a follow-up. Differential Revision: https://reviews.llvm.org/D54597 llvm-svn: 347239
Diffstat (limited to 'llvm/lib/Bitcode/Reader/MetadataLoader.cpp')
-rw-r--r--llvm/lib/Bitcode/Reader/MetadataLoader.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
index d5d295c..08a6ab5 100644
--- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
@@ -1420,6 +1420,9 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
bool HasFn = Offset && !HasUnit;
bool HasThisAdj = Record.size() >= 20;
bool HasThrownTypes = Record.size() >= 21;
+ DISubprogram::DISPFlags SPFlags = DISubprogram::toSPFlags(
+ /*IsLocalToUnit=*/Record[7], /*IsDefinition=*/Record[8],
+ /*IsOptimized=*/Record[14], /*Virtuality=*/Record[11]);
DISubprogram *SP = GET_OR_DISTINCT(
DISubprogram,
(Context,
@@ -1429,15 +1432,12 @@ Error MetadataLoader::MetadataLoaderImpl::parseOneMetadata(
getMDOrNull(Record[4]), // file
Record[5], // line
getMDOrNull(Record[6]), // type
- Record[7], // isLocal
- Record[8], // isDefinition
Record[9], // scopeLine
getDITypeRefOrNull(Record[10]), // containingType
- Record[11], // virtuality
Record[12], // virtualIndex
HasThisAdj ? Record[19] : 0, // thisAdjustment
static_cast<DINode::DIFlags>(Record[13]), // flags
- Record[14], // isOptimized
+ SPFlags, // SPFlags
HasUnit ? CUorFn : nullptr, // unit
getMDOrNull(Record[15 + Offset]), // templateParams
getMDOrNull(Record[16 + Offset]), // declaration