모든 여드름 나무를 덤프해야합니다 (일종의 -fdump-tree-whatever). 그 목적을 위해 플러그인을 만들었지 만 패스에서 G플 트리에 어떻게 액세스해야하는지 잘 모르겠습니다. 플러그인 GIMPLE_PASS에 중독되어 static struct opt_pass my_pass =
{
.type = GIMPLE_PASS,
...
this article에 따르면 gcc는 코드를 생성하기 전에 여러 가지 중간 형식을 사용합니다. 나는 GIMPLE 형식이 사용하기 쉬운 가장 쉬운 중간 언어 인 것으로 보이는 3 개의 주소 코드를 사용한다는 것을 읽었습니다. 하지만 중간 코드를 가져 와서 최종 코드를 생성하기 전에 코드를 삽입 할 수있는 도구를 만들어야하므로 좀 더 자세히 설명해야합니다.
-fdump-tree-gimple 옵션 (GCC 4.6.1)을 사용하여 C++을 컴파일 할 때 다음 함수가 포함 된 코드를 얻습니다 : std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = int, _Alloc = std::allocator<int>] (struct _Vector_base * const
다음 작업을 수행하는 방법에 문제가 있습니다. 나는 다음과 같은 코드가 있습니다 Test.cpp에 #include <stdio.h>
void
function(void) {printf("Hellow ");}
int main(void) {
printf("World\n");
return 0;
}
을 그리고 난 다음 하나로 변환 할