Revert "[SCCP] Remove forcedconstant, go to overdefined instead"
authorFlorian Hahn <flo@fhahn.com>
Wed, 12 Feb 2020 09:41:19 +0000 (09:41 +0000)
committerFlorian Hahn <flo@fhahn.com>
Wed, 12 Feb 2020 09:41:19 +0000 (09:41 +0000)
commitfa74b31a3e9cd844c7ce2087978568e3f5ec8519
treed38fd13729c37e3000bbc7cc1e12818790b27da9
parent15488ff24b4ae205f979be7248b38655acd82f9c
Revert "[SCCP] Remove forcedconstant, go to overdefined instead"

This causes a crash for the reproducer below

 enum { a };
 enum b { c, d };
 e;
 static _Bool g(struct f *h, enum b i) {
   i &&j();
   return a;
 }
 static k(char h, enum b i) {
   _Bool l = g(e, i);
   l;
 }
 m(h) {
   k(h, c);
   g(h, d);
 }

This reverts commit aadb635e04854220064b77cc10d0e6772f5492fd.
13 files changed:
llvm/lib/Transforms/Scalar/SCCP.cpp
llvm/test/Transforms/IPConstantProp/PR16052.ll
llvm/test/Transforms/IPConstantProp/PR26044.ll
llvm/test/Transforms/SCCP/2006-12-19-UndefBug.ll
llvm/test/Transforms/SCCP/apint-bigint2.ll
llvm/test/Transforms/SCCP/apint-ipsccp3.ll
llvm/test/Transforms/SCCP/apint-select.ll
llvm/test/Transforms/SCCP/ip-constant-ranges.ll
llvm/test/Transforms/SCCP/ipsccp-basic.ll
llvm/test/Transforms/SCCP/logical-nuke.ll
llvm/test/Transforms/SCCP/switch-multiple-undef.ll
llvm/test/Transforms/SCCP/ub-shift.ll
llvm/test/Transforms/SCCP/undef-resolve.ll