LLVM: lib/Target/Hexagon/RDFCopy.h Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9#ifndef LLVM_LIB_TARGET_HEXAGON_RDFCOPY_H
10#define LLVM_LIB_TARGET_HEXAGON_RDFCOPY_H
11
16#include
17#include
18
19namespace llvm {
20
24
25namespace rdf {
26
30
32
33 bool run();
34 void trace(bool On) { Trace = On; }
35 bool trace() const { return Trace; }
37
38 using EqualityMap = std::map<RegisterRef, RegisterRef, RegisterRefLess>;
40
41 private:
45 bool Trace = false;
46
47
48 std::map<RegisterRef, std::map<NodeId, NodeId>, RegisterRefLess> RDefMap;
49
50 std::map<NodeId, EqualityMap> CopyMap;
51 std::vector Copies;
52
56 };
57
58}
59
60}
61
62#endif
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominat...
Representation of each machine instruction.
This is an optimization pass for GlobalISel generic memory operations.
bool trace() const
Definition RDFCopy.h:35
CopyPropagation(DataFlowGraph &dfg)
Definition RDFCopy.h:28
std::map< RegisterRef, RegisterRef, RegisterRefLess > EqualityMap
Definition RDFCopy.h:38
virtual bool interpretAsCopy(const MachineInstr *MI, EqualityMap &EM)
DataFlowGraph & getDFG()
Definition RDFCopy.h:36
virtual ~CopyPropagation()=default
void trace(bool On)
Definition RDFCopy.h:34
std::unordered_map< RegisterId, DefStack > DefStackMap