cost 297 ms
如何在調試時轉儲 llvm::instruction

[英]How to dump llvm::instruction while debugging

我想請問是否可以在調試時轉儲出某些指令的文本格式(我在vscode中使用gdb)? 我試過I->dump()和I->print(errs())但沒有用.... 因此我會撒謊問是否有可能這樣做? ...

我如何將 x86_64 匯編代碼提升為 LLVM-IR?

[英]How can i Lifting x86_64 assembly code to LLVM-IR?

我正在研究病毒,我面臨着對其虛擬機進行去混淆處理的任務。 我選擇通過 LLVM 來執行此操作,我有一個問題,我在哪里可以看到將指令提升到 LLVM-IR 級別的簡單示例? 例如,我在哪里可以查看僅將一個 pop rsp 指令轉換為 LLVM-IR 的代碼? 因為我沒有找到類似的東西。 也許有人有描 ...

為什么 LLVM 10.0 的 GEP 無法計算非原始字段的地址?

[英]Why does LLVM 10.0's GEP fail to compute address of a non-primitive field?

看看這段小代碼: 正如預期的那樣,這可以完美地編譯和運行。 但是,當我嘗試用一些非原始類型替換i32時,它會失敗並出現一條奇怪的error: base element of getelementptr must be sized LLVM版本 - 10.0 用llc編譯我試圖自己弄清楚,但我不知 ...

2023-01-01 10:12:29   1   22    llvm / llvm-ir  
在 LLVM 中找到指向賦值指令的指針

[英]Find pointer to the Instruction that assigns to value in LLVM

假設我有一個指向 LLVM 中某個 Value* val 的指針。 我想獲得一個指向指令的指針,該指令將值分配給 val 指向的變量。 我該怎么做? 這是代碼示例 我有一個指向變量add的指針,我想獲得一個指向分配給變量 add 的指令的指針,它是指向%add = add nsw i32 %aa, ...

2022-12-27 08:33:38   1   33    llvm / llvm-ir  
LLVM IR:結構對齊錯誤

[英]LLVM IR: struct alignment is wrong

我是 llvm 框架的新手,使用 llvm 生成 jit 代碼。 但是關於struct生成的代碼有點問題: ` 我認為 alloc 的結構對齊應該是 4,但這里是 8。 alloc IR 由 CreateAlloca() 發出如果有人能告訴我哪里出了問題,非常非常感謝。 謝謝! ...

用於乘以 2 個矩陣的 MLIR

[英]MLIR for multiplying 2 matrices

賞金將在 5 天后到期。 此問題的答案有資格獲得+50聲望賞金。 Roy想提請更多人注意這個問題。 我正在嘗試使用 MLIR 乘以 2 個矩陣。 但是,IR 不編譯並給出此錯誤: 錯誤發生在這一行( linalg.fill(%A, %cf1): memref<2048x2048xf64&g ...

2022-12-19 04:10:42   1   27    llvm / llvm-ir  
ML-IR 到 LLVM IR 生成錯誤的 IR

[英]ML-IR to LLVM IR generates wrong IR

我正在按照這個玩具示例將 mlir 降低到 llvm ir 並編譯結果。 按照說明,我可以編譯項目。 但是,生成的 llvm ir(print.ll 文件)與 github 中的不同。 例如,我在 print.ll 中使用ptr而不是i8 * (示例: declare ptr @malloc(i6 ...

2022-12-18 10:11:52   1   16    llvm / llvm-ir  
在 LLVM 中啟用循環反轉的任何選項?

[英]Any options that enable loop inversion in LLVM?

是否有啟用循環反轉的選項? 更具體地說,LLVM 能否將 while 形式循環轉換為 do-while 形式循環,如下所示。 改造前代碼為: 改造后代碼為: 我使用了 opt pass 並啟用了 loop-rotate 選項和 loop-simplify 選項。 但是,沒有實現循環逆變換。 ...

所有 LLVM 前端都可以生成相同的字節碼嗎

[英]Can all LLVM frontends produce the same bytecode

LLVM 是 C#、Ruby、Zig 等多種語言的后端。 我的問題是:所有 LLVM 前端語言“原則上”都能生成相同的 LLVM 字節碼嗎? 前端是否有任何最低要求才能生成與 C++ 相同的字節碼? ...

[3.0]關於如何使用store IR指令獲取blockaddress的問題

[英][3.0]Question about how to use the store IR instruction to obtain the blockaddress

我寫信是想問一個問題。 在閱讀一段C程序生成的IR語言時,我發現在C程序中,獲取標簽地址的行為是在翻譯成IR后由store指令處理的。 但是,我閱讀了官方文檔。 Blockaddress 的工作原理如下: blockaddress(@function, %block) 'blockaddress ...

將新的 LLVM 目標添加到 llvmlite

[英]Adding a new LLVM target to llvmlite

是否可以向 llvmlite(python 庫)添加新目標? 對於新硬件(例如 ASIC),我需要一個新的自定義 LLVM 目標。 這從文檔中不是很清楚。 如果無法在 llvmlite 中添加新目標,我可以在 llvmlite 中生成 IR 並使用其他方法執行 rest 嗎? ...

如何將自定義 llvm 傳遞添加到 rustc

[英]How to add custom llvm pass into rustc

我正在嘗試將我的 llvm pass 添加到 Rustc 中。 Rustc 有一個編譯選項-C passes=val ,我們可以在其中添加額外的 LLVM passes 來運行。 然而,作為我的嘗試,這個選項只能在 pass code 放在 LLVM 代碼樹內時接受 pass,但我想將我的 pa ...

在 LLVM IR 中檢查 i64 值的最高位

[英]Checking the top bits of an i64 Value in LLVM IR

我將簡明扼要,但如果需要進一步說明,請告訴我。 我有一個 i64 值,我想檢查它們的最高位是否為零。 如果它們是零,我會做一些事情,如果不是,我會做其他事情。 我如何檢測 IR 以允許在運行時發生這種情況? 我發現的一件事是 LLVM 有一個內在的“llvm.ctlz”,它計算前導零並將它們放入 i ...

2022-10-05 18:31:31   1   58    llvm / llvm-ir  
如何在 function 轉換通道中轉換 function 后更新並從分析通道獲取分析結果

[英]How to update and get the analysis result from a analysis pass after transform the function in the function transform pass

想知道在 function 被修改后,我們如何更新並獲得轉換過程中的分析結果。 我不希望 go 回到管道和 go 通過所有關於所有 function 的分析。這是低效的。 例如:寫一個pass修改function中的一些ir,然后分析pass得到結果再做transform。 ...

2022-09-30 03:02:08   2   112    llvm / llvm-ir  
如何在 LLVM IR 中跳轉到封閉的 function 中的 label?

[英]How do I do jumps to a label in an enclosing function in LLVM IR?

我想為一種非常古老的語言 PL/M 做一個 LLVM 編譯器。 這有一些特殊的特性,尤其是嵌套函數能夠跳出封閉的 function。在偽代碼中: 這里的約束是: 只能跳到頂層function,幸好堆棧確實得到展開(該語言不支持析構函數,所以這很容易) 您不必在跳轉之前執行label處的語句(因此天 ...

2022-09-27 13:58:30   1   45    llvm-ir  
在 LLVM 中,如何獲取程序中的所有結構類型?

[英]In LLVM, how to get all the struct types in a program?

在 LLVM 中,我們可以使用 StructType() 來獲取一個 Module 中的所有結構體,但是當我們使用多個源文件時,Modules 是不同的,所以同一個結構體類型可能會在不同的 Modules 中顯示多次。 如何獲取程序中的所有結構類型,而不僅僅是單個源文件? 是否有任何方法可以記錄結 ...

用於加法和減法的 LLVM IR

[英]LLVM IR for addition and subtraction

我使用“builder->CreateSub”和“builder->CreateAdd”來生成 LLVM-IR 用於減法和加法。 但是,LLVM (lli) 無法編譯/解釋生成的 IR(如下所示) 這給出了錯誤(在ptr上): ...

llvm中的eraseFromParent()與removeFromParent()

[英]eraseFromParent() vs removeFromParent() in llvm

我理解 eraseFromParent() 和 removeFromParent() 之間的區別在於前者從 BasicBlock 中取消鏈接並刪除指令,而后來只是取消鏈接但不刪除它。 我什么時候應該使用一個而不是另一個? 尋找一些示例場景。 ...

2022-09-08 05:58:50   1   11    llvm / llvm-ir  
LLVM mem2reg pass 的工作原理

[英]How LLVM mem2reg pass works

mem2reg 是 llvm 中一個重要的優化通道。 我想了解這種優化是如何工作的,但沒有找到好的文章、書籍、教程和類似的東西。 我找到了這兩個鏈接: https://blog.katastros.com/a?ID=01300-3d6589c1-1993-4fb1-8975-939f10c205 ...

2022-09-03 13:06:26   1   14    llvm / llvm-ir  
如何在 LLVM 通道中從 ah 文件(頭文件)鏈接外部 function 用於 LLVM getOrInsertFunction

[英]How to linking a external function from a .h file (header file) for LLVM getOrInsertFunction in a LLVM pass

讓我們考慮一個名為 foo.h 的 header 文件 和一個名為 simple.c 的簡單程序 那么如何在instrumentation.cpp中編碼以鏈接該 foo.h 文件並獲取該 display() function 用於執行getOrInsertFunction("display", f ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM