[PATCH] D138887: [SPARC] Mark the %g0 register as constant & use it to materialize zeros
Brad Smith via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 7 12:53:23 PST 2022
brad added a comment.
The tests pass fine with the clang-x86_64-debian-fast buildbot, but fail with the llvm-clang-x86_64-expensive-checks-debian buildbot..
******************** TEST 'LLVM :: CodeGen/SPARC/bigreturn.ll' FAILED ********************
Script:
--
: 'RUN: at line 2'; /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc < /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/SPARC/bigreturn.ll -mtriple=sparc -disable-sparc-delay-filler -disable-sparc-leaf-proc | /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck --check-prefix=SPARC /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/SPARC/bigreturn.ll
: 'RUN: at line 3'; /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc < /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/SPARC/bigreturn.ll -mtriple=sparc64 -disable-sparc-delay-filler -disable-sparc-leaf-proc | /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck --check-prefix=SPARC64 /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/SPARC/bigreturn.ll
--
Exit Code: 2
Command Output (stderr):
--
+ : 'RUN: at line 2'
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck --check-prefix=SPARC /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/SPARC/bigreturn.ll
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -mtriple=sparc -disable-sparc-delay-filler -disable-sparc-leaf-proc
# After Instruction Selection
# Machine code for function ret_i64_pair: IsSSA, TracksLiveness
Function Live Ins: $i2 in %2, $i3 in %3
bb.0 (%ir-block.0):
liveins: $i2, $i3
%3:intregs = COPY $i3
%2:intregs = COPY $i2
%4:intpair = LDDrr %2:intregs, $g0 :: (load (s64) from %ir.p)
%5:intregs = COPY %4.sub_even:intpair
%6:intregs = COPY %4.sub_odd:intpair
%7:intregs = ORrr $g0, $g0
%9:intpair = IMPLICIT_DEF
%8:intpair = INSERT_SUBREG %9:intpair(tied-def 0), killed %7:intregs, %subreg.sub_even
%10:intpair = INSERT_SUBREG %8:intpair(tied-def 0), $g0, %subreg.sub_odd
STDrr %2:intregs, $g0, killed %10:intpair :: (store (s64) into %ir.p)
%11:intpair = LDDrr %3:intregs, $g0 :: (load (s64) from %ir.q)
%12:intregs = COPY %11.sub_even:intpair
%13:intregs = COPY %11.sub_odd:intpair
$i0 = COPY %5:intregs
$i1 = COPY %6:intregs
$i2 = COPY %12:intregs
$i3 = COPY %13:intregs
RETL 8, implicit $i0, implicit $i1, implicit $i2, implicit $i3
# End machine code for function ret_i64_pair.
*** Bad machine code: INSERT_SUBREG expected inserted value to have equal or lesser size than the subreg it was inserted into ***
- function: ret_i64_pair
- basic block: %bb.0 (0x8b124a8)
- instruction: %10:intpair = INSERT_SUBREG %8:intpair(tied-def 0), $g0, %subreg.sub_odd
LLVM ERROR: Found 1 machine code errors.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -mtriple=sparc -disable-sparc-delay-filler -disable-sparc-leaf-proc
1. Running pass 'Function Pass Manager' on module '<stdin>'.
2. Running pass 'Verify generated machine code' on function '@ret_i64_pair'
#0 0x0000000002d5f413 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x2d5f413)
#1 0x0000000002d5d19e llvm::sys::RunSignalHandlers() (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x2d5d19e)
#2 0x0000000002d5f79f SignalHandler(int) Signals.cpp:0:0
#3 0x00007f4563855140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x13140)
#4 0x00007f4563339ce1 raise (/lib/x86_64-linux-gnu/libc.so.6+0x38ce1)
#5 0x00007f4563323537 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22537)
#6 0x0000000002cd2470 llvm::report_fatal_error(llvm::Twine const&, bool) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x2cd2470)
#7 0x00000000021a8a5f (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x21a8a5f)
#8 0x00000000020e8162 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x20e8162)
#9 0x000000000256da8a llvm::FPPassManager::runOnFunction(llvm::Function&) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x256da8a)
#10 0x00000000025742f8 llvm::FPPassManager::runOnModule(llvm::Module&) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x25742f8)
#11 0x000000000256e1b7 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x256e1b7)
#12 0x000000000075b2ec main (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x75b2ec)
#13 0x00007f4563324d0a __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d0a)
#14 0x000000000075894a _start (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x75894a)
FileCheck error: '<stdin>' is empty.
FileCheck command line: /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/FileCheck --check-prefix=SPARC /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/SPARC/bigreturn.ll
******************** TEST 'LLVM :: CodeGen/SPARC/mult-alt-generic-sparc.ll' FAILED ********************
Script:
--
: 'RUN: at line 1'; /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc < /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/SPARC/mult-alt-generic-sparc.ll -march=sparc -no-integrated-as
--
Exit Code: 134
Command Output (stderr):
--
+ : 'RUN: at line 1'
+ /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -march=sparc -no-integrated-as
# After Instruction Selection
# Machine code for function single_E: IsSSA, TracksLiveness
Frame Objects:
fi#0: size=8, align=8, at location [SP]
bb.0.entry:
%0:intregs = ORrr $g0, $g0
%2:intpair = IMPLICIT_DEF
%1:intpair = INSERT_SUBREG %2:intpair(tied-def 0), killed %0:intregs, %subreg.sub_even
%3:intpair = INSERT_SUBREG %1:intpair(tied-def 0), $g0, %subreg.sub_odd
STDri %stack.0.out0, 0, killed %3:intpair :: (store (s64) into %ir.out0)
RETL 8
# End machine code for function single_E.
*** Bad machine code: INSERT_SUBREG expected inserted value to have equal or lesser size than the subreg it was inserted into ***
- function: single_E
- basic block: %bb.0 entry (0x72aca58)
- instruction: %3:intpair = INSERT_SUBREG %1:intpair(tied-def 0), $g0, %subreg.sub_odd
LLVM ERROR: Found 1 machine code errors.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -march=sparc -no-integrated-as
1. Running pass 'Function Pass Manager' on module '<stdin>'.
2. Running pass 'Verify generated machine code' on function '@single_E'
#0 0x0000000002d5f413 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x2d5f413)
#1 0x0000000002d5d19e llvm::sys::RunSignalHandlers() (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x2d5d19e)
#2 0x0000000002d5f79f SignalHandler(int) Signals.cpp:0:0
#3 0x00007f0e4b8c8140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x13140)
#4 0x00007f0e4b3acce1 raise (/lib/x86_64-linux-gnu/libc.so.6+0x38ce1)
#5 0x00007f0e4b396537 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22537)
#6 0x0000000002cd2470 llvm::report_fatal_error(llvm::Twine const&, bool) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x2cd2470)
#7 0x00000000021a8a5f (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x21a8a5f)
#8 0x00000000020e8162 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x20e8162)
#9 0x000000000256da8a llvm::FPPassManager::runOnFunction(llvm::Function&) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x256da8a)
#10 0x00000000025742f8 llvm::FPPassManager::runOnModule(llvm::Module&) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x25742f8)
#11 0x000000000256e1b7 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x256e1b7)
#12 0x000000000075b2ec main (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x75b2ec)
#13 0x00007f0e4b397d0a __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d0a)
#14 0x000000000075894a _start (/b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc+0x75894a)
/b/1/llvm-clang-x86_64-expensive-checks-debian/build/test/CodeGen/SPARC/Output/mult-alt-generic-sparc.ll.script: line 1: 371281 Aborted /b/1/llvm-clang-x86_64-expensive-checks-debian/build/bin/llc -march=sparc -no-integrated-as < /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/test/CodeGen/SPARC/mult-alt-generic-sparc.ll
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138887/new/
https://reviews.llvm.org/D138887
More information about the llvm-commits
mailing list