summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2015-09-08 09:07:03 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2015-09-08 09:07:03 +0000
commit808dfb8ba73f23230a5b11c6e35551b7c2fd7a52 (patch)
treed16d54b304420c911ceb41f60aaf80e2aa60779a /llvm/lib/Target
parentd930ef76eaca107e80baa7edda864cf2eb075a24 (diff)
downloadbcm5719-llvm-808dfb8ba73f23230a5b11c6e35551b7c2fd7a52.tar.gz
bcm5719-llvm-808dfb8ba73f23230a5b11c6e35551b7c2fd7a52.zip
[mips] Reserve address spaces 1-255 for software use.
Summary: And define them to have noop casts with address spaces 0-255. Reviewers: pekka.jaaskelainen Subscribers: pekka.jaaskelainen, llvm-commits Differential Revision: http://reviews.llvm.org/D12678 llvm-svn: 246990
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/Mips/MipsISelLowering.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsISelLowering.h b/llvm/lib/Target/Mips/MipsISelLowering.h
index 1ec0d2c618f..b0204ca516d 100644
--- a/llvm/lib/Target/Mips/MipsISelLowering.h
+++ b/llvm/lib/Target/Mips/MipsISelLowering.h
@@ -269,6 +269,14 @@ namespace llvm {
unsigned getRegisterByName(const char* RegName, EVT VT,
SelectionDAG &DAG) const override;
+ /// Returns true if a cast between SrcAS and DestAS is a noop.
+ bool isNoopAddrSpaceCast(unsigned SrcAS, unsigned DestAS) const override {
+ // Mips doesn't have any special address spaces so we just reserve
+ // the first 256 for software use (e.g. OpenCL) and treat casts
+ // between them as noops.
+ return SrcAS < 256 && DestAS < 256;
+ }
+
protected:
SDValue getGlobalReg(SelectionDAG &DAG, EVT Ty) const;
OpenPOWER on IntegriCloud