summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/GlobalISelEmitter.cpp
diff options
context:
space:
mode:
authorTom Stellard <tstellar@redhat.com>2019-02-20 19:43:47 +0000
committerTom Stellard <tstellar@redhat.com>2019-02-20 19:43:47 +0000
commit9ad714f7d1a926c00b389a41a6d79969089da678 (patch)
tree73160ab915d7e795194f0cec9618e329f318dbcf /llvm/utils/TableGen/GlobalISelEmitter.cpp
parent7feae0585825c9357f64242b63fd4bbb27ff020c (diff)
downloadbcm5719-llvm-9ad714f7d1a926c00b389a41a6d79969089da678.tar.gz
bcm5719-llvm-9ad714f7d1a926c00b389a41a6d79969089da678.zip
Add support for pointer types in patterns
Summary: This adds support for defining patterns for global isel using pointer types, for example: def : Pat<(load GPR32:$src), (p1 (LOAD GPR32:$src))>; DAGISelEmitter will ignore the pointer information and treat these types as integers with the same bit-width as the pointer type. Reviewers: dsanders, rtereshin, arsenm Reviewed By: arsenm Subscribers: Petar.Avramovic, wdng, rovka, kristof.beyls, jfb, volkan, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57065 llvm-svn: 354510
Diffstat (limited to 'llvm/utils/TableGen/GlobalISelEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/GlobalISelEmitter.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/GlobalISelEmitter.cpp b/llvm/utils/TableGen/GlobalISelEmitter.cpp
index 8079e2989b6..1e71d1317ed 100644
--- a/llvm/utils/TableGen/GlobalISelEmitter.cpp
+++ b/llvm/utils/TableGen/GlobalISelEmitter.cpp
@@ -1513,6 +1513,9 @@ Error OperandMatcher::addTypeCheckPredicate(const TypeSetByHwMode &VTy,
if (OperandIsAPointer)
addPredicate<PointerToAnyOperandMatcher>(OpTyOrNone->get().getSizeInBits());
+ else if (VTy.isPointer())
+ addPredicate<LLTOperandMatcher>(LLT::pointer(VTy.getPtrAddrSpace(),
+ OpTyOrNone->get().getSizeInBits()));
else
addPredicate<LLTOperandMatcher>(*OpTyOrNone);
return Error::success();
OpenPOWER on IntegriCloud