summaryrefslogtreecommitdiff
path: root/lib/Target/CellSPU/SPUISelLowering.h
diff options
context:
space:
mode:
authorKalle Raiskila <kalle.raiskila@nokia.com>2010-10-07 16:24:35 +0000
committerKalle Raiskila <kalle.raiskila@nokia.com>2010-10-07 16:24:35 +0000
commit8a52fa674b78ff0fdc04b1bf1124aa57c007f8ff (patch)
tree82c5c2923b991dcf94772e2cb4b40c726e443222 /lib/Target/CellSPU/SPUISelLowering.h
parent86c3647ddfa8c39ed5d9eba9f2547544270c7bde (diff)
downloadllvm-8a52fa674b78ff0fdc04b1bf1124aa57c007f8ff.tar.gz
llvm-8a52fa674b78ff0fdc04b1bf1124aa57c007f8ff.tar.bz2
llvm-8a52fa674b78ff0fdc04b1bf1124aa57c007f8ff.tar.xz
Implement two virtual functions in SPUTargetLowering.
Before the implementation of isLegalAddressingMode, some rare cases of code were miscompiled if optimized with the LoopStrengthReduce pass. It is unclear (to me) if LSR is "allowed" to produce wrong code with a bad TargetLowering, or if the bug is elsewhere and this patch just hides it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115919 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CellSPU/SPUISelLowering.h')
-rw-r--r--lib/Target/CellSPU/SPUISelLowering.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/CellSPU/SPUISelLowering.h b/lib/Target/CellSPU/SPUISelLowering.h
index 6d3c90b751..23726435b8 100644
--- a/lib/Target/CellSPU/SPUISelLowering.h
+++ b/lib/Target/CellSPU/SPUISelLowering.h
@@ -170,6 +170,11 @@ namespace llvm {
const SmallVectorImpl<ISD::OutputArg> &Outs,
const SmallVectorImpl<SDValue> &OutVals,
DebugLoc dl, SelectionDAG &DAG) const;
+
+ virtual bool isLegalICmpImmediate(int64_t Imm) const;
+
+ virtual bool isLegalAddressingMode(const AddrMode &AM,
+ const Type *Ty) const;
};
}