paritytech / paritytech/revive
EVM codegen in solc optimizations prevents contract builds
@xermicus is already working on this.
Since Aug 6, 2026.
- Dominant language
- Rust
- Stars
- 102
- Forks
- 26
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 6
Description
Even though we request the optimized Yul IR (and no EVM bytecode) from solc, due to some optimization passes, EVM codegen is still run. This can lead to errors like Could not create stack layout after 1000 iterations. when compiling contracts. But PVM is in no way connected to the EVM stack, and Yul has no stack layout.
Setting yulDetails.stackAllocation: false does not help in all cases, found a reproducer that just OOMs (my 64gb machine) in that case.
solc is notorious for such bugs. Because even --optimize --no-optimize-yul forcefully enables stack allocation, we have no other choice left than to request the unoptimized Yul. This should be fine; any remaining solc optimizer gains which are not covered yet by either the NY opt or LLVM passes can just be re-implemented in NY.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.