[PATCH] D122258: [MC] Omit DWARF unwind info if compact unwind is present for all archs

Jez Ng via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 26 20:38:57 PDT 2022

int3 added inline comments.

Comment at: llvm/lib/CodeGen/MachineModuleInfo.cpp:69
               MMI.TM.getMCRegisterInfo(), MMI.TM.getMCSubtargetInfo(), nullptr,
-              nullptr, false),
+              &MMI.TM.Options.MCOptions, false),
       MachineFunctions(std::move(MMI.MachineFunctions)) {
`MCTargetOptions` isn't passed directly to `MCObjectFileInfo`; it only gets an `MCContext`. `MCContext` already has a member pointer to MCTargetOptions, but it seemed not to be initialized in a number of cases, hence the need for this change.

Comment at: llvm/tools/llc/llc.cpp:697-700
+    auto &Ctx = MMIWP->getMMI().getContext();
+    Ctx.setGenDwarfForAssembly(Target->Options.ForceDwarfFrameSection);
     const_cast<TargetLoweringObjectFile *>(LLVMTM.getObjFileLowering())
+        ->Initialize(Ctx, *Target);
lhames wrote:
> int3 wrote:
> > int3 wrote:
> > > lhames wrote:
> > > > This option hand-off feels very manual. I wonder if we should add a `propagateTargetOptionsToMC` function, but maybe the set of options that it would apply to is small enough not to bother for now?
> > > > 
> > > > I would add something like this to `LLVMTargetMachine::addPassesToEmitMC` too, for the the case where the caller passes in a null `MCContext*`. 
> > > thanks for the pointers! I'll look into that
> > actually, I'm not sure I understood your suggestion... which class do you envision `propagateTargetOptionsToMC` being defined in? How would it make things "less manual"?
> Oh! `TargetOptions` has an `MCTargetOptions` member already. If `GenDwarfUnwindInfo` === `ForceDwarfUnwindInfo`, could you just sink `ForceDwarfUnwindInfo` into `MCTargetOptions`? 
alright, I think I got it to work :)

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list