souffle-lang / souffle

Soufflé is a variant of Datalog for tool designers crafting analyses in Horn clauses. Soufflé synthesizes a native parallel C++ program from a logic specification.
http://souffle-lang.github.io/
Universal Permissive License v1.0
913 stars 206 forks source link

avoid calls to `getArguments()` in interpreter #2473

Closed quentin closed 7 months ago

quentin commented 7 months ago

Avoid calling costly getArguments() when the interpreter is only interested by the number of arguments.

codecov[bot] commented 7 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 78.18%. Comparing base (dc8ecf8) to head (0e6ed24).

Additional details and impacted files [![Impacted file tree graph](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473/graphs/tree.svg?width=650&height=150&src=pr&token=uyaWjuodpY&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang)](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang) ```diff @@ Coverage Diff @@ ## master #2473 +/- ## ========================================== - Coverage 78.19% 78.18% -0.01% ========================================== Files 486 486 Lines 32423 32432 +9 ========================================== + Hits 25352 25358 +6 - Misses 7071 7074 +3 ``` | [Files](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang) | Coverage Δ | | |---|---|---| | [src/interpreter/Engine.cpp](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang#diff-c3JjL2ludGVycHJldGVyL0VuZ2luZS5jcHA=) | `85.15% <100.00%> (-0.02%)` | :arrow_down: | | [src/ram/AbstractOperator.h](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang#diff-c3JjL3JhbS9BYnN0cmFjdE9wZXJhdG9yLmg=) | `100.00% <100.00%> (ø)` | | | [src/ram/NestedIntrinsicOperator.h](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang#diff-c3JjL3JhbS9OZXN0ZWRJbnRyaW5zaWNPcGVyYXRvci5o) | `58.97% <100.00%> (+2.21%)` | :arrow_up: | | [src/ram/PackRecord.h](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang#diff-c3JjL3JhbS9QYWNrUmVjb3JkLmg=) | `85.18% <100.00%> (+1.18%)` | :arrow_up: | | [src/ram/SubroutineReturn.h](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang#diff-c3JjL3JhbS9TdWJyb3V0aW5lUmV0dXJuLmg=) | `70.58% <100.00%> (+1.83%)` | :arrow_up: | | [src/ram/UserDefinedOperator.h](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang#diff-c3JjL3JhbS9Vc2VyRGVmaW5lZE9wZXJhdG9yLmg=) | `77.14% <100.00%> (+1.38%)` | :arrow_up: | ... and [2 files with indirect coverage changes](https://app.codecov.io/gh/souffle-lang/souffle/pull/2473/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=souffle-lang)