Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Prevent MVC reduction in astoreEvaluator if symref is unresolved
The `astoreEvaluator`, more precisely the `astoreHelper` has a path in which it is trying to identify the following tree pattern: ``` astore <x> aload <y> ``` and tries to generate an `MVC` instruction to perform the store. The problem with this is that it seems to generate a memory reference from the `node` only for the purposes of testing whether it has an index register (which it by the way cannot know until the memory reference is used within an instruction). The act of generating a memory reference is not side-effect free as the symref could have been unresolved and as such various metadata can be generated. The `astoreHelper` then goes ahead and creates another memory reference from the node and uses that for the `MVC` instruction. This means the metadata for handling unresolved symrefs could have been generated twice. Similarly to `directMemoryStoreHelper` we simply prevent this `MVC` reduction if the symref is unresolved. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
- Loading branch information