Skip to content

Handle infinity in the back-end and in the simplifier #6914

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

tautschnig
Copy link
Collaborator

@tautschnig tautschnig commented Jun 8, 2022

We need to support at least object_size operations over infinity in the
back-end as the postponed evaluation iterates over all objects, which
may include ones that have infinite size.

  • Each commit message has a non-empty body, explaining why the change was made.
  • n/a Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
  • n/a The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
  • Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
  • n/a My commit message includes data points confirming performance improvements (if claimed).
  • My PR is restricted to a single feature or bugfix.
  • n/a White-space or formatting changes outside the feature-related changed lines are in commits of their own.

@codecov
Copy link

codecov bot commented Jun 8, 2022

Codecov Report

Attention: Patch coverage is 82.92683% with 7 lines in your changes missing coverage. Please review.

Project coverage is 77.79%. Comparing base (e42a46d) to head (08b12ec).
Report is 2920 commits behind head on develop.

Files with missing lines Patch % Lines
src/util/simplify_expr_int.cpp 69.56% 7 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #6914   +/-   ##
========================================
  Coverage    77.78%   77.79%           
========================================
  Files         1568     1568           
  Lines       180269   180309   +40     
========================================
+ Hits        140230   140263   +33     
- Misses       40039    40046    +7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@tautschnig tautschnig force-pushed the bugfixes/infinity branch from 937751c to 0bd752b Compare June 8, 2022 19:35
@tautschnig tautschnig changed the title [RFC] Handling infinity in the back-end Handle infinity in the back-end and in the simplifier Jun 8, 2022
@tautschnig tautschnig added bugfix and removed RFC Request for comment labels Jun 8, 2022
@tautschnig tautschnig force-pushed the bugfixes/infinity branch from 0bd752b to 1fe3e99 Compare June 8, 2022 20:17
@tautschnig tautschnig marked this pull request as ready for review June 8, 2022 20:53
@tautschnig tautschnig removed their assignment Jun 8, 2022
We need to support at least object_size operations over infinity in the
back-end as the postponed evaluation iterates over all objects, which
may include ones that have infinite size.
@tautschnig tautschnig force-pushed the bugfixes/infinity branch from 1fe3e99 to 08b12ec Compare June 9, 2022 12:59
size_expr->id() == ID_infinity &&
can_cast_type<integer_bitvector_typet>(object_size.type()))
{
object_size = to_integer_bitvector_type(postponed_object_size->type())
Copy link
Member

Choose a reason for hiding this comment

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

Isn't the actual size of infinity still bounded by the maximum offset size in the current pointer encoding?

@tautschnig
Copy link
Collaborator Author

Closing in favour of #8469.

@tautschnig tautschnig closed this Sep 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants