llvm-ir

    3

    2답변

    julia 컴파일러가 생성하는 LLVM IR (code_llvm 사용)을 볼 때 배열을 인수로 사용하는 경우 이상한 점을 발견했습니다. 저를 예를 들어 보겠습니다 : function test(a,b,c) return nothing end 을 내가 얻을 code_llvm(test, (Int,Int,Int))를 사용하여 (이것은 쓸모없는 예입니다

    2

    2답변

    clang -emit-llvm에 의해 생성 된 LLVM-IR 코드로 작업 중이며 코드 폴딩 작업을 원합니다. 지금까지 foldmethod=expr과 foldexpr=LLVMFold()을 사용하고 있습니다. llvm 저장소의 구문 파일을 사용하여 구문 기반 폴딩 (예 : foldmethod=syntax)을 사용하고 싶습니다. Available here. 첫

    4

    3답변

    내가 LLVM-IR을 대상으로 장난감 언어에 대한 프론트 엔드 컴파일러를 구현하고 반면에 스택 오버 플로우가 발생하고 while 문 컴파일 실행 때 내가 스택 오버 플로우가 발생 : 예를 들어 을,이 코드는 영원히 실행해야하지만, 컴파일 된 버전 스택 오버플로가 발생합니다. define i32 @run() nounwind ssp { ; i = 0

    2

    2답변

    추가 분석을 위해 LLVM IR에서 상수를 추출하려고합니다. 지금까지 적절한 메소드를 사용하여 int, float 및 double을 추출 할 수있었습니다. 어떻게 APF 클래스의 메서드에서 값을 가져 오기 전에 float와 double을 구별 할 수 있습니까? 적절한 체크가 없으면 double에 convertToFloat()을 호출하거나 float에 con

    0

    1답변

    SWL은 상점 주소를 키로, 상수를 해당 값으로 갖는 맵입니다. 그러나 내가로드에서 사용되는이 저장소를 확인하면 상수와 저장 명령의 사용을 대체하려고합니다. 그렇게하면 지시 사항을 대체하지 않습니다. 이 패스를 실행 한 후에는 바이트 코드에 변화가 없습니다. std::map<Value*,Value*> SWL; for (User::op_iterator OI

    0

    2답변

    C++/C에서 당신은이 작업을 수행 할 수 있습니다이 LLVM-IR에 가능했던 경우 궁금 해서요, 또는 즉시 유형의 문제로 불평 것 unsigned char A[12]; unsigned int *B; int *C; B = malloc(sizeof(unsigned int)); C = malloc(2*sizeof(int)); A[0] = *B; A[

    5

    3답변

    : define i32 @test(i32 %X, i32 %Y) { %Z = udiv i32 %X, %Y ret i32 %Z } SelectionDAG 그래프가 내가 생각했던 것보다 더 복잡하다 : 가 왜 CopyFromReg 필요, 왜 안 연결 vreg0 및 vreg1udiv으로 직접? EntryToken에서 GraphRoot

    4

    1답변

    응용 프로그램을 만들고 있는데 ExecutionEngine을 사용하여 llvm 비트 코드를로드하고 실행하고 싶습니다. 지금까지 clang을 통해 컴파일 된 정말 간단한 C 코드로이 작업을 수행했습니다. 제가 생각하기에이 프로젝트에 llvm을 사용하면 말보다 더 많은 언어에 몰입 할 수 있습니다. 특별히 lua/python/javascript를 선택하는 것입

    0

    1답변

    바이너리 코드의 일부분의 무결성을 검사하는 함수를 만들었습니다. 이 함수는 llvm 패스로 추가됩니다. IT는 가 및 최종 주소 플러스 검사 값을 시작해야합니다. 점검 값은 2 진 코드의 계산 결과입니다. 아쉽게도 IR 패스는 llvm의 중간 엔드 부분에 있으며이 부분은 바이너리가 아닌 IR과 함께 작동합니다. 아직 바이너리 코드를 알지 못하고 어떻게 주소

    1

    1답변

    를 인쇄 할 AssemblyAnnotationWriter을 구현하려면 어떻게합니까. 나는 함수의 시작하기 전에 #[uses]=1를 인쇄 할 http://llvm.org/doxygen/AssemblyAnnotationWriter_8h_source.html 에서 주어진 virtual void emitFunctionAnnot(const Function *, fo