我不想在llvm生成的汇编代码中使用特定的机器指令。
有没有办法禁用相同的?我也可以修改llvm代码。
答案 0 :(得分:2)
一种解决方案是指定llvm该指令不能“降低”......可能会发生两件事:
要搜索 XXXISelDAGToDAG.cpp ,其中 XXX 是您的目标计算机,并向构造函数指定如下内容:
setOperationAction(ISD::YYY, MVT::i8, Expand);
setOperationAction(ISD::YYY, MVT::i16, Expand);
setOperationAction(ISD::YYY, MVT::i32, Expand);
setOperationAction(ISD::YYY, MVT::i64, Expand);
其中 ISD :: YYY 是您不想使用的指令。 浏览源代码时很容易找到它。
大致是:
玩弄它,你应该能够解决你的问题。
希望它会有所帮助。