diff options
author | Chris Lattner <sabre@nondot.org> | 2011-04-22 21:59:37 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2011-04-22 21:59:37 +0000 |
commit | b686af053e6544191420978f6a3adc7e74ab0192 (patch) | |
tree | 7c76d9e2e5856a04e8f4002e6ec0613eae766c05 /include/llvm/CodeGen/SelectionDAGISel.h | |
parent | 597fa65373b824c840212cf238a73ae13dc35494 (diff) | |
download | llvm-b686af053e6544191420978f6a3adc7e74ab0192.tar.gz llvm-b686af053e6544191420978f6a3adc7e74ab0192.tar.bz2 llvm-b686af053e6544191420978f6a3adc7e74ab0192.tar.xz |
Recommit the fix for rdar://9289512 with a couple tweaks to
fix bugs exposed by the gcc dejagnu testsuite:
1. The load may actually be used by a dead instruction, which
would cause an assert.
2. The load may not be used by the current chain of instructions,
and we could move it past a side-effecting instruction. Change
how we process uses to define the problem away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130018 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/SelectionDAGISel.h')
-rw-r--r-- | include/llvm/CodeGen/SelectionDAGISel.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGISel.h b/include/llvm/CodeGen/SelectionDAGISel.h index e0cfabd095..ecf3947010 100644 --- a/include/llvm/CodeGen/SelectionDAGISel.h +++ b/include/llvm/CodeGen/SelectionDAGISel.h @@ -280,7 +280,8 @@ private: void PrepareEHLandingPad(); void SelectAllBasicBlocks(const Function &Fn); - bool TryToFoldFastISelLoad(const LoadInst *LI, FastISel *FastIS); + bool TryToFoldFastISelLoad(const LoadInst *LI, const Instruction *FoldInst, + FastISel *FastIS); void FinishBasicBlock(); void SelectBasicBlock(BasicBlock::const_iterator Begin, |