diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-04-04 04:59:56 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-04-04 04:59:56 +0000 |
commit | 8e65f8ddfd88fa6b88152ee914b36a67c051f610 (patch) | |
tree | 46bf2f44ff5aa43ab78dda5e1266327f2490944e | |
parent | a017306063c847f08a14f8d3bf627dd19e6d79a2 (diff) | |
download | bcm5719-llvm-8e65f8ddfd88fa6b88152ee914b36a67c051f610.tar.gz bcm5719-llvm-8e65f8ddfd88fa6b88152ee914b36a67c051f610.zip |
ValueMapper: Remove old FIXMEs; almost NFC
Remove a few old FIXMEs from the original commit of the Metadata/Value
split in r223802. These are commented out assertions to the effect that
calls between mapValue and mapMetadata never return nullptr.
(The only behaviour change is that Mapper::mapSimpleMetadata memoizes
the nullptr return.)
When I originally rewrote the mapping code, I thought we could be
stricter in the new metadata hierarchy and never return nullptr when
RF_NullMapMissingGlobalValues was off. It's still not entirely clear to
me why these assertions failed (a few months ago, I had a theory that I
forgot to write down, but that's helping no one).
Understood or not, I no longer see how these commented-out assertions
would be useful. I'm relegating them to the annals of source control
before making significant changes to ValueMapper.cpp.
llvm-svn: 265282
-rw-r--r-- | llvm/lib/Transforms/Utils/ValueMapper.cpp | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/llvm/lib/Transforms/Utils/ValueMapper.cpp b/llvm/lib/Transforms/Utils/ValueMapper.cpp index 78f4618aef9..8d3fc94d08a 100644 --- a/llvm/lib/Transforms/Utils/ValueMapper.cpp +++ b/llvm/lib/Transforms/Utils/ValueMapper.cpp @@ -185,12 +185,6 @@ Value *Mapper::mapValue(const Value *V) { if (MD == MappedMD || (!MappedMD && (Flags & RF_IgnoreMissingEntries))) return VM[V] = const_cast<Value *>(V); - // FIXME: This assert crashes during bootstrap, but I think it should be - // correct. For now, just match behaviour from before the metadata/value - // split. - // - // assert((MappedMD || (Flags & RF_NullMapMissingGlobalValues)) && - // "Referenced metadata value not in value map"); return VM[V] = MetadataAsValue::get(V->getContext(), MappedMD); } @@ -296,12 +290,6 @@ Metadata *Mapper::mapMetadataOp(Metadata *Op) { if (Flags & RF_IgnoreMissingEntries) return Op; - // FIXME: This assert crashes during bootstrap, but I think it should be - // correct. For now, just match behaviour from before the metadata/value - // split. - // - // assert((Flags & RF_NullMapMissingGlobalValues) && - // "Referenced metadata not in value map!"); return nullptr; } @@ -388,15 +376,7 @@ Optional<Metadata *> Mapper::mapSimpleMetadata(const Metadata *MD) { (!MappedV && (Flags & RF_IgnoreMissingEntries))) return mapToSelf(MD); - // FIXME: This assert crashes during bootstrap, but I think it should be - // correct. For now, just match behaviour from before the metadata/value - // split. - // - // assert((MappedV || (Flags & RF_NullMapMissingGlobalValues)) && - // "Referenced metadata not in value map!"); - if (MappedV) - return mapToMetadata(MD, ValueAsMetadata::get(MappedV)); - return nullptr; + return mapToMetadata(MD, MappedV ? ValueAsMetadata::get(MappedV) : nullptr); } assert(isa<MDNode>(MD) && "Expected a metadata node"); |