Skip to content

Commit

Permalink
Add 'thinlto_src_module' md with asserts or -enable-import-metadata
Browse files Browse the repository at this point in the history
Summary:
This way the metadata will be only generated when asserts enabled,
or when -enable-import-metadata specified

FIXED missing colon on requires.

Reviewers: tejohnson, eraman, mehdi_amini

Subscribers: mehdi_amini, llvm-commits

Differential Revision: http://reviews.llvm.org/D22167

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274947 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
prazek committed Jul 8, 2016
1 parent a745089 commit 8969dd9
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 8 deletions.
25 changes: 19 additions & 6 deletions lib/Transforms/IPO/FunctionImport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,16 @@ static cl::opt<bool>
DontForceImportReferencedDiscardableSymbols("disable-force-link-odr",
cl::init(false), cl::Hidden);

static cl::opt<bool> EnableImportMetadata(
"enable-import-metadata", cl::init(
#if !defined(NDEBUG)
true /*Enabled with asserts.*/
#else
false
#endif
),
cl::Hidden, cl::desc("Enable import metadata like 'thinlto_src_module'"));

// Load lazily a module from \p FileName in \p Context.
static std::unique_ptr<Module> loadFile(const std::string &FileName,
LLVMContext &Context) {
Expand Down Expand Up @@ -591,12 +601,15 @@ bool FunctionImporter::importFunctions(
<< SrcModule->getSourceFileName() << "\n");
if (Import) {
F.materialize();
// Add 'thinlto_src_module' metadata for statistics and debugging.
F.setMetadata("thinlto_src_module",
llvm::MDNode::get(DestModule.getContext(),
{llvm::MDString::get(
DestModule.getContext(),
SrcModule->getSourceFileName())}));
if (EnableImportMetadata) {
// Add 'thinlto_src_module' metadata for statistics and debugging.
F.setMetadata(
"thinlto_src_module",
llvm::MDNode::get(
DestModule.getContext(),
{llvm::MDString::get(DestModule.getContext(),
SrcModule->getSourceFileName())}));
}
GlobalsToImport.insert(&F);
}
}
Expand Down
4 changes: 2 additions & 2 deletions test/Transforms/FunctionImport/funcimport.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
; RUN: llvm-lto -thinlto -print-summary-global-ids -o %t3 %t.bc %t2.bc 2>&1 | FileCheck %s --check-prefix=GUID

; Do the import now
; RUN: opt -disable-force-link-odr -function-import -stats -print-imports -summary-file %t3.thinlto.bc %t.bc -S 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=INSTLIMDEF
; RUN: opt -disable-force-link-odr -function-import -stats -print-imports -enable-import-metadata -summary-file %t3.thinlto.bc %t.bc -S 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=INSTLIMDEF
; "-stats" requires +Asserts.
; REQUIRES: asserts

; Test import with smaller instruction limit
; RUN: opt -disable-force-link-odr -function-import -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=5 -S | FileCheck %s --check-prefix=CHECK --check-prefix=INSTLIM5
; RUN: opt -disable-force-link-odr -function-import -enable-import-metadata -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=5 -S | FileCheck %s --check-prefix=CHECK --check-prefix=INSTLIM5
; INSTLIM5-NOT: @staticfunc.llvm.

; Test import with smaller instruction limit and without the -disable-force-link-odr
Expand Down

0 comments on commit 8969dd9

Please sign in to comment.