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