[llvm-bugs] [Bug 46827] New: [X86] Bad machine code: Using an undefined physical register

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jul 23 11:35:17 PDT 2020


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

            Bug ID: 46827
           Summary: [X86] Bad machine code: Using an undefined physical
                    register
           Product: tools
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: llc
          Assignee: unassignedbugs at nondot.org
          Reporter: bharathi.seshadri at gmail.com
                CC: llvm-bugs at lists.llvm.org

Created attachment 23768
  --> https://bugs.llvm.org/attachment.cgi?id=23768&action=edit
Test case

The failure (crash) was observed when building 32-bit code with LTO (both gold
and lld). The reduced test case and crash logs are included.

$ llc -O2 test.ll

*** Bad machine code: Using an undefined physical register ***
- function:
- basic block: %bb.26  (0x6968630)
- instruction: JCC_1 %bb.72, 5, implicit $eflags
- operand 2:   implicit $eflags
LLVM ERROR: Found 1 machine code errors.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace.

Stack dump:
0.      Program arguments: llvm-trunk/build-dbg/bin/llc -O2 test.ll
1.      Running pass 'Function Pass Manager' on module 'test.ll'.
2.      Running pass 'Machine Instruction Scheduler' on function '@0'
 #0 0x0000000003d42c08 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
llvm-trunk/llvm-project/llvm/lib/Support/Unix/Signals.inc:564:22
 #1 0x0000000003d42c9b PrintStackTraceSignalHandler(void*)
llvm-trunk/llvm-project/llvm/lib/Support/Unix/Signals.inc:625:1
 #2 0x0000000003d40d2d llvm::sys::RunSignalHandlers()
llvm-trunk/llvm-project/llvm/lib/Support/Signals.cpp:68:20
 #3 0x0000000003d4264b SignalHandler(int)
llvm-trunk/llvm-project/llvm/lib/Support/Unix/Signals.inc:406:1
 #4 0x0000003a9600f7e0 __restore_rt (/lib64/libpthread.so.0+0x3a9600f7e0)
 #5 0x0000003a958324f5 raise (/lib64/libc.so.6+0x3a958324f5)
 #6 0x0000003a95833cd5 abort (/lib64/libc.so.6+0x3a95833cd5)
 #7 0x0000000003c9f7e7 llvm::install_bad_alloc_error_handler(void (*)(void*,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, bool), void*)
llvm-trunk/llvm-project/llvm/lib/Support/ErrorHandling.cpp:130:61
 #8 0x00000000030bf22a llvm::MachineFunction::verify(llvm::Pass*, char const*,
bool) const llvm-trunk/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:312:25
 #9 0x0000000002f38410 llvm::LiveRangeCalc::findReachingDefs(llvm::LiveRange&,
llvm::MachineBasicBlock&, llvm::SlotIndex, unsigned int,
llvm::ArrayRef<llvm::SlotIndex>
) llvm-trunk/llvm-project/llvm/lib/CodeGen/LiveRangeCalc.cpp:225:39
#10 0x0000000002f37a12 llvm::LiveRangeCalc::extend(llvm::LiveRange&,
llvm::SlotIndex, unsigned int, llvm::ArrayRef<llvm::SlotIndex>)
llvm-trunk/llvm-project/llvm/lib/C
odeGen/LiveRangeCalc.cpp:107:23
#11 0x0000000002f3c123 llvm::LiveIntervalCalc::extendToUses(llvm::LiveRange&,
llvm::Register, llvm::LaneBitmask, llvm::LiveInterval*)
llvm-trunk/llvm-project/llvm/lib/
CodeGen/LiveIntervalCalc.cpp:203:11
#12 0x0000000002f234ad llvm::LiveIntervalCalc::extendToUses(llvm::LiveRange&,
llvm::MCRegister)
llvm-trunk/llvm-project/llvm/include/llvm/CodeGen/LiveIntervalCalc.h:56
:3
#13 0x0000000002f1e178
llvm::LiveIntervals::computeRegUnitRange(llvm::LiveRange&, unsigned int)
llvm-trunk/llvm-project/llvm/lib/CodeGen/LiveIntervals.cpp:298:29#14
0x0000000001a2c3db llvm::LiveIntervals::getRegUnit(unsigned int)
llvm-trunk/llvm-project/llvm/include/llvm/CodeGen/LiveIntervals.h:402:15
#15 0x0000000002f23a92 llvm::LiveIntervals::HMEditor::getRegUnitLI(unsigned
int) llvm-trunk/llvm-project/llvm/lib/CodeGen/LiveIntervals.cpp:975:34#16
0x0000000002f23f84
llvm::LiveIntervals::HMEditor::updateAllRanges(llvm::MachineInstr*)
llvm-trunk/llvm-project/llvm/lib/CodeGen/LiveIntervals.cpp:1034:41
#17 0x0000000002f217a2 llvm::LiveIntervals::handleMove(llvm::MachineInstr&,
bool) llvm-trunk/llvm-project/llvm/lib/CodeGen/LiveIntervals.cpp:1491:66#18
0x0000000003080d1d llvm::ScheduleDAGMI::moveInstruction(llvm::MachineInstr*,
llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>)
llvm-trunk/llvm-project/l
lvm/lib/CodeGen/MachineScheduler.cpp:730:7#19 0x0000000003084e91
llvm::ScheduleDAGMILive::scheduleMI(llvm::SUnit*, bool)
llvm-trunk/llvm-project/llvm/lib/CodeGen/MachineScheduler.cpp:1434:21
#20 0x0000000003083e07 llvm::ScheduleDAGMILive::schedule()
llvm-trunk/llvm-project/llvm/lib/CodeGen/MachineScheduler.cpp:1232:9#21
0x000000000308051e (anonymous
namespace)::MachineSchedulerBase::scheduleRegions(llvm::ScheduleDAGInstrs&,
bool) llvm-trunk/llvm-project/llvm/lib/CodeGen/MachineSch
eduler.cpp:582:28#22 0x000000000307f8c6 (anonymous
namespace)::MachineScheduler::runOnMachineFunction(llvm::MachineFunction&)
llvm-trunk/llvm-project/llvm/lib/CodeGen/MachineScheduler.
cpp:394:3#23 0x0000000002fd7348
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
llvm-trunk/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:73:33
#24 0x000000000349c109 llvm::FPPassManager::runOnFunction(llvm::Function&)
llvm-trunk/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1516:20
#25 0x000000000349c358 llvm::FPPassManager::runOnModule(llvm::Module&)
llvm-trunk/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1552:13#26
0x000000000349c740 (anonymous
namespace)::MPPassManager::runOnModule(llvm::Module&)
llvm-trunk/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1617:20
#27 0x0000000003497d81 llvm::legacy::PassManagerImpl::run(llvm::Module&)
llvm-trunk/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:614:13#28
0x000000000349cf17 llvm::legacy::PassManager::run(llvm::Module&)
llvm-trunk/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1738:1
#28 0x000000000349cf17 llvm::legacy::PassManager::run(llvm::Module&)
llvm-trunk/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1738:1
#29 0x0000000001382387 compileModule(char**, llvm::LLVMContext&)
llvm-trunk/llvm-project/llvm/tools/llc/llc.cpp:653:66
#30 0x0000000001380385 main
llvm-trunk/llvm-project/llvm/tools/llc/llc.cpp:360:35
#31 0x0000003a9581ed20 __libc_start_main (/lib64/libc.so.6+0x3a9581ed20)
#32 0x000000000137f659 _start (llvm-trunk/build-dbg/bin/llc+0x137f659)

-- 
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/20200723/64afb3de/attachment-0001.html>


More information about the llvm-bugs mailing list