6using namespace WebAssembly;
29 if ((
ML && !WE) || (
ML && WE && WE->contains(
ML->getHeader()))) {
31 if (LoopMap.count(
ML))
32 return LoopMap[
ML].get();
33 LoopMap[
ML] = std::make_unique<ConcreteSortRegion<MachineLoop>>(
ML);
34 return LoopMap[
ML].get();
37 if (ExceptionMap.count(WE))
38 return ExceptionMap[WE].
get();
40 std::make_unique<ConcreteSortRegion<WebAssemblyException>>(WE);
41 return ExceptionMap[WE].get();
This file implements WebAssemblyException information analysis.
This file implements regions used in CFGSort and CFGStackify.
LoopT * getLoopFor(const BlockT *BB) const
Return the inner most loop that BB lives in.
bool isEHPad() const
Returns true if the block is a landing pad.
int getNumber() const
MachineBasicBlocks are uniquely numbered at the function level, unless they're not in a MachineFuncti...
WebAssemblyException * getExceptionFor(const MachineBasicBlock *MBB) const
iterator_range< block_iterator > blocks() const
MachineBasicBlock * getHeader() const
bool isLoop() const override
const SortRegion * getRegionFor(const MachineBasicBlock *MBB)
MachineBasicBlock * getBottom(const SortRegion *R)
This is an optimization pass for GlobalISel generic memory operations.
decltype(auto) get(const PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info > &Pair)