2011-03-01 3 views
2

OpenMP와 비슷한 (지시어) 언어의 gcc 지원에 추가해야합니다. GIMPLE 코드를 덤프하고 "언덤프 (undump)"하고 컴파일을 계속하는 것이 가능하다는 것을 알고 있습니다. 내 동적 라이브러리의 호출을 추가하거나 변수를 수정하기 위해 덤프 된 DIMPLE을 수정하려고합니다. 이 작업을 수행 할 수있는 편리한 도구가 있습니까?gcc GIMPLE 수정 도구?

편집 : 아마도 LLVM이 필요합니다. 현재 저는 GIMPLE을 LLVM IR로 변환하는 방법에 관심이 있습니다. 또한 소스 코드의 어떤 라인이 IR의 구체적인 운영자에 해당하는지에 대한 정보를 얻을 수있는 방법이 있습니까?

+0

LLVM 용 gcc 프론트 엔드는 바로 그 일을하지 않습니다. 즉, gcc 컴파일러가 LLVM 바이트 코드 형식으로 코드를 생성하도록하십시오. – MetallicPriest

답변

2

정확하게 필요한 것이 무엇인지에 따라 GCC Plugins을 사용하여이를 수행 할 수 있습니다.

+0

감사합니다 아미르,하지만 그것은 단지 내 요구에 맞는 것으로 보인다. 나는 그것을 사용하지 않을 이유가있다 : 1. lisp는 나에게 좋지 않다. 2. 설득력이 없다. – krvladislav

+1

MELT는 기존 GCC 플러그인이다. 대신에 여러분의 필요에 맞게 GCC 플러그인을 개발할 수 있습니다. –

1

GIMPLE => LLVM IR 변환기는 "llvm-gcc"(또는 GCC 플러그인을 원하면 DragonEgg)라고합니다. 소스 언어와 LLVM IR 사이에 맵을 저장하는 표준 방법은 디버그 정보를 내보내는 것입니다.