Building Fedora's powerpc64le config crashes in the AMDGPU driver. $ curl -LSs https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/snapshot/linux-5.6-rc7.tar.gz | tar xzf - $ cd linux-5.6-rc7 $ curl -LSso .config 'https://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/fedora.git/plain/fedora/configs/kernel-5.6.0-ppc64le.config?h=kernel-5.6.0-0.rc7.git0.2.fc32' $ make -j$(nproc) -s ARCH=powerpc CC=clang CROSS_COMPILE=powerpc64le-linux-gnu- olddefconfig drivers/gpu/drm/amd/amdgpu/ fatal error: error in backend: Cannot select: 0x89ef540: ch = PPCISD::ST_VSR_SCAL_INT<(store 4 into %ir.1463)> 0x89dd638:1, 0x89eed88, 0x89e44b0, Constant:i64<4>, ValueType:ch:i32, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1126:39 0x89eed88: f64 = PPCISD::FP_TO_SINT_IN_VSR 0x89f4a40, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1126:39 0x89f4a40: f64 = fp_extend 0x89f1560, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1126:39 0x89f1560: f32 = fdiv 0x89f8c88, 0x89dd2f8, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1126:69 0x89f8c88: f32 = fmul 0x89ef268, 0x89f5128, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1126:59 0x89ef268: f32,ch = CopyFromReg 0x8570c28, Register:f32 %114, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1126:59 0x89f33e0: f32 = Register %114 0x89f5128: f32,ch = load<(load 4 from constant-pool)> 0x8570c28, 0x89f0fb0, undef:i64 0x89f0fb0: i64,ch = PPCISD::TOC_ENTRY<(load 8 from got)> TargetConstantPool:i64<float 1.000000e+06> 0, Register:i64 $x2 0x89f4b78: i64 = TargetConstantPool<float 1.000000e+06> 0 0x89f2f00: i64 = Register $x2 0x89d9ee8: i64 = undef 0x89dd2f8: f32 = fmul 0x89dd638, 0x89f9168, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1127:38 0x89dd638: f32,ch = load<(load 4 from %ir.1458)> 0x89e9ac8, 0x89f2bc0, undef:i64, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1127:43 0x89f2bc0: i64 = add nuw 0x89ef748, Constant:i64<62104>, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1127:43 0x89ef748: i64,ch = CopyFromReg 0x8570c28, Register:i64 %177, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1115:7 0x89e2220: i64 = Register %177 0x89dd910: i64 = Constant<62104> 0x89d9ee8: i64 = undef 0x89f9168: f32,ch = load<(load 4 from constant-pool)> 0x8570c28, 0x89f8cf0, undef:i64 0x89f8cf0: i64,ch = PPCISD::TOC_ENTRY<(load 8 from got)> TargetConstantPool:i64<float 1.600000e+01> 0, Register:i64 $x2 0x89f1838: i64 = TargetConstantPool<float 1.600000e+01> 0 0x89f2f00: i64 = Register $x2 0x89d9ee8: i64 = undef 0x89e44b0: i64 = add 0x89ef748, Constant:i64<7644>, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1126:30 0x89ef748: i64,ch = CopyFromReg 0x8570c28, Register:i64 %177, drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1115:7 0x89e2220: i64 = Register %177 0x89f1288: i64 = Constant<7644> 0x89f9648: i64 = Constant<4> In function: dcn_validate_bandwidth clang-11: error: clang frontend command failed with exit code 70 (use -v to see invocation) ClangBuiltLinux clang version 11.0.0 (git://github.com/llvm/llvm-project ae37e2285d233f28217e4e95a3ff71059c7ee8c7) Target: powerpc64le-unknown-linux-gnu Thread model: posix InstalledDir: /home/nathan/cbl/toolchains/llvm-tot/bin clang-11: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. clang-11: note: diagnostic msg: ******************** PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: clang-11: note: diagnostic msg: /tmp/dcn_calcs-42bba4.c clang-11: note: diagnostic msg: /tmp/dcn_calcs-42bba4.sh clang-11: note: diagnostic msg: ******************** make[5]: *** [scripts/Makefile.build:268: drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.o] Error 70 make[5]: *** Waiting for unfinished jobs.... creduce spits out with the linked interestingness test from the full preprocessed source: float a; int b; void c() { b = a; } https://github.com/nathanchance/creduce-files/blob/05085a2632d31a4f44ab4434dbbe1f21e9d19ef4/fedora-ppc64le-amdgpu/test.sh https://github.com/nathanchance/creduce-files/blob/05085a2632d31a4f44ab4434dbbe1f21e9d19ef4/fedora-ppc64le-amdgpu/dcn_calcs.i.orig I can reproduce this back to LLVM 8.0.1 so does not seem like a recent regression.
https://reviews.llvm.org/D76773 is submitted to solve this issue.
Thank you for the patch! I can confirm that the backend error is fixed but I now appear to be hitting an assertion when building the same file: clang-11: /home/nathan/cbl/git/tc-build-master/llvm-project/llvm/lib/CodeGen/MachineOperand.cpp:1017: llvm::MachineMemOperand::MachineMemOperand(llvm::MachinePointerInfo, llvm::MachineMemOperand::Flags, uint64_t, uint64_t, const llvm::AAMDNodes &, const llvm::MDNode *, SyncScope::ID, llvm::AtomicOrdering, llvm::AtomicOrdering): Assertion `getBaseAlignment() == a && a != 0 && "Alignment is not a power of 2!"' failed. Stack dump: 0. Program arguments: /home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11 -cc1 -triple powerpc64le-unknown-linux-gnu -S -disable-free -main-file-name dcn_calcs.c -mrelocation-model static -mthread-model posix -fno-delete-null-pointer-checks -mllvm -warn-stack-size=2048 -mframe-pointer=all -relaxed-aliasing -fmath-errno -fno-rounding-math -masm-verbose -no-integrated-as -mconstructor-aliases -mcmodel=large -target-cpu pwr8 -target-feature -vsx -target-feature -spe -target-feature +altivec -mfloat-abi hard -target-abi elfv2 -dwarf-column-info -fno-split-dwarf-inlining -debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb -nostdsysteminc -nobuiltininc -resource-dir /home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/lib/clang/11.0.0 -dependency-file drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/.dcn_calcs.o.d -MT drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.o -sys-header-deps -isystem /home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/lib/clang/11.0.0/include -include /home/nathan/src/linux-next/include/linux/kconfig.h -include /home/nathan/src/linux-next/include/linux/compiler_types.h -I /home/nathan/src/linux-next/arch/powerpc/include -I ./arch/powerpc/include/generated -I /home/nathan/src/linux-next/include -I ./include -I /home/nathan/src/linux-next/arch/powerpc/include/uapi -I ./arch/powerpc/include/generated/uapi -I /home/nathan/src/linux-next/include/uapi -I ./include/generated/uapi -D __KERNEL__ -I /home/nathan/src/linux-next/arch/powerpc -D HAVE_AS_ATHIGH=1 -D _TASK_CPU=300 -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../powerplay/inc/ -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../include/asic_reg -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../include -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../powerplay/smumgr -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/dc/inc/ -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/dc/inc/hw -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/modules/inc -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/modules/freesync -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/modules/color -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/modules/info_packet -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/modules/power -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/dmub/inc -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/modules/hdcp -D BUILD_FEATURE_TIMING_SYNC=0 -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/dc -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../include/asic_reg -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../include -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../amdgpu -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../powerplay/inc -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../acp/include -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/include -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/dc -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../amdkfd -I /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu -I ./drivers/gpu/drm/amd/amdgpu -D MODULE -D KBUILD_BASENAME="dcn_calcs" -D KBUILD_MODNAME="amdgpu" -fmacro-prefix-map=/home/nathan/src/linux-next/= -O2 -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -Werror=implicit-function-declaration -Werror=implicit-int -Wno-format-security -Werror=unknown-warning-option -Wno-frame-address -Wno-address-of-packed-member -Wno-format-invalid-specifier -Wno-gnu -Wno-tautological-compare -Wno-unused-const-variable -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Werror=date-time -Werror=incompatible-pointer-types -Wno-initializer-overrides -Wno-format -Wno-sign-compare -Wno-format-zero-length -Wno-pointer-to-enum-cast -std=gnu89 -fno-dwarf-directory-asm -fdebug-compilation-dir /home/nathan/src/linux-next/out/ppc64le -ferror-limit 19 -fmessage-length 0 -pg -fwrapv -fno-signed-char -fwchar-type=short -fno-signed-wchar -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o /tmp/dcn_calcs-9cbb8e.s -x c /home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c 1. <eof> parser at end of file 2. Code generation 3. Running pass 'Function Pass Manager' on module '/home/nathan/src/linux-next/drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c'. 4. Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@dcn_bw_calc_rq_dlg_ttu' #0 0x0000000002724b74 PrintStackTraceSignalHandler(void*) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x2724b74) #1 0x00000000027228ee llvm::sys::RunSignalHandlers() (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x27228ee) #2 0x0000000002724f75 SignalHandler(int) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x2724f75) #3 0x00007f5d84a27890 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12890) #4 0x00007f5d836fae97 raise (/lib/x86_64-linux-gnu/libc.so.6+0x3ee97) #5 0x00007f5d836fc801 abort (/lib/x86_64-linux-gnu/libc.so.6+0x40801) #6 0x00007f5d836ec39a (/lib/x86_64-linux-gnu/libc.so.6+0x3039a) #7 0x00007f5d836ec412 (/lib/x86_64-linux-gnu/libc.so.6+0x30412) #8 0x0000000001d41840 llvm::MachineMemOperand::MachineMemOperand(llvm::MachinePointerInfo, llvm::MachineMemOperand::Flags, unsigned long, unsigned long, llvm::AAMDNodes const&, llvm::MDNode const*, unsigned char, llvm::AtomicOrdering, llvm::AtomicOrdering) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x1d41840) #9 0x0000000001d17629 llvm::MachineFunction::getMachineMemOperand(llvm::MachinePointerInfo, llvm::MachineMemOperand::Flags, unsigned long, unsigned int, llvm::AAMDNodes const&, llvm::MDNode const*, unsigned char, llvm::AtomicOrdering, llvm::AtomicOrdering) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x1d17629) #10 0x00000000016b12ab llvm::PPCTargetLowering::LowerINT_TO_FP(llvm::SDValue, llvm::SelectionDAG&) const (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x16b12ab) #11 0x00000000016bca29 llvm::PPCTargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x16bca29) #12 0x00000000034161cf (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x34161cf) #13 0x000000000341552a llvm::SelectionDAG::Legalize() (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x341552a) #14 0x00000000034e928d llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x34e928d) #15 0x00000000034e7450 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x34e7450) #16 0x00000000034e39e4 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x34e39e4) #17 0x00000000016defe1 (anonymous namespace)::PPCDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x16defe1) #18 0x0000000001d1eb0e llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x1d1eb0e) #19 0x00000000020e6cc4 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x20e6cc4) #20 0x00000000020e6fb8 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x20e6fb8) #21 0x00000000020e76e4 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x20e76e4) #22 0x00000000028fce2a clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x28fce2a) #23 0x00000000030dd133 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x30dd133) #24 0x000000000377dd33 clang::ParseAST(clang::Sema&, bool, bool) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x377dd33) #25 0x00000000030423a0 clang::FrontendAction::Execute() (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x30423a0) #26 0x0000000002f9e093 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x2f9e093) #27 0x00000000030d7084 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x30d7084) #28 0x000000000164e141 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x164e141) #29 0x000000000164c20c ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x164c20c) #30 0x000000000164a012 main (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x164a012) #31 0x00007f5d836ddb97 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b97) #32 0x00000000016490ea _start (/home/nathan/cbl/git/tc-build-master/llvm-5a19c418361b37a6df90b2bf8562038d6bdde54a-assertions/bin/clang-11+0x16490ea) clang-11: error: unable to execute command: Aborted clang-11: error: clang frontend command failed due to signal (use -v to see invocation) Is it related to that fix or should I file a separate bug? Here are the creduce files again: https://github.com/nathanchance/creduce-files/tree/1d9476449468e989e3f215b782cf806b8be9218f/fedora-ppc64le-amdgpu-assertion float a; b, c; d() { for (; b; b++) c += a; }
> Is it related to that fix or should I file a separate bug? It should be related, cuz backend without the patch is able compile the reduced case. I'll investigate more on it.
I would like to see the fix for this backported to 10.0.1 (whatever that ends up being) so that we get more build coverage of the Linux kernel with the release version of clang so adding this as a blocker for release-10.0.1. Feel free to remove it if you disagree with that request.
Fixed in https://github.com/llvm/llvm-project/commit/8eb40e41f6ec99985a292e342ec303a0bd6f5f41 @Nathan, would you mind create a new PR for the subsequent failure for which I already have a fix in https://reviews.llvm.org/D76982
Ok, the alignment crash issue looks having been fixed in https://reviews.llvm.org/D77138 @Nathan
Fix landed https://reviews.llvm.org/rG8eb40e41f6ec99985a292e342ec303a0bd6f5f41
I guess this cannot be fully fixed in 10.0.1 with -DLLVM_ENABLE_ASSERTIONS=ON then because 998118c3d3bd6a394c1da35f7570cce1a3145ea3 is a part of a series :/ Oh well, LLVM 11 it is, thanks for the fix!
Clang 10 is still going to have a point release; either the entire series should be picked up for the 10.1 release, or an additional patch should be created.
Reopening for proper 10.0.1 tracking. Just for clarity, I can confirm on top of llvmorg-10.0.0, the following commits 70f9f4dd9d1 ("[PowerPC] Pre-commit reduced test case for PR45297. NFC.") 351b1923155 ("[PowerPC] Enhance test for PR45297. NFC.") 26b46b67d80 ("[PowerPC] Fix test for PR45297 to adapt build without asserts. NFC.") 8eb40e41f6e ("[PowerPC] Don't generate ST_VSR_SCAL_INT if power8-vector is disabled") along with https://reviews.llvm.org/D76982?id=253326 fixes all crashes. From an outsider perspective, it seems like taking that Phabricator patch in LLVM 10 is going have less of a regression risk compared to taking the alignment series in, which looks to be fairly numerous in terms of commits: https://github.com/llvm/llvm-project/commits/96cae168fa2d72d6693b60a13d0c8b2d82c64bed/llvm?author=gchatelet. I am not sure what the policy is around patches in stable branches not in master. I'll leave that up to Tom and the PowerPC owners.
(In reply to Nathan Chancellor from comment #10) > Reopening for proper 10.0.1 tracking. > > Just for clarity, I can confirm on top of llvmorg-10.0.0, the following > commits > > 70f9f4dd9d1 ("[PowerPC] Pre-commit reduced test case for PR45297. NFC.") > 351b1923155 ("[PowerPC] Enhance test for PR45297. NFC.") > 26b46b67d80 ("[PowerPC] Fix test for PR45297 to adapt build without asserts. > NFC.") > 8eb40e41f6e ("[PowerPC] Don't generate ST_VSR_SCAL_INT if power8-vector is > disabled") > > along with https://reviews.llvm.org/D76982?id=253326 fixes all crashes. > Has this fifth patch been committed? If so, what is the git hash?
Yes, it is b7d5229d789b7cb2747226d528ed016624b11cea. I think it will need some changes since it uses some of the Align stuff that has happened in master but not release/10.x but I do not know what that is. Kai, could you take a look?
Yes, the commit b7d5229d789b7cb2747226d528ed016624b11cea is using `Align` introduced in master. I can prepare a patch that doesn't need `Align`. @Tom do you have any suggestion on how I can backport it to release/10.x?
(In reply to Kai Luo from comment #13) > Yes, the commit b7d5229d789b7cb2747226d528ed016624b11cea is using `Align` > introduced in master. I can prepare a patch that doesn't need `Align`. @Tom > do you have any suggestion on how I can backport it to release/10.x? If you push all the fixes to a branch in your local fork of LLVM on github, then I will review it and merge it to the release/10.x branch.
(In reply to Tom Stellard from comment #14) > (In reply to Kai Luo from comment #13) > > Yes, the commit b7d5229d789b7cb2747226d528ed016624b11cea is using `Align` > > introduced in master. I can prepare a patch that doesn't need `Align`. @Tom > > do you have any suggestion on how I can backport it to release/10.x? > > If you push all the fixes to a branch in your local fork of LLVM on github, > then I will review it and merge it to the release/10.x branch. Actually, I'll have Hal review it since he is the PPC code owner.
After I finish backporting the patches in my fork, I should create a pull request targeting release/10.x of github.com/llvm/llvm-project, right?
(In reply to Kai Luo from comment #16) > After I finish backporting the patches in my fork, I should create a pull > request targeting release/10.x of github.com/llvm/llvm-project, right? No, we don't do pull requests yet for the LLVM project (it will get automatically closed), but you could open a pull request against my personal fork: tstellar/llvm-project release/10.x. This is what I have been doing for other fixes.
Hal, is this OK to merge? https://github.com/tstellar/llvm-project/pull/91/files
(In reply to Tom Stellard from comment #18) > Hal, is this OK to merge? > > https://github.com/tstellar/llvm-project/pull/91/files Looks okay to me.
Merged: 92d5c1be9ee93850c0a8903f05f36a23ee835dc2
Tom, please note that you also need 70f9f4dd9d1 ("[PowerPC] Pre-commit reduced test case for PR45297. NFC.") 351b1923155 ("[PowerPC] Enhance test for PR45297. NFC.") 26b46b67d80 ("[PowerPC] Fix test for PR45297 to adapt build without asserts. NFC.") 8eb40e41f6e ("[PowerPC] Don't generate ST_VSR_SCAL_INT if power8-vector is disabled") to fully resolve the original issue (not sure if you were still planning to grab them or not). b7d5229d789b7cb2747226d528ed016624b11cea was needed to resolve an issue seen after 8eb40e41f6ec99985a292e342ec303a0bd6f5f41 but 8eb40e41f6ec99985a292e342ec303a0bd6f5f41 is still needed. The first three commits are needed to add the test.
(In reply to Nathan Chancellor from comment #21) > Tom, please note that you also need > > 70f9f4dd9d1 ("[PowerPC] Pre-commit reduced test case for PR45297. NFC.") > 351b1923155 ("[PowerPC] Enhance test for PR45297. NFC.") > 26b46b67d80 ("[PowerPC] Fix test for PR45297 to adapt build without asserts. > NFC.") > 8eb40e41f6e ("[PowerPC] Don't generate ST_VSR_SCAL_INT if power8-vector is > disabled") > > to fully resolve the original issue (not sure if you were still planning to > grab them or not). > > b7d5229d789b7cb2747226d528ed016624b11cea was needed to resolve an issue seen > after 8eb40e41f6ec99985a292e342ec303a0bd6f5f41 but > 8eb40e41f6ec99985a292e342ec303a0bd6f5f41 is still needed. The first three > commits are needed to add the test. Ok, my mistake. I thought all the patches had been squashed together. Kai, can you help backport the other patches?
With pleasure. I have a question, shall I modified the commit message by adding `(cherry picked from ...)` like other commit?
Ok, looks like I have to add `-x` option.
Hi Tom, would you take a look at https://github.com/tstellar/llvm-project/pull/97 ? Thx.
Hal, do these changes look OK too: https://github.com/tstellar/llvm-project/pull/97/files
(In reply to Tom Stellard from comment #26) > Hal, do these changes look OK too: > https://github.com/tstellar/llvm-project/pull/97/files Yes.
Merged: b11ecd19654