dblaikie added a comment. In D59673#1465975 <https://reviews.llvm.org/D59673#1465975>, @aaronpuchert wrote:
> In D59673#1461983 <https://reviews.llvm.org/D59673#1461983>, @dblaikie wrote: > > > Sure, I think the naming's a bit weird (but hard to come up with good names > > for any of this) > > > Agreed, `-split-dwarf-output` is pretty clear, but `-split-dwarf-file` could > be both the actual filename or the attribute. > > There is `test/CodeGen/split-debug-filename.c` checking that we emit > `!DICompileUnit({{.*}}, splitDebugFilename: "foo.dwo"` into the IR under some > circumstances, but I'm not sure why. It seems to be ignored by `llc`. For implicit modular debug info I think it probably isn't ignored. See DwarfDebug.cpp:~630. > What's the intended use for this? Your commit message in rC301063 > <https://reviews.llvm.org/rC301063> suggests that this is needed for implicit > modules. How does this work? I'm asking of course because I'm not sure > whether we might need to emit both file names there. So implicit modules can use a sort of pseudo-split DWARF. The .pcm (module file) itself is an object file in this mode - with the split DWARF and a section containing the AST bitcode. Then in the normal source files that use the .pcm, they get the usual non-split DWARF, plus skeleton CUs that reference the .pcm file (& contain some other attributes for regenerating it in case it's been cleaned up from the module cache). This is why the file name can be (& has to be) passed down through the IR - it /can/ be, because this compilation isn't choosing tnhe file name (so there's no issue with the .dwo file name changing between IR generation and object generation (as there is with LTO - where the compilation doesn't know the final object name, only the linker knows that)) and it /must/ be done this way due to multiple skeleton CUs if the main CU references multiple .pcm debug info. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59673/new/ https://reviews.llvm.org/D59673 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits