Lines Matching full:use
4 * you may not use this file except in compliance with the License.
97 GateRef use = *it; in FindInBuilder() local
101 VisitGateUse(use); in FindInBuilder()
106 void StringBuilderOptimizer::VisitGateUse(GateRef use) in VisitGateUse() argument
108 Status useStatus = GetStatus(use); in VisitGateUse()
113 auto useOpCode = acc_.GetOpCode(use); in VisitGateUse()
114 if (useOpCode == OpCode::VALUE_SELECTOR && IsLoopHeader(use)) { in VisitGateUse()
119 UpdateStatus(use, State::IN_STRING_BUILDER); in VisitGateUse()
120 toVisit_.push_back(use); in VisitGateUse()
123 // if this use is string-add in VisitGateUse()
124 // we need to determine whether to set the current use to IN_STRING_BUILDER in VisitGateUse()
127 GateRef left = acc_.GetValueIn(use, 0); in VisitGateUse()
130 UpdateStatus(use, State::IN_STRING_BUILDER); in VisitGateUse()
131 toVisit_.push_back(use); in VisitGateUse()
133 curStringAddId_ = acc_.GetId(use); in VisitGateUse()
135 UpdateStatus(use, State::IN_STRING_BUILDER); in VisitGateUse()
136 toVisit_.push_back(use); in VisitGateUse()
138 SetStatus(use, State::INVALID_OPT); in VisitGateUse()
141 SetStatus(use, State::INVALID_OPT); in VisitGateUse()
172 GateRef use = *it; in FinalizeStringBuilders() local
176 auto useStatus = GetStatus(use); in FinalizeStringBuilders()
180 toVisit_.push_back(use); in FinalizeStringBuilders()
182 if (currIsLoopHeader && !LoopContains(curr, use)) { in FinalizeStringBuilders()
224 GateRef use = *it; in HasConcatOrPhiUse() local
228 auto op = acc_.GetOpCode(use); in HasConcatOrPhiUse()
229 if ((op == OpCode::STRING_ADD && HasConcatOrPhiUse(use)) || op == OpCode::VALUE_SELECTOR) { in HasConcatOrPhiUse()
242 GateRef use = *it; in CheckStringAddUses() local
246 auto useOp = acc_.GetOpCode(use); in CheckStringAddUses()
249 // or this gate has an invalid use in CheckStringAddUses()
251 if (curStringAddId_ != acc_.GetId(use) || IsInvalidGate(use)) { in CheckStringAddUses()
257 // this gate has a phi use, then check the phi use gate in CheckStringAddUses()
258 if (useOp == OpCode::VALUE_SELECTOR && !CheckStringAddUses(use)) { in CheckStringAddUses()
262 … if (useOp == OpCode::ECMA_STRING_CHECK || acc_.IsFrameValues(use) || acc_.IsValueSelector(use)) { in CheckStringAddUses()