You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support for an LLVM to MIR translation via the irtranslator pass
Test with -stop-after=irtranslator
Add support for a legalization pass
Test with -stop-after= legalizer and -run-pass=legalizer
Add news passes to llvm/lib/Target/DirectX/DirectXTargetMachine.cpp and disable register allocation checks and passes that are needed for physical registers
Try to use as much of existing coreIsel pass infra as possible
Add support for an instruction selector
Test with -stop-after= instruction-select and -run-pass=instruction-select
Run through All GlobalIsel passes without stopping
The options to convert MIR to DXIL are to have MIR emit LLVMIR or create a MIR BitcodeWriter.
MIR to LLVMIR has potential perf and memory degrdations. Doubling the LLVMIR memory size in the worst case.
Writing a MIR bitcode writer will need to be able to account for the fact that LLVM IR is value based because of SSA and MIR is not because phsyical registers can't be represented in SSA. For example Instruction operands are values while MIR instruction operands are MachineOperands. Even with Virtual Registers MIR doesn't have values so all the value based data structures would need to be rewritten.
TLDR we have decided not to proceed with GlobalIsel because it would require a rewrite of the DXILBitcodewriter.
Uh oh!
There was an error while loading. Please reload this page.
-stop-after=irtranslator
-stop-after= legalizer
and-run-pass=legalizer
-stop-after= instruction-select
and-run-pass=instruction-select
llvm/llvm-project@main...farzonl:llvm-project:directxGlobalIsel
The text was updated successfully, but these errors were encountered: