Gcc DragonEgg是否支持-fno-builtin-in-clang之类的参数?
我已经使用clang很长时间了,我可以使用Gcc DragonEgg是否支持-fno-builtin-in-clang之类的参数?,gcc,llvm,Gcc,Llvm,我已经使用clang很长时间了,我可以使用clang-fno-builtin-emit llvm-c hello.c来防止生成llvm内置函数,例如llvm.memset 最近,我用DragonEgg切换到gcc,因为要构建的程序最初设计为用gcc编译。我在网上搜索过,但没有找到关于如何设置DragonEgg参数的任何信息 谁能帮我一下吗?欢迎任何提示或参考。谢谢 我已经找到了一种方法,可以自己使用gcc+DragonEgg来实现类似的效果 gcc -S -c -O0 -fplugin=$(DR
clang-fno-builtin-emit llvm-c hello.c
来防止生成llvm内置函数,例如llvm.memset
最近,我用DragonEgg切换到gcc,因为要构建的程序最初设计为用gcc编译。我在网上搜索过,但没有找到关于如何设置DragonEgg参数的任何信息
谁能帮我一下吗?欢迎任何提示或参考。谢谢 我已经找到了一种方法,可以自己使用
gcc
+DragonEgg
来实现类似的效果
gcc -S -c -O0 -fplugin=$(DRAGONEGG_SO) -fplugin-arg-dragonegg-emit-ir hello.c -o hello.bc
opt -O3 -disable-simplify-libcalls hello.bc -o hello.bc
$(DRAGONEGG\u SO)
是通往DRAGONEGG.SO的路径
基本上,LLVM内部函数是通过优化过程instcombine
添加的。使用-disable simplify libcalls
,可以防止在instcombine
中生成LLVM内部函数
该方法还应适用于llvm gcc
,以便在不使用llvm内部函数的情况下生成llvm IR