Skip to content
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

Optimise treatment of local variables whose address has not been taken #766

Open
cp526 opened this issue Dec 17, 2024 · 0 comments
Open

Comments

@cp526
Copy link
Collaborator

cp526 commented Dec 17, 2024

As suggested by Peter.

Cerberus and CN treat C's local mutable variables the same as global heap allocations, leading to a nice uniform treatment. However, for local variables whose address is not taken there is room for optimisation, as this treatment incurs extra performance cost: CN has to track alignment constraints for pointers, check accesses are aligned, track the disjointness of their resources from other resources, etc.

We should optimise the handling of these variables:

  • propagate from Cabs/Ail the information about whether the address of a local variable is ever taken down to Core and CN
  • skip unnecessary checks on those variables
  • skip unnecessary recording of constraints for these variables.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant