LLVM Executable/Pass Templates Generator
Generate project templates for executables that use LLVM and LLVM passes.
Generator Kinds & Guides
executable
)
Standalone Executable(A normal executable program that uses LLVM.
pass
)
Pass(A LLVM pass that can be easily integrated into LLVM project in the future. See this for more information
tool
)(Status: TBD)
Executable(A executable program that can be easily integrated into LLVM project as one of the tools in the future.
Install
Requirements:
Install yeoman:
npm install -g yo
Install this generator from npm repository
npm install -g generator-llvm
Usage
Generating Standalone Executable
Boostraping a new project:
yo llvm:executable init
Adding new program to existing (executable)project
yo llvm:executable append
Generating New Pass
Boostraping a new project
yo llvm:pass init
Adding new program to existing (pass)project
yo llvm:pass append
If you like to stay on bleeding edge and want to try the new PassManager pass, add the --new-pm
at the tail:
yo llvm::pass init --new-pm
# Same option applies to the "append" command as well
The generated pass is also loaded as an external plugin. Please refer to this article I wrote about how to run a new PassManager pass.
Note
If you append new executable/pass to existing project, it would show the following message:
conflict ../CMakeLists.txt
? Overwrite ../CMakeLists.txt? (ynaxdH)
It is because that we're trying to modify an exist file(the top-level CMakeLists.txt), which is not what yeoman glad to see. However, in this case, press y
to overrite is totally fine.
Development
(In this repo folder)Install dependencies:
npm install
Temporary link to yeoman's generator repository
npm link