mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-12 06:06:19 +00:00
Exit early if exception handling isn't supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81454 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
57a7e94de9
commit
73c5a61725
@ -918,28 +918,28 @@ void DwarfException::EndModule() {
|
|||||||
/// BeginFunction - Gather pre-function exception information. Assumes it's
|
/// BeginFunction - Gather pre-function exception information. Assumes it's
|
||||||
/// being emitted immediately after the function entry point.
|
/// being emitted immediately after the function entry point.
|
||||||
void DwarfException::BeginFunction(MachineFunction *MF) {
|
void DwarfException::BeginFunction(MachineFunction *MF) {
|
||||||
|
if (!MMI || !MAI->doesSupportExceptionHandling()) return;
|
||||||
|
|
||||||
if (TimePassesIsEnabled)
|
if (TimePassesIsEnabled)
|
||||||
ExceptionTimer->startTimer();
|
ExceptionTimer->startTimer();
|
||||||
|
|
||||||
this->MF = MF;
|
this->MF = MF;
|
||||||
shouldEmitTable = shouldEmitMoves = false;
|
shouldEmitTable = shouldEmitMoves = false;
|
||||||
|
|
||||||
if (MMI && MAI->doesSupportExceptionHandling()) {
|
// Map all labels and get rid of any dead landing pads.
|
||||||
// Map all labels and get rid of any dead landing pads.
|
MMI->TidyLandingPads();
|
||||||
MMI->TidyLandingPads();
|
|
||||||
|
|
||||||
// If any landing pads survive, we need an EH table.
|
// If any landing pads survive, we need an EH table.
|
||||||
if (!MMI->getLandingPads().empty())
|
if (!MMI->getLandingPads().empty())
|
||||||
shouldEmitTable = true;
|
shouldEmitTable = true;
|
||||||
|
|
||||||
// See if we need frame move info.
|
// See if we need frame move info.
|
||||||
if (!MF->getFunction()->doesNotThrow() || UnwindTablesMandatory)
|
if (!MF->getFunction()->doesNotThrow() || UnwindTablesMandatory)
|
||||||
shouldEmitMoves = true;
|
shouldEmitMoves = true;
|
||||||
|
|
||||||
if (shouldEmitMoves || shouldEmitTable)
|
if (shouldEmitMoves || shouldEmitTable)
|
||||||
// Assumes in correct section after the entry point.
|
// Assumes in correct section after the entry point.
|
||||||
EmitLabel("eh_func_begin", ++SubprogramCount);
|
EmitLabel("eh_func_begin", ++SubprogramCount);
|
||||||
}
|
|
||||||
|
|
||||||
shouldEmitTableModule |= shouldEmitTable;
|
shouldEmitTableModule |= shouldEmitTable;
|
||||||
shouldEmitMovesModule |= shouldEmitMoves;
|
shouldEmitMovesModule |= shouldEmitMoves;
|
||||||
|
Loading…
Reference in New Issue
Block a user