diff options
author | Tom Stellard <tstellar@redhat.com> | 2019-02-20 19:43:47 +0000 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2019-02-20 19:43:47 +0000 |
commit | 9ad714f7d1a926c00b389a41a6d79969089da678 (patch) | |
tree | 73160ab915d7e795194f0cec9618e329f318dbcf /llvm/utils/TableGen/GlobalISelEmitter.cpp | |
parent | 7feae0585825c9357f64242b63fd4bbb27ff020c (diff) | |
download | bcm5719-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.cpp | 3 |
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(); |