我一直在寻找GCC插件的在线资源。我目前正在使用GCC 7.3.0版本。我尝试编写一个简单的插件,其中包含一个回调,这个回调将在PLUGIN_FINISH_TYPE上调用。效果很好。
接下来,我试图编写一个插件,它使用类似于列出的这里示例的"gimple pass“。然而,struct gimple_opt_pass似乎并不存在。
我试图查找声明此结构的头文件。我发现该树-pass.h有以下代码块:-
/* Description of GIMPLE pass. */
class gimple_opt_pass : public opt_pass
{
protected:
gimple_opt_pass (const pass_data& data, gcc::context *ctxt)
: opt_pass (data, ctxt)
{
}
};发布于 2018-07-16 18:06:38
我找到了答案。GCC插件的API从4.8急剧变化到4.9。UpTum4.8,gimple_opt_class是一个可以创建register_pass_info实例并与之一起使用的结构。从4.9开始,它是一个您需要继承、创建register_pass_info实例并与之一起使用的类。
为了能够使用GCC的纯C插件,下面的版本似乎使用了API,其中包含4.8才是解决方案。4.6似乎对我很好,但它似乎有调试/转储功能。
https://stackoverflow.com/questions/51345403
复制相似问题