-
LLVMSupport
- Verify where LLVM_SYSTEM_LIBS property goes
- Test z3 dep
-
Rename bare target components to LLVMTarget${t}
- Verify that collapsing sub-target libraries is ok (works, but not sure how people feel)
- Fix non-X86 target component names
- Remove non-X86 internal circular references (flagged by cmake if you get it wrong)
-
LLVM_HAS_JIT handling (switch between jit and interpreter)
- See fixups in LLVM-Build.cmake
LLVMBuildResolveComponentsLink
(deleted now)
- See fixups in LLVM-Build.cmake
-
LLVMBuildGenerateCFragment
porting (see commented out at bottom of llvm/lib/CMakeLists.txt) -
tools/llvm-config porting (tests currently failing) -
Remove exceptions for improperly referenced components (quite a few references so just special casing to avoid ballooning one patch):
- ScalarOpts -> Scalar
- ObjCARCOpts -> ObjCARC
-
Scrub through necessary features in llvm_add_library and make sure that llvm_add_component_library is doing the right thing. Non exhaustive list:
- RPath handling for install
- SO_NAME/version symlinks
- Entitlements
- Externalized debug
-
Implement the existing libLLVM.so library redirection (i.e. to bundle multiple components together).
-
Look more closely at tools that can only be linked statically (llvm-exegesis uses library internals that are hidden in shared libraries, for example).
Last active
February 7, 2021 05:25
-
-
Save stellaraccident/47b3ed28b8134bb0b6db2afbec7fc789 to your computer and use it in GitHub Desktop.
LLVM Component Refactor TODO
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File sizes on Linux x64 Release mode (not bundling into a monolithic libLLVM.so): | |
`lib/`: | |
``` | |
28K lib/BugpointPasses.so 28K lib/Bye.so 16K lib/LLVMHello.so 8.0K lib/libEngine.so 116K lib/libLLVMAggressiveInstCombine.so 7.0M lib/libLLVMAnalysis.so 624K lib/libLLVMAsmParser.so 1.5M lib/libLLVMAsmPrinter.so | |
160K lib/libLLVMBinaryFormat.so | |
624K lib/libLLVMBitReader.so | |
472K lib/libLLVMBitWriter.so | |
52K lib/libLLVMBitstreamReader.so | |
36K lib/libLLVMCFGuard.so | |
8.7M lib/libLLVMCodeGen.so | |
5.2M lib/libLLVMCore.so | |
472K lib/libLLVMCoroutines.so | |
320K lib/libLLVMCoverage.so | |
300K lib/libLLVMDWARFLinker.so | |
912K lib/libLLVMDebugInfoCodeView.so | |
760K lib/libLLVMDebugInfoDWARF.so | |
188K lib/libLLVMDebugInfoGSYM.so | |
96K lib/libLLVMDebugInfoMSF.so | |
1.2M lib/libLLVMDebugInfoPDB.so | |
340K lib/libLLVMDemangle.so | |
24K lib/libLLVMDlltoolDriver.so | |
192K lib/libLLVMExecutionEngine.so | |
8.0K lib/libLLVMExtensions.so | |
200K lib/libLLVMFileCheck.so | |
16K lib/libLLVMFrontendOpenACC.so | |
256K lib/libLLVMFrontendOpenMP.so | |
172K lib/libLLVMFuzzMutate.so | |
1.4M lib/libLLVMGlobalISel.so | |
8.0K lib/libLLVMHelloNew.so | |
3.6M lib/libLLVMIPO.so | |
32K lib/libLLVMIRReader.so | |
1.6M lib/libLLVMInstCombine.so | |
1.6M lib/libLLVMInstrumentation.so | |
128K lib/libLLVMInterfaceStub.so | |
240K lib/libLLVMInterpreter.so | |
468K lib/libLLVMJITLink.so | |
556K lib/libLLVMLTO.so | |
60K lib/libLLVMLibDriver.so | |
16K lib/libLLVMLineEditor.so | |
216K lib/libLLVMLinker.so | |
1.3M lib/libLLVMMC.so | |
232K lib/libLLVMMCA.so | |
32K lib/libLLVMMCDisassembler.so | |
80K lib/libLLVMMCJIT.so | |
584K lib/libLLVMMCParser.so | |
336K lib/libLLVMMIRParser.so | |
260K lib/libLLVMObjCARC.so | |
1.6M lib/libLLVMObject.so | |
1.9M lib/libLLVMObjectYAML.so | |
92K lib/libLLVMOption.so | |
1.6M lib/libLLVMOrcJIT.so | |
28K lib/libLLVMOrcShared.so | |
16K lib/libLLVMOrcTargetProcess.so | |
2.2M lib/libLLVMPasses.so | |
520K lib/libLLVMProfileData.so | |
240K lib/libLLVMRemarks.so | |
780K lib/libLLVMRuntimeDyld.so | |
5.2M lib/libLLVMScalar.so | |
4.0M lib/libLLVMSelectionDAG.so | |
2.4M lib/libLLVMSupport.so | |
128K lib/libLLVMSymbolize.so | |
536K lib/libLLVMTableGen.so | |
72K lib/libLLVMTarget.so | |
11M lib/libLLVMTargetX86.so | |
208K lib/libLLVMTextAPI.so | |
3.1M lib/libLLVMTransformUtils.so | |
1.8M lib/libLLVMVectorize.so | |
16K lib/libLLVMWindowsManifest.so | |
284K lib/libLLVMXRay.so | |
``` | |
`bin/`: | |
``` | |
636K bin/FileCheck | |
512K bin/bugpoint | |
8.0K bin/count | |
324K bin/dsymutil | |
116K bin/llc | |
356K bin/lli | |
504K bin/lli-child-target | |
20K bin/llvm-PerfectShuffle | |
0 bin/llvm-addr2line | |
96K bin/llvm-ar | |
36K bin/llvm-as | |
28K bin/llvm-bcanalyzer | |
0 bin/llvm-bitcode-strip | |
112K bin/llvm-c-test | |
40K bin/llvm-cat | |
144K bin/llvm-cfi-verify | |
56K bin/llvm-config | |
388K bin/llvm-cov | |
40K bin/llvm-cvtres | |
92K bin/llvm-cxxdump | |
44K bin/llvm-cxxfilt | |
48K bin/llvm-cxxmap | |
100K bin/llvm-diff | |
52K bin/llvm-dis | |
0 bin/llvm-dlltool | |
168K bin/llvm-dwarfdump | |
108K bin/llvm-dwp | |
56K bin/llvm-elfabi | |
33M bin/llvm-exegesis | |
64K bin/llvm-extract | |
88K bin/llvm-gsymutil | |
72K bin/llvm-ifs | |
0 bin/llvm-install-name-tool | |
36K bin/llvm-isel-fuzzer | |
8.0K bin/llvm-itanium-demangle-fuzzer | |
628K bin/llvm-jitlink | |
1.5M bin/llvm-jitlink-executor | |
0 bin/llvm-lib | |
108K bin/llvm-libtool-darwin | |
80K bin/llvm-link | |
104K bin/llvm-lipo | |
4.0K bin/llvm-lit | |
16K bin/llvm-locstats | |
156K bin/llvm-lto | |
104K bin/llvm-lto2 | |
104K bin/llvm-mc | |
216K bin/llvm-mca | |
8.0K bin/llvm-microsoft-demangle-fuzzer | |
56K bin/llvm-ml | |
32K bin/llvm-modextract | |
32K bin/llvm-mt | |
188K bin/llvm-nm | |
904K bin/llvm-objcopy | |
884K bin/llvm-objdump | |
76K bin/llvm-opt-fuzzer | |
68K bin/llvm-opt-report | |
1.2M bin/llvm-pdbutil | |
272K bin/llvm-profdata | |
220K bin/llvm-profgen | |
0 bin/llvm-ranlib | |
220K bin/llvm-rc | |
0 bin/llvm-readelf | |
2.2M bin/llvm-readobj | |
196K bin/llvm-reduce | |
136K bin/llvm-rtdyld | |
108K bin/llvm-size | |
8.0K bin/llvm-special-case-list-fuzzer | |
24K bin/llvm-split | |
68K bin/llvm-stress | |
40K bin/llvm-strings | |
0 bin/llvm-strip | |
64K bin/llvm-symbolizer | |
4.2M bin/llvm-tblgen | |
28K bin/llvm-undname | |
600K bin/llvm-xray | |
12K bin/llvm-yaml-numeric-parser-fuzzer | |
12K bin/llvm-yaml-parser-fuzzer | |
64K bin/mlir-capi-ir-test | |
12K bin/mlir-capi-pass-test | |
9.5M bin/mlir-cpu-runner | |
4.7M bin/mlir-edsc-builder-api-test | |
768K bin/mlir-linalg-ods-gen | |
18M bin/mlir-opt | |
11M bin/mlir-reduce | |
708K bin/mlir-sdbm-api-test | |
1.7M bin/mlir-tblgen | |
5.3M bin/mlir-translate | |
192K bin/not | |
7.5M bin/obj2yaml | |
380K bin/opt | |
152K bin/sancov | |
28K bin/sanstats | |
32K bin/split-file | |
72K bin/verify-uselistorder | |
416K bin/yaml-bench | |
2.4M bin/yaml2obj | |
``` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment