[llvm-bugs] [Bug 45374] New: [PowerPC] Assertion failed: `!DeadOrKillToUnset && "Shouldn't kill same register twice"'

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Mar 31 08:16:36 PDT 2020


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

            Bug ID: 45374
           Summary: [PowerPC] Assertion failed: `!DeadOrKillToUnset &&
                    "Shouldn't kill same register twice"'
           Product: new-bugs
           Version: 10.0
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: v.churavy at gmail.com
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

Stacktrace:

```
removeRedundantLIs at
/home/vchuravy/julia/deps/srccache/llvm-10.0.0/lib/Target/PowerPC/PPCPreEmitPeephole.cpp:113
runOnMachineFunction at
/home/vchuravy/julia/deps/srccache/llvm-10.0.0/lib/Target/PowerPC/PPCPreEmitPeephole.cpp:184
runOnFunction at
/home/vchuravy/julia/deps/srccache/llvm-10.0.0/lib/CodeGen/MachineFunctionPass.cpp:73
runOnFunction at
/home/vchuravy/julia/deps/srccache/llvm-10.0.0/lib/IR/LegacyPassManager.cpp:1481
runOnModule at
/home/vchuravy/julia/deps/srccache/llvm-10.0.0/lib/IR/LegacyPassManager.cpp:1517
runOnModule at
/home/vchuravy/julia/deps/srccache/llvm-10.0.0/lib/IR/LegacyPassManager.cpp:1582
run at
/home/vchuravy/julia/deps/srccache/llvm-10.0.0/lib/IR/LegacyPassManager.cpp:1694
run at
/home/vchuravy/julia/deps/srccache/llvm-10.0.0/lib/IR/LegacyPassManager.cpp:1725
operator() at /home/vchuravy/julia/src/aotcompile.cpp:509
jl_dump_native at /home/vchuravy/julia/src/aotcompile.cpp:518
```

```
(gdb) p MBB.dump()                                                              
bb.14.SP_return:
; predecessors: %bb.13
  liveins: $x3
  renamable $x3 = LDtocL @jl_false, killed renamable $x3, implicit $x2 :: (load
8 from got)
  renamable $x3 = LD 0, killed renamable $x3 :: (dereferenceable load 8 from
@jl_false, !tbaa !11669)
  dead $r4 = LI 130, implicit-def $x4, debug-location !29895;
/nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/julia/stdlib/v1.5/Pkg/src/REP$
Mode/completions.jl:104
  $x1 = ADDI8 $x1, 240, debug-location !29895;
/nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/julia/stdlib/v1.5/Pkg/src/REPLMode/completio$
s.jl:104
  $x0 = LD 16, $x1, debug-location !29895;
/nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/julia/stdlib/v1.5/Pkg/src/REPLMode/completions.j$
:104
  $x30 = LD -16, $x1, debug-location !29895 :: (load 8 from %fixed-stack.0,
align 16); /nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/juli$
/stdlib/v1.5/Pkg/src/REPLMode/completions.jl:104
  $x29 = LD -24, $x1, debug-location !29895 :: (load 8 from %fixed-stack.1);
/nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/julia/stdlib/v$
.5/Pkg/src/REPLMode/completions.jl:104
  $x28 = LD -32, $x1, debug-location !29895 :: (load 8 from %fixed-stack.2,
align 16); /nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/juli$
/stdlib/v1.5/Pkg/src/REPLMode/completions.jl:104
  MTLR8 killed $x0, implicit-def $lr8, debug-location !29895;
/nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/julia/stdlib/v1.5/Pkg/src/REP$
Mode/completions.jl:104
  $x27 = LD -40, $x1, debug-location !29895 :: (load 8 from %fixed-stack.3);
/nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/julia/stdlib/v$
.5/Pkg/src/REPLMode/completions.jl:104
  $x26 = LD -48, $x1, debug-location !29895 :: (load 8 from %fixed-stack.4,
align 16); /nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/juli$
/stdlib/v1.5/Pkg/src/REPLMode/completions.jl:104
  $x25 = LD -56, $x1, debug-location !29895 :: (load 8 from %fixed-stack.5);
/nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/julia/stdlib/v$
.5/Pkg/src/REPLMode/completions.jl:104
  BLR8 implicit $lr8, implicit $rm, implicit killed $x3, implicit killed $x4,
debug-location !29895; /nobackup/users/vchuravy/builds/julia-dbg-10/u
sr/share/julia/stdlib/v1.5/Pkg/src/REPLMode/completions.jl:104
```

```
111               int KillIdx = AfterBBI->findRegisterUseOperandIdx(Reg, true,
TRI);
112               if (KillIdx != -1) {
113                 assert(!DeadOrKillToUnset && "Shouldn't kill same register
twice");
114                 DeadOrKillToUnset = &AfterBBI->getOperand(KillIdx);
115                 LLVM_DEBUG(dbgs()
116                            << " Kill flag of " << *DeadOrKillToUnset << "
from "
117                            << *AfterBBI << " is a unsetting candidate\n");
(gdb) p AfterBBI->dump()
  BLR8 implicit $lr8, implicit $rm, implicit killed $x3, implicit killed $x4,
debug-location !29895;
/nobackup/users/vchuravy/builds/julia-dbg-10/usr/share/julia/stdlib/v1.5/Pkg/src/REPLMode/completions.jl:104
```

This is the same configuration as https://bugs.llvm.org/show_bug.cgi?id=45366

-- 
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/20200331/372c8319/attachment-0001.html>


More information about the llvm-bugs mailing list