Flutter Engine
The Flutter Engine
graph_intrinsifier.h
Go to the documentation of this file.
1// Copyright (c) 2019, 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// Class for intrinsifying functions.
5
6#ifndef RUNTIME_VM_COMPILER_GRAPH_INTRINSIFIER_H_
7#define RUNTIME_VM_COMPILER_GRAPH_INTRINSIFIER_H_
8
9#if defined(DART_PRECOMPILED_RUNTIME)
10#error "AOT runtime should not use compiler sources (including header files)"
11#endif // defined(DART_PRECOMPILED_RUNTIME)
12
13#include "vm/allocation.h"
15
16namespace dart {
17
18// Forward declarations.
19class FlowGraphCompiler;
20class ParsedFunction;
21class FlowGraph;
22
23namespace compiler {
24class Assembler;
25class Label;
26
28 public:
29 static bool GraphIntrinsify(const ParsedFunction& parsed_function,
31
32 private:
33#define DECLARE_FUNCTION(class_name, function_name, enum_name, fp) \
34 static void enum_name(Assembler* assembler, Label* normal_ir_body);
35
37
38#undef DECLARE_FUNCTION
39
40#define DECLARE_FUNCTION(class_name, function_name, enum_name, fp) \
41 static bool Build_##enum_name(FlowGraph* flow_graph);
42
44
45#undef DECLARE_FUNCTION
46};
47
48} // namespace compiler
49} // namespace dart
50
51#endif // RUNTIME_VM_COMPILER_GRAPH_INTRINSIFIER_H_
static bool GraphIntrinsify(const ParsedFunction &parsed_function, FlowGraphCompiler *compiler)
#define DECLARE_FUNCTION(class_name, function_name, enum_name, fp)
Definition: dart_vm.cc:33
#define GRAPH_INTRINSICS_LIST(V)