Flutter Engine
The Flutter Engine
pending_deopts.h
Go to the documentation of this file.
1// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#ifndef RUNTIME_VM_PENDING_DEOPTS_H_
6#define RUNTIME_VM_PENDING_DEOPTS_H_
7
8#if defined(SHOULD_NOT_INCLUDE_RUNTIME)
9#error "Should not include runtime"
10#endif
11
12#include "vm/growable_array.h"
13
14namespace dart {
15
17 public:
18 PendingLazyDeopt(uword fp, uword pc) : fp_(fp), pc_(pc) {}
19 uword fp() { return fp_; }
20 uword pc() { return pc_; }
21 void set_pc(uword pc) { pc_ = pc; }
22
23 private:
24 uword fp_;
25 uword pc_;
26};
27
29 public:
33 };
36
37 bool HasPendingDeopts() { return pending_deopts_->length() > 0; }
38
39 void AddPendingDeopt(uword fp, uword pc);
43 uword RemapExceptionPCForDeopt(uword program_counter,
44 uword frame_pointer,
45 bool* clear_deopt);
46
47 private:
48 PendingLazyDeopt* FindPendingDeoptRecord(uword fp);
49
51};
52
53} // namespace dart
54
55#endif // RUNTIME_VM_PENDING_DEOPTS_H_
uword FindPendingDeopt(uword fp)
void ClearPendingDeoptsBelow(uword fp, ClearReason reason)
void ClearPendingDeoptsAtOrBelow(uword fp, ClearReason reason)
uword RemapExceptionPCForDeopt(uword program_counter, uword frame_pointer, bool *clear_deopt)
void AddPendingDeopt(uword fp, uword pc)
void set_pc(uword pc)
PendingLazyDeopt(uword fp, uword pc)
Definition: dart_vm.cc:33
uintptr_t uword
Definition: globals.h:501
const uint32_t fp