#include <compiler_pass.h>
Definition at line 106 of file compiler_pass.h.
◆ Flag
Enumerator |
---|
kDisabled | |
kTraceBefore | |
kTraceAfter | |
kSticky | |
kTraceBeforeOrAfter | |
Definition at line 131 of file compiler_pass.h.
◆ Id
Definition at line 108 of file compiler_pass.h.
108 {
109#define DEF(name) k##name,
111#undef DEF
112 };
#define COMPILER_PASS_LIST(V)
◆ PipelineMode
◆ CompilerPass()
dart::CompilerPass::CompilerPass |
( |
Id |
id, |
|
|
const char * |
name |
|
) |
| |
|
inline |
Definition at line 118 of file compiler_pass.h.
118 : id_(
id), name_(
name) {
119 ASSERT(passes_[
id] ==
nullptr);
121
122
123 if (id == kAllocateRegisters) {
125 } else {
127 }
128 }
const char * name() const
◆ ~CompilerPass()
virtual dart::CompilerPass::~CompilerPass |
( |
| ) |
|
|
inlinevirtual |
◆ DoBody()
◆ flags()
uint8_t dart::CompilerPass::flags |
( |
| ) |
const |
|
inline |
◆ GenerateCode()
Definition at line 156 of file compiler_pass.h.
156 {
158 }
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 }
152 if (start == end) {
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 {
165 if (*start == '-') {
167 } else if (*start == ']') {
169 } else if (*start == '[') {
171 } else if (*start == '*') {
173 }
176 } else {
178 }
179
181 if (end[-1] == '+') {
182 if (start == (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.
304 {
305 if (compute_ssa) {
307 }
327
328
329
330
346
347
351
352
363 INVOKE_PASS(AllocationSinking_DetachMaterializations);
365
372 return pass_state->flow_graph();
373}
void EliminateWriteBarriers(FlowGraph *flow_graph)
◆ RunPipelineWithPasses()
Definition at line 375 of file compiler_pass.cc.
377 {
378 for (auto pass_id : passes) {
380 }
381 return state->flow_graph();
382}
◆ kNumPasses
The documentation for this class was generated from the following files: