-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ORC] FastISel and ORCv2/LLJIT #70666
Comments
@llvm/issue-subscribers-orcjit Author: Wenzel Jakob (wjakob)
Dear LLVM team,
a while back, I ported an application from MCJIT to ORCv2/LLJIT (using the C bindings). One feature that was lost during this rewrite was the ability to control the method used to perform instruction selection. The MCJIT interface exposed this through a convenient parameter:
but no such thing exists for ORCv2/LLJIT (that I am aware of..). Thus, I was wondering if there is any way to enable/disable PS: I saw that the |
We can expose some frequently used APIs for
|
That would be wonderful ❤️ |
Apologize for my misunderstanding. Some APIs/flags are designed to be used by targets instead of JIT users.
|
This PR exposes four APIs to C/OCaml bindings for `TargetMachine`: ``` /** Enable fast-path instruction selection. */ void LLVMSetTargetMachineFastISel(LLVMTargetMachineRef T, LLVMBool Enable); /** Enable global instruction selection. */ void LLVMSetTargetMachineGlobalISel(LLVMTargetMachineRef T, LLVMBool Enable); /** Set abort behaviour when global instruction selection fails to lower/select * an instruction. */ void LLVMSetTargetMachineGlobalISelAbort(LLVMTargetMachineRef T, LLVMGlobalISelAbortMode Mode); /** Enable the MachineOutliner pass. */ void LLVMSetTargetMachineMachineOutliner(LLVMTargetMachineRef T, LLVMBool Enable); ``` Fixes #70666.
Dear LLVM team,
a while back, I ported an application from MCJIT to ORCv2/LLJIT (using the C bindings). One feature that was lost during this rewrite was the ability to control the method used to perform instruction selection. The MCJIT interface exposed this through a convenient parameter:
but no such thing exists for ORCv2/LLJIT (that I am aware of..).
Thus, I was wondering if there is any way to enable/disable
FastISel
for ORCv2/LLJIT, either using the C API or via annotations in the generated LLVM IR? I'd be really grateful for feedback from somebody familiar with this part of LLVM (@lhames?)PS: I saw that the
TargetMachine
C++ API has asetFastISel()
method, but it is likewise not exposed through the C-levelLLVMCreateTargetMachine
call.The text was updated successfully, but these errors were encountered: