mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-15 17:58:50 +00:00
[SCEV] Do not bother creating separate SCEVUnknown for unreachable nodes
Currently, SCEV creates SCEVUnknown for every node of unreachable code. If we have a huge amounts of such code, we will be littering SE with these nodes. We could just state that they all are undef and save some memory. Differential Revision: https://reviews.llvm.org/D57567 Reviewed By: sanjoy llvm-svn: 353017
This commit is contained in:
parent
32f3ee2f37
commit
ae64db0c14
@ -6144,7 +6144,7 @@ const SCEV *ScalarEvolution::createSCEV(Value *V) {
|
||||
// to obey basic rules for definitions dominating uses which this
|
||||
// analysis depends on.
|
||||
if (!DT.isReachableFromEntry(I->getParent()))
|
||||
return getUnknown(V);
|
||||
return getUnknown(UndefValue::get(V->getType()));
|
||||
} else if (ConstantInt *CI = dyn_cast<ConstantInt>(V))
|
||||
return getConstant(CI);
|
||||
else if (isa<ConstantPointerNull>(V))
|
||||
|
@ -1,7 +1,7 @@
|
||||
; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
|
||||
|
||||
; CHECK: %t = add i64 %t, 1
|
||||
; CHECK: --> %t
|
||||
; CHECK: --> undef
|
||||
|
||||
define void @foo() {
|
||||
entry:
|
||||
|
Loading…
x
Reference in New Issue
Block a user