[PATCH] D18122: Rework linkInModule(), making it oblivious to ThinLTO

Teresa Johnson via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 16 04:18:18 PDT 2016


tejohnson added inline comments.

================
Comment at: lib/Transforms/IPO/FunctionImport.cpp:360
@@ -352,3 +359,3 @@
     if (TheLinker.linkInModule(std::move(SrcModule), Linker::Flags::None,
-                               &Index, &FunctionsToImport))
+                               &FunctionsToImport))
       report_fatal_error("Function Import: link error");
----------------
joker.eph wrote:
> tejohnson wrote:
> > Rename FunctionsToImport to GlobalsToImport here as well?
> > 
> > Although currently with this change it looks like we will never import a global variable definition since the importer is only adding functions to this list, right? I wonder if there is a performance loss. Will apply this and try with spec.
> Yes no import of globals yet, we operate only on functions.  It makes sense only for constant, right? I don't know if we have this information in the summary?
> 
Ran spec with this patch applied, no significant performance delta, so this is not currently a big issue. 

Might have to augment the summary again to note if they are constant.

================
Comment at: lib/Transforms/IPO/FunctionImport.cpp:441
@@ -438,3 +440,3 @@
     // are potentially exported to other modules.
-    if (renameModuleForThinLTO(M, *Index)) {
+    if (renameModuleForThinLTO(M, *Index, nullptr)) {
       errs() << "Error renaming module\n";
----------------
Use a default on the new parameter of nullptr instead of passing it explicitly?

================
Comment at: lib/Transforms/Utils/FunctionImportUtils.cpp:227
@@ -236,2 +226,3 @@
+  FunctionImportGlobalProcessing ThinLTOProcessing(M, Index, GlobalsToImport);
   return ThinLTOProcessing.run();
 }
----------------
Shouldn't the getNewExportedValues be added to GlobalsToImport if non-null?

================
Comment at: tools/llvm-link/llvm-link.cpp:305
@@ -293,3 +304,3 @@
     // cross-module references.
     if (PreserveModules)
       M.release();
----------------
I thought I removed the PreserveModules code from HEAD awhile back? How did it get merged back?


http://reviews.llvm.org/D18122





More information about the llvm-commits mailing list