diff options
| author | Teresa Johnson <tejohnson@google.com> | 2015-12-18 17:51:37 +0000 |
|---|---|---|
| committer | Teresa Johnson <tejohnson@google.com> | 2015-12-18 17:51:37 +0000 |
| commit | 0e7c82cb69972c75978ec6c5077cc91879836122 (patch) | |
| tree | cb53c4e32ca3659066af39599edd05c32ca6b8a4 /llvm/lib/Transforms/Utils/ValueMapper.cpp | |
| parent | b9e832608879a9defe8be23384677b9335b00546 (diff) | |
| download | bcm5719-llvm-0e7c82cb69972c75978ec6c5077cc91879836122.tar.gz bcm5719-llvm-0e7c82cb69972c75978ec6c5077cc91879836122.zip | |
[ThinLTO/LTO] Don't link in unneeded metadata
Summary:
Third patch split out from http://reviews.llvm.org/D14752.
Only map in needed DISubroutine metadata (imported or otherwise linked
in functions and other DISubroutine referenced by inlined instructions).
This is supported for ThinLTO, LTO and llvm-link --only-needed, with
associated tests for each one.
Depends on D14838.
Reviewers: dexonsmith, joker.eph
Subscribers: davidxl, llvm-commits, joker.eph
Differential Revision: http://reviews.llvm.org/D14843
llvm-svn: 256003
Diffstat (limited to 'llvm/lib/Transforms/Utils/ValueMapper.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Utils/ValueMapper.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/ValueMapper.cpp b/llvm/lib/Transforms/Utils/ValueMapper.cpp index 00ee3385981..1add78e0165 100644 --- a/llvm/lib/Transforms/Utils/ValueMapper.cpp +++ b/llvm/lib/Transforms/Utils/ValueMapper.cpp @@ -197,6 +197,10 @@ static Metadata *mapMetadataOp(Metadata *Op, ValueMaterializer *Materializer) { if (!Op) return nullptr; + + if (Materializer && !Materializer->isMetadataNeeded(Op)) + return nullptr; + if (Metadata *MappedOp = MapMetadataImpl(Op, DistinctWorklist, VM, Flags, TypeMapper, Materializer)) return MappedOp; |

