Lines Matching full:exception
1 //===--- WebAssemblyExceptionInfo.cpp - Exception Infomation --------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
28 #define DEBUG_TYPE "wasm-exception-info"
33 "WebAssembly Exception Information", true, true)
37 "WebAssembly Exception Information", true, true)
40 LLVM_DEBUG(dbgs() << "********** Exception Info Calculation **********\n"
93 // which means, if an exception is not caught by the catchpad, it should end
100 // ... // this catch (int) { ... } is grouped as an exception
106 // unwind destination is in the outside of the catchpad's exception.
110 // children outside of the exception, that unwind destination ends up also
111 // being dominated by the EH pad and included in the exception, which is not
115 // exception. Note that the unwind destinations may not be an immediate
116 // children of the parent exception, so we have to traverse the parent chain.
141 << "'s exception is taken out of "
143 << SrcWE->getEHPad()->getName() << "'s exception\n");
151 // For example, suppose Exception A is dominated by EHPad A and Exception B is
153 // EHPad B is dominated by EHPad A, the initial grouping makes Exception B a
154 // subexception of Exception A, and we fix it by taking Exception B out of
155 // Exception A above. But there can still be remaining BBs within Exception A
156 // that are reachable from Exception B. These BBs semantically don't belong
157 // to Exception A and were not a part of this 'catch' clause or cleanup code
158 // in the original code, but they just happened to be grouped within Exception
160 // BBs out of the incorrect exception and all its subexceptions that it
165 // change parent exception pointer.
176 // If WE (the current EH pad's exception) is still contained in SrcWE but
185 << "'s exception is taken out of "
187 << SrcWE->getEHPad()->getName() << "'s exception\n");
195 // for each exception.
204 // exceptions' BlockSet, when we take a BB out of an exception, we need to fix
226 << "'s exception\n");
232 << "'s exception\n");
295 // Find its outermost discovered exception. If this is a discovered block,
296 // check if it is already discovered to be a subexception of this exception.
300 // Discover a subexception of this exception.
314 // This is an undiscovered block. Map it to the current exception.
339 OS.indent(Depth * 2) << "Exception at depth " << getExceptionDepth()