Displaying 2 results from an estimated 2 matches for "reversememoryssa".
2018 Oct 02
2
Reordering of load/stores using MemorySSA
Hello all,
It seems that it is insufficient to
rely on MemorySSA to correctly reorder load/stores.
For example, we have this following code:
v = load q
store 10, p
=>
store 10, p
v = load q // This is incorrect if p and q may alias
In the MemorySSA representation however,
there's no syntactic dependency between load/store,
because MemorySSA before transformation would look like this:
2018 Oct 02
0
Reordering of load/stores using MemorySSA
...as you can buys you almost nothing in
>> practice.
>> However, it makes for a much faster memorydependenceanalysis (which in
>> llvm is also only upwards and not downwards).
>>
>> Here, it's not clear that GVNHoist is slow enough to make building an
>> entire ReverseMemorySSA form worth it.
>> In particular, building reverse MemorySSA will double the number of
>> alias checks in most cases.
>> You would almost certainly have to fix the BasicAA caching issues and
>> finally split BasicAA or something to make it viable.
>> (MemorySSA already...