Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ LLVM优化引起的故障的调试方法_C++_C_Llvm_Compiler Optimization - Fatal编程技术网

C++ LLVM优化引起的故障的调试方法

C++ LLVM优化引起的故障的调试方法,c++,c,llvm,compiler-optimization,C++,C,Llvm,Compiler Optimization,我们有一个第三方库SPEC,用于测试。本地LLVM版本中的优化器传递导致SPEC在我们版本的SLP矢量器优化SPEC后崩溃 我明确知道第三方库中的哪个文件是segfault,但我不知道正在发生的转换导致segfault的确切原因。我知道启用SLP后,会导致它崩溃。我也有优化代码与未优化代码的IR/汇编,但我不知道它实际上是在库中的哪一行 我已经能够缩小导致库中segfault的文件范围,并且我知道这是导致问题的存储的矢量化(即,如果禁用该转换,库将不再存在segfault)。然而,我没有写通行证

我们有一个第三方库SPEC,用于测试。本地LLVM版本中的优化器传递导致SPEC在我们版本的SLP矢量器优化SPEC后崩溃

我明确知道第三方库中的哪个文件是segfault,但我不知道正在发生的转换导致segfault的确切原因。我知道启用SLP后,会导致它崩溃。我也有优化代码与未优化代码的IR/汇编,但我不知道它实际上是在库中的哪一行


我已经能够缩小导致库中segfault的文件范围,并且我知道这是导致问题的存储的矢量化(即,如果禁用该转换,库将不再存在segfault)。然而,我没有写通行证,也没有写图书馆。我不知道如何继续。我可以采取什么方法来识别此类问题?

联系第三方,介绍您看到的情况。除此之外,这个问题提供的具体信息太少,任何有用的答案都是不可能的。C代码(mis)优化产生的错误几乎总是可以追溯到代码的未定义行为。在极少数情况下,它是由编译器中的缺陷引起的。无论如何,如果您发现的解决方案不令人满意,那么这是一个问题,相关库的供应商最好准备好处理这个问题,我想他们会想知道和处理这个问题。LLVM有选项可以使用不同的过程组合运行和重新运行,并打印每个过程的功能。也就是说,我同意这一点太模糊了,不适合讨论这个话题,我将投票结束。我想我应该提到的是,在SLP矢量器打开的情况下,代码会出现错误,但如果没有它,则不会出现错误,这就是为什么我不认为这对第三方库提供商来说是一个合适的问题。无论如何谢谢你。