Home | History | Annotate | Download | only in optimizing

Lines Matching refs:user

93     HInstruction* user = use.GetUser();
94 if ((user->IsInvokeStaticOrDirect() || user->IsNewInstance()) &&
95 CanMoveClinitCheck(check, user)) {
96 implicit_clinit = user;
97 if (user->IsInvokeStaticOrDirect()) {
98 DCHECK(user->AsInvokeStaticOrDirect()->IsStaticWithExplicitClinitCheck());
99 user->AsInvokeStaticOrDirect()->RemoveExplicitClinitCheck(
102 DCHECK(user->IsNewInstance());
104 if (user->AsNewInstance()->GetEntrypoint() == kQuickAllocObjectInitialized) {
105 user->AsNewInstance()->SetEntrypoint(kQuickAllocObjectResolved);
116 HInstruction* user = it->GetUser();
118 DCHECK(implicit_clinit->StrictlyDominates(user) || (implicit_clinit == user));
120 if (user->IsInvokeStaticOrDirect()) {
121 user->AsInvokeStaticOrDirect()->RemoveExplicitClinitCheck(
149 HInstruction* user) const {
150 if (condition->GetNext() != user) {
154 if (user->IsIf() || user->IsDeoptimize()) {
158 if (user->IsSelect() && user->AsSelect()->GetCondition() == condition) {
167 HInstruction* user = condition->GetUses().front().GetUser();
168 if (CanEmitConditionAt(condition, user)) {
231 HInstruction* user) const {
232 // Determine if input and user come from the same dex instruction, so that we can move
233 // the clinit check responsibility from one to the other, i.e. from HClinitCheck (user)
234 // to HLoadClass (input), or from HClinitCheck (input) to HInvokeStaticOrDirect (user),
235 // or from HLoadClass (input) to HNewInstance (user).
238 if (user->GetDexPc() != input->GetDexPc()) {
244 HEnvironment* user_environment = user->GetEnvironment();
261 if (user->GetBlock() != input->GetBlock()) {
266 // or an instruction with side effects between input and user.
268 for (HInstruction* between = input->GetNext(); between != user; between = between->GetNext()) {
269 CHECK(between != nullptr); // User must be after input in the same block.