summaryrefslogtreecommitdiffstats
path: root/llvm/test/Bitcode
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2017-02-09 19:40:22 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2017-02-09 19:40:22 +0000
commit74bda4d591022e52f095755b41687c155f716bcc (patch)
treea543c1ee7718bab94b9f14268db1f152c765b206 /llvm/test/Bitcode
parent16776315460ed675e7ed403913be6bd4b1aba3f2 (diff)
downloadbcm5719-llvm-74bda4d591022e52f095755b41687c155f716bcc.tar.gz
bcm5719-llvm-74bda4d591022e52f095755b41687c155f716bcc.zip
[JumpThreading] Thread through guards
Summary: This patch allows JumpThreading also thread through guards. Virtually, guard(cond) is equivalent to the following construction: if (cond) { do something } else {deoptimize} Yet it is not explicitly converted into IFs before lowering. This patch enables early threading through guards in simple cases. Currently it covers the following situation: if (cond1) { // code A } else { // code B } // code C guard(cond2) // code D If there is implication cond1 => cond2 or !cond1 => cond2, we can transform this construction into the following: if (cond1) { // code A // code C } else { // code B // code C guard(cond2) } // code D Thus, removing the guard from one of execution branches. Patch by Max Kazantsev! Reviewers: reames, apilipenko, igor-laevsky, anna, sanjoy Reviewed By: sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29620 llvm-svn: 294617
Diffstat (limited to 'llvm/test/Bitcode')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud