swiftlang / swift

The Swift Programming Language
https://swift.org
Apache License 2.0
67.3k stars 10.34k forks source link

[SR-10176] Crash during step "--- Installing swiftpm ---" while building Apple Swift 5 toolchain on PowerPC64LE #52578

Open swift-ci opened 5 years ago

swift-ci commented 5 years ago
Previous ID SR-10176
Radar None
Original Reporter stamba (JIRA User)
Type Bug

Attachment: Download

Environment PowerPC64LE
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | | |Labels | Bug | |Assignee | None | |Priority | Medium | md5: f0c042e134c0f130f653a6b123d3389c

Issue Description:

Facing the following crash during step "--- Installing swiftpm --" while building Apple Swift 5 toolchain on PowerPC64LE(details attached):

swift: /home/sar/swift-source/llvm/lib/Target/PowerPC/PPCISelLowering.cpp:12111: llvm::SDValue combineBVOfConsecutiveLoads(llvm::SDNode , llvm::SelectionDAG &): Assertion ![(InputsAreConsecutiveLoads && InputsAreReverseConsecutive) && "The loads cannot be both consecutive and reverse consecutive."' failed.swift: /home/sar/swift-source/llvm/lib/Target/PowerPC/PPCISelLowering.cpp:12111: llvm::SDValue combineBVOfConsecutiveLoads(llvm::SDNode *, llvm::SelectionDAG &): Assertion]((InputsAreConsecutiveLoads && InputsAreReverseConsecutive) && "The loads cannot be both consecutive and reverse consecutive."' failed.swift: /home/sar/swift-source/llvm/lib/Target/PowerPC/PPCISelLowering.cpp:12111: llvm::SDValue combineBVOfConsecutiveLoads(llvm::SDNode *, llvm::SelectionDAG &): Assertion `)(InputsAreConsecutiveLoads && InputsAreReverseConsecutive) && "The loads cannot be both consecutive and reverse consecutive."' failed.Stack dump:0. Running pass 'Function Pass Manager' on module '/home/sar/swift-source/build/buildbot_linux/sourcekitlsp-linux-powerpc64le/powerpc64le-unknown-linux/release/LanguageServerProtocol.build/CancelRequest.swift.o'.1. Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@"$s22LanguageServerProtocol13HoverResponseV8contents5rangeAcA13MarkupContentV_SnyAA8PositionVGSgtcfC"' #​0 0x00000000152ebd28 PrintStackTraceSignalHandler(void) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x152ebd28) #​1 0x00000000152e8fc8 llvm::sys::RunSignalHandlers() (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x152e8fc8) #​2 0x00000000152ec3e8 SignalHandler(int) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x152ec3e8) #​3 0x00003fff98e204d8 0x4d8 gsignal #​4 0x00003fff98e204d8 #​5 0x00003fff98e204d8 abort (+0x4d8) #​6 0x00003fff9879ec90 (/lib/powerpc64le-linux-gnu/libc.so.6+0x3ec90) #​7 0x00003fff987a11f4 __assert_fail (/lib/powerpc64le-linux-gnu/libc.so.6+0x411f4) #​8 0x00003fff987941c0 llvm::PPCTargetLowering::DAGCombineBuildVector(llvm::SDNode*, llvm::TargetLowering::DAGCombinerInfo&) const (/lib/powerpc64le-linux-gnu/libc.so.6+0x341c0) #​9 0x00003fff987942b4 llvm::PPCTargetLowering::PerformDAGCombine(llvm::SDNode*, llvm::TargetLowering::DAGCombinerInfo&) const (/lib/powerpc64le-linux-gnu/libc.so.6+0x342b4)#10 0x0000000011c77228 (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x11c77228)#11 0x0000000011c78e98 llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOpt::Level) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x11c78e98)#12 0x0000000011f758f8 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x11f758f8)#13 0x0000000011f74130 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x11f74130)#14 0x00000000120fcffc llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x120fcffc)#15 0x00000000120fc7d8 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x120fc7d8)#16 0x00000000120faf74 (anonymous namespace)::PPCDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x120faf74)#17 0x00000000120f6c5c llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x120f6c5c)#18 0x0000000011c0eea4 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x11c0eea4)#19 0x0000000012b079d4 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x12b079d4)#20 0x00000000150f8180 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x150f8180)#21 0x00000000150f85c4 llvm::legacy::PassManager::run(llvm::Module&) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x150f85c4)#22 0x00000000150f8ca4 swift::performLLVM(swift::IRGenOptions&, swift::DiagnosticEngine*, llvm::sys::SmartMutex, llvm::GlobalVariable, llvm::Module*, llvm::TargetMachine*, swift::version::Version const&, llvm::StringRef, swift::UnifiedStatsReporter*) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x150f8ca4)#23 0x00000000150f9544 ThreadEntryPoint(swift::irgen::IRGenerator*, llvm::sys::SmartMutex, int) (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x150f9544)#24 0x000000001026eb5c std::thread::_Impl<std::_Bind_simple<void ( (swift::irgen::IRGenerator*, llvm::sys::SmartMutex, int))(swift::irgen::IRGenerator, llvm::sys::SmartMutex*, int)> >::_M_run() (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x1026eb5c)#25 0x0000000010274890 (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x10274890)#26 0x00000000102764ac start_thread (/home/sar/swift-source/swift-nightly-install/usr/bin/swift+0x102764ac)#27 0x00003fff98a44974 clone (/usr/lib/powerpc64le-linux-gnu/libstdc++.so.6+0xe4974)/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x152ebd28]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x152e8fc8]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x152ec3e8][0x3fff98e204d8]/lib/powerpc64le-linux-gnu/libc.so.6(gsignal+0x40)[0x3fff9879ec90]/lib/powerpc64le-linux-gnu/libc.so.6(abort+0x2b4)[0x3fff987a11f4]/lib/powerpc64le-linux-gnu/libc.so.6(+0x341c0)[0x3fff987941c0]/lib/powerpc64le-linux-gnu/libc.so.6(__assert_fail+0x64)[0x3fff987942b4]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x11c77228]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x11c78e98]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x11f758f8]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x11f74130]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x120fcffc]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x120fc7d8]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x120faf74]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x120f6c5c]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x11c0eea4]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x12b079d4]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x150f8180]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x150f85c4]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x150f8ca4]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x150f9544]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x1026eb5c]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x10274890]/home/sar/swift-source/swift-nightly-install/usr/bin/swift[0x102764ac]/usr/lib/powerpc64le-linux-gnu/libstdc++.so.6(+0xe4974)[0x3fff98a44974]/lib/powerpc64le-linux-gnu/libpthread.so.0(+0x8040)[0x3fff98dd8040]/lib/powerpc64le-linux-gnu/libc.so.6(clone+0x98)[0x3fff98883bb0]:0: error: unable to execute command: Aborted:0: error: compile command failed due to signal 6 (use -v to see invocation)/home/sar/swift-source/swift-nightly-install/usr/bin/swift build --package-path /home/sar/swift-source/sourcekit-lsp --build-path /home/sar/swift-source/build/buildbot_linux/sourcekitlsp-linux-powerpc64le --configuration release --verbose -Xswiftc -enable-testing -Xcxx -I -Xcxx /home/sar/swift-source/swift-nightly-install/usr/lib/swiftTraceback (most recent call last): File "/home/sar/swift-source/sourcekit-lsp/Utilities/build-script-helper.py", line 80, in main() File "/home/sar/swift-source/sourcekit-lsp/Utilities/build-script-helper.py", line 70, in main swiftpm('build', swift_exec, swiftpm_args) File "/home/sar/swift-source/sourcekit-lsp/Utilities/build-script-helper.py", line 14, in swiftpm subprocess.check_call(cmd, env=env) File "/usr/lib/python2.7/subprocess.py", line 541, in check_call raise CalledProcessError(retcode, cmd)subprocess.CalledProcessError: Command '['/home/sar/swift-source/swift-nightly-install/usr/bin/swift', 'build', '--package-path', '/home/sar/swift-source/sourcekit-lsp', '--build-path', '/home/sar/swift-source/build/buildbot_linux/sourcekitlsp-linux-powerpc64le', '-configuration', 'release', '-verbose', '-Xswiftc', '-enable-testing', '-Xcxx', '-I', '-Xcxx', '/home/sar/swift-source/swift-nightly-install/usr/lib/swift']' returned non-zero exit status 1Building the standard library for: swift-stdlib-linux-powerpc64leRunning Swift tests for: check-swift-all-linux-powerpc64le check-swift-all-optimize-linux-powerpc64le./utils/build-script: fatal error: command terminated with a non-zero exit status 1, aborting./utils/build-script: fatal error: command terminated with a non-zero exit status 1, aborting

belkadan commented 5 years ago

This is a crash in LLVM's PowerPC-specific "ISelLowering", i.e. translation from LLVM IR to machine code, and it's failing on code generated from the Swift compiler. It'll take someone familiar with LLVM's PowerPC backend to investigate it, but the first step is to dump out the IR for the compile command that fails. You can do this by replacing -c with -emit-ir in the failing command line, and dropping all the -o <foo.o> options.

swift-ci commented 5 years ago

Comment by Sarvesh Tamba (JIRA)

Hi @belkadan,

Attaching the IR output of the failing command.

The failing command mentions this particular function literal in its stack dump:-

  1. Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@"$s22LanguageServerProtocol13HoverResponseV8contents5rangeAcA13MarkupContentV_SnyAA8PositionVGSgtcfC"'

I could find "s22LanguageServerProtocol13HoverResponseV8contents5rangeAcA13MarkupContentV_SnyAA8PositionVGSgtcfC" function literal definition in the IR dump, however could not make much out of it.

Any help or any person you could point out to resolve this?

Please note that currently this is the only/final error we are facing now in our aim of building Apple Swift 5 toolchain on PPC64LE. Rest all issues have been resolved.

Just FYI, the toolchain builds to completion (thus confirming of no further failures) if we comment out the assert function which throws up this error - i.e. llvm/lib/Target/PowerPC/PPCISelLowering.cpp:12111: llvm::SDValue combineBVOfConsecutiveLoads(llvm::SDNode *, llvm::SelectionDAG &): Assertion `!(InputsAreConsecutiveLoads && InputsAreReverseConsecutive) && "The loads cannot be both consecutive and reverse consecutive."'

Please suggest.

emit-ir-dump.zip

swift-ci commented 5 years ago

Comment by Sarvesh Tamba (JIRA)

@belkadan any inputs on this?

belkadan commented 5 years ago

I stand by what I said before: it'll take someone familiar with LLVM's PowerPC backend to investigate it. That's more likely to be someone on your end than someone in the general Swift project. I can't tell you whether it's okay to comment out that assert because I don't know much about PowerPC.