argotorg / argotorg/solidity

Extremely long running time when emitting `irOptimized` for AAVE

Open
#15,141 4 comments 0 reactions 0 assignees View on GitHub
high effort high impact must have optimizer performance :racehorse:
Dominant language
C++
Stars
25.7k
Forks
6.2k
Avg merge
2d 19h
Merged PRs (30d)
29

Description

## Description

The `irOptimized` emission takes around 40 minutes. Is slightly less if I do not request `irOptimized` but instead compile directly to EVM with `viaIR`.

The RAM usage is also over the top and close to 25 GB during the last minutes before returning the output.

## Environment

- Compiler version: 0.8.25
- Target EVM version (as per compiler settings): default
- Framework/IDE (e.g. Truffle or Remix): CLI
- Operating system: MacOS 14 Sonoma

## Steps to Reproduce

Can be reproduced with the standard JSON containing the AAVE v3 project.
Unfortunately, I could not minimize it as it seems to have flaking non-linear effects.

Command line:
`./solc-0.8.25 --standard-json json_input_compat_ir.json`

Standard JSON input:
[json_input_compat_ir.json](https://github.com/ethereum/solidity/files/15420714/json_input_compat_ir.json)

Contributor guide

Open the contributing guide

Research direction

Start by running the attached json_input_compat_ir.json with ./solc-0.8.25 --standard-json and compare irOptimized emission with direct viaIR compilation. Investigate the compiler path responsible for the reported runtime and memory growth; done means identifying and addressing the cause with reproducible performance and memory measurements.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, solidity
Domain
compilers, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.