From 46f1a8797cfc9ff2a64438060deaed5e8f1f9a6b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 20 Dec 2007 04:47:44 +0000 Subject: [PATCH] Add m_Zero(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45255 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/PatternMatch.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/llvm/Support/PatternMatch.h b/include/llvm/Support/PatternMatch.h index 6b295d64821..e046b29122c 100644 --- a/include/llvm/Support/PatternMatch.h +++ b/include/llvm/Support/PatternMatch.h @@ -46,9 +46,24 @@ struct leaf_ty { bool match(ITy *V) { return isa(V); } }; +/// m_Value() - Match an arbitrary value and ignore it. inline leaf_ty m_Value() { return leaf_ty(); } +/// m_ConstantInt() - Match an arbitrary ConstantInt and ignore it. inline leaf_ty m_ConstantInt() { return leaf_ty(); } +struct zero_ty { + template + bool match(ITy *V) { + if (const Constant *C = dyn_cast(V)) + return C->isNullValue(); + return false; + } +}; + +/// m_Zero() - Match an arbitrary zero/null constant. +inline zero_ty m_Zero() { return zero_ty(); } + + template struct bind_ty { Class *&VR; @@ -64,7 +79,10 @@ struct bind_ty { } }; +/// m_Value - Match a value, capturing it if we match. inline bind_ty m_Value(Value *&V) { return V; } + +/// m_ConstantInt - Match a ConstantInt, capturing the value if we match. inline bind_ty m_ConstantInt(ConstantInt *&CI) { return CI; } //===----------------------------------------------------------------------===// -- 2.11.0