• Home
  • Raw
  • Download

Lines Matching refs:gate

20 GateRef DeadCodeElimination::VisitGate(GateRef gate)  in VisitGate()  argument
22 auto opcode = acc_.GetOpCode(gate); in VisitGate()
26 return EliminateBranch(gate); in VisitGate()
29 return EliminateMergeAndLoopBegin(gate); in VisitGate()
31 return EliminateDependSelector(gate); in VisitGate()
33 return EliminateIfException(gate); in VisitGate()
35 return EliminateLoopExit(gate); in VisitGate()
37 return EliminateGate(gate); in VisitGate()
42 GateRef DeadCodeElimination::StateIsDead(GateRef gate) in StateIsDead() argument
44 auto state = acc_.GetState(gate); in StateIsDead()
51 GateRef DeadCodeElimination::EliminateDependSelector(GateRef gate) in EliminateDependSelector() argument
53 GateRef state = StateIsDead(gate); in EliminateDependSelector()
57 auto stateInput = acc_.GetState(gate); in EliminateDependSelector()
58 size_t dependCount = acc_.GetDependCount(gate); in EliminateDependSelector()
61 auto depend = acc_.GetDep(gate, i); in EliminateDependSelector()
65 result = gate; in EliminateDependSelector()
71 GateRef DeadCodeElimination::EliminateIfException(GateRef gate) in EliminateIfException() argument
73 GateRef state = StateIsDead(gate); in EliminateIfException()
77 GateRef depend = acc_.GetDep(gate); in EliminateIfException()
84 GateRef DeadCodeElimination::EliminateLoopExit(GateRef gate) in EliminateLoopExit() argument
86 GateRef state = StateIsDead(gate); in EliminateLoopExit()
88 return DeleteLoopExit(gate); in EliminateLoopExit()
93 GateRef DeadCodeElimination::EliminateBranch(GateRef gate) in EliminateBranch() argument
95 GateRef state = StateIsDead(gate); in EliminateBranch()
99 GateRef value = acc_.GetValueIn(gate, 0); in EliminateBranch()
101 auto uses = acc_.Uses(gate); in EliminateBranch()
104 ReplaceGate(*it, acc_.GetState(gate)); in EliminateBranch()
110 return gate; in EliminateBranch()
113 void DeadCodeElimination::DecreaseAllSelectors(GateRef gate, size_t count) in DecreaseAllSelectors() argument
115 auto uses = acc_.Uses(gate); in DecreaseAllSelectors()
122 GateRef DeadCodeElimination::EliminateMergeAndLoopBegin(GateRef gate) in EliminateMergeAndLoopBegin() argument
124 if (acc_.GetOpCode(gate) == OpCode::LOOP_BEGIN) { in EliminateMergeAndLoopBegin()
125 auto loopEntry = acc_.GetIn(gate, 0); in EliminateMergeAndLoopBegin()
131 size_t inputCount = acc_.GetNumIns(gate); in EliminateMergeAndLoopBegin()
133 auto input = acc_.GetIn(gate, count); in EliminateMergeAndLoopBegin()
135 acc_.DecreaseIn(gate, count); in EliminateMergeAndLoopBegin()
136 DecreaseAllSelectors(gate, count); in EliminateMergeAndLoopBegin()
144 auto uses = acc_.Uses(gate); in EliminateMergeAndLoopBegin()
152 return acc_.GetIn(gate, 0); in EliminateMergeAndLoopBegin()
155 auto uses = acc_.Uses(gate); in EliminateMergeAndLoopBegin()
161 return gate; in EliminateMergeAndLoopBegin()
166 void DeadCodeElimination::TryFindAndDeleteLoopExit(GateRef gate) in TryFindAndDeleteLoopExit() argument
168 auto uses = acc_.Uses(gate); in TryFindAndDeleteLoopExit()
171 GateRef loopExit = acc_.GetState(gate); in TryFindAndDeleteLoopExit()
176 GateRef DeadCodeElimination::DeleteLoopExit(GateRef gate) in DeleteLoopExit() argument
178 auto uses = acc_.Uses(gate); in DeleteLoopExit()
186 return acc_.GetState(gate); in DeleteLoopExit()
189 GateRef DeadCodeElimination::EliminateGate(GateRef gate) in EliminateGate() argument
191 if (acc_.GetStateCount(gate) == 1) { in EliminateGate()
192 return StateIsDead(gate); in EliminateGate()