#include <compiler_pass.h>
Definition at line 107 of file compiler_pass.h.
◆ Flag
Enumerator |
---|
kDisabled | |
kTraceBefore | |
kTraceAfter | |
kSticky | |
kTraceBeforeOrAfter | |
Definition at line 132 of file compiler_pass.h.
◆ Id
Definition at line 109 of file compiler_pass.h.
109 {
110#define DEF(name) k##name,
112#undef DEF
113 };
#define COMPILER_PASS_LIST(V)
◆ PipelineMode
◆ CompilerPass()
dart::CompilerPass::CompilerPass |
( |
Id |
id, |
|
|
const char * |
name |
|
) |
| |
|
inline |
Definition at line 119 of file compiler_pass.h.
119 : id_(
id), name_(
name) {
120 ASSERT(passes_[
id] ==
nullptr);
122
123
124 if (id == kAllocateRegisters) {
126 } else {
128 }
129 }
const char * name() const
◆ ~CompilerPass()
virtual dart::CompilerPass::~CompilerPass |
( |
| ) |
|
|
inlinevirtual |
◆ DoBody()
◆ flags()
uint8_t dart::CompilerPass::flags |
( |
| ) |
const |
|
inline |
◆ GenerateCode()
Definition at line 157 of file compiler_pass.h.
157 {
159 }
void Run(CompilerPassState *state) const
static CompilerPass * Get(Id id)
◆ Get()
◆ id()
Id dart::CompilerPass::id |
( |
| ) |
const |
|
inline |
◆ name()
const char * dart::CompilerPass::name |
( |
| ) |
const |
|
inline |
◆ ParseFilters()
void dart::CompilerPass::ParseFilters |
( |
const char * |
filter, |
|
|
uint8_t * |
flags |
|
) |
| |
|
static |
Definition at line 127 of file compiler_pass.cc.
127 {
128 if (filter == nullptr || *filter == 0) {
129 return;
130 }
131
132 if (strcmp(filter, "help") == 0) {
135 if (passes_[i] != nullptr) {
137 }
138 }
139 return;
140 }
141
142
144
145 for (
const char *
start = filter, *
end = filter; *
end != 0;
147
149 while (*
end !=
',' && *
end !=
'\0') {
151 }
154 continue;
155 }
156
158 }
159}
static void ParseOneFilter(const char *start, const char *end, uint8_t *flags)
static constexpr intptr_t kNumPasses
static void static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
static const char * kCompilerPassesUsage
◆ ParseFiltersFromFlag()
void dart::CompilerPass::ParseFiltersFromFlag |
( |
const char * |
filter | ) |
|
|
static |
Definition at line 116 of file compiler_pass.cc.
116 {
118}
static void ParseFilters(const char *filter, uint8_t *flags)
◆ ParseFiltersFromPragma()
uint8_t * dart::CompilerPass::ParseFiltersFromPragma |
( |
const char * |
filter | ) |
|
|
static |
Definition at line 120 of file compiler_pass.cc.
120 {
125}
static ThreadState * Current()
ElementType * Alloc(intptr_t length)
◆ ParseOneFilter()
void dart::CompilerPass::ParseOneFilter |
( |
const char * |
start, |
|
|
const char * |
end, |
|
|
uint8_t * |
flags |
|
) |
| |
|
static |
Definition at line 161 of file compiler_pass.cc.
163 {
167 }
else if (*
start ==
']') {
169 }
else if (*
start ==
'[') {
171 }
else if (*
start ==
'*') {
173 }
176 } else {
178 }
179
181 if (
end[-1] ==
'+') {
183 OS::PrintErr(
"Sticky modifier '+' should follow pass name\n");
184 return;
185 }
188 }
189
194 if (pass != nullptr) {
195 pass_flags[pass->id()] |=
flags;
196 } else {
198 }
199 free(pass_name);
203 }
204 }
205}
CompilerPass(Id id, const char *name)
static char * StrNDup(const char *s, intptr_t n)
◆ Run()
Definition at line 207 of file compiler_pass.cc.
207 {
209 return;
210 }
211
214 }
215
216 const intptr_t kMaxRounds = 2;
217 Thread* thread =
state->thread;
222 }
223
226 {
228 {
231 }
232 thread->CheckForSafepoint();
233 }
235#if defined(DEBUG)
237 FlowGraphChecker(
state->flow_graph(),
state->inline_id_to_function)
239 }
240#endif
242 }
243}
static void round(SkPoint *p)
static unsigned repeat(SkFixed fx, int max)
virtual bool DoBody(CompilerPassState *state) const =0
void set_current_pass(const CompilerPass *pass, const CompilerPassState *pass_state)
static CompilerState & Current()
#define COMPILER_TIMINGS_PASS_TIMER_SCOPE(thread, pass_id)
#define TIMELINE_DURATION(thread, stream, name)
◆ RunGraphIntrinsicPipeline()
◆ RunInliningPipeline()
Definition at line 283 of file compiler_pass.cc.
284 {
289
290
292
293
294
295
297
298
300}
#define INVOKE_PASS_AOT(Name)
unibrow::Mapping< unibrow::Ecma262Canonicalize > Canonicalize
◆ RunPipeline()
Definition at line 302 of file compiler_pass.cc.
303 {
324
325
326
327
344
345
349
350
361 INVOKE_PASS(AllocationSinking_DetachMaterializations);
363
370 return pass_state->flow_graph();
371}
void EliminateWriteBarriers(FlowGraph *flow_graph)
◆ RunPipelineWithPasses()
Definition at line 373 of file compiler_pass.cc.
375 {
376 for (auto pass_id : passes) {
378 }
379 return state->flow_graph();
380}
◆ kNumPasses
The documentation for this class was generated from the following files: