llvm-ir

    3熱度

    1回答

    我想將這些指令集的一個部分在另一部分在IR %0 = load i32, i32* @x, align 4 %1 = load i32, i32* @y, align 4 %add = add nsw i32 %0, %1 %2 = load i32, i32* @n, align 4 %cmp = icmp slt i32 %add, %2 %c

    2熱度

    1回答

    如何確定LLVM模塊的所有全局變量? 我想使用模塊通過修改它們。

    2熱度

    1回答

    我有兩個全局結構類型聲明,其中一個是另一個的「子類型」。我想定義一個全局變量,更具體的類型,但讓全局變量有更多的普通型: 我嘗試這樣做: %hs = type { %hs* (%hs*)* } %dc = type { %hs* (%hs*)*, i64, [1 x %hs*] } @boring = constant %hs { %hs* (%hs*)* null } ; this w

    0熱度

    1回答

    我有我自己的連接器和機器代碼converter.I使用我自己的彙編指令爲我的machine.This機器是一個軟件處理器執行由asm生成機器碼到十六進制轉換器。而不是彙編,我想現在使用c語言。我的問題是如何使用LLVM來達到這個目的。 一種方法可能是這樣的: 創建一個解析器,它將讀取由LLVM IR生成的.s文件(各種asm文件),並將這些指令映射到特定於處理器的asm指令。 我不想創建鏈接器和a

    0熱度

    1回答

    我跟着LLVM教程萬花筒。現在我試圖在這個前端編譯器中使用類似於Pascal的語言。我有這樣的代碼: program main; function rett(): integer; begin rett := 1; exit; rett := 5; end; var a: integer; begin a := rett(); wr

    2熱度

    1回答

    我正在學習編寫LLVM傳遞,試圖重現hello world示例。通hello.cpp看起來像: #include "llvm/Pass.h" #include "llvm/IR/Function.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; namespace { struct Hello : p

    3熱度

    1回答

    我想寫一個LLVM傳遞,它將提取函數調用的參數。如果爭論是一個常數,我的目標是恢復常數。 紅外看起來像 %2 = call noalias i8* @malloc(i64 512) #3 LLVM的傳球看起來像 bool runOnFunction(Function &F) override { for (auto& B : F) { for (auto& I : B)

    0熱度

    1回答

    我好不容易用 def ADD_reg3 : InstReg3Simple<0b01000, (outs GPR:$Wd), (ins GPR:$Wb, GPR:$Ws), "add\t$Wb, $Ws, $Wd", [(set GPR:$Wd, (add GPR:$Wb, GPR:$Ws))]> {} 大加兩個寄存器!現在我想添加兩個'長'數字。 看來,LLVM是足夠酷,

    4熱度

    1回答

    當我從C++生成LLVM IR代碼時,我可以使用控制檯命令clang++ -emit-llvm –S test.cpp來獲取我想要的LLVM IR的test.ll文件。 爲了得到一個可執行這些都是要遵循的步驟: llvm-as test.ll - >給我test.bc文件。 llc test.bc --o test.s - >給我test.s文件。 clang++ test.s -o test.n

    2熱度

    1回答

    我想跟着LLVM教程編譯器實現,但我的代碼段錯誤,當我嘗試發出對象代碼。 這是一個極小的例子,它試圖編譯函數func。爲了簡單起見,func是一個什麼都不做的函數。 #include <iostream> #include <llvm/ADT/Optional.h> #include <llvm/IR/BasicBlock.h> #include <llvm/IR/DerivedTypes.