2012-03-14 4 views

답변

3

"터미네이터 BB"와 같은 것이 없기 때문에 저는 생각하지 않습니다. 반환에 의해 종료 된 여러 개의 BB가있을 수 있습니다.

+1

터미네이터 기본 블록 인 모든 기본 블록을 검색하려면 둘 이상의 터미네이터 BB가있는 함수의 예를 들려 줄 수 있습니까? 여러 번의 반품이 있어도 모든 반품 BB를 "수집"할 수있는 파이가있는 BB가 있어야합니다. 맞습니까? – dalibocai

+0

아니요, 사실 이름에서 말하는 정확히 수행하는 UnifyFunctionExitNodes라는 패스가 있습니다. 즉, 함수의 여러 종료를 제거합니다. – CAFxX

+0

OK. 내가 참조. 감사! – dalibocai

0

아니요. 함수의 여러 터미네이터 기본 블록이있을 수 있습니다 (예 : 여러 개의 return 문이 포함 된 함수). 함수의 return 문을 포함하는 각 기본 블록을 종결 자 블록 또는 종결 자 기본 블록이라고합니다.

runOnFunction { 
    for BB in F: 
     for I in BB: 
      if (ReturnInst *RI = dyn_cast<ReturnInst> I) 
      BB is terminator Basic Block 
      endif 
     endfor 
    endfor 
} 
관련 문제