aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2019-04-12 18:26:56 +0000
committerPhilip Reames <listmail@philipreames.com>2019-04-12 18:26:56 +0000
commitb091cc081df43b1789cde9189936b485da0c1b2d (patch)
tree0a3ed74eec8f954b66777544d4e256bb006e3447 /llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
parent00a0d5d1de58da3651f7efe74d9f17ebfd2cbb01 (diff)
downloadllvm-b091cc081df43b1789cde9189936b485da0c1b2d.zip
llvm-b091cc081df43b1789cde9189936b485da0c1b2d.tar.gz
llvm-b091cc081df43b1789cde9189936b485da0c1b2d.tar.bz2
[InstCombine] Fix a nasty miscompile introduced w/masked.gather demanded elts
This fixes a miscompile which was introduced in r356510 (https://reviews.llvm.org/D57372). The problem is that the original patch removed pointer operands where the load results we're demanded, but without considering the legality of the load itself. If the masked.gather had active, but undemanded, lanes, then we could end up creating a load which loaded from an undef address. The result could be a segfault, or, in theory, an arbitrary read from a random memory location into an used register. llvm-svn: 358299
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp')
0 files changed, 0 insertions, 0 deletions