summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/interpreter/TestCommandInterpreterAPI.py
diff options
context:
space:
mode:
authorSebastian Pop <sebpop@gmail.com>2016-09-22 15:33:51 +0000
committerSebastian Pop <sebpop@gmail.com>2016-09-22 15:33:51 +0000
commit8e6e3318c29bed6282bb64f194b97b91371138e9 (patch)
tree3e7073a9d7ff75435b7ce5ba6215a6ff2420f891 /lldb/packages/Python/lldbsuite/test/python_api/interpreter/TestCommandInterpreterAPI.py
parent2a66884f7846aa93acfbab2cba89145c7d67ed46 (diff)
downloadbcm5719-llvm-8e6e3318c29bed6282bb64f194b97b91371138e9.tar.gz
bcm5719-llvm-8e6e3318c29bed6282bb64f194b97b91371138e9.zip
GVN-hoist: fix store past load dependence analysis (PR30216)
To hoist stores past loads, we used to search for potential conflicting loads on the hoisting path by following a MemorySSA def-def link from the store to be hoisted to the previous defining memory access, and from there we followed the def-use chains to all the uses that occur on the hoisting path. The problem is that the def-def link may point to a store that does not alias with the store to be hoisted, and so the loads that are walked may not alias with the store to be hoisted, and even as in the testcase of PR30216, the loads that may alias with the store to be hoisted are not visited. The current patch visits all loads on the path from the store to be hoisted to the hoisting position and uses the alias analysis to ask whether the store may alias the load. I was not able to use the MemorySSA functionality to ask for whether load and store are clobbered: I'm not sure which function to call, so I used a call to AA->isNoAlias(). Store past store is still working as before using a MemorySSA query: I added an extra test to pr30216.ll to make sure store past store does not regress. Differential Revision: https://reviews.llvm.org/D24517 llvm-svn: 282168
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/interpreter/TestCommandInterpreterAPI.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud