저는 LLVM을 수정하여 메모리에서 특정 상수와 함수를 연속적으로 유지하려고합니다.
다른 말로하면, 특정 기능의 기계 코드가 일 때 항상에 메모리의 ~ 4 바이트 상수가 선행되어 있는지 확인해야합니다. 함수 본문 자체를 수정하면 안됩니다.LLVM IR에서 전역 변수의 위치를 제어하는 방법은 무엇입니까?
어떻게하면 LLVM IR을 수정하여이 작업을 수행 할 수 있습니까?
예 경우 : I 변수와 메모리에서 함수의 연속을 유지하기 위해 LLVM IR에 명시 할 방법 ?
아니요 : 코드 생성 과정에서 어떤 부분을 수정해야합니까? 보아야 할 프로젝트/파일에 대한 링크는 도움이 될 것입니다. 왜냐하면 어디서부터 시작해야할지 모르겠습니다.
이것은 분명히 x86과 같은 Harvard 아키텍처에서는 작동하지만 Atmel과 같은 Harvard 아키텍처에서는 이것이 의미가 없습니다. 코드 앞에 오는 바이트도 코드입니다. 데이터 뒤의 바이트도 데이터입니다. LLVM은 하버드 아키텍처를 지원할만큼 충분히 휴대가 편리하다고 생각합니다. – MSalters
@MSalters : 그렇습니다. 그렇다고 하버드 이외의 아키텍처에서는 사용할 수 없습니다. 결국 플랫폼 특유의 기능을 가지고 있지는 않습니다 (SSE 등). :) 그러나 당신이 이것을 지원하지 않는다는 사실을 안다면 대답으로 게시하십시오! – Mehrdad
GHC의 TNTC 최적화와 관련이 있습니까? – arrowd