[llvm-dev] BuildMI crashes on a certain probability on the exact same test

Xiaochu Liu via llvm-dev llvm-dev at lists.llvm.org
Sun Nov 22 14:42:48 PST 2015


Dear there,

I'm trying to call BuildMI in my backend to add a machineinstr.

BuildMI(MBB, I, I->getDebugLoc(), TII->get(Vanilla::MOV),
Vanilla::R1).addReg(MI->getOperand(1).getReg());

But it gives me an error like this:

0  clang                    0x000000010e61a56e
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 46
1  clang                    0x000000010e61c209
PrintStackTraceSignalHandler(void*) + 25
2  clang                    0x000000010e618809
llvm::sys::RunSignalHandlers() + 425
3  clang                    0x000000010e61c549 SignalHandler(int) + 345
4  libsystem_platform.dylib 0x00007fff9d1a852a _sigtramp + 26
5  libsystem_platform.dylib 0x0000000000000003 _sigtramp + 1659206387
6  clang                    0x000000010df459d6
llvm::MetadataTracking::track(void*, llvm::Metadata&,
llvm::PointerUnion<llvm::MetadataAsValue*, llvm::Metadata*>) + 262
7  clang                    0x000000010e1bcf50
llvm::MetadataTracking::track(llvm::Metadata*&) + 64
8  clang                    0x000000010e1bcefa llvm::TrackingMDRef::track() + 42
9  clang                    0x000000010e1bcec6
llvm::TrackingMDRef::TrackingMDRef(llvm::TrackingMDRef const&) + 38
10 clang                    0x000000010e1bce8d
llvm::TrackingMDRef::TrackingMDRef(llvm::TrackingMDRef const&) + 29
11 clang                    0x000000010e1bce5d
llvm::TypedTrackingMDRef<llvm::MDNode>::TypedTrackingMDRef(llvm::TypedTrackingMDRef<llvm::MDNode>
const&) + 29
12 clang                    0x000000010e1bce2d
llvm::TypedTrackingMDRef<llvm::MDNode>::TypedTrackingMDRef(llvm::TypedTrackingMDRef<llvm::MDNode>
const&) + 29
13 clang                    0x000000010e1bcdfd
llvm::DebugLoc::DebugLoc(llvm::DebugLoc const&) + 29
14 clang                    0x000000010e1bcb4d
llvm::DebugLoc::DebugLoc(llvm::DebugLoc const&) + 29
15 clang                    0x000000010d5359f5 (anonymous
namespace)::VanillaVerifier::runOnMachineBasicBlock1(llvm::MachineBasicBlock&)
+ 997
16 clang                    0x000000010d534d72 (anonymous
namespace)::VanillaVerifier::runOnMachineFunction(llvm::MachineFunction&)
+ 322

And the most strange thing is that this error does not happen
everytime for the same test (it happens under certain probability) ?!
Can anyone please show me some hints on how to debug this problem?

Thanks,
Xiaochu


More information about the llvm-dev mailing list