[llvm-c][Disassembler] When printing latency information, skip scheduling
authorQuentin Colombet <qcolombet@apple.com>
Wed, 2 Oct 2013 23:11:47 +0000 (23:11 +0000)
committerQuentin Colombet <qcolombet@apple.com>
Wed, 2 Oct 2013 23:11:47 +0000 (23:11 +0000)
classes that are marked as Variant as those require an MI to pass to
SubTargetInfo::resolveSchedClass.

This is part of <rdar://problem/14687488>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191864 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MCDisassembler/Disassembler.cpp

index 406ee5b7db99ef70fb7d47be07b72bea882a5d29..115af8d45b7c2309bdb854da80cd228d16752228 100644 (file)
@@ -191,7 +191,9 @@ static int getLatency(LLVMDisasmContext *DC, const MCInst &Inst) {
   const MCInstrDesc& Desc = DC->getInstrInfo()->get(Inst.getOpcode());
   unsigned SCClass = Desc.getSchedClass();
   const MCSchedClassDesc *SCDesc = SCModel->getSchedClassDesc(SCClass);
-  if (!SCDesc || !SCDesc->isValid())
+  // Resolving the variant SchedClass requires an MI to pass to
+  // SubTargetInfo::resolveSchedClass.
+  if (!SCDesc || !SCDesc->isValid() || SCDesc->isVariant())
     return NoInformationAvailable;
 
   // Compute output latency.