Why should I know this?

computeKnownBitsFromICmpCond 본문

LLVM-STUDY

computeKnownBitsFromICmpCond

die4taoam 2024. 5. 1. 18:08

 

computeKnownBitsFromCond

ㄴ computeKnownBitsFromICmpCond

 

void llvm::computeKnownBitsFromICmpCond(const Value *V, ICmpInst *Cmp,
                                         KnownBits &Known,
                                         const SimplifyQuery &SQ, bool Invert) {
  ICmpInst::Predicate Pred =
      Invert ? Cmp->getInversePredicate() : Cmp->getPredicate();
  Value *LHS = Cmp->getOperand(0);
  Value *RHS = Cmp->getOperand(1);

  // Handle icmp pred (trunc V), C
  if (match(LHS, m_Trunc(m_Specific(V)))) {
    KnownBits DstKnown(LHS->getType()->getScalarSizeInBits());
    computeKnownBitsFromCmp(LHS, Pred, LHS, RHS, DstKnown, SQ);
    Known = Known.unionWith(DstKnown.anyext(Known.getBitWidth()));
    return;
  }

  computeKnownBitsFromCmp(V, Pred, LHS, RHS, Known, SQ);
}

 

computeKnownBitsFromICmpCond 함수는 computeKnownBitsFromCond 에서 Condition이 ICmpInst 인 경우 호출된다. 

 

이 함수는 위에서 보이다시피 ICmpInst 의 요소를 추출해 computeKnownBitsFromCmp 를 호출하는 일종의 래핑 함수라고 생각하면 된다.

 

computeKnownBitsFromCmp 에 대한 자세한 설명은 여기서

 

'LLVM-STUDY' 카테고리의 다른 글

computeKnownBitsFromContext  (0) 2024.05.01
computeKnownBitsFromCmp  (0) 2024.05.01
computeKnownBitsFromCond  (0) 2024.05.01
LLVM 원라인 패치 목록  (0) 2024.03.17
LLVM 최적화 패치 제출까지의 순서 정리  (0) 2024.03.03
Comments