Flutter Engine
The Flutter Engine
Classes | Namespaces | Macros | Functions
kernel_to_il.cc File Reference
#include "vm/compiler/frontend/kernel_to_il.h"
#include <utility>
#include "lib/ffi_dynamic_library.h"
#include "platform/assert.h"
#include "platform/globals.h"
#include "vm/class_id.h"
#include "vm/compiler/aot/precompiler.h"
#include "vm/compiler/backend/flow_graph_compiler.h"
#include "vm/compiler/backend/il.h"
#include "vm/compiler/backend/il_printer.h"
#include "vm/compiler/backend/locations.h"
#include "vm/compiler/backend/range_analysis.h"
#include "vm/compiler/ffi/abi.h"
#include "vm/compiler/ffi/marshaller.h"
#include "vm/compiler/ffi/native_calling_convention.h"
#include "vm/compiler/ffi/native_location.h"
#include "vm/compiler/ffi/native_type.h"
#include "vm/compiler/ffi/recognized_method.h"
#include "vm/compiler/frontend/kernel_binary_flowgraph.h"
#include "vm/compiler/frontend/kernel_translation_helper.h"
#include "vm/compiler/frontend/prologue_builder.h"
#include "vm/compiler/jit/compiler.h"
#include "vm/compiler/runtime_api.h"
#include "vm/kernel_isolate.h"
#include "vm/kernel_loader.h"
#include "vm/log.h"
#include "vm/longjump.h"
#include "vm/native_entry.h"
#include "vm/object_store.h"
#include "vm/report.h"
#include "vm/resolver.h"
#include "vm/runtime_entry.h"
#include "vm/scopes.h"
#include "vm/stack_frame.h"
#include "vm/symbols.h"

Go to the source code of this file.

Classes

struct  dart::kernel::FlowGraphBuilder::ClosureCallInfo
 

Namespaces

namespace  dart
 
namespace  dart::kernel
 

Macros

#define Z   (zone_)
 
#define H   (translation_helper_)
 
#define T   (type_translator_)
 
#define I   Isolate::Current()
 
#define IG   IsolateGroup::Current()
 
#define LOAD_NATIVE_FIELD(V)
 
#define STORE_NATIVE_FIELD(V)
 
#define STORE_NATIVE_FIELD_NO_BARRIER(V)
 
#define TYPED_DATA_GET_INDEXED_CASES(clazz)
 
#define CASE(method, slot)   case MethodRecognizer::k##method:
 
#define TYPED_DATA_GET_INDEXED_CASES(clazz)
 
#define CASE(name)
 
#define IL_BODY(method, slot)
 
#define IL_BODY(method, slot)
 
#define IL_BODY(method, slot)
 

Functions

 dart::DEFINE_FLAG (bool, print_huge_methods, false, "Print huge methods (less optimized)")
 
 dart::DEFINE_FLAG (int, force_switch_dispatch_type, -1, "Force switch statements to use a particular dispatch type: " "-1=auto, 0=linear scan, 1=binary search, 2=jump table")
 
static bool dart::kernel::CanUnboxElements (classid_t cid)
 
const Function & dart::kernel::TypedListGetNativeFunction (Thread *thread, classid_t cid)
 
static const Function & dart::kernel::TypedListSetNativeFunction (Thread *thread, classid_t cid)
 
static classid_t dart::kernel::TypedDataCidUnboxed (Representation unboxed_representation)
 
static intptr_t dart::kernel::chunk_size (intptr_t bytes_left)
 
static classid_t dart::kernel::typed_data_cid (intptr_t chunk_size)
 
static classid_t dart::kernel::external_typed_data_cid (intptr_t chunk_size)
 

Macro Definition Documentation

◆ CASE [1/2]

#define CASE (   method,
  slot 
)    case MethodRecognizer::k##method:

◆ CASE [2/2]

#define CASE (   name)
Value:
case MethodRecognizer::kTypedData_##name##_factory: \
body += BuildTypedDataFactoryConstructor(function, kTypedData##name##Cid); \
break; \
case MethodRecognizer::kTypedData_##name##View_factory: \
body += BuildTypedDataViewFactoryConstructor(function, \
kTypedData##name##ViewCid); \
break; \
case MethodRecognizer::kTypedData_Unmodifiable##name##View_factory: \
body += BuildTypedDataViewFactoryConstructor( \
function, kUnmodifiableTypedData##name##ViewCid); \
break;
Dart_NativeFunction function
Definition: fuchsia.cc:51
DEF_SWITCHES_START aot vmservice shared library name
Definition: switches.h:32

◆ H

#define H   (translation_helper_)

Definition at line 59 of file kernel_to_il.cc.

◆ I

#define I   Isolate::Current()

Definition at line 61 of file kernel_to_il.cc.

◆ IG

#define IG   IsolateGroup::Current()

Definition at line 62 of file kernel_to_il.cc.

◆ IL_BODY [1/3]

#define IL_BODY (   method,
  slot 
)
Value:
case MethodRecognizer::k##method: \
ASSERT_EQUAL(function.NumParameters(), 1); \
body += LoadLocal(parsed_function_->RawParameterVariable(0)); \
body += LoadNativeField(Slot::slot()); \
break;

◆ IL_BODY [2/3]

#define IL_BODY (   method,
  slot 
)
Value:
case MethodRecognizer::k##method: \
ASSERT_EQUAL(function.NumParameters(), 2); \
body += LoadLocal(parsed_function_->RawParameterVariable(0)); \
body += LoadLocal(parsed_function_->RawParameterVariable(1)); \
body += StoreNativeField(Slot::slot()); \
body += NullConstant(); \
break;

◆ IL_BODY [3/3]

#define IL_BODY (   method,
  slot 
)
Value:
case MethodRecognizer::k##method: \
ASSERT_EQUAL(function.NumParameters(), 2); \
body += LoadLocal(parsed_function_->RawParameterVariable(0)); \
body += LoadLocal(parsed_function_->RawParameterVariable(1)); \
body += StoreNativeField(Slot::slot(), StoreFieldInstr::Kind::kOther, \
body += NullConstant(); \
break;
@ kNoStoreBarrier
Definition: il.h:6301

◆ LOAD_NATIVE_FIELD

#define LOAD_NATIVE_FIELD (   V)

Definition at line 900 of file kernel_to_il.cc.

◆ STORE_NATIVE_FIELD

#define STORE_NATIVE_FIELD (   V)
Value:
V(Finalizer_setCallback, Finalizer_callback) \
V(FinalizerBase_setAllEntries, FinalizerBase_all_entries) \
V(FinalizerBase_setDetachments, FinalizerBase_detachments) \
V(FinalizerEntry_setToken, FinalizerEntry_token) \
V(NativeFinalizer_setCallback, NativeFinalizer_callback) \
V(ReceivePort_setHandler, ReceivePort_handler) \
V(LinkedHashBase_setData, LinkedHashBase_data) \
V(LinkedHashBase_setIndex, LinkedHashBase_index) \
V(SuspendState_setFunctionData, SuspendState_function_data) \
V(SuspendState_setThenCallback, SuspendState_then_callback) \
V(SuspendState_setErrorCallback, SuspendState_error_callback) \
V(WeakProperty_setKey, WeakProperty_key) \
V(WeakProperty_setValue, WeakProperty_value) \
V(WeakReference_setTarget, WeakReference_target)
#define V(name)
Definition: raw_object.h:125

Definition at line 934 of file kernel_to_il.cc.

◆ STORE_NATIVE_FIELD_NO_BARRIER

#define STORE_NATIVE_FIELD_NO_BARRIER (   V)
Value:
V(LinkedHashBase_setDeletedKeys, LinkedHashBase_deleted_keys) \
V(LinkedHashBase_setHashMask, LinkedHashBase_hash_mask) \
V(LinkedHashBase_setUsedData, LinkedHashBase_used_data)

Definition at line 950 of file kernel_to_il.cc.

◆ T

#define T   (type_translator_)

Definition at line 60 of file kernel_to_il.cc.

◆ TYPED_DATA_GET_INDEXED_CASES [1/2]

#define TYPED_DATA_GET_INDEXED_CASES (   clazz)
Value:
case MethodRecognizer::k##clazz##ArrayGetIndexed: \
FALL_THROUGH; \
case MethodRecognizer::kExternal##clazz##ArrayGetIndexed: \
FALL_THROUGH; \
case MethodRecognizer::k##clazz##ArrayViewGetIndexed: \
FALL_THROUGH;

◆ TYPED_DATA_GET_INDEXED_CASES [2/2]

#define TYPED_DATA_GET_INDEXED_CASES (   clazz)
Value:
case MethodRecognizer::k##clazz##ArrayGetIndexed: \
FALL_THROUGH; \
case MethodRecognizer::kExternal##clazz##ArrayGetIndexed: \
FALL_THROUGH; \
case MethodRecognizer::k##clazz##ArrayViewGetIndexed: \
FALL_THROUGH;

◆ Z

#define Z   (zone_)

Definition at line 58 of file kernel_to_il.cc.