Danilo EgĂȘa Gondolfo via llvm-dev
2019-Jan-09 22:00 UTC
[llvm-dev] Assertion failed in function processTiedPairs
Hello, I'm getting an assertion failure building this project [1] on FreeBSD 13 using clang 7.0.1: $ cc -Daws_checksums_EXPORTS -I/usr/ports/devel/aws-checksums/work/aws-checksums-0.1.2/include -I/usr/ports/devel/aws-checksums/work/aws-checksums-0.1.2/tests -O2 -pipe -fstack-protector -fno-strict-aliasing -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC -fPIC -std=gnu99 -MD -MT CMakeFiles/aws-checksums.dir/source/intel/crc32c_sse42_asm.c.o -MF CMakeFiles/aws-checksums.dir/source/intel/crc32c_sse42_asm.c.o.d -o CMakeFiles/aws-checksums.dir/source/intel/crc32c_sse42_asm.c.o -c /usr/ports/devel/aws-checksums/work/aws-checksums-0.1.2/source/intel/crc32c_sse42_asm.c -O3 Assertion failed: (i == DstIdx || !MI->getOperand(i).isReg() || MI->getOperand(i).getReg() != RegA), function processTiedPairs, file /usr/src/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp, line 1544. cc: error: unable to execute command: Abort trap (core dumped) cc: error: clang frontend command failed due to signal (use -v to see invocation) FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on LLVM 7.0.1) This is the file: https://github.com/awslabs/aws-checksums/blob/master/source/intel/crc32c_sse42_asm.c It seems LLVM is triggering this assert because the inline assembly is not in SSA form. Inline assembly is not supposed to be emit as it is? For convenience, here is the assertion code: https://github.com/llvm-project/llvm/blob/master/lib/CodeGen/TwoAddressInstructionPass.cpp?#L1545 Thanks in advance. Danilo. [1] - https://github.com/awslabs/aws-checksums -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190109/4d2516ac/attachment.html>