diff options
author | Devang Patel <dpatel@apple.com> | 2010-09-02 21:29:42 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-09-02 21:29:42 +0000 |
commit | 3bffd52d78fa7629af8aaed57d309b2abf96f104 (patch) | |
tree | 19fb8d04354f3f590673d600436541f780d3ad93 | |
parent | 7d1d7537cf47882c95269f3fb108f25f0ac3110b (diff) | |
download | bcm5719-llvm-3bffd52d78fa7629af8aaed57d309b2abf96f104.tar.gz bcm5719-llvm-3bffd52d78fa7629af8aaed57d309b2abf96f104.zip |
Detect undef value early and save unnecessary NodeMap query.
llvm-svn: 112864
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 08d2e9337b7..e65744592c8 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -4074,6 +4074,17 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) { // absolute, but not relative, values are different depending on whether // debug info exists. ++SDNodeOrder; + + // Check if address has undef value. + if (isa<UndefValue>(Address) || + (Address->use_empty() && !isa<Argument>(Address))) { + SDDbgValue*SDV = + DAG.getDbgValue(Variable, UndefValue::get(Address->getType()), + 0, dl, SDNodeOrder); + DAG.AddDbgValue(SDV, 0, false); + return 0; + } + SDValue &N = NodeMap[Address]; if (!N.getNode() && isa<Argument>(Address)) // Check unused arguments map. |