Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce an API for creating loads/stores based on nodes
Previously, evaluation of loads and stores based on nodes was generally handled by manually using TR::MemoryReference::createWithRootLoadOrStore and then performing operations on the resulting memory reference. However, this turns out to be wildly unsafe in the presence of volatile symrefs (it requires the caller to manually check) and also requires that MemoryReference be coupled to tree evaluation. As a first step towards addressing this, a new API has been introduced that generates loads and stores based on a node. This new API has the requisite options to support existing optimizations that perform loads/stores with different opcodes to what the node might suggest while still hiding the details about TR::MemoryReference and volatile fences behind a unified interface. Signed-off-by: Ben Thomas <ben@benthomas.ca>
- Loading branch information