Lines Matching refs:curr

32     auto* curr = stack[i];  in isResultUsed()  local
35 if (curr->is<Block>()) { in isResultUsed()
36 auto* block = curr->cast<Block>(); in isResultUsed()
44 } else if (curr->is<If>()) { in isResultUsed()
45 auto* iff = curr->cast<If>(); in isResultUsed()
55 if (curr->is<Drop>()) { in isResultUsed()
68 auto* curr = stack[i]; in isResultDropped() local
70 if (curr->is<Block>()) { in isResultDropped()
71 auto* block = curr->cast<Block>(); in isResultDropped()
79 } else if (curr->is<If>()) { in isResultDropped()
80 auto* iff = curr->cast<If>(); in isResultDropped()
90 if (curr->is<Drop>()) { in isResultDropped()
117 template<typename T> void visitImmediates(Expression* curr, T& visitor) { in visitImmediates() argument
121 ImmediateVisitor(Expression* curr, T& visitor) : visitor(visitor) { in visitImmediates()
122 this->visit(curr); in visitImmediates()
125 void visitBlock(Block* curr) { visitor.visitScopeName(curr->name); } in visitImmediates()
126 void visitIf(If* curr) {} in visitImmediates()
127 void visitLoop(Loop* curr) { visitor.visitScopeName(curr->name); } in visitImmediates()
128 void visitBreak(Break* curr) { visitor.visitScopeName(curr->name); } in visitImmediates()
129 void visitSwitch(Switch* curr) { in visitImmediates()
130 for (auto target : curr->targets) { in visitImmediates()
133 visitor.visitScopeName(curr->default_); in visitImmediates()
135 void visitCall(Call* curr) { in visitImmediates()
136 visitor.visitNonScopeName(curr->target); in visitImmediates()
137 visitor.visitInt(curr->isReturn); in visitImmediates()
139 void visitCallIndirect(CallIndirect* curr) { in visitImmediates()
140 visitor.visitInt(curr->sig.params.getID()); in visitImmediates()
141 visitor.visitInt(curr->sig.results.getID()); in visitImmediates()
142 visitor.visitInt(curr->isReturn); in visitImmediates()
144 void visitLocalGet(LocalGet* curr) { visitor.visitIndex(curr->index); } in visitImmediates()
145 void visitLocalSet(LocalSet* curr) { visitor.visitIndex(curr->index); } in visitImmediates()
146 void visitGlobalGet(GlobalGet* curr) { in visitImmediates()
147 visitor.visitNonScopeName(curr->name); in visitImmediates()
149 void visitGlobalSet(GlobalSet* curr) { in visitImmediates()
150 visitor.visitNonScopeName(curr->name); in visitImmediates()
152 void visitLoad(Load* curr) { in visitImmediates()
153 visitor.visitInt(curr->bytes); in visitImmediates()
154 if (curr->type != Type::unreachable && in visitImmediates()
155 curr->bytes < curr->type.getByteSize()) { in visitImmediates()
156 visitor.visitInt(curr->signed_); in visitImmediates()
158 visitor.visitAddress(curr->offset); in visitImmediates()
159 visitor.visitAddress(curr->align); in visitImmediates()
160 visitor.visitInt(curr->isAtomic); in visitImmediates()
162 void visitStore(Store* curr) { in visitImmediates()
163 visitor.visitInt(curr->bytes); in visitImmediates()
164 visitor.visitAddress(curr->offset); in visitImmediates()
165 visitor.visitAddress(curr->align); in visitImmediates()
166 visitor.visitInt(curr->isAtomic); in visitImmediates()
167 visitor.visitInt(curr->valueType.getID()); in visitImmediates()
169 void visitAtomicRMW(AtomicRMW* curr) { in visitImmediates()
170 visitor.visitInt(curr->op); in visitImmediates()
171 visitor.visitInt(curr->bytes); in visitImmediates()
172 visitor.visitAddress(curr->offset); in visitImmediates()
174 void visitAtomicCmpxchg(AtomicCmpxchg* curr) { in visitImmediates()
175 visitor.visitInt(curr->bytes); in visitImmediates()
176 visitor.visitAddress(curr->offset); in visitImmediates()
178 void visitAtomicWait(AtomicWait* curr) { in visitImmediates()
179 visitor.visitAddress(curr->offset); in visitImmediates()
180 visitor.visitType(curr->expectedType); in visitImmediates()
182 void visitAtomicNotify(AtomicNotify* curr) { in visitImmediates()
183 visitor.visitAddress(curr->offset); in visitImmediates()
185 void visitAtomicFence(AtomicFence* curr) { visitor.visitInt(curr->order); } in visitImmediates()
186 void visitSIMDExtract(SIMDExtract* curr) { in visitImmediates()
187 visitor.visitInt(curr->op); in visitImmediates()
188 visitor.visitInt(curr->index); in visitImmediates()
190 void visitSIMDReplace(SIMDReplace* curr) { in visitImmediates()
191 visitor.visitInt(curr->op); in visitImmediates()
192 visitor.visitInt(curr->index); in visitImmediates()
194 void visitSIMDShuffle(SIMDShuffle* curr) { in visitImmediates()
195 for (auto x : curr->mask) { in visitImmediates()
199 void visitSIMDTernary(SIMDTernary* curr) { visitor.visitInt(curr->op); } in visitImmediates()
200 void visitSIMDShift(SIMDShift* curr) { visitor.visitInt(curr->op); } in visitImmediates()
201 void visitSIMDLoad(SIMDLoad* curr) { in visitImmediates()
202 visitor.visitInt(curr->op); in visitImmediates()
203 visitor.visitAddress(curr->offset); in visitImmediates()
204 visitor.visitAddress(curr->align); in visitImmediates()
206 void visitMemoryInit(MemoryInit* curr) { in visitImmediates()
207 visitor.visitIndex(curr->segment); in visitImmediates()
209 void visitDataDrop(DataDrop* curr) { visitor.visitIndex(curr->segment); } in visitImmediates()
210 void visitMemoryCopy(MemoryCopy* curr) {} in visitImmediates()
211 void visitMemoryFill(MemoryFill* curr) {} in visitImmediates()
212 void visitConst(Const* curr) { visitor.visitLiteral(curr->value); } in visitImmediates()
213 void visitUnary(Unary* curr) { visitor.visitInt(curr->op); } in visitImmediates()
214 void visitBinary(Binary* curr) { visitor.visitInt(curr->op); } in visitImmediates()
215 void visitSelect(Select* curr) {} in visitImmediates()
216 void visitDrop(Drop* curr) {} in visitImmediates()
217 void visitReturn(Return* curr) {} in visitImmediates()
218 void visitMemorySize(MemorySize* curr) {} in visitImmediates()
219 void visitMemoryGrow(MemoryGrow* curr) {} in visitImmediates()
220 void visitRefNull(RefNull* curr) { visitor.visitType(curr->type); } in visitImmediates()
221 void visitRefIsNull(RefIsNull* curr) {} in visitImmediates()
222 void visitRefFunc(RefFunc* curr) { visitor.visitNonScopeName(curr->func); } in visitImmediates()
223 void visitRefEq(RefEq* curr) {} in visitImmediates()
224 void visitTry(Try* curr) {} in visitImmediates()
225 void visitThrow(Throw* curr) { visitor.visitNonScopeName(curr->event); } in visitImmediates()
226 void visitRethrow(Rethrow* curr) {} in visitImmediates()
227 void visitBrOnExn(BrOnExn* curr) { in visitImmediates()
228 visitor.visitScopeName(curr->name); in visitImmediates()
229 visitor.visitNonScopeName(curr->event); in visitImmediates()
231 void visitNop(Nop* curr) {} in visitImmediates()
232 void visitUnreachable(Unreachable* curr) {} in visitImmediates()
233 void visitPop(Pop* curr) {} in visitImmediates()
234 void visitTupleMake(TupleMake* curr) {} in visitImmediates()
235 void visitTupleExtract(TupleExtract* curr) { in visitImmediates()
236 visitor.visitIndex(curr->index); in visitImmediates()
238 void visitI31New(I31New* curr) {} in visitImmediates()
239 void visitI31Get(I31Get* curr) { visitor.visitInt(curr->signed_); } in visitImmediates()
240 void visitRefTest(RefTest* curr) { in visitImmediates()
243 void visitRefCast(RefCast* curr) { in visitImmediates()
246 void visitBrOnCast(BrOnCast* curr) { in visitImmediates()
249 void visitRttCanon(RttCanon* curr) { in visitImmediates()
252 void visitRttSub(RttSub* curr) { WASM_UNREACHABLE("TODO (gc): rtt.sub"); } in visitImmediates()
253 void visitStructNew(StructNew* curr) { in visitImmediates()
256 void visitStructGet(StructGet* curr) { in visitImmediates()
259 void visitStructSet(StructSet* curr) { in visitImmediates()
262 void visitArrayNew(ArrayNew* curr) { in visitImmediates()
265 void visitArrayGet(ArrayGet* curr) { in visitImmediates()
268 void visitArraySet(ArraySet* curr) { in visitImmediates()
271 void visitArrayLen(ArrayLen* curr) { in visitImmediates()
274 } singleton(curr, visitor); in visitImmediates()
301 void visitScopeName(Name curr) { scopeNames.push_back(curr); } in flexibleEqual()
302 void visitNonScopeName(Name curr) { nonScopeNames.push_back(curr); } in flexibleEqual()
303 void visitInt(int32_t curr) { ints.push_back(curr); } in flexibleEqual()
304 void visitLiteral(Literal curr) { literals.push_back(curr); } in flexibleEqual()
305 void visitType(Type curr) { types.push_back(curr); } in flexibleEqual()
306 void visitIndex(Index curr) { indexes.push_back(curr); } in flexibleEqual()
307 void visitAddress(Address curr) { addresses.push_back(curr); } in flexibleEqual()
446 size_t ExpressionAnalyzer::hash(Expression* curr) { in hash() argument
455 void noteScopeName(Name curr) { in hash()
456 if (curr.is()) { in hash()
457 internalNames[curr] = internalCounter++; in hash()
461 Hasher(Expression* curr) { in hash()
462 stack.push_back(curr); in hash()
465 curr = stack.back(); in hash()
467 if (!curr) { in hash()
470 rehash(digest, curr->_id); in hash()
479 rehash(digest, curr->type.getID()); in hash()
481 if (auto* block = curr->dynCast<Block>()) { in hash()
483 } else if (auto* loop = curr->dynCast<Loop>()) { in hash()
487 visitImmediates(curr, *this); in hash()
491 for (auto* child : ChildIterator(curr)) { in hash()
501 void visitScopeName(Name curr) { in hash()
507 assert(internalNames.find(curr) != internalNames.end()); in hash()
508 rehash(digest, internalNames[curr]); in hash()
510 void visitNonScopeName(Name curr) { rehash(digest, uint64_t(curr.str)); } in hash()
511 void visitInt(int32_t curr) { rehash(digest, curr); } in hash()
512 void visitLiteral(Literal curr) { rehash(digest, curr); } in hash()
513 void visitType(Type curr) { rehash(digest, curr.getID()); } in hash()
514 void visitIndex(Index curr) { in hash()
517 rehash(digest, curr); in hash()
519 void visitAddress(Address curr) { rehash(digest, curr.addr); } in hash()
522 return Hasher(curr).digest; in hash()