vast
vast copied to clipboard
ABI compatible function prototype lowering
We want to emit ABI compatible low-level dialect. In clang, this is performed before lowering to LLVM. We want to give the same result when lowering from high-level in the low-level dialect. Lowering requires data layout modeling first.
Problems to solve:
- [ ] implement mlir type transformation pass that will split types/merge types/promote to allocas according to ABI rules
- [ ] keep provenance to original type
This is a mountain of work, therefore progress will be tracked in separate issues with abi-lowering tag.