Go to the documentation of this file.
6 using namespace WebAssembly;
9 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 regions used in CFGSort and CFGStackify.
This is an optimization pass for GlobalISel generic memory operations.
MachineLoop * getLoopFor(const MachineBasicBlock *BB) const
Return the innermost loop that BB lives in.
const SortRegion * getRegionFor(const MachineBasicBlock *MBB)
bool isLoop() const override
iterator_range< block_iterator > blocks() const
MachineBasicBlock * getHeader() const
int getNumber() const
MachineBasicBlocks are uniquely numbered at the function level, unless they're not in a MachineFuncti...
iterator_range< block_iterator > blocks() const
bool isEHPad() const
Returns true if the block is a landing pad.
WebAssemblyException * getExceptionFor(const MachineBasicBlock *MBB) const
Should compile to something r4 addze r3 instead we get
BlockT * getHeader() const
This file implements WebAssemblyException information analysis.
MachineBasicBlock * getBottom(const SortRegion *R)