[PATCH] D118122: [WebAssembly] Refactor and fix emission of external IR global decls

Paulo Matos via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 31 02:39:00 PST 2022


pmatos added inline comments.


================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp:367
-void WebAssemblyAsmPrinter::emitEndOfAsmFile(Module &M) {
-  emitExternalDecls(M);
 
----------------
sbc100 wrote:
> I guess this was here to handle the case that emitLinkage was never called?   Does that not apply to emitConstantPool too?  
> 
> In other words, why remove this line?
> 
So - in all my tests I couldn't find a reason for this line to exist. And I noticed that whenever it was called, it had generally been called through `emitLinkage`. 

With this patch,  `emitExternalDecls` is not called unless there are functions in the compilation unit. Globals are still emitted properly through `emitGlobalVariable` though. So this only leaves symbols that are necessary for use in functions, I think. But if those functions exist, they are emitted anyway, so I don't see the need for this. 

Note that before this patch, this line was needed because we were emitting global symbol types in `emitExternalDecls`, and now we have move that to `emitGlobalVariable`. 



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118122/new/

https://reviews.llvm.org/D118122



More information about the llvm-commits mailing list