[LLVMdev] Is there a guide to LLVM's components?

David Piepgrass dpiepgrass at mentoreng.com
Wed Jul 21 15:16:09 PDT 2010


I constructed an LLVM 2.7 VS solution with cmake, but it has 66 projects:

                ALL_BUILD, ".\ALL_BUILD.vcproj"
                BrainF, "examples\BrainF\BrainF.vcproj"
                Fibonacci, "examples\Fibonacci\Fibonacci.vcproj"
                FileCheck, "utils\FileCheck\FileCheck.vcproj"
                HowToUseJIT, "examples\HowToUseJIT\HowToUseJIT.vcproj"
                INSTALL, ".\INSTALL.vcproj"
                Kaleidoscope-Ch2, "examples\Kaleidoscope\Chapter2\Kaleidoscope-Ch2.vcproj"
                Kaleidoscope-Ch3, "examples\Kaleidoscope\Chapter3\Kaleidoscope-Ch3.vcproj"
                Kaleidoscope-Ch4, "examples\Kaleidoscope\Chapter4\Kaleidoscope-Ch4.vcproj"
                Kaleidoscope-Ch5, "examples\Kaleidoscope\Chapter5\Kaleidoscope-Ch5.vcproj"
                Kaleidoscope-Ch6, "examples\Kaleidoscope\Chapter6\Kaleidoscope-Ch6.vcproj"
                Kaleidoscope-Ch7, "examples\Kaleidoscope\Chapter7\Kaleidoscope-Ch7.vcproj"
                LLVMAnalysis, "lib\Analysis\LLVMAnalysis.vcproj"
                LLVMArchive, "lib\Archive\LLVMArchive.vcproj"
                LLVMAsmParser, "lib\AsmParser\LLVMAsmParser.vcproj"
                LLVMAsmPrinter, "lib\CodeGen\AsmPrinter\LLVMAsmPrinter.vcproj"
                LLVMBitReader, "lib\Bitcode\Reader\LLVMBitReader.vcproj"
                LLVMBitWriter, "lib\Bitcode\Writer\LLVMBitWriter.vcproj"
                LLVMCodeGen, "lib\CodeGen\LLVMCodeGen.vcproj"
                LLVMCore, "lib\VMCore\LLVMCore.vcproj"
                LLVMExecutionEngine, "lib\ExecutionEngine\LLVMExecutionEngine.vcproj"
                LLVMInstCombine, "lib\Transforms\InstCombine\LLVMInstCombine.vcproj"
                LLVMInstrumentation, "lib\Transforms\Instrumentation\LLVMInstrumentation.vcproj"
                LLVMInterpreter, "lib\ExecutionEngine\Interpreter\LLVMInterpreter.vcproj"
                LLVMJIT, "lib\ExecutionEngine\JIT\LLVMJIT.vcproj"
                LLVMLinker, "lib\Linker\LLVMLinker.vcproj"
                LLVMMC, "lib\MC\LLVMMC.vcproj"
                LLVMMCParser, "lib\MC\MCParser\LLVMMCParser.vcproj"
                LLVMScalarOpts, "lib\Transforms\Scalar\LLVMScalarOpts.vcproj"
                LLVMSelectionDAG, "lib\CodeGen\SelectionDAG\LLVMSelectionDAG.vcproj"
                LLVMSupport, "lib\Support\LLVMSupport.vcproj"
                LLVMSystem, "lib\System\LLVMSystem.vcproj"
                LLVMTarget, "lib\Target\LLVMTarget.vcproj"
                LLVMTransformUtils, "lib\Transforms\Utils\LLVMTransformUtils.vcproj"
                LLVMX86AsmParser, "lib\Target\X86\AsmParser\LLVMX86AsmParser.vcproj"
                LLVMX86AsmPrinter, "lib\Target\X86\AsmPrinter\LLVMX86AsmPrinter.vcproj"
                LLVMX86CodeGen, "lib\Target\X86\LLVMX86CodeGen.vcproj"
                LLVMX86Disassembler, "lib\Target\X86\Disassembler\LLVMX86Disassembler.vcproj"
                LLVMX86Info, "lib\Target\X86\TargetInfo\LLVMX86Info.vcproj"
                LLVMipa, "lib\Analysis\IPA\LLVMipa.vcproj"
                LLVMipo, "lib\Transforms\IPO\LLVMipo.vcproj"
                ModuleMaker, "examples\ModuleMaker\ModuleMaker.vcproj"
                X86CodeGenTable_gen, "lib\Target\X86\X86CodeGenTable_gen.vcproj"
                ZERO_CHECK, ".\ZERO_CHECK.vcproj"
                bugpoint, "tools\bugpoint\bugpoint.vcproj"
                check, "test\check.vcproj"
                count, "utils\count\count.vcproj"
                intrinsics_gen, "include\llvm\intrinsics_gen.vcproj"
                llc, "tools\llc\llc.vcproj"
                lli, "tools\lli\lli.vcproj"
                llvm-ar, "tools\llvm-ar\llvm-ar.vcproj"
                llvm-as, "tools\llvm-as\llvm-as.vcproj"
                llvm-bcanalyzer, "tools\llvm-bcanalyzer\llvm-bcanalyzer.vcproj"
                llvm-dis, "tools\llvm-dis\llvm-dis.vcproj"
                llvm-extract, "tools\llvm-extract\llvm-extract.vcproj"
                llvm-ld, "tools\llvm-ld\llvm-ld.vcproj"
                llvm-link, "tools\llvm-link\llvm-link.vcproj"
                llvm-mc, "tools\llvm-mc\llvm-mc.vcproj"
                llvm-nm, "tools\llvm-nm\llvm-nm.vcproj"
                llvm-prof, "tools\llvm-prof\llvm-prof.vcproj"
                llvm-ranlib, "tools\llvm-ranlib\llvm-ranlib.vcproj"
                llvm-stub, "tools\llvm-stub\llvm-stub.vcproj"
                llvm_headers_do_not_build, "include\llvm\llvm_headers_do_not_build.vcproj"
                not, "utils\not\not.vcproj"
                opt, "tools\opt\opt.vcproj"
                tblgen, "utils\TableGen\tblgen.vcproj"

Is there a guide that explains the purpose of each? Obviously the ones in an "example" folder are examples, but what about everything else? Is there a guide to the LLVM components or source code?

If there are no such guides, could someone tell me which parts of LLVM are needed for "minimal" JIT compilation? I would like to create small amounts of IR at run-time, compile them in-memory, and run them. Basically I would like to do as described at http://www.codeproject.com/KB/cpp/runtime_compile.aspx, except that (in order to minimize the code size), I would like to omit most/all optimizations.

Thanks,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100721/3e85208a/attachment.html>


More information about the llvm-dev mailing list