llvm-gcc

    1熱度

    2回答

    如何告訴GCC編譯器應該生成串行(即沒有跳轉)的代碼。 我正在研究將內聯彙編嵌入C源代碼(或LLVM IR)的項目。 我的實現取決於將內聯彙編寫入可執行文件的代碼。 更正式地說,假設我有索裏的代碼(C或LLVM IR): .label_start: (inserted as inline assembly) inline_assembly0 source_code0 source_code1

    1熱度

    1回答

    我在寫一個LLVM函數傳遞。我想在函數中的每個循環上調用循環傳遞。不過,我無法從函數傳遞中調用循環傳遞。當我爲所需的循環傳遞添加addRequired時,會出現無法安排該傳遞的錯誤。 任何解決方法?

    0熱度

    1回答

    我知道前端(如llvm-clang或llvm-gcc)也從本地代碼向IR級別做了一些優化。 但是前端已經做了哪些優化?有我可以檢查的清單或文件嗎? 謝謝。

    1熱度

    1回答

    我在一個簡單的c程序上使用單個LLVM優化傳遞'mem2reg'。 opt <test>.bc -mem2reg -instcount -o <test>.bc -stats 執行後,我看到的統計數據選項沒有顯示收集的統計信息,並似乎在爲了使用「-stats」選項,LLVM必須啓用斷言編譯。 我不明白,任何人都可以幫助我。

    0熱度

    1回答

    好吧,也許有人可以幫助我。 我寫一個小LLVM IR testprogram: ; ModuleID = 'main' target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-cygwin" define i32 @my_main() { entry: %0 =

    0熱度

    1回答

    我想調試一個jit函數。就像下面的源代碼一樣,我想調試FibF函數,但是當我通過gdb調試它時,似乎無法運行到函數範圍。如何調試它?先謝謝你。 // We are about to create the "fib" function: Function *FibF = CreateFibFunction(M.get(), Context); // Now we going t

    0熱度

    1回答

    我想在我的程序中使用DYLD_INSERT_LIBRARIES重寫Mac OS 10.9中的內存分配。這是我已經實現的代碼的一個非常簡單的骨架: void *(*default_malloc)(size_t) = NULL; void (*default_free)() = NULL; void *(*default_calloc)(size_t, size_t) = NULL; void

    0熱度

    1回答

    我與LLVM和遇到問題深挖以下IR線很新: %call2 = call float bitcast (float (float, i32*)* @function to float (float, i32 addrspace(1)*)*)(float %11, i32 addrspace(1)* %arrayidx) 我需要從這個提取線的類型的函數的參數(即,(float%11,i32 add

    1熱度

    1回答

    是否有任何方法創建一個返回類型和參數爲uint32_t和long double的函數? 例如,我們可以創建int類型的參數,如下所示: std::vector<Type*>FuncTy_args; FuncTy_args.push_back(IntegerType::get(M.getContext(), 32)); 在LLVM鏈路, http://llvm.org/docs/doxygen

    3熱度

    1回答

    我在LLVM IR中創建了一個函數。現在我想創建一個返回指令return void。 只見函數創建ReturnInst::(LLVMContext &C, Value *retVal, BasicBlock *InsertAtEnd) 但我不知道應該怎樣retVal應該是這樣,它返回return void