gimple

    1熱度

    2回答

    我需要轉儲所有的Gimple樹(種類-fdump-tree-whatever)。我爲此目的創建了一個插件,但我不確定應該如何通過Gimple樹。插件掛到GIMPLE_PASS: static struct opt_pass my_pass = { .type = GIMPLE_PASS, ... 我試圖遍歷使用GSI(gimple_stmt_iterator)基本塊,但是

    1熱度

    1回答

    我試圖做這樣一個簡單的插件例如: #include "gcc-plugin.h" #include "tree.h" #include "gimple.h" #include "tree-pass.h" #include <stdio.h> extern void test(void*gcc_data, void*b) { printf("Hellow world\n");

    7熱度

    3回答

    根據this article gcc在生成代碼之前使用了幾種中間格式。我讀過GIMPLE格式使用三個地址代碼,這似乎是最簡單的中間語言使用。但是我需要一些更多的細節,因爲我需要構建一個工具來獲取中間代碼並在生成最終代碼之前插入一些代碼。 爲此,我首先需要知道如何生成GIMPLE格式代碼並將其保存在文件中。所以我正在尋找一些文件和例子。另外,如果任何人有過這樣的工作,我能否知道這個任務的複雜性,即將

    2熱度

    1回答

    使用-fdump-tree-gimple選項(GCC 4.6.1)編譯C++時,我得到的代碼中包含以下函數: std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = int, _Alloc = std::allocator<int>] (struct _Vector_base * const this) { int * D

    0熱度

    2回答

    我創建使用GCC插件一通編譯C++文件的函數的數量,這是我的通行證: static const struct pass_data calls_printer_pass_data = { .type = GIMPLE_PASS, .name = "calls_printer", .optinfo_flags = OPTGROUP_N

    1熱度

    1回答

    我知道這很難做,我應該避免這種情況,但是我有我的理由。 我想修改的編譯時間某些字段聲明的目的,例如: class A { char c; int i; } 必須轉向: class A { int i; char c; } ,如果我選擇了交換的i和c, 我的訂單想知道如何更改 字段聲明的location任何人都知道我該怎麼做? 謝謝! 我用的是