v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
maglev-code-generator.h
Go to the documentation of this file.
1// Copyright 2022 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_MAGLEV_MAGLEV_CODE_GENERATOR_H_
6#define V8_MAGLEV_MAGLEV_CODE_GENERATOR_H_
7
14
15namespace v8 {
16namespace internal {
17namespace maglev {
18
19class Graph;
20class MaglevCompilationInfo;
21
23 public:
25 MaglevCompilationInfo* compilation_info, Graph* graph);
26
28
30
32
33 private:
35 void EmitDeferredCode();
38 void EmitMetadata();
40
43 LocalIsolate* local_isolate);
45
50 uint16_t parameter_count() const { return code_gen_state_.parameter_count(); }
51
52 MaglevAssembler* masm() { return &masm_; }
53
59 Graph* const graph_;
60
66
67 bool code_gen_succeeded_ = false;
68
74};
75
76} // namespace maglev
77} // namespace internal
78} // namespace v8
79
80#endif // V8_MAGLEV_MAGLEV_CODE_GENERATOR_H_
IdentityMap< int, base::DefaultAllocationPolicy > protected_deopt_literals_
MaglevCodeGenerator(LocalIsolate *isolate, MaglevCompilationInfo *compilation_info, Graph *graph)
IdentityMap< int, base::DefaultAllocationPolicy > deopt_literals_
IndirectHandle< DeoptimizationData > deopt_data_
MaybeHandle< Code > BuildCodeObject(LocalIsolate *local_isolate)
GlobalHandleVector< Map > CollectRetainedMaps(DirectHandle< Code > code)
Handle< DeoptimizationData > GenerateDeoptimizationData(LocalIsolate *local_isolate)
GlobalHandleVector< Map > RetainedMaps(Isolate *isolate)
MaybeHandle< Code > Generate(Isolate *isolate)
MaglevSafepointTableBuilder safepoint_table_builder_
#define V8_NODISCARD
Definition v8config.h:693