summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-09-23 19:04:09 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-09-23 19:04:09 +0000
commit29a44df5f8ed15511712eb9665d0ae51a1854353 (patch)
treea4aa976df29b5b0e42d9d4ed8eb5e9dc06f81974
parentf771681e632943096a76652e4f321a57dce0ac34 (diff)
downloadbcm5719-llvm-29a44df5f8ed15511712eb9665d0ae51a1854353.tar.gz
bcm5719-llvm-29a44df5f8ed15511712eb9665d0ae51a1854353.zip
ARM does not support offset folding (yet). Disable it for now.
This fixes PR5031. Unfortunately, there is no small testcase :( llvm-svn: 82643
-rw-r--r--llvm/lib/Target/ARM/ARMISelLowering.cpp6
-rw-r--r--llvm/lib/Target/ARM/ARMISelLowering.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index df9f29644b1..a656ef93fe7 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -4073,3 +4073,9 @@ void ARMTargetLowering::LowerAsmOperandForConstraint(SDValue Op,
return TargetLowering::LowerAsmOperandForConstraint(Op, Constraint, hasMemory,
Ops, DAG);
}
+
+bool
+ARMTargetLowering::isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const {
+ // The ARM target isn't yet aware of offsets.
+ return false;
+}
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.h b/llvm/lib/Target/ARM/ARMISelLowering.h
index 94dcf0d6bc5..7d85f458d8e 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.h
+++ b/llvm/lib/Target/ARM/ARMISelLowering.h
@@ -223,6 +223,7 @@ namespace llvm {
virtual unsigned getFunctionAlignment(const Function *F) const;
bool isShuffleMaskLegal(const SmallVectorImpl<int> &M, EVT VT) const;
+ bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
private:
/// Subtarget - Keep a pointer to the ARMSubtarget around so that we can
/// make the right decision when generating code for different targets.
OpenPOWER on IntegriCloud