[llvm-bugs] [Bug 41414] New: Cannot emit physreg copy instruction after r357703

via llvm-bugs llvm-bugs at lists.llvm.org
Sat Apr 6 23:01:56 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=41414

            Bug ID: 41414
           Summary: Cannot emit physreg copy instruction after r357703
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: natechancellor at gmail.com
                CC: craig.topper at gmail.com, llvm-bugs at lists.llvm.org,
                    llvm-dev at redking.me.uk, spatel+llvm at rotateright.com

After r357703, my bootstrap LLVM build fails with the following output:

[4434/4446] Linking CXX executable bin/llvm-xray
FAILED: bin/llvm-xray
: && /mnt/build/llvm/stage1/bin/clang++  -O2 -march=native -mtune=native -fPIC
-fvisibility-inlines-hidden -Werror=date-time
-Werror=unguarded-availability-new -std=c++11 -w -fdiagnostics-color
-ffunction-sections -fdata-sections -flto=thin -O3 -DNDEBUG -fuse-ld=lld
-Wl,--color-diagnostics -flto=thin
-Wl,--thinlto-cache-dir=/mnt/build/llvm/lto.cache -Wl,-allow-shlib-undefined   
-Wl,-O3 -Wl,--gc-sections
tools/llvm-xray/CMakeFiles/llvm-xray.dir/func-id-helper.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/llvm-xray.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-account.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-color-helper.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-converter.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-extract.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-fdr-dump.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-graph-diff.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-graph.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-registry.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-stacks.cpp.o  -o bin/llvm-xray 
-Wl,-rpath,"\$ORIGIN/../lib" lib/libLLVMARMCodeGen.a lib/libLLVMARMAsmParser.a
lib/libLLVMARMAsmPrinter.a lib/libLLVMARMDesc.a lib/libLLVMARMDisassembler.a
lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMAArch64CodeGen.a
lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64AsmPrinter.a
lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Disassembler.a
lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMPowerPCCodeGen.a
lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCAsmPrinter.a
lib/libLLVMPowerPCDesc.a lib/libLLVMPowerPCDisassembler.a
lib/libLLVMPowerPCInfo.a lib/libLLVMX86CodeGen.a lib/libLLVMX86AsmParser.a
lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Desc.a lib/libLLVMX86Disassembler.a
lib/libLLVMX86Info.a lib/libLLVMX86Utils.a lib/libLLVMDebugInfoDWARF.a
lib/libLLVMObject.a lib/libLLVMSupport.a lib/libLLVMSymbolize.a
lib/libLLVMXRay.a -lpthread lib/libLLVMARMDesc.a lib/libLLVMARMAsmPrinter.a
lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMAArch64Desc.a
lib/libLLVMAArch64AsmPrinter.a lib/libLLVMAArch64Info.a
lib/libLLVMAArch64Utils.a lib/libLLVMPowerPCAsmPrinter.a
lib/libLLVMAsmPrinter.a lib/libLLVMGlobalISel.a lib/libLLVMSelectionDAG.a
lib/libLLVMCodeGen.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a
lib/libLLVMInstCombine.a lib/libLLVMBitWriter.a lib/libLLVMTransformUtils.a
lib/libLLVMTarget.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a
lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Utils.a lib/libLLVMMCDisassembler.a
lib/libLLVMDebugInfoDWARF.a lib/libLLVMDebugInfoPDB.a lib/libLLVMObject.a
lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMDebugInfoCodeView.a
lib/libLLVMDebugInfoMSF.a lib/libLLVMBitReader.a lib/libLLVMCore.a
lib/libLLVMBinaryFormat.a lib/libLLVMSupport.a -lz -lrt -ldl -lpthread -lm
lib/libLLVMDemangle.a && :
LLVM ERROR: Cannot emit physreg copy instruction
clang-9: error: linker command failed with exit code 1 (use -v to see
invocation)

I went ahead and enabled assertions, which then fails as such:

[4434/4446] Linking CXX executable bin/llvm-xray
FAILED: bin/llvm-xray 
: && /mnt/build/llvm/stage1/bin/clang++  -O2 -march=native -mtune=native -fPIC
-fvisibility-inlines-hidden -Werror=date-time
-Werror=unguarded-availability-new -std=c++11 -w -fdiagnostics-color
-ffunction-sections -fdata-sections -flto=thin -O3  -fuse-ld=lld
-Wl,--color-diagnostics -flto=thin
-Wl,--thinlto-cache-dir=/mnt/build/llvm/lto.cache -Wl,-allow-shlib-undefined   
-Wl,-O3 -Wl,--gc-sections
tools/llvm-xray/CMakeFiles/llvm-xray.dir/func-id-helper.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/llvm-xray.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-account.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-color-helper.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-converter.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-extract.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-fdr-dump.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-graph-diff.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-graph.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-registry.cpp.o
tools/llvm-xray/CMakeFiles/llvm-xray.dir/xray-stacks.cpp.o  -o bin/llvm-xray 
-Wl,-rpath,"\$ORIGIN/../lib" lib/libLLVMARMCodeGen.a lib/libLLVMARMAsmParser.a
lib/libLLVMARMAsmPrinter.a lib/libLLVMARMDesc.a lib/libLLVMARMDisassembler.a
lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMAArch64CodeGen.a
lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64AsmPrinter.a
lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Disassembler.a
lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMPowerPCCodeGen.a
lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCAsmPrinter.a
lib/libLLVMPowerPCDesc.a lib/libLLVMPowerPCDisassembler.a
lib/libLLVMPowerPCInfo.a lib/libLLVMX86CodeGen.a lib/libLLVMX86AsmParser.a
lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Desc.a lib/libLLVMX86Disassembler.a
lib/libLLVMX86Info.a lib/libLLVMX86Utils.a lib/libLLVMDebugInfoDWARF.a
lib/libLLVMObject.a lib/libLLVMSupport.a lib/libLLVMSymbolize.a
lib/libLLVMXRay.a -lpthread lib/libLLVMARMDesc.a lib/libLLVMARMAsmPrinter.a
lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMAArch64Desc.a
lib/libLLVMAArch64AsmPrinter.a lib/libLLVMAArch64Info.a
lib/libLLVMAArch64Utils.a lib/libLLVMPowerPCAsmPrinter.a
lib/libLLVMAsmPrinter.a lib/libLLVMGlobalISel.a lib/libLLVMSelectionDAG.a
lib/libLLVMCodeGen.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a
lib/libLLVMInstCombine.a lib/libLLVMBitWriter.a lib/libLLVMTransformUtils.a
lib/libLLVMTarget.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a
lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Utils.a lib/libLLVMMCDisassembler.a
lib/libLLVMDebugInfoDWARF.a lib/libLLVMDebugInfoPDB.a lib/libLLVMObject.a
lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMDebugInfoCodeView.a
lib/libLLVMDebugInfoMSF.a lib/libLLVMBitReader.a lib/libLLVMCore.a
lib/libLLVMBinaryFormat.a lib/libLLVMSupport.a -lz -lrt -ldl -lpthread -lm
lib/libLLVMDemangle.a && :
ld.lld:
/home/nathan/cbl/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:8152:
void llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode *, llvm::SDNode *):
Assertion `(!From->hasAnyUseOfValue(i) || From->getValueType(i) ==
To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"'
failed.
clang-9: error: unable to execute command: Aborted (core dumped)
clang-9: error: linker command failed due to signal (use -v to see invocation)

It is related to my use of '-march=native', as it does not happen without that
flag.

$ echo | clang ++ -E - -march=native -###
clang version 9.0.0 (git://github.com/llvm/llvm-project
fca07890a9918e9814a7c3d6a39ea3a91789b546)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /mnt/build/llvm/stage1/bin
 "/mnt/build/llvm/stage1/bin/clang-9" "-cc1" "-triple"
"x86_64-unknown-linux-gnu" "-E" "-disable-free" "-main-file-name" "-"
"-mrelocation-model" "static" "-mthread-model" "posix" "-mdisable-fp-elim"
"-fmath-errno" "-masm-verbose" "-mconstructor-aliases" "-munwind-tables"
"-fuse-init-array" "-target-cpu" "znver1" "-target-feature" "+sse2"
"-target-feature" "+cx16" "-target-feature" "+sahf" "-target-feature" "-tbm"
"-target-feature" "-avx512ifma" "-target-feature" "+sha" "-target-feature"
"-gfni" "-target-feature" "-fma4" "-target-feature" "-vpclmulqdq"
"-target-feature" "+prfchw" "-target-feature" "+bmi2" "-target-feature"
"-cldemote" "-target-feature" "+fsgsbase" "-target-feature" "-ptwrite"
"-target-feature" "+xsavec" "-target-feature" "+popcnt" "-target-feature"
"-mpx" "-target-feature" "+aes" "-target-feature" "-avx512bitalg"
"-target-feature" "-movdiri" "-target-feature" "+xsaves" "-target-feature"
"-avx512er" "-target-feature" "-avx512vnni" "-target-feature"
"-avx512vpopcntdq" "-target-feature" "-pconfig" "-target-feature" "-clwb"
"-target-feature" "-avx512f" "-target-feature" "+clzero" "-target-feature"
"-pku" "-target-feature" "+mmx" "-target-feature" "-lwp" "-target-feature"
"-rdpid" "-target-feature" "-xop" "-target-feature" "+rdseed" "-target-feature"
"-waitpkg" "-target-feature" "-movdir64b" "-target-feature" "+sse4a"
"-target-feature" "-avx512bw" "-target-feature" "+clflushopt" "-target-feature"
"+xsave" "-target-feature" "-avx512vbmi2" "-target-feature" "+64bit"
"-target-feature" "-avx512vl" "-target-feature" "-invpcid" "-target-feature"
"-avx512cd" "-target-feature" "+avx" "-target-feature" "-vaes"
"-target-feature" "+cx8" "-target-feature" "+fma" "-target-feature" "-rtm"
"-target-feature" "+bmi" "-target-feature" "+rdrnd" "-target-feature" "+mwaitx"
"-target-feature" "+sse4.1" "-target-feature" "+sse4.2" "-target-feature"
"+avx2" "-target-feature" "+fxsr" "-target-feature" "-wbnoinvd"
"-target-feature" "+sse" "-target-feature" "+lzcnt" "-target-feature" "+pclmul"
"-target-feature" "-prefetchwt1" "-target-feature" "+f16c" "-target-feature"
"+ssse3" "-target-feature" "-sgx" "-target-feature" "-shstk" "-target-feature"
"+cmov" "-target-feature" "-avx512vbmi" "-target-feature" "+movbe"
"-target-feature" "+xsaveopt" "-target-feature" "-avx512dq" "-target-feature"
"+adx" "-target-feature" "-avx512pf" "-target-feature" "+sse3"
"-dwarf-column-info" "-debugger-tuning=gdb" "-resource-dir"
"/mnt/build/llvm/stage1/lib/clang/9.0.0" "-internal-isystem"
"/usr/local/include" "-internal-isystem"
"/mnt/build/llvm/stage1/lib/clang/9.0.0/include" "-internal-externc-isystem"
"/include" "-internal-externc-isystem" "/usr/include" "-fdebug-compilation-dir"
"/home/nathan/scripts" "-ferror-limit" "19" "-fmessage-length" "0"
"-fobjc-runtime=gcc" "-fdiagnostics-show-option" "-o" "-" "-x" "c" "-"
"-faddrsig"

This still happens on r357851.

Please let me know if I didn't file this correctly or if there is any other
information I can provide.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190407/a041a98b/attachment-0001.html>


More information about the llvm-bugs mailing list