ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Code Optimization of VC++ with
    Computer/Program Analysis 2008. 6. 26. 15:39
    VC++ 컴파일러가 function call을 할 때 일반적으로는 call instruction을 사용하지만,

    call 이후에 바로 return하는 경우에는 jmp instruciton을 사용하여 optimize 한다.

    그림에서 41BAFE로 call하는 부분과 jmp하는 부분이 있다.

    jmp로 가면 41BAFE 함수에서 return 하면 41B851을 호출한 함수로 바로 return 하게 된다.

    생각해 보면 이런 optimize는 항상 할 수 있는 것은 아니고,

    실제 code에서의 function이 아니라 function chunk에 대한 call을 할 때 가능해진다.

    이것은 Java bytecode에서의 jsr instruction과 유사한 방식의 optimize를 할 때 사용하는 것 같다.

    stack frame이 쌓이는 실제 code에서의 fucntion일 경우에 frame 내용을 처리하고 return해야 하기 때문이다.

    사용자 삽입 이미지

Designed by Tistory.