프로 시저 간 데이터 흐름 분석 중에 IR의 메모리 관리 시스템에서 현재의 예술 상태는 무엇인지 알고 싶습니다. 분석 중에 메모리에 완전한 코드가 있는지 IR을 알고 싶습니다. 또는 임의의 순간에 IR을로드 및 언로드하기 위해 일부 메모리 관리 기술이 적용됩니다. llvm/gcc 인프라의 맥락에서 어떤 분석을 백만 줄의 코드로 확장하는 것이 가능합니까?
특정 변수에 LLVM IR의 값이 할당되는 지침 목록을 수동으로 작성하려고합니다. 함수의 지역 변수의 경우 명령어 반복기를 사용하고 특정 명령어의 피연산자를 확인하여 올바른 명령어 세트를 쉽게 얻을 수 있습니다. 이 접근법은 연관된 전역 변수에 대한 저장 명령이 없기 때문에 전역 변수에 대해 작동하지 않는 것처럼 보입니다. 메타 데이터 필드를 보지 않고 전
LLVM language reference 정수형 단순히 원하는 정수형위한 임의의 비트 폭을 지정하는 매우 단순한 형태이다 상태. 1 비트에서 2 -1 (약 8 백만) 사이의 임의의 비트 폭을 지정할 수 있습니다. 즉, 임의의 고정 길이 정수를 무료로 사용할 수 있습니까? 즉, i100을 선언하면 100 비트 너비의 변수가 생깁니 까?
llvm에서 커널을 사용하여 얻은 전역 주석을 이해하려고 노력하고 있지만 몇 가지 사항에 다소 혼란 스럽습니다. @sgv = internal constant [4 x i8] c"222\00"
@fgv = internal constant [0 x i8] zeroinitializer
@lvgv = internal constant [0 x i8*] zeroi
MinGW를 사용하여 LLVM을 성공적으로 작성했습니다. 이제 C API를 사용하여 프로그램을 구현하려고합니다. 빌드가 성공했는지 확인하는 데 필요한 초보자 용 응용 프로그램으로 여기에서 찾은 llvmpy 예제를 http://www.llvmpy.org/llvmpy-doc/0.9/doc/firstexample.html (내가 생각하는 것)으로 변환했습니다.
전역 변수를 초기화 한 다음 함수를 IR에 삽입하는 함수 단계를 작성했습니다. 전역 변수에 대한 함수 호출의 결과를 설정하고 싶지만 CallInst 유형을 GlobalVariable 유형으로 변환하는 방법이 확실하지 않습니다. 내가 컴파일 할 때 virtAddr = builder.CreateCall(mmap,putsArgs,"mmap");
, 나는이 오
저는 LLVM IR에 코드 생성을 망설였습니다. 로컬 변수를 할당해야 할 때의 구분과 이해할 수없는 부분이 있습니다. 리터럴 값을 로컬 변수에로드합니다. 그래서 내 질문은 생각 target triple = "x86_64-apple-macosx10.10.0"
define i32 @main() {
%t1 = alloca i32
store
LLVM 문서를 살펴본 결과 일부 용어는 의미가 있습니다. 알고 계시면 의견을 보내주세요. [프론트 엔드] 소스 코드 -> Tokeniser (토큰 스트림) -> 파서 (파서 액션) 사람이 Tokeniser가 정확히 무엇을합니까 설명 할 수 있습니까? 파서가하는 일은 무엇입니까? 아마도이 사실을 명확하게 할 수있는 예제를 제공 할 수 있습니다. [백엔드]
C++로 작성된 고성능 시스템에서 작업하고 있습니다. 프로세스는이 응용 프로그램 용으로 개발 된 간단한 언어로 작성된 런타임의 복잡한 논리 (규칙)를 이해할 수 있어야합니다. 에 논리를 컴파일 임베디드 인터프리터를 실행하고 데이터에 대한 동적 기능 해석 논리를 기반으로 데이터를 수신 전화, 작품을 생성 - 는 논리를 해석 : 우리는 두 가지 옵션이 있습니다