phate / jlm

GNU Lesser General Public License v2.1
51 stars 13 forks source link

Add support for volatile operations to alias analyses pipeline [Andersen] [SteensgaardAgnostic] #486

Closed phate closed 4 months ago

phate commented 4 months ago

This PR does the following:

  1. Adds support for volatile load, store, and memcpy nodes to memory state encoder
  2. Adds support for volatile load, store, and memcpy nodes to Steensgaard alias analysis
  3. Adds support for volatile load, store, and memcpy nodes to Andersen alias analysis
  4. Adds support for volatile load, store, and memcpy nodes to region-aware memory node provider
  5. Tighten the handling of simple nodes in the memory state encoder
phate commented 4 months ago

@haved Here is my version for handling volatile nodes in the memory state encoder. It was heavily inspired by your PR, but handles a few things slightly differently. What I do not have yet is unit tests for the volatile cases. Can you wait for another day?

phate commented 4 months ago

The failing tests (for steensgaard agnostic) is due to the tightening and not having all nodes in the if-then-else statement. I will dig into it.

haved commented 4 months ago

@phate yes I can wait for tests in this PR before it is merged

phate commented 4 months ago

@haved The PR is now ready for review. I did not manage to add unit tests yet, but consider the successful runs of the steensgaard-agnostic and andersen-agnostic checks test enough. I opened issue #488 to not forget about the unit tests.