diff options
author | Dan Gohman <gohman@apple.com> | 2008-07-30 18:36:51 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-07-30 18:36:51 +0000 |
commit | 90d33ee746f354030a4144c4ffa028599663615b (patch) | |
tree | a9e35f857c6511d63ebdb22017672cfafbf11577 /lib/CodeGen | |
parent | d723f722b2457dd847ece84f9cfa7cfae33f9bb0 (diff) | |
download | external_llvm-90d33ee746f354030a4144c4ffa028599663615b.zip external_llvm-90d33ee746f354030a4144c4ffa028599663615b.tar.gz external_llvm-90d33ee746f354030a4144c4ffa028599663615b.tar.bz2 |
Don't look for leaf values to store when lowering stores of
empty structs. This fixes PR2612.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54226 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 65753e5..6267eb9 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -2928,9 +2928,7 @@ void SelectionDAGLowering::visitLoad(LoadInst &I) { void SelectionDAGLowering::visitStore(StoreInst &I) { Value *SrcV = I.getOperand(0); - SDValue Src = getValue(SrcV); Value *PtrV = I.getOperand(1); - SDValue Ptr = getValue(PtrV); SmallVector<MVT, 4> ValueVTs; SmallVector<uint64_t, 4> Offsets; @@ -2939,6 +2937,12 @@ void SelectionDAGLowering::visitStore(StoreInst &I) { if (NumValues == 0) return; + // Get the lowered operands. Note that we do this after + // checking if NumResults is zero, because with zero results + // the operands won't have values in the map. + SDValue Src = getValue(SrcV); + SDValue Ptr = getValue(PtrV); + SDValue Root = getRoot(); SmallVector<SDValue, 4> Chains(NumValues); MVT PtrVT = Ptr.getValueType(); |