Skip to content
This repository has been archived by the owner on Oct 28, 2022. It is now read-only.

Profile the compiler #41

Open
vaivaswatha opened this issue Jul 5, 2020 · 1 comment
Open

Profile the compiler #41

vaivaswatha opened this issue Jul 5, 2020 · 1 comment
Labels
compile time compile time improvements

Comments

@vaivaswatha
Copy link
Contributor

All the focus so far has been on the performance of the compiled code. Little attention has been paid to how fast the compiler itself runs. To be of practical use, the compiler overhead must be small enough that the benefits of time saved in running the (faster) compiled code is achieved within a few runs (assuming that the compiler runs only once during deployment and the compiled code is cached).

To achieve this, we first need to measure the current compile times and see where we're spending a lot of time. More Issues can be opened (as we progress) to fix different parts of the compiler for efficiency.

@vaivaswatha vaivaswatha added the compile time compile time improvements label Jul 5, 2020
@vaivaswatha
Copy link
Contributor Author

A compilation of the ud-registry.scilla to LLVM bitcode time bin/scilla-llvm -gaslimit 10000 -libdir src/stdlib/ tests/codegen/contr/ud-registry.scilla -o ud-registry.bc takes about ~75ms.

So we're doing decently well for typical contracts. Need to be careful with contracts that have heavy use of polymorphic code.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
compile time compile time improvements
Projects
None yet
Development

No branches or pull requests

1 participant