Skip to content

Commit 50a1d03

Browse files
lukaszgotszaldintelZuul
authored and
Zuul
committed
Some llvm instruction visitors require llvm_unreachable function.
Especially those who do not generate code and do not return true. Change-Id: I98949feb68831f6e80645458cea88055a04c60aa
1 parent c130079 commit 50a1d03

File tree

1 file changed

+25
-15
lines changed

1 file changed

+25
-15
lines changed

IGC/Compiler/CISACodeGen/Emu64OpsPass.cpp

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -664,16 +664,17 @@ bool InstExpander::visitInstruction(Instruction& I) {
664664
#if 1
665665
errs() << "I = " << I << '\n';
666666
#endif
667-
IGC_ASSERT_EXIT_MESSAGE(0, "UNKNOWN INSTRUCTION is BEING EXPANDED!");
667+
llvm_unreachable("UNKNOWN INSTRUCTION is BEING EXPANDED!");
668668
return false;
669669
}
670670

671671
bool InstExpander::visitRet(ReturnInst& RI) {
672-
if(Value * V = RI.getReturnValue())
672+
if (Value * V = RI.getReturnValue())
673673
{
674674
// TODO: Add 64-bit return value support when function/subroutine call is supported.
675675
IGC_ASSERT(nullptr != Emu);
676-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(V), "TODO: NOT IMPLEMENTED YET!");
676+
if (Emu->isInt64(V))
677+
llvm_unreachable("TODO: NOT IMPLEMENTED YET!");
677678
}
678679
return false;
679680
}
@@ -743,25 +744,29 @@ bool InstExpander::visitMul(BinaryOperator& BinOp) {
743744

744745
bool InstExpander::visitSDiv(BinaryOperator& BinOp) {
745746
IGC_ASSERT(nullptr != Emu);
746-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(&BinOp), "There should not be `sdiv` which is already emulated by library call.");
747+
if (Emu->isInt64(&BinOp))
748+
llvm_unreachable("There should not be `sdiv` which is already emulated by library call.");
747749
return false;
748750
}
749751

750752
bool InstExpander::visitUDiv(BinaryOperator& BinOp) {
751753
IGC_ASSERT(nullptr != Emu);
752-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(&BinOp), "There should not be `udiv` which is already emulated by library call.");
754+
if (Emu->isInt64(&BinOp))
755+
llvm_unreachable("There should not be `udiv` which is already emulated by library call.");
753756
return false;
754757
}
755758

756759
bool InstExpander::visitSRem(BinaryOperator& BinOp) {
757760
IGC_ASSERT(nullptr != Emu);
758-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(&BinOp), "There should not be `srem` which is already emulated by library call.");
761+
if (Emu->isInt64(&BinOp))
762+
llvm_unreachable("There should not be `srem` which is already emulated by library call.");
759763
return false;
760764
}
761765

762766
bool InstExpander::visitURem(BinaryOperator& BinOp) {
763767
IGC_ASSERT(nullptr != Emu);
764-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(&BinOp), "There should not be `urem` which is already emulated by library call.");
768+
if (Emu->isInt64(&BinOp))
769+
llvm_unreachable("There should not be `urem` which is already emulated by library call.");
765770
return false;
766771
}
767772

@@ -1226,14 +1231,15 @@ bool InstExpander::visitAtomicCmpXchg(AtomicCmpXchgInst& ACXI) {
12261231
Value* V = ACXI.getCompareOperand();
12271232
IGC_ASSERT(nullptr != V);
12281233
IGC_ASSERT(nullptr != Emu);
1229-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(V), "TODO: NOT IMPLEMENTED YET!");
1230-
1234+
if (Emu->isInt64(V))
1235+
llvm_unreachable("TODO: NOT IMPLEMENTED YET!");
12311236
return false;
12321237
}
12331238

12341239
bool InstExpander::visitAtomicRMW(AtomicRMWInst& RMW) {
12351240
IGC_ASSERT(nullptr != Emu);
1236-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(&RMW), "TODO: NOT IMPLEMENTED YET!");
1241+
if (Emu->isInt64(&RMW))
1242+
llvm_unreachable("TODO: NOT IMPLEMENTED YET!");
12371243
return false;
12381244
}
12391245

@@ -2001,7 +2007,7 @@ bool InstExpander::visitCall(CallInst& Call) {
20012007
}
20022008

20032009
// TODO: Add i64 emulation support.
2004-
IGC_ASSERT_EXIT_MESSAGE(0, "TODO: NOT IMPLEMENTED YET!");
2010+
llvm_unreachable("TODO: NOT IMPLEMENTED YET!");
20052011
return false;
20062012
}
20072013

@@ -2027,7 +2033,8 @@ bool InstExpander::visitSelect(SelectInst& SI) {
20272033
bool InstExpander::visitVAArg(VAArgInst& VAAI) {
20282034
// TODO: Add i64 emulation support.
20292035
IGC_ASSERT(nullptr != Emu);
2030-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(&VAAI), "TODO: NOT IMPLEMENTED YET!");
2036+
if (Emu->isInt64(&VAAI))
2037+
llvm_unreachable("TODO: NOT IMPLEMENTED YET!");
20312038
return false;
20322039
}
20332040

@@ -2103,22 +2110,25 @@ bool InstExpander::visitInsertElement(InsertElementInst& IEI) {
21032110
bool InstExpander::visitExtractValue(ExtractValueInst& EVI) {
21042111
// TODO: Add i64 emulation support.
21052112
IGC_ASSERT(nullptr != Emu);
2106-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(&EVI), "TODO: NOT IMPLEMENTED YET!");
2113+
if (Emu->isInt64(&EVI))
2114+
llvm_unreachable("TODO: NOT IMPLEMENTED YET!");
21072115
return false;
21082116
}
21092117

21102118
bool InstExpander::visitInsertValue(InsertValueInst& IVI) {
21112119
// TODO: Add i64 emulation support.
21122120
IGC_ASSERT(nullptr != Emu);
21132121
IGC_ASSERT(0 < IVI.getNumOperands());
2114-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(IVI.getOperand(1)), "TODO: NOT IMPLEMENTED YET!");
2122+
if (Emu->isInt64(IVI.getOperand(1)))
2123+
llvm_unreachable("TODO: NOT IMPLEMENTED YET!");
21152124
return false;
21162125
}
21172126

21182127
bool InstExpander::visitLandingPad(LandingPadInst& LPI) {
21192128
// TODO: Add i64 emulation support.
21202129
IGC_ASSERT(nullptr != Emu);
21212130
IGC_ASSERT(0 < LPI.getNumOperands());
2122-
IGC_ASSERT_EXIT_MESSAGE(false == Emu->isInt64(LPI.getOperand(1)), "TODO: NOT IMPLEMENTED YET!");
2131+
if (Emu->isInt64(LPI.getOperand(1)))
2132+
llvm_unreachable("TODO: NOT IMPLEMENTED YET!");
21232133
return false;
21242134
}

0 commit comments

Comments
 (0)