diff options
author | Zvi Rackover <zvi.rackover@intel.com> | 2017-10-24 07:38:29 +0000 |
---|---|---|
committer | Zvi Rackover <zvi.rackover@intel.com> | 2017-10-24 07:38:29 +0000 |
commit | 3c0d385598c4bf2b77448e4cc2d5965f7a5885e0 (patch) | |
tree | eda8a784af19fa3035f343559e963d7f55cad974 /lldb/packages/Python/lldbsuite/support/gmodules.py | |
parent | d3abd15d8cd9455bc7b1eeb2e6f4b4d0047a0dd6 (diff) | |
download | bcm5719-llvm-3c0d385598c4bf2b77448e4cc2d5965f7a5885e0.tar.gz bcm5719-llvm-3c0d385598c4bf2b77448e4cc2d5965f7a5885e0.zip |
X86: Fix X86CallFrameOptimization to search for the COPY StackPointer
SelectionDAG inserts a copy of ESP into a virtual register.
X86CallFrameOptimization assumed that the COPY, if present, is always
right after the call-frame setup instruction (ADJCALLSTACKDOWN). This was a
wrong assumption as the COPY can be located anywhere between the call-frame setup
instruction and its first use. If the COPY happened to be located in a different
location than what X86CallFrameOptimization assumed, visiting it while
processing the call chain would lead to a conservative bail-out.
The fix is quite straightfoward, scan ahead for the stack-pointer copy and make note
of it so it can be ignored while processing the call chain.
Fixes pr34903
Differential Revision: https://reviews.llvm.org/D38730
llvm-svn: 316416
Diffstat (limited to 'lldb/packages/Python/lldbsuite/support/gmodules.py')
0 files changed, 0 insertions, 0 deletions