[LLVMdev] m_Not Pattern Question
Bill Wendling
isanbard at gmail.com
Sun Nov 9 12:55:38 PST 2008
On Nov 9, 2008, at 7:51 AM, Nick Lewycky wrote:
> Bill Wendling wrote:
>> Why are we taking a reference to a pointer here? The assignment in
>> the
>> "match" method over writes the value of "B", which seems weird and
>> wrong to me.
>
> This is deliberate. m_Foo(V) means "match any Foo and put its result
> into V." The way it's generally used is to declare empty variables,
> match against them, and test the equality:
>
> Value *A, *B, *C, *D;
> if (match(Expr, m_Or(m_And(A, B), m_And(C, D))) {
> if (B == D) {
> ... do optimization ...
>
Ah! Okay. Thanks for the explanation.
-bw
More information about the llvm-dev
mailing list