diff options
author | Steve King <steve@metrokings.com> | 2015-10-27 00:14:06 +0000 |
---|---|---|
committer | Steve King <steve@metrokings.com> | 2015-10-27 00:14:06 +0000 |
commit | fee370be72da1c2092bee2494443375ebf1ed1a3 (patch) | |
tree | 002a084c84a807077fe09dc268ea5354a44db5c1 /lldb/source/Plugins | |
parent | 12ffb42893594234bd427b1cd11716dd5a6a9b7f (diff) | |
download | bcm5719-llvm-fee370be72da1c2092bee2494443375ebf1ed1a3.tar.gz bcm5719-llvm-fee370be72da1c2092bee2494443375ebf1ed1a3.zip |
Fix llc crash processing S/UREM for -Oz builds caused by rL250825.
When taking the remainder of a value divided by a constant, visitREM()
attempts to convert the REM to a longer but faster sequence of instructions.
This conversion calls combine() on a speculative DIV instruction. Commit
rL250825 may cause this combine() to return a DIVREM, corrupting nearby nodes.
Flow eventually hits unreachable().
This patch adds a test case and a check to prevent visitREM() from trying
to convert the REM instruction in cases where a DIVREM is possible.
See http://reviews.llvm.org/D14035
llvm-svn: 251373
Diffstat (limited to 'lldb/source/Plugins')
0 files changed, 0 insertions, 0 deletions