Skip to content

Commit 7c9d37d

Browse files
author
Irwin D'Souza
committed
Use failCompilation method to fail compilations
This commit uses the failCompilation template method to fail compilations instead of explicitly writing to the trace log and throwing an exception. The type of the exception is passed as a template parameter and the method handles printing the message to both the tracelog and stderr if necessary. Issue: #380 Signed-off-by: Irwin D'Souza <dsouza@ca.ibm.com>
1 parent 2517815 commit 7c9d37d

29 files changed

+60
-105
lines changed

compiler/arm/codegen/ControlFlowEvaluator.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -1295,8 +1295,7 @@ static void lookupScheme3(TR::CodeGenerator *cg, TR::Node *node, bool unbalanced
12951295
// Called by switchDispatch().
12961296
static void lookupScheme4(TR::Node *node, TR::CodeGenerator *cg)
12971297
{
1298-
traceMsg(TR::comp(), "Automatically failing on lookup scheme 4");
1299-
throw TR::CompilationException();
1298+
TR::comp()->failCompilation<TR::CompilationException>("Automatically failing on lookup scheme 4");
13001299

13011300
/* TODO implement lookups
13021301
int32_t total = node->getNumChildren();

compiler/arm/codegen/OMRTreeEvaluator.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -1156,8 +1156,7 @@ TR::Register *OMR::ARM::TreeEvaluator::loadaddrEvaluator(TR::Node *node, TR::Cod
11561156
resultReg = sym->isLocalObject() ? cg->allocateCollectedReferenceRegister() : cg->allocateRegister();
11571157
if (mref->useIndexedForm())
11581158
{
1159-
traceMsg(TR::comp(), "implement unresolved loadAddr indexed");
1160-
throw TR::CompilationException();
1159+
TR::comp()->failCompilation<TR::CompilationException>("implement unresolved loadAddr indexed");
11611160
generateTrg1MemInstruction(cg, ARMOp_add, node, resultReg, mref);
11621161
}
11631162
else

compiler/codegen/OMRCodeGenPhase.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -375,8 +375,7 @@ OMR::CodeGenPhase::performRegisterAssigningPhase(TR::CodeGenerator * cg, TR::Cod
375375

376376
if (comp->compilationShouldBeInterrupted(AFTER_REGISTER_ASSIGNMENT_CONTEXT))
377377
{
378-
traceMsg(comp, "interrupted after RA");
379-
throw TR::CompilationInterrupted();
378+
comp->failCompilation<TR::CompilationInterrupted>("interrupted after RA");
380379
}
381380
}
382381

@@ -426,8 +425,7 @@ OMR::CodeGenPhase::performInstructionSelectionPhase(TR::CodeGenerator * cg, TR::
426425
// check interrupt
427426
if (comp->compilationShouldBeInterrupted(AFTER_INSTRUCTION_SELECTION_CONTEXT))
428427
{
429-
traceMsg(comp, "interrupted after instruction selection");
430-
throw TR::CompilationInterrupted();
428+
comp->failCompilation<TR::CompilationInterrupted>("interrupted after instruction selection");
431429
}
432430
}
433431

compiler/codegen/OMRCodeGenerator.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -2407,14 +2407,13 @@ OMR::CodeGenerator::reserveCodeCache()
24072407
// We may reach this point if all code caches have been used up
24082408
// If some code caches have some space but cannot be used because they are reserved
24092409
// we will throw an exception in the call to getDesignatedCodeCache
2410-
traceMsg(self()->comp(), "Cannot reserve code cache");
24112410

24122411
if (self()->comp()->compileRelocatableCode())
24132412
{
2414-
throw TR::RecoverableCodeCacheError();
2413+
self()->comp()->failCompilation<TR::RecoverableCodeCacheError>("Cannot reserve code cache");
24152414
}
24162415

2417-
throw TR::CodeCacheError();
2416+
self()->comp()->failCompilation<TR::CodeCacheError>("Cannot reserve code cache");
24182417
}
24192418
}
24202419

compiler/compile/OMRCompilation.cpp

+6-12
Original file line numberDiff line numberDiff line change
@@ -850,8 +850,7 @@ int32_t OMR::Compilation::compile()
850850
//
851851
if (_methodSymbol->catchBlocksHaveRealPredecessors(_methodSymbol->getFlowGraph(), self()))
852852
{
853-
traceMsg(self(), "Catch blocks have real predecessors");
854-
throw TR::CompilationException();
853+
self()->failCompilation<TR::CompilationException>("Catch blocks have real predecessors");
855854
}
856855

857856
if ((debug("dumpInitialTrees") || self()->getOption(TR_TraceTrees)) && self()->getOutFile() != NULL)
@@ -900,8 +899,7 @@ int32_t OMR::Compilation::compile()
900899
static char *abortafterilgen = feGetEnv("TR_TOSS_IL");
901900
if(abortafterilgen)
902901
{
903-
traceMsg(self(), "Aborting after IL Gen due to TR_TOSS_IL");
904-
throw TR::CompilationException();
902+
self()->failCompilation<TR::CompilationException>("Aborting after IL Gen due to TR_TOSS_IL");
905903
}
906904

907905

@@ -1186,8 +1184,7 @@ bool OMR::Compilation::incInlineDepth(TR_OpaqueMethodBlock *methodInfo, TR::Reso
11861184
if (inlinedCallStackSize >= TR_ByteCodeInfo::maxCallerIndex)
11871185
{
11881186
TR_ASSERT(0, "max number of inlined calls exceeded");
1189-
traceMsg(self(), "max number of inlined calls exceeded");
1190-
throw TR::ExcessiveComplexity();
1187+
self()->failCompilation<TR::ExcessiveComplexity>("max number of inlined calls exceeded");
11911188
}
11921189

11931190
if (inlinedCallStackSize > _maxInlineDepth)
@@ -1824,14 +1821,12 @@ void OMR::Compilation::switchCodeCache(TR::CodeCache *newCodeCache)
18241821
_numReservedIPICTrampolines = 0;
18251822
if ( self()->cg()->committedToCodeCache() || !newCodeCache )
18261823
{
1827-
traceMsg(self(), "Already committed to current code cache");
1828-
18291824
if (newCodeCache)
18301825
{
1831-
throw TR::RecoverableCodeCacheError();
1826+
self()->failCompilation<TR::RecoverableCodeCacheError>("Already committed to current code cache");
18321827
}
18331828

1834-
throw TR::CodeCacheError();
1829+
self()->failCompilation<TR::CodeCacheError>("Already committed to current code cache");
18351830
}
18361831
}
18371832

@@ -2073,8 +2068,7 @@ OMR::Compilation::incVisitCount()
20732068
if (_visitCount == MAX_VCOUNT-1)
20742069
{
20752070
TR_ASSERT(0, "_visitCount equals MAX_VCOUNT-1");
2076-
traceMsg(self(), "_visitCount equals MAX_VCOUNT-1");
2077-
throw TR::CompilationException();
2071+
self()->failCompilation<TR::CompilationException>("_visitCount equals MAX_VCOUNT-1");
20782072
}
20792073
return ++_visitCount;
20802074
}

compiler/compile/OMRSymbolReferenceTable.cpp

+4-8
Original file line numberDiff line numberDiff line change
@@ -1513,8 +1513,7 @@ OMR::SymbolReferenceTable::findOrCreateAutoSymbol(TR::ResolvedMethodSymbol * own
15131513
{
15141514
if (symRef->getSymbol()->getParmSymbol() || comp()->getOption(TR_DontJitIfSlotsSharedByRefAndNonRef))
15151515
{
1516-
traceMsg(comp(), "stack mapping can't handle a parameter slot that is shared between refs and nonrefs 0");
1517-
throw TR::CompilationException();
1516+
comp()->failCompilation<TR::CompilationException>("stack mapping can't handle a parameter slot that is shared between refs and nonrefs 0");
15181517
}
15191518

15201519
slotSharedbyRefAndNonRef = true;
@@ -1536,8 +1535,7 @@ OMR::SymbolReferenceTable::findOrCreateAutoSymbol(TR::ResolvedMethodSymbol * own
15361535
{
15371536
if (symRef2->getSymbol()->getParmSymbol() || comp()->getOption(TR_DontJitIfSlotsSharedByRefAndNonRef))
15381537
{
1539-
traceMsg(comp(), "stack mapping can't handle a parameter slot that is shared between refs and nonrefs 1");
1540-
throw TR::CompilationException();
1538+
comp()->failCompilation<TR::CompilationException>("stack mapping can't handle a parameter slot that is shared between refs and nonrefs 1");
15411539
}
15421540
slotSharedbyRefAndNonRef = true;
15431541
symRef2->getSymbol()->setSlotSharedByRefAndNonRef(true); // An address slot is being shared with an int slot.
@@ -1560,8 +1558,7 @@ OMR::SymbolReferenceTable::findOrCreateAutoSymbol(TR::ResolvedMethodSymbol * own
15601558
{
15611559
if (symRef2->getSymbol()->getParmSymbol() || comp()->getOption(TR_DontJitIfSlotsSharedByRefAndNonRef))
15621560
{
1563-
traceMsg(comp(), "stack mapping can't handle a parameter slot that is shared between refs and nonrefs 3");
1564-
throw TR::CompilationException();
1561+
comp()->failCompilation<TR::CompilationException>("stack mapping can't handle a parameter slot that is shared between refs and nonrefs 3");
15651562
}
15661563
slotSharedbyRefAndNonRef = true;
15671564
symRef2->getSymbol()->setSlotSharedByRefAndNonRef(true); // An address slot is being shared with an int slot.
@@ -1591,8 +1588,7 @@ OMR::SymbolReferenceTable::findOrCreateAutoSymbol(TR::ResolvedMethodSymbol * own
15911588
_numInternalPointers++;
15921589
if (_numInternalPointers > comp()->maxInternalPointers())
15931590
{
1594-
traceMsg(comp(), "Excessive number of internal pointers");
1595-
throw TR::ExcessiveComplexity();
1591+
comp()->failCompilation<TR::ExcessiveComplexity>("Excessive number of internal pointers");
15961592
}
15971593
}
15981594
else

compiler/compile/OSRData.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -472,8 +472,7 @@ void TR_OSRCompilationData::checkOSRLimits()
472472
if (comp->getOptions()->isAnyVerboseOptionSet(TR_VerboseOSR, TR_VerboseOSRDetails))
473473
TR_VerboseLog::writeLineLocked(TR_Vlog_OSR, "OSR COMPILE ABORT in %s: frame size %d, scratch size %d, stack size %d were not accommodated by the VM\n",
474474
comp->signature(), maxFrameSize, getMaxScratchBufferSize(), maxStackFrameSize);
475-
traceMsg(comp, "OSR buffers could not be enlarged to accomodate compiled method");
476-
throw TR::CompilationException();
475+
comp->failCompilation<TR::CompilationException>("OSR buffers could not be enlarged to accomodate compiled method");
477476
}
478477
}
479478

compiler/env/FEBase_t.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ FEBase<Derived>::allocateCodeMemory(TR::Compilation *comp, uint32_t warmCodeSize
6666
{
6767
if (jitConfig()->isCodeCacheFull())
6868
{
69-
throw TR::CodeCacheError();
69+
comp->failCompilation<TR::CodeCacheError>("Code Cache Full");
7070
}
7171
else
7272
{
73-
throw TR::RecoverableCodeCacheError();
73+
comp->failCompilation<TR::RecoverableCodeCacheError>("Failed to allocate code memory");
7474
}
7575
}
7676

compiler/il/OMRNode.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,7 @@ OMR::Node::Node(TR::Node *originatingByteCodeNode, TR::ILOpCodes op, uint16_t nu
156156
if (self()->getGlobalIndex() == MAX_NODE_COUNT)
157157
{
158158
TR_ASSERT(0, "getGlobalIndex() == MAX_NODE_COUNT");
159-
traceMsg(comp, "Global index equal to max node count");
160-
throw TR::ExcessiveComplexity();
159+
comp->failCompilation<TR::ExcessiveComplexity>("Global index equal to max node count");
161160
}
162161
}
163162

@@ -247,8 +246,7 @@ OMR::Node::Node(TR::Node * from, uint16_t numChildren)
247246
if (self()->getGlobalIndex() == MAX_NODE_COUNT)
248247
{
249248
TR_ASSERT(0, "getGlobalIndex() == MAX_NODE_COUNT");
250-
traceMsg(comp, "Global index equal to max node count");
251-
throw TR::ExcessiveComplexity();
249+
comp->failCompilation<TR::ExcessiveComplexity>("Global index equal to max node count");
252250
}
253251

254252
if(comp->getDebug())

compiler/il/symbol/OMRRegisterMappedSymbol.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ OMR::RegisterMappedSymbol::setLiveLocalIndex(uint16_t i, TR_FrontEnd * fe)
8484
if (self()->isLiveLocalIndexUninitialized())
8585
{
8686
TR_ASSERT(0, "OMR::RegisterMappedSymbol::_liveLocalIndex == USHRT_MAX");
87-
throw TR::CompilationException();
87+
TR::comp()->failCompilation<TR::CompilationException>("OMR::RegisterMappedSymbol::_liveLocalIndex == USHRT_MAX");
8888
}
8989
}
9090

compiler/il/symbol/OMRResolvedMethodSymbol.cpp

+6-11
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,7 @@ OMR::ResolvedMethodSymbol::ResolvedMethodSymbol(TR_ResolvedMethod * method, TR::
147147

148148
if (_methodIndex >= MAX_CALLER_INDEX)
149149
{
150-
traceMsg(comp, "Exceeded MAX_CALLER_INDEX");
151-
throw TR::MaxCallerIndexExceeded();
150+
comp->failCompilation<TR::MaxCallerIndexExceeded>("Exceeded MAX_CALLER_INDEX");
152151
}
153152

154153
if (_resolvedMethod->isSynchronized())
@@ -1032,9 +1031,8 @@ OMR::ResolvedMethodSymbol::genOSRHelperCall(int32_t currentInlinedSiteIndex, TR:
10321031
if (trace)
10331032
traceMsg(self()->comp(), "#%d shares pending push slot\n", symRef->getReferenceNumber());
10341033
if (self()->comp()->getOption(TR_DisableOSRSharedSlots))
1035-
{
1036-
traceMsg(self()->comp(), "Pending push slot sharing detected");
1037-
throw TR::ILGenFailure();
1034+
{
1035+
self()->comp()->failCompilation<TR::ILGenFailure>("Pending push slot sharing detected");
10381036
}
10391037
}
10401038

@@ -1065,8 +1063,7 @@ OMR::ResolvedMethodSymbol::genOSRHelperCall(int32_t currentInlinedSiteIndex, TR:
10651063
traceMsg(self()->comp(), "#%d shares auto slot\n", symRef->getReferenceNumber());
10661064
if (self()->comp()->getOption(TR_DisableOSRSharedSlots))
10671065
{
1068-
traceMsg(self()->comp(), "Auto/parm slot sharing detected");
1069-
throw TR::ILGenFailure();
1066+
self()->comp()->failCompilation<TR::ILGenFailure>("Auto/parm slot sharing detected");
10701067
}
10711068
}
10721069
// Certain special temps go into the OSR buffer, but most don't
@@ -1223,8 +1220,7 @@ OMR::ResolvedMethodSymbol::genIL(TR_FrontEnd * fe, TR::Compilation * comp, TR::S
12231220
{
12241221
if (self()->catchBlocksHaveRealPredecessors(comp->getFlowGraph(), comp))
12251222
{
1226-
traceMsg(comp, "Catch blocks have real predecessors");
1227-
throw TR::CompilationException();
1223+
comp->failCompilation<TR::CompilationException>("Catch blocks have real predecessors");
12281224
}
12291225
}
12301226

@@ -1774,8 +1770,7 @@ OMR::ResolvedMethodSymbol::setTempIndex(int32_t index, TR_FrontEnd * fe)
17741770
{
17751771
if ((_tempIndex = index) < 0)
17761772
{
1777-
traceMsg(self()->comp(), "TR::ResolvedMethodSymbol::_tempIndex overflow");
1778-
throw TR::CompilationException();
1773+
self()->comp()->failCompilation<TR::CompilationException>("TR::ResolvedMethodSymbol::_tempIndex overflow");
17791774
}
17801775
return index;
17811776
}

compiler/infra/ILWalk.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -661,8 +661,7 @@ void TR::ILValidator::soundnessRule(TR::TreeTop *location, bool condition, const
661661
static char *continueAfterValidationError = feGetEnv("TR_continueAfterValidationError");
662662
if (!continueAfterValidationError)
663663
{
664-
traceMsg(comp(), "Validation error");
665-
throw TR::CompilationException();
664+
comp()->failCompilation<TR::CompilationException>("Validation error");
666665
}
667666
}
668667
}
@@ -683,8 +682,7 @@ void TR::ILValidator::validityRule(Location &location, bool condition, const cha
683682
static char *continueAfterValidationError = feGetEnv("TR_continueAfterValidationError");
684683
if (!continueAfterValidationError)
685684
{
686-
traceMsg(comp(), "Validation error");
687-
throw TR::CompilationException();
685+
comp()->failCompilation<TR::CompilationException>("Validation error");
688686
}
689687
}
690688
}

compiler/infra/OMRCfg.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -959,8 +959,7 @@ bool OMR::CFG::removeEdge(TR::CFGEdge *edge, bool recursiveImpl)
959959
(comp()->getOption(TR_ProcessHugeMethods) ?
960960
(MAX_REMOVE_EDGE_NESTING_DEPTH * 2) : MAX_REMOVE_EDGE_NESTING_DEPTH))
961961
{
962-
traceMsg(comp(), "Exceeded removeEdge nesting depth");
963-
throw TR::ExcessiveComplexity();
962+
comp()->failCompilation<TR::ExcessiveComplexity>("Exceeded removeEdge nesting depth");
964963
}
965964

966965

compiler/optimizer/BackwardBitVectorAnalysis.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,8 @@ template<class Container>void TR_BackwardDFSetAnalysis<Container *>::initializeG
223223

224224
if (this->_analysisInterrupted)
225225
{
226-
traceMsg(this->comp(), "interrupted in backward bit vector analysis");
227-
throw TR::CompilationInterrupted();
226+
TR::Compilation *comp = this->comp();
227+
comp->failCompilation<TR::CompilationInterrupted>("interrupted in backward bit vector analysis");
228228
}
229229

230230
TR::CFGNode *node = this->_analysisQueue.getListHead()->getData();
@@ -1045,8 +1045,8 @@ template<class Container>bool TR_BackwardDFSetAnalysis<Container *>::analyzeNode
10451045

10461046
if (this->_analysisInterrupted)
10471047
{
1048-
traceMsg(this->comp(), "interrupted in backward bit vector analysis");
1049-
throw TR::CompilationInterrupted();
1048+
TR::Compilation *comp = this->comp();
1049+
comp->failCompilation<TR::CompilationInterrupted>("interrupted in backward bit vector analysis");
10501050
}
10511051

10521052
TR::CFGNode *node = this->_analysisQueue.getListHead()->getData();

compiler/optimizer/BitVectorAnalysis.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -612,8 +612,8 @@ template<class Container>void TR_ForwardDFSetAnalysis<Container *>::initializeGe
612612

613613
if (this->_analysisInterrupted)
614614
{
615-
traceMsg(this->comp(), "interrupted in forward bit vector analysis");
616-
throw TR::CompilationInterrupted();
615+
TR::Compilation *comp = this->comp();
616+
comp->failCompilation<TR::CompilationInterrupted>("interrupted in forward bit vector analysis");
617617
}
618618

619619
TR::CFGNode *node = this->_analysisQueue.getListHead()->getData();
@@ -1186,8 +1186,8 @@ template<class Container>bool TR_ForwardDFSetAnalysis<Container *>::analyzeNodeI
11861186

11871187
if (this->_analysisInterrupted)
11881188
{
1189-
traceMsg(this->comp(), "interrupted in forward bit vector analysis");
1190-
throw TR::CompilationInterrupted();
1189+
TR::Compilation *comp = this->comp();
1190+
comp->failCompilation<TR::CompilationInterrupted>("interrupted in forward bit vector analysis");
11911191
}
11921192

11931193
TR::CFGNode *node = this->_analysisQueue.getListHead()->getData();

compiler/optimizer/GlobalRegisterAllocator.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -513,8 +513,7 @@ TR_GlobalRegisterAllocator::perform()
513513
if (comp()->getOptions()->realTimeGC() &&
514514
comp()->compilationShouldBeInterrupted(GRA_AFTER_FIND_LOOP_AUTO_CONTEXT))
515515
{
516-
traceMsg(comp(), "interrupted during GRA");
517-
throw TR::CompilationInterrupted();
516+
comp()->failCompilation<TR::CompilationInterrupted>("interrupted during GRA");
518517
}
519518

520519
bool canAffordAssignment = true;
@@ -3924,8 +3923,7 @@ TR_GlobalRegisterAllocator::findLoopsAndCorrespondingAutos(TR_StructureSubGraphN
39243923
static uint32_t numIter = 0;
39253924
if (((++numIter) & 0x3f)==0 && comp()->compilationShouldBeInterrupted(GRA_FIND_LOOPS_AND_CORRESPONDING_AUTOS_BLOCK_CONTEXT))
39263925
{
3927-
traceMsg(comp(), "interrupted in GRA-findLoopsAndCorrspondingAuto-block");
3928-
throw TR::CompilationInterrupted();
3926+
comp()->failCompilation<TR::CompilationInterrupted>("interrupted in GRA-findLoopsAndCorrspondingAuto-block");
39293927
}
39303928
nextBlock->setVisitCount(visitCount);
39313929
int32_t executionFrequency = 1;

compiler/optimizer/OMRLocalCSE.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -416,8 +416,7 @@ void OMR::LocalCSE::examineNode(TR::Node *node, SharedSparseBitVector &seenAvail
416416
{
417417
if (depth > MAX_DEPTH)
418418
{
419-
traceMsg(comp(), "scratch space in local CSE");
420-
throw TR::ExcessiveComplexity();
419+
comp()->failCompilation<TR::ExcessiveComplexity>("scratch space in local CSE");
421420
}
422421

423422
// If register pressure is high at this point, then nothing should be commoned or copy propagated across this point

compiler/optimizer/OMROptimizer.cpp

+4-7
Original file line numberDiff line numberDiff line change
@@ -1120,8 +1120,7 @@ int32_t OMR::Optimizer::optimize()
11201120
if (nextHotness > comp()->getMethodHotness())
11211121
{
11221122
comp()->setNextOptLevel(nextHotness);
1123-
traceMsg(comp(), "Method needs to be compiled at higher level");
1124-
throw TR::InsufficientlyAggressiveCompilation();
1123+
comp()->failCompilation<TR::InsufficientlyAggressiveCompilation>("Method needs to be compiled at higher level");
11251124
}
11261125
}
11271126

@@ -1973,13 +1972,12 @@ int32_t OMR::Optimizer::performOptimization(const OptimizationStrategy *optimiza
19731972
{
19741973
if (comp()->getOption(TR_MimicInterpreterFrameShape))
19751974
{
1976-
traceMsg(comp(), "complex method under MimicInterpreterFrameShape");
1975+
comp()->failCompilation<TR::ExcessiveComplexity>("complex method under MimicInterpreterFrameShape");
19771976
}
19781977
else
19791978
{
1980-
traceMsg(comp(), "Method is too large");
1979+
comp()->failCompilation<TR::ExcessiveComplexity>("Method is too large");
19811980
}
1982-
throw TR::ExcessiveComplexity();
19831981
}
19841982
}
19851983
}
@@ -2041,8 +2039,7 @@ int32_t OMR::Optimizer::performOptimization(const OptimizationStrategy *optimiza
20412039

20422040
if (comp()->compilationShouldBeInterrupted((TR_CallingContext)optNum))
20432041
{
2044-
traceMsg(comp(), "interrupted between optimizations");
2045-
throw TR::CompilationInterrupted();
2042+
comp()->failCompilation<TR::CompilationInterrupted>("interrupted between optimizations");
20462043
}
20472044

20482045
manager->setTrace(origTraceSetting);

0 commit comments

Comments
 (0)