Skip to content

Context Gas per Function ⛽#1570

Merged
michael-schwarz merged 16 commits intomasterfrom
issue_1569
Sep 23, 2024
Merged

Context Gas per Function ⛽#1570
michael-schwarz merged 16 commits intomasterfrom
issue_1569

Conversation

@michael-schwarz
Copy link
Copy Markdown
Member

This provides an alternative version of the context gas where it is tracked per function.

  • The gas lifter now takes another module that specifies how the gas is handled (allows for further instances)
  • The lattice for the gas is now the chain lattice of the actually desired height rather than always having infinite height

I only have two regression tests so far, it would be great if someone else could come up with some more tests before we merge this and run experiments.

Closes #1569

@michael-schwarz michael-schwarz added cleanup Refactoring, clean-up feature precision performance Analysis time, memory usage labels Sep 20, 2024
Copy link
Copy Markdown
Member

@jerhard jerhard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks mostly good, nice capsulation of the Gas internals using the modules! I left some small remarks.

Copy link
Copy Markdown
Contributor

@SchiJoha SchiJoha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked through the changes from the Lifter, and everything looks good :)

@sim642 sim642 self-requested a review September 23, 2024 07:52
@michael-schwarz michael-schwarz merged commit 147935a into master Sep 23, 2024
@michael-schwarz michael-schwarz deleted the issue_1569 branch September 23, 2024 19:20
@michael-schwarz michael-schwarz added this to the v2.5.0 milestone Sep 24, 2024
sim642 added a commit to sim642/opam-repository that referenced this pull request Nov 28, 2024
CHANGES:

Functionally equivalent to Goblint in SV-COMP 2025.

* Add 32bit vs 64bit architecture support (goblint/analyzer#54, goblint/analyzer#1574).
* Add per-function context gas analysis (goblint/analyzer#1569, goblint/analyzer#1570, goblint/analyzer#1598).
* Adapt automatic static loop unrolling (goblint/analyzer#1516, goblint/analyzer#1582, goblint/analyzer#1583, goblint/analyzer#1584, goblint/analyzer#1590, goblint/analyzer#1595, goblint/analyzer#1599).
* Adapt automatic configuration tuning (goblint/analyzer#1450, goblint/analyzer#1612, goblint/analyzer#1181, goblint/analyzer#1604).
* Simplify non-relational integer invariants in witnesses (goblint/analyzer#1517).
* Fix excessive hash collisions (goblint/analyzer#1594, goblint/analyzer#1602).
* Clean up various code (goblint/analyzer#1095, goblint/analyzer#1523, goblint/analyzer#1554, goblint/analyzer#1575, goblint/analyzer#1588, goblint/analyzer#1597, goblint/analyzer#1614).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup Refactoring, clean-up feature performance Analysis time, memory usage precision

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Provide per-fundec context gas

4 participants