@@ -1610,7 +1610,7 @@ static Instruction *reassociateFCmps(BinaryOperator &BO,
1610
1610
// / (~A & ~B) == (~(A | B))
1611
1611
// / (~A | ~B) == (~(A & B))
1612
1612
static Instruction *matchDeMorgansLaws (BinaryOperator &I,
1613
- InstCombiner::BuilderTy &Builder ) {
1613
+ InstCombiner &IC ) {
1614
1614
const Instruction::BinaryOps Opcode = I.getOpcode ();
1615
1615
assert ((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1616
1616
" Trying to match De Morgan's Laws with something other than and/or" );
@@ -1623,10 +1623,10 @@ static Instruction *matchDeMorgansLaws(BinaryOperator &I,
1623
1623
Value *A, *B;
1624
1624
if (match (Op0, m_OneUse (m_Not (m_Value (A)))) &&
1625
1625
match (Op1, m_OneUse (m_Not (m_Value (B)))) &&
1626
- !InstCombiner:: isFreeToInvert (A, A->hasOneUse ()) &&
1627
- !InstCombiner:: isFreeToInvert (B, B->hasOneUse ())) {
1626
+ !IC. isFreeToInvert (A, A->hasOneUse ()) &&
1627
+ !IC. isFreeToInvert (B, B->hasOneUse ())) {
1628
1628
Value *AndOr =
1629
- Builder.CreateBinOp (FlippedOpcode, A, B, I.getName () + " .demorgan" );
1629
+ IC. Builder .CreateBinOp (FlippedOpcode, A, B, I.getName () + " .demorgan" );
1630
1630
return BinaryOperator::CreateNot (AndOr);
1631
1631
}
1632
1632
@@ -1638,8 +1638,8 @@ static Instruction *matchDeMorgansLaws(BinaryOperator &I,
1638
1638
Value *C;
1639
1639
if (match (Op0, m_OneUse (m_c_BinOp (Opcode, m_Value (A), m_Not (m_Value (B))))) &&
1640
1640
match (Op1, m_Not (m_Value (C)))) {
1641
- Value *FlippedBO = Builder.CreateBinOp (FlippedOpcode, B, C);
1642
- return BinaryOperator::Create (Opcode, A, Builder.CreateNot (FlippedBO));
1641
+ Value *FlippedBO = IC. Builder .CreateBinOp (FlippedOpcode, B, C);
1642
+ return BinaryOperator::Create (Opcode, A, IC. Builder .CreateNot (FlippedBO));
1643
1643
}
1644
1644
1645
1645
return nullptr ;
@@ -2483,7 +2483,7 @@ Instruction *InstCombinerImpl::visitAnd(BinaryOperator &I) {
2483
2483
if (Instruction *FoldedLogic = foldBinOpIntoSelectOrPhi (I))
2484
2484
return FoldedLogic;
2485
2485
2486
- if (Instruction *DeMorgan = matchDeMorgansLaws (I, Builder ))
2486
+ if (Instruction *DeMorgan = matchDeMorgansLaws (I, * this ))
2487
2487
return DeMorgan;
2488
2488
2489
2489
{
@@ -3517,7 +3517,7 @@ Instruction *InstCombinerImpl::visitOr(BinaryOperator &I) {
3517
3517
if (match (Op0, m_And (m_Or (m_Specific (Op1), m_Value (C)), m_Value (A))))
3518
3518
return BinaryOperator::CreateOr (Op1, Builder.CreateAnd (A, C));
3519
3519
3520
- if (Instruction *DeMorgan = matchDeMorgansLaws (I, Builder ))
3520
+ if (Instruction *DeMorgan = matchDeMorgansLaws (I, * this ))
3521
3521
return DeMorgan;
3522
3522
3523
3523
// Canonicalize xor to the RHS.
@@ -4124,7 +4124,7 @@ static bool canFreelyInvert(InstCombiner &IC, Value *Op,
4124
4124
Instruction *IgnoredUser) {
4125
4125
auto *I = dyn_cast<Instruction>(Op);
4126
4126
return I && IC.isFreeToInvert (I, /* WillInvertAllUses=*/ true ) &&
4127
- InstCombiner:: canFreelyInvertAllUsersOf (I, IgnoredUser);
4127
+ IC. canFreelyInvertAllUsersOf (I, IgnoredUser);
4128
4128
}
4129
4129
4130
4130
static Value *freelyInvert (InstCombinerImpl &IC, Value *Op,
0 commit comments