LLVM: lib/Target/WebAssembly/WebAssemblySortRegion.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSORTREGION_H
15#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSORTREGION_H
16
20
21namespace llvm {
22
28
30
31
33public:
40 virtual bool isLoop() const = 0;
41};
42
44 const T *Unit;
45
46public:
50 return Unit->contains(MBB);
51 }
52 unsigned getNumBlocks() const override { return Unit->getNumBlocks(); }
54 return Unit->blocks();
55 }
56 bool isLoop() const override { return false; }
57};
58
59
60
64
69 ExceptionMap;
70
71public:
74 : MLI(MLI), WEI(WEI) {}
75
76
78
79
80
81
85};
86
87}
88
89}
90
91#endif
This file defines the DenseMap class.
const_pointer const_iterator
MachineBasicBlock * getHeader() const override
Definition WebAssemblySortRegion.h:48
ConcreteSortRegion(const T *Unit)
Definition WebAssemblySortRegion.h:47
bool isLoop() const override
Definition WebAssemblySortRegion.h:56
bool contains(const MachineBasicBlock *MBB) const override
Definition WebAssemblySortRegion.h:49
iterator_range< block_iterator > blocks() const override
Definition WebAssemblySortRegion.h:53
unsigned getNumBlocks() const override
Definition WebAssemblySortRegion.h:52
const SortRegion * getRegionFor(const MachineBasicBlock *MBB)
SortRegionInfo(const MachineLoopInfo &MLI, const WebAssemblyExceptionInfo &WEI)
Definition WebAssemblySortRegion.h:72
MachineBasicBlock * getBottom(const SortRegion *R)
ArrayRef< MachineBasicBlock * >::const_iterator block_iterator
Definition WebAssemblySortRegion.h:38
virtual bool contains(const MachineBasicBlock *MBB) const =0
virtual unsigned getNumBlocks() const =0
virtual iterator_range< block_iterator > blocks() const =0
virtual MachineBasicBlock * getHeader() const =0
virtual bool isLoop() const =0
virtual ~SortRegion()=default
A range adaptor for a pair of iterators.
This provides a very simple, boring adaptor for a begin and end iterator into a range type.
This is an optimization pass for GlobalISel generic memory operations.