[all-commits] [llvm/llvm-project] 6ea477: Revert 57dd4b0 "[ValueTracking] Allow context-sens...
Hans via All-commits
all-commits at lists.llvm.org
Wed Nov 13 03:22:09 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 6ea47759008526dc11f5064b266de95c61915581
https://github.com/llvm/llvm-project/commit/6ea47759008526dc11f5064b266de95c61915581
Author: Hans Wennborg <hans at chromium.org>
Date: 2019-11-13 (Wed, 13 Nov 2019)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/FunctionAttrs/nonnull.ll
M llvm/test/Transforms/InstCombine/known-non-zero.ll
M llvm/test/Transforms/InstSimplify/known-non-zero.ll
M llvm/test/Transforms/LICM/hoist-mustexec.ll
Log Message:
-----------
Revert 57dd4b0 "[ValueTracking] Allow context-sensitive nullness check for non-pointers"
This caused miscompiles of Chromium (https://crbug.com/1023818). The reduced
repro is small enough to fit here:
$ cat /tmp/a.c
unsigned char f(unsigned char *p) {
unsigned char result = 0;
for (int shift = 0; shift < 1; ++shift)
result |= p[0] << (shift * 8);
return result;
}
$ bin/clang -O2 -S -o - /tmp/a.c | grep -A4 f:
f: # @f
.cfi_startproc
# %bb.0: # %entry
xorl %eax, %eax
retq
That's nicely optimized, but I don't think it's the right result :-)
> Same as D60846 but with a fix for the problem encountered there which
> was a missing context adjustment in the handling of PHI nodes.
>
> The test that caused D60846 to be reverted was added in e15ab8f277c7.
>
> Reviewers: nikic, nlopes, mkazantsev,spatel, dlrobertson, uabelho, hakzsam
>
> Subscribers: hiraditya, bollu, llvm-commits
>
> Tags: #llvm
>
> Differential Revision: https://reviews.llvm.org/D69571
This reverts commit 57dd4b03e4806bbb4760ab6150940150d884df20.
More information about the All-commits
mailing list