Lines Matching full:use
4 * you may not use this file except in compliance with the License.
96 GateRef use = *it; in FindInBuilder() local
100 VisitGateUse(use); in FindInBuilder()
105 void StringBuilderOptimizer::VisitGateUse(GateRef use) in VisitGateUse() argument
107 Status useStatus = GetStatus(use); in VisitGateUse()
112 auto useOpCode = acc_.GetOpCode(use); in VisitGateUse()
113 if (useOpCode == OpCode::VALUE_SELECTOR && IsLoopHeader(use)) { in VisitGateUse()
118 UpdateStatus(use, State::IN_STRING_BUILDER); in VisitGateUse()
119 toVisit_.push_back(use); in VisitGateUse()
122 // if this use is string-add in VisitGateUse()
123 // we need to determine whether to set the current use to IN_STRING_BUILDER in VisitGateUse()
126 GateRef left = acc_.GetValueIn(use, 0); in VisitGateUse()
129 UpdateStatus(use, State::IN_STRING_BUILDER); in VisitGateUse()
130 toVisit_.push_back(use); in VisitGateUse()
132 curStringAddId_ = acc_.GetId(use); in VisitGateUse()
134 UpdateStatus(use, State::IN_STRING_BUILDER); in VisitGateUse()
135 toVisit_.push_back(use); in VisitGateUse()
137 SetStatus(use, State::INVALID_OPT); in VisitGateUse()
140 SetStatus(use, State::INVALID_OPT); in VisitGateUse()
171 GateRef use = *it; in FinalizeStringBuilders() local
175 auto useStatus = GetStatus(use); in FinalizeStringBuilders()
179 toVisit_.push_back(use); in FinalizeStringBuilders()
181 if (currIsLoopHeader && !LoopContains(curr, use)) { in FinalizeStringBuilders()
223 GateRef use = *it; in HasConcatOrPhiUse() local
227 auto op = acc_.GetOpCode(use); in HasConcatOrPhiUse()
228 if ((op == OpCode::STRING_ADD && HasConcatOrPhiUse(use)) || op == OpCode::VALUE_SELECTOR) { in HasConcatOrPhiUse()
241 GateRef use = *it; in CheckStringAddUses() local
245 auto useOp = acc_.GetOpCode(use); in CheckStringAddUses()
248 // or this gate has an invalid use in CheckStringAddUses()
250 if (curStringAddId_ != acc_.GetId(use) || IsInvalidGate(use)) { in CheckStringAddUses()
256 // this gate has a phi use, then check the phi use gate in CheckStringAddUses()
257 if (useOp == OpCode::VALUE_SELECTOR && !CheckStringAddUses(use)) { in CheckStringAddUses()
262 acc_.IsFrameValues(use) || acc_.IsValueSelector(use)) { in CheckStringAddUses()