diff options
author | Paul Robinson <paul.robinson@sony.com> | 2018-11-19 18:29:28 +0000 |
---|---|---|
committer | Paul Robinson <paul.robinson@sony.com> | 2018-11-19 18:29:28 +0000 |
commit | cda5421016f67236f60bbc1ba9e4e847e6dbeb71 (patch) | |
tree | 4bd81caf1ef021ef98f84e73e902845b359170c4 /llvm/lib/Bitcode/Reader/MetadataLoader.cpp | |
parent | 1c803f5988af77cc2d1d4ca12b9b4a3e1a094c35 (diff) | |
download | llvm-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.cpp | 8 |
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 |