[PATCH] D17982: [lto] Don't lazy load metadata for now.

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 8 21:24:50 PST 2016


silvas created this revision.
silvas added a reviewer: rafael.
silvas added subscribers: llvm-commits, Bigcheese, ruiu.
Herald added a subscriber: joker.eph.

At the very least we hit

    Assertion failed: (((Flags & RF_HaveUnmaterializedMetadata) || Node->isResolved()) && "Unexpected unresolved node"), function MapMetadataImpl, file /Users/Sean/pg/llvm/lib/Transforms/Utils/ValueMapper.cpp, line 375.

on the included test case.

We currently do things like parse the module twice to keep the
implementation minimal. I think it makes sense to add start with eager
loading for similar reasons.

http://reviews.llvm.org/D17982

Files:
  ELF/SymbolTable.cpp
  test/ELF/lto/metadata.ll

Index: test/ELF/lto/metadata.ll
===================================================================
--- /dev/null
+++ test/ELF/lto/metadata.ll
@@ -0,0 +1,13 @@
+; REQUIRES: x86
+; RUN: llvm-as %s -o %t1.o
+; RUN: ld.lld -m elf_x86_64 %t1.o %t1.o -o %t.so -shared
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+define weak void @foo(i32* %p) {
+  store i32 5, i32* %p, align 4, !tbaa !0
+  ret void
+}
+
+!0 = !{!"Simple C/C++ TBAA"}
Index: ELF/SymbolTable.cpp
===================================================================
--- ELF/SymbolTable.cpp
+++ ELF/SymbolTable.cpp
@@ -132,7 +132,7 @@
       MemoryBuffer::getMemBuffer(F.MB, false);
   std::unique_ptr<Module> M =
       check(getLazyBitcodeModule(std::move(Buffer), Context,
-                                 /*ShouldLazyLoadMetadata*/ true));
+                                 /*ShouldLazyLoadMetadata*/ false));
   std::vector<GlobalValue *> Keep;
   for (SymbolBody *B : F.getSymbols()) {
     if (B->repl() != B)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17982.50105.patch
Type: text/x-patch
Size: 1042 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160309/dbd28589/attachment.bin>


More information about the llvm-commits mailing list