2017-12-29 12 views
0

등록자가 라이브 인 및 라이브 아웃 인 경우의 차이점은 무엇입니까?레지스터가 라이브 인 (live-in) 및 라이브 아웃 (live-out) 인 경우의 차이점

내 이해는 라이브 아웃 레지스터는 현재 라인에 지정된 레지스터가 연속 라인에서 변경되지 않은 변수를 포함한다는 것을 의미합니다. 여기

는 대답을 지원 할 수 내 컴파일러에서 일부 기계 코드 시험입니다

L0 : lim z, 0 
L1 : jmp L6 
L2 : sub x, x, y 
L3 : mov t, z 
L4 : lim z, 0 
L5 : addi z, t, 1 
L6 : blth y, x, L2 

답변

1

짧은 대답은 경우 프로그램의 주어진 명령에 대해, 레지스터는 라이브에 있다는 것이다 명령이 실행되기 전에 살아 있고 명령이 실행 된 후에 살아 있다면 라이브 아웃입니다.

처음부터 시작하려면 레지스터가 재설정되기 전에 그 내용이 사용되면 프로그램의 주어진 지점에 레지스터가 시작됩니다. 예를 들어, L2L3 사이의 지점에서 값이 변경되기 전에 t이 사용되지 않으므로 t이 사용되지 않으므로 t이 사망 할 것이므로 z은 앞으로 사용 (L3) 될 것이므로 실제로 게시됩니다. 즉, zL3의 라이브 인이며 L2의 라이브 아웃은 t이 아닙니다.

관련 문제