Lines Matching refs:condition

87   void VisitGreaterThan(HGreaterThan* condition) override;
88 void VisitGreaterThanOrEqual(HGreaterThanOrEqual* condition) override;
89 void VisitLessThan(HLessThan* condition) override;
90 void VisitLessThanOrEqual(HLessThanOrEqual* condition) override;
91 void VisitBelow(HBelow* condition) override;
92 void VisitBelowOrEqual(HBelowOrEqual* condition) override;
93 void VisitAbove(HAbove* condition) override;
94 void VisitAboveOrEqual(HAboveOrEqual* condition) override;
920 HInstruction* condition = select->GetCondition(); in VisitSelect() local
924 if (condition->IsBooleanNot()) { in VisitSelect()
926 condition = condition->InputAt(0); in VisitSelect()
930 select->ReplaceInput(condition, 2); in VisitSelect()
937 } else if (condition->IsIntConstant()) { in VisitSelect()
938 if (condition->AsIntConstant()->IsTrue()) { in VisitSelect()
943 DCHECK(condition->AsIntConstant()->IsFalse()) << condition->AsIntConstant()->GetValue(); in VisitSelect()
949 replace_with = condition; in VisitSelect()
952 replace_with = GetGraph()->InsertOppositeCondition(condition, select); in VisitSelect()
954 } else if (condition->IsCondition()) { in VisitSelect()
955 IfCondition cmp = condition->AsCondition()->GetCondition(); in VisitSelect()
956 HInstruction* a = condition->InputAt(0); in VisitSelect()
957 HInstruction* b = condition->InputAt(1); in VisitSelect()
1018 HInstruction* condition = instruction->InputAt(0); in VisitIf() local
1019 if (condition->IsBooleanNot()) { in VisitIf()
1021 instruction->ReplaceInput(condition->InputAt(0), 0); in VisitIf()
1482 void InstructionSimplifierVisitor::VisitGreaterThan(HGreaterThan* condition) { in VisitGreaterThan() argument
1483 VisitCondition(condition); in VisitGreaterThan()
1486 void InstructionSimplifierVisitor::VisitGreaterThanOrEqual(HGreaterThanOrEqual* condition) { in VisitGreaterThanOrEqual() argument
1487 VisitCondition(condition); in VisitGreaterThanOrEqual()
1490 void InstructionSimplifierVisitor::VisitLessThan(HLessThan* condition) { in VisitLessThan() argument
1491 VisitCondition(condition); in VisitLessThan()
1494 void InstructionSimplifierVisitor::VisitLessThanOrEqual(HLessThanOrEqual* condition) { in VisitLessThanOrEqual() argument
1495 VisitCondition(condition); in VisitLessThanOrEqual()
1498 void InstructionSimplifierVisitor::VisitBelow(HBelow* condition) { in VisitBelow() argument
1499 VisitCondition(condition); in VisitBelow()
1502 void InstructionSimplifierVisitor::VisitBelowOrEqual(HBelowOrEqual* condition) { in VisitBelowOrEqual() argument
1503 VisitCondition(condition); in VisitBelowOrEqual()
1506 void InstructionSimplifierVisitor::VisitAbove(HAbove* condition) { in VisitAbove() argument
1507 VisitCondition(condition); in VisitAbove()
1510 void InstructionSimplifierVisitor::VisitAboveOrEqual(HAboveOrEqual* condition) { in VisitAboveOrEqual() argument
1511 VisitCondition(condition); in VisitAboveOrEqual()
1517 static bool RecognizeAndSimplifyClassCheck(HCondition* condition) { in RecognizeAndSimplifyClassCheck() argument
1518 HInstruction* input_one = condition->InputAt(0); in RecognizeAndSimplifyClassCheck()
1519 HInstruction* input_two = condition->InputAt(1); in RecognizeAndSimplifyClassCheck()
1557 value = condition->IsEqual() ? 1 : 0; in RecognizeAndSimplifyClassCheck()
1559 value = condition->IsNotEqual() ? 1 : 0; in RecognizeAndSimplifyClassCheck()
1561 condition->ReplaceWith(condition->GetBlock()->GetGraph()->GetIntConstant(value)); in RecognizeAndSimplifyClassCheck()
1566 void InstructionSimplifierVisitor::VisitCondition(HCondition* condition) { in VisitCondition() argument
1567 if (condition->IsEqual() || condition->IsNotEqual()) { in VisitCondition()
1568 if (RecognizeAndSimplifyClassCheck(condition)) { in VisitCondition()
1575 if (condition->GetLeft()->IsConstant() && !condition->GetRight()->IsConstant()) { in VisitCondition()
1576 HBasicBlock* block = condition->GetBlock(); in VisitCondition()
1578 GetOppositeConditionSwapOps(block->GetGraph()->GetAllocator(), condition); in VisitCondition()
1581 if (condition->IsLtBias()) { in VisitCondition()
1583 } else if (condition->IsGtBias()) { in VisitCondition()
1586 block->ReplaceAndRemoveInstructionWith(condition, replacement); in VisitCondition()
1589 condition = replacement; in VisitCondition()
1593 HInstruction* left = condition->GetLeft(); in VisitCondition()
1594 HInstruction* right = condition->GetRight(); in VisitCondition()
1619 if (left->HasAnyEnvironmentUseBefore(condition)) { in VisitCondition()
1628 condition->SetBias(left->AsCompare()->GetBias()); in VisitCondition()
1631 condition->ReplaceInput(left->InputAt(0), 0); in VisitCondition()
1632 condition->ReplaceInput(left->InputAt(1), 1); in VisitCondition()
2340 HCondition* condition = new (GetGraph()->GetAllocator()) HNotEqual(x, x, dex_pc); in SimplifyFP2Int() local
2341 condition->SetBias(ComparisonBias::kLtBias); in SimplifyFP2Int()
2342 invoke->GetBlock()->InsertInstructionBefore(condition, invoke->GetNext()); in SimplifyFP2Int()
2344 HInstruction* select = new (GetGraph()->GetAllocator()) HSelect(condition, nan, invoke, dex_pc); in SimplifyFP2Int()
2345 invoke->GetBlock()->InsertInstructionBefore(select, condition->GetNext()); in SimplifyFP2Int()