tejohnson added inline comments.

================
Comment at: lib/CodeGen/BackendUtil.cpp:1007
   else
     AsmHelper.EmitAssembly(Action, std::move(OS));
 
----------------
I just noticed that EmitAssembly does a lot more than just emission - it is 
also setting up an optimization pipeline in CreatePasses, which we don't want 
to do in the ThinLTO backend case as we already do the opt in LTO. Which makes 
me think that the simplest and most consistent solution, especially if as in 
discussed in D31114 we'll be using the LTO API for emitting object and assembly 
code, is to use LTO for all file emission in the ThinLTO backend case. It would 
mean extending lto::Config to be able to flag when we want to emit-llvm or 
emit-llvm-bc, and invoke the appropriate module writer/printer instead of 
normal codegen. That way -emit-llvm* will always get output corresponding to 
the native object/assembly in the ThinLTO backend case. WDYT?


https://reviews.llvm.org/D31101



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to