[PATCH] D144354: [WebAssembly] Split WebAssemblyUtils to fix library layering for MC tools.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 19 13:48:29 PST 2023


craig.topper created this revision.
craig.topper added reviewers: MaskRay, tlively, aheejin, dschuff.
Herald added subscribers: pmatos, asb, ecnelises, sunfish, hiraditya, jgravelle-google, sbc100.
Herald added a project: All.
craig.topper requested review of this revision.
Herald added a project: LLVM.

WebAssemblyUtils depends on CodeGen which depends on all middle end
optimization libraries.

This component is used by WebAssembly's AsmParser, Disassembler, and
MCTargetDesc libraries. This results in any MC layer tool that is
built with WebAssembly including a larger portion of LLVM that it
should.

To fix this I've created MC only versions of WebAssemblyUtilties.cpp
and WebAssemblyTypeUtilities.cpp in MCTargetDesc to be used by the MC
components.

This shrinkins llvm-objdump and llvm-mc on my local release+asserts
build by 5-6 MB.

This is a pretty naive splitting so I welcome feedback on how
WebAssembly developers would like to see this structured.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D144354

Files:
  llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt
  llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
  llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp
  llvm/lib/Target/WebAssembly/Disassembler/CMakeLists.txt
  llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTypeUtilities.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTypeUtilities.h
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCUtilities.cpp
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCUtilities.h
  llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
  llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp
  llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.h
  llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.cpp
  llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h
  llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D144354.498694.patch
Type: text/x-patch
Size: 29133 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230219/753ce806/attachment.bin>


More information about the llvm-commits mailing list