diff options
author | Philip Reames <listmail@philipreames.com> | 2015-11-04 01:43:54 +0000 |
---|---|---|
committer | Philip Reames <listmail@philipreames.com> | 2015-11-04 01:43:54 +0000 |
commit | 814fb60130e44ef11b33abe718dac17eb9d972a6 (patch) | |
tree | fd708edc3ecd3598c0ba7e23c5270ebfc43736fa /lldb/packages/Python/lldbsuite/test/python_api/symbol-context | |
parent | 5d0729300c3da39f43ca75b3e7afa2e471ae9370 (diff) | |
download | bcm5719-llvm-814fb60130e44ef11b33abe718dac17eb9d972a6.tar.gz bcm5719-llvm-814fb60130e44ef11b33abe718dac17eb9d972a6.zip |
[CVP] Fold return values if possible
In my previous change to CVP (251606), I made CVP much more aggressive about trying to constant fold comparisons. This patch is a reversal in direction. Rather than being agressive about every compare, we restore the non-block local restriction for most, and then try hard for compares feeding returns.
The motivation for this is two fold:
* The more I thought about it, the less comfortable I got with the possible compile time impact of the other approach. There have been no reported issues, but after talking to a couple of folks, I've come to the conclusion the time probably isn't justified.
* It turns out we need to know the context to leverage the full power of LVI. In particular, asking about something at the end of it's block (the use of a compare in a return) will frequently get more precise results than something in the middle of a block. This is an implementation detail, but it's also hard to get around since mid-block queries have to reason about possible throwing instructions and don't get to use most of LVI's block focused infrastructure. This will become particular important when combined with http://reviews.llvm.org/D14263.
Differential Revision: http://reviews.llvm.org/D14271
llvm-svn: 252032
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/symbol-context')
0 files changed, 0 insertions, 0 deletions