Lines Matching defs:stack
37 void PeekInstruction::TypeInstruction(Stack<const Type*>* stack,
39 const Type* type = stack->Peek(slot);
48 stack->Push(type);
56 void PokeInstruction::TypeInstruction(Stack<const Type*>* stack,
58 const Type* type = stack->Top();
63 stack->Poke(slot, type);
64 stack->Pop();
72 void DeleteRangeInstruction::TypeInstruction(Stack<const Type*>* stack,
74 stack->DeleteRange(range);
83 Stack<const Type*>* stack, ControlFlowGraph* cfg) const {
84 stack->Push(type);
97 Stack<const Type*>* stack, ControlFlowGraph* cfg) const {
98 stack->Push(type);
111 Stack<const Type*>* stack, ControlFlowGraph* cfg) const {
112 stack->PushMany(LowerType(constant->type()));
138 Stack<const Type*>* stack) const {
139 auto current = stack->begin();
140 while (current != stack->end()) {
152 void CallIntrinsicInstruction::TypeInstruction(Stack<const Type*>* stack,
157 const Type* arg_type = stack->Pop();
166 InvalidateTransientTypes(stack);
168 stack->PushMany(LowerType(intrinsic->signature().return_type));
207 void CallCsaMacroInstruction::TypeInstruction(Stack<const Type*>* stack,
212 const Type* arg_type = stack->Pop();
222 InvalidateTransientTypes(stack);
226 Stack<const Type*> catch_stack = *stack;
231 stack->PushMany(LowerType(macro->signature().return_type));
280 Stack<const Type*>* stack, ControlFlowGraph* cfg) const {
284 const Type* arg_type = stack->Pop();
297 Stack<const Type*> continuation_stack = *stack;
304 InvalidateTransientTypes(stack);
308 Stack<const Type*> catch_stack = *stack;
314 Stack<const Type*> return_stack = *stack;
419 void CallBuiltinInstruction::TypeInstruction(Stack<const Type*>* stack,
421 std::vector<const Type*> argument_types = stack->PopMany(argc);
427 InvalidateTransientTypes(stack);
431 Stack<const Type*> catch_stack = *stack;
436 stack->PushMany(LowerType(builtin->signature().return_type));
471 Stack<const Type*>* stack, ControlFlowGraph* cfg) const {
472 std::vector<const Type*> argument_types = stack->PopMany(argc);
473 const BuiltinPointerType* f = BuiltinPointerType::DynamicCast(stack->Pop());
481 InvalidateTransientTypes(stack);
482 stack->PushMany(LowerType(f->return_type()));
516 void CallRuntimeInstruction::TypeInstruction(Stack<const Type*>* stack,
518 std::vector<const Type*> argument_types = stack->PopMany(argc);
525 InvalidateTransientTypes(stack);
529 Stack<const Type*> catch_stack = *stack;
536 stack->PushMany(LowerType(return_type));
589 void BranchInstruction::TypeInstruction(Stack<const Type*>* stack,
591 const Type* condition_type = stack->Pop();
595 if_true->SetInputTypes(*stack);
596 if_false->SetInputTypes(*stack);
612 void ConstexprBranchInstruction::TypeInstruction(Stack<const Type*>* stack,
614 if_true->SetInputTypes(*stack);
615 if_false->SetInputTypes(*stack);
631 void GotoInstruction::TypeInstruction(Stack<const Type*>* stack,
633 destination->SetInputTypes(*stack);
645 void GotoExternalInstruction::TypeInstruction(Stack<const Type*>* stack,
647 if (variable_names.size() != stack->Size()) {
655 void ReturnInstruction::TypeInstruction(Stack<const Type*>* stack,
657 cfg->SetReturnType(stack->PopMany(count));
666 Stack<const Type*>* stack, ControlFlowGraph* cfg) const {}
671 void AbortInstruction::TypeInstruction(Stack<const Type*>* stack,
677 void UnsafeCastInstruction::TypeInstruction(Stack<const Type*>* stack,
679 stack->Poke(stack->AboveTop() - 1, destination_type);
691 void LoadReferenceInstruction::TypeInstruction(Stack<const Type*>* stack,
693 ExpectType(TypeOracle::GetIntPtrType(), stack->Pop());
694 ExpectSubtype(stack->Pop(), TypeOracle::GetUnionType(
698 stack->Push(type);
712 void StoreReferenceInstruction::TypeInstruction(Stack<const Type*>* stack,
714 ExpectSubtype(stack->Pop(), type);
715 ExpectType(TypeOracle::GetIntPtrType(), stack->Pop());
716 ExpectSubtype(stack->Pop(), TypeOracle::GetUnionType(
728 void LoadBitFieldInstruction::TypeInstruction(Stack<const Type*>* stack,
730 ExpectType(bit_field_struct_type, stack->Pop());
731 stack->Push(bit_field.name_and_type.type);
744 void StoreBitFieldInstruction::TypeInstruction(Stack<const Type*>* stack,
746 ExpectSubtype(bit_field.name_and_type.type, stack->Pop());
747 ExpectType(bit_field_struct_type, stack->Pop());
748 stack->Push(bit_field_struct_type);
762 void MakeLazyNodeInstruction::TypeInstruction(Stack<const Type*>* stack,
767 const Type* arg_type = stack->Pop();
776 stack->Push(result_type);