diff options
| author | Roman Lebedev <lebedev.ri@gmail.com> | 2019-06-26 12:19:52 +0000 |
|---|---|---|
| committer | Roman Lebedev <lebedev.ri@gmail.com> | 2019-06-26 12:19:52 +0000 |
| commit | 13889145f0ee44848f9c5c00d84656f55191c550 (patch) | |
| tree | 8a149d81d38eef1be4e34f01091ef8e795f9b2fb /llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | |
| parent | fbb2e40d5c7da50408b987434b6c44c5874b106f (diff) | |
| download | bcm5719-llvm-13889145f0ee44848f9c5c00d84656f55191c550.tar.gz bcm5719-llvm-13889145f0ee44848f9c5c00d84656f55191c550.zip | |
[X86][Codegen] X86DAGToDAGISel::matchBitExtract(): consistently capture lambdas by value
llvm-svn: 364420
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelDAGToDAG.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index f4ca21ed7b8..9b7b1cfab76 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -3159,7 +3159,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) { }; // a) x & ((1 << nbits) + (-1)) - auto matchPatternA = [&checkOneUse, peekThroughOneUseTruncation, + auto matchPatternA = [checkOneUse, peekThroughOneUseTruncation, &NBits](SDValue Mask) -> bool { // Match `add`. Must only have one use! if (Mask->getOpcode() != ISD::ADD || !checkOneUse(Mask)) @@ -3185,7 +3185,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) { }; // b) x & ~(-1 << nbits) - auto matchPatternB = [&checkOneUse, isAllOnes, &peekThroughOneUseTruncation, + auto matchPatternB = [checkOneUse, isAllOnes, peekThroughOneUseTruncation, &NBits](SDValue Mask) -> bool { // Match `~()`. Must only have one use! if (Mask.getOpcode() != ISD::XOR || !checkOneUse(Mask)) @@ -3225,7 +3225,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) { }; // c) x & (-1 >> (32 - y)) - auto matchPatternC = [&checkOneUse, &peekThroughOneUseTruncation, + auto matchPatternC = [checkOneUse, peekThroughOneUseTruncation, matchShiftAmt](SDValue Mask) -> bool { // The mask itself may be truncated. Mask = peekThroughOneUseTruncation(Mask); @@ -3246,7 +3246,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) { SDValue X; // d) x << (32 - y) >> (32 - y) - auto matchPatternD = [&checkOneUse, &checkTwoUse, matchShiftAmt, + auto matchPatternD = [checkOneUse, checkTwoUse, matchShiftAmt, &X](SDNode *Node) -> bool { if (Node->getOpcode() != ISD::SRL) return false; @@ -3266,9 +3266,8 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) { return true; }; - auto matchLowBitMask = [&matchPatternA, &matchPatternB, - &matchPatternC](SDValue Mask) -> bool { - // FIXME: pattern c. + auto matchLowBitMask = [matchPatternA, matchPatternB, + matchPatternC](SDValue Mask) -> bool { return matchPatternA(Mask) || matchPatternB(Mask) || matchPatternC(Mask); }; |

