[PATCH] D31114: Refactor `initTargetOptions` out of `EmitAssemblyHelper::CreateTargetMachine` and use it to initialize TargetOptions for ThinLTO Backends

Teresa Johnson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Mar 18 08:28:36 PDT 2017

tejohnson added a comment.

I think you won't get the correct handling of -emit-llvm and -emit-llvm-bc since we don't get the handling for Backend_Emit* in EmitAssemblyHelper::EmitAssembly.

Comment at: clang/lib/CodeGen/BackendUtil.cpp:595
   llvm::Optional<llvm::Reloc::Model> RM;
   RM = llvm::StringSwitch<llvm::Reloc::Model>(CodeGenOpts.RelocationModel)
            .Case("static", llvm::Reloc::Static)
What about this - it isn't used in the TargetOptions. There are a few other things passed directly to createTargetMachine below. Will -fpic get handled correctly, e.g.? Ah, looks like lto::Config has fields for that and the code model etc, that are essentially getting the default values on this path (when used via clang - that will need to be set up in lto::Config in runThinLTOBackend as well.

Comment at: clang/lib/CodeGen/BackendUtil.cpp:982
                               std::unique_ptr<raw_pwrite_stream> OS) {
+  EmitAssemblyHelper AsmHelper(Diags, HeaderOpts, CGOpts, TOpts, LOpts, M);
Why did this move?


More information about the cfe-commits mailing list