summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp
diff options
context:
space:
mode:
authorWei Mi <wmi@google.com>2019-08-30 23:01:22 +0000
committerWei Mi <wmi@google.com>2019-08-30 23:01:22 +0000
commit5ef5829fb02ac5e0daa2c2bfa6ef80366bee5224 (patch)
tree0c5ba4c2880f7033dd289f16e77007b76ac0f459 /lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp
parente1b7f22b3482be5a0cc4b1ed2d73202ef904f25b (diff)
downloadbcm5719-llvm-5ef5829fb02ac5e0daa2c2bfa6ef80366bee5224.tar.gz
bcm5719-llvm-5ef5829fb02ac5e0daa2c2bfa6ef80366bee5224.zip
[GVN] Verify value equality before doing phi translation for call instruction
This is an updated version of https://reviews.llvm.org/D66909 to fix PR42605. Basically, current phi translatation translates an old value number to an new value number for a call instruction based on the literal equality of call expression, without verifying there is no clobber in between. This is incorrect. To get a finegrain check, use MachineDependence analysis to do the job. However, this is still not ideal. Although given a call instruction, `MemoryDependenceResults::getCallDependencyFrom` returns identical call instructions without clobber in between using MemDepResult with its DepType to be `Def`. However, identical is too strict here and we want it to be relaxed a little to consider phi-translation -- callee is the same, param operands can be different. That means changing the semantic of `MemDepResult::Def` and I don't know the potential impact. So currently the patch is still conservative to only handle MemDepResult::NonFuncLocal, which means the current call has no function local clobber. If there is clobber, even if the clobber doesn't stand in between the current call and the call with the new value, we won't do phi-translate. Differential Revision: https://reviews.llvm.org/D67013 llvm-svn: 370547
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud