LLVM输入模块损坏

时间:2018-12-29 13:02:33

标签: llvm

我正忙于测试Pascal LLMV编译器: https://gitlab.com/mseide-msegui/mselang

一切正常,MSElang编译器生成一个位码文件(helloworld.bc)。

但是当尝试使用opt编译该bc文件时,会出现该错误消息 在opt编译器中收到+-900行消息。

/usr/bin/opt: /home/fred/mlctest/hellomlc.bc: error: input module is broken!

问题出在哪里,你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

你好。

更多信息...

MSIlang生成的.bc(位代码)文件被lli(llvm解释器和动态编译器)完全识别。

查看图片: bc file interpreted by lli

但是我尝试用llc编译它:

llc /home/fred/mlctest/hellomlc.bc

大量消息后仍然有错误消息:

llc: /home/fred/mlctest/hellomlc.bc: error: input module is broken!

怎么了?

答案 1 :(得分:0)

无论是什么错误,通常都可以通过在编写模块之前调用verifyFunction()和/或verifyModule()来轻松定位。这些功能报告可操作的详细信息。

VerifyModule()调用verifyFunction(),因此您不一定严格需要verifyFunction(),但是一旦生成函数并断言它返回false,就可以方便地调用verifyFunction()。这样一来,您会收到一条或几条有用的消息,而不是泛洪的verifyModule()可能会给您。