summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM
diff options
context:
space:
mode:
authorEli Friedman <efriedma@codeaurora.org>2018-08-30 22:18:27 +0000
committerEli Friedman <efriedma@codeaurora.org>2018-08-30 22:18:27 +0000
commitd5d0a4d27fbf4b360635fbfa721857e4d698ca28 (patch)
treeb43942214187ba15225eab6e35768d18b8b013a2 /llvm/lib/Target/ARM
parentf5415179bc61780273794cea4ae81e6a1e3c3061 (diff)
downloadbcm5719-llvm-d5d0a4d27fbf4b360635fbfa721857e4d698ca28.tar.gz
bcm5719-llvm-d5d0a4d27fbf4b360635fbfa721857e4d698ca28.zip
[ARM] Enable GEP offset splitting for 32-bit ARM.
It has essentially the same benefit it has on 64-bit ARM: it substantially reduces the number of constants used by large GEP operations. Seems to be generally helpful across a few different codebases I've tried. Differential Revision: https://reviews.llvm.org/D51462 llvm-svn: 341136
Diffstat (limited to 'llvm/lib/Target/ARM')
-rw-r--r--llvm/lib/Target/ARM/ARMISelLowering.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.h b/llvm/lib/Target/ARM/ARMISelLowering.h
index c2a6dfbbd49..734b1ee5aa1 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.h
+++ b/llvm/lib/Target/ARM/ARMISelLowering.h
@@ -770,6 +770,8 @@ class VectorType;
bool mayBeEmittedAsTailCall(const CallInst *CI) const override;
+ bool shouldConsiderGEPOffsetSplit() const override { return true; }
+
SDValue getCMOV(const SDLoc &dl, EVT VT, SDValue FalseVal, SDValue TrueVal,
SDValue ARMcc, SDValue CCR, SDValue Cmp,
SelectionDAG &DAG) const;
OpenPOWER on IntegriCloud