0
A
回答
2
一种解决方案是指定LLVM,该指令不能被“降低” ......两件事情可能会发生:
- 编译器可以使用的指令的另一组合执行相同的操作......事情会没关系
- 编译离不开它,在这种情况下,你必须修改目标产生建议解决方法(不是很容易,如果你不熟悉与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是你不想使用的指令。 浏览源代码时,这很容易找到。
大致为:
- setOperationAction指定要更改默认操作为给定的操作,与沿型(MVT :: ...)
- 展开的意思是“尝试扩大到其他操作”(还有其他操作,如定制,Libcall ...)
玩弄这个,你应该能够解决你的问题。
希望它会有所帮助。
相关问题
- 1. 使用LLVM生成纯机器代码
- 2. LLVM本机代码生成
- 3. 在运行时生成机器指令的Hello世界代码?
- 4. LLVM代码生成:恒定值fptoui指令
- 5. 从Java生成LLVM代码
- 6. LLVM - 代码生成流
- 7. 使用LLVM API生成静态代码
- 8. 使用LLVM生成ObjC代码
- 9. C++/LLVM:运行时代码生成和STL容器
- 10. gcc/C++禁用生成vex指令
- 11. LLVM代码生成导致seg故障?
- 12. 为'lambda','define'生成LLVM代码
- 13. *值没有被生成到LLVM代码
- 14. 使用SPIM生成机器代码
- 15. 如何让gcc(或llvm)从OSX命令行生成ARM代码?
- 16. 是否可以从iOS中的任何|某些* llvm生成的代码加载函数(非由clang生成)?
- 17. MIPS对机器代码的指令
- 18. 组装指令到机器代码
- 19. 如果汇编代码指令与机器代码指令相同,我不理解这些汇编代码和机器代码区别
- 20. 在LLVM中生成函数指针
- 21. 如何生成LLVM位码
- 22. 执行从Rust/Python源代码生成的LLVM IR代码
- 23. 机器学习代码生成
- 24. 从C生成机器代码
- 25. 随机文件生成器代码?
- 26. 禁止某些机器人使用htaccess访问某个目录
- 27. Android Java编译器指令禁用单行代码警告
- 28. 禁用某些文件夹中的某些命令/程序?
- 29. 指令代码控制器代码
- 30. 如何使用jooq代码生成器与maven生成代码
你不想使用的指令是什么,为什么你不想使用它? – davmac
它用于某些研究目的。我想禁用bt(位测试)指令。 –
您可以从lib/target/X86/X86InstrInfo.td中删除位测试指令并重新构建。我不确定是否有其他需要。 – davmac