: 다음과 같은 86를 표현하는 방법SSA 양식을 사용하여 데이터 흐름 분석에서 별칭 레지스터를 처리하는 방법은 무엇입니까? (예를 들어 86에서 EAX/AX/AH/AL) exmaple를 들어
SSA form에서 :
:xor eax, eax
inc ax
일부 의사 기능을 도입함으로써, 내가 가지고 올
[email protected] = [email protected]^[email protected]
[email protected] = LOWORD([email protected])
[email protected] = LOBYTE([email protected])
[email protected] = HIBYTE([email protected])
[email protected] = HIWORD([email protected])
[email protected] = [email protected] + 1
[email protected] = MAKEDWORD([email protected], HIWORD([email protected]))
[email protected] = LOBYTE([email protected])
[email protected] = HIBYTE([email protected])
그러나 나는 그것이 당신의 표기법을 사용
"SSA 양식"이란 무엇을 의미합니까? –
@Eli Bendersky : http://en.wikipedia.org/wiki/Static_single_assignment_form – inv
단순화에 대한 제안은 없지만 이것이 어디에 사용되는지 궁금합니다. 기존 컴파일 된 응용 프로그램을 최적화/변환하려고합니까? ***** 위의 예제를 보면 모든 단계에서 eax, ax, al 및 ah를 동기화하지 않아도됩니다. 예를 들어 다음 명령어가 하나의 경로가 ax이고 다른 하나가 eax를 사용하는 조건부 분기라면 어떻게 될까요? 업데이트 된이 레지스터의 모든 버전을 업데이트하려면 더욱 자세한 정보가 필요합니다! –