Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions
graph_intrinsifier.cc File Reference
#include "vm/compiler/graph_intrinsifier.h"
#include "vm/compiler/backend/block_builder.h"
#include "vm/compiler/backend/flow_graph.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/inliner.h"
#include "vm/compiler/backend/linearscan.h"
#include "vm/compiler/backend/range_analysis.h"
#include "vm/compiler/compiler_pass.h"
#include "vm/compiler/intrinsifier.h"
#include "vm/compiler/jit/compiler.h"
#include "vm/cpu.h"
#include "vm/flag_list.h"

Go to the source code of this file.

Classes

class  dart::GraphIntrinsicCodeGenScope
 

Namespaces

namespace  dart
 
namespace  dart::compiler
 

Macros

#define EMIT_CASE(class_name, function_name, enum_name, fp)
 
#define DEFINE_ARRAY_SETTER_INTRINSIC(enum_name)
 
#define DEFINE_FLOAT_ARRAY_SETTER_INTRINSIC(enum_name)
 
#define DEFINE_SIMD_ARRAY_SETTER_INTRINSIC(enum_name)
 

Functions

 dart::DECLARE_FLAG (bool, print_flow_graph)
 
 dart::DECLARE_FLAG (bool, print_flow_graph_optimized)
 

Macro Definition Documentation

◆ DEFINE_ARRAY_SETTER_INTRINSIC

#define DEFINE_ARRAY_SETTER_INTRINSIC (   enum_name)
Value:
bool GraphIntrinsifier::Build_##enum_name##SetIndexed( \
FlowGraph* flow_graph) { \
return IntrinsifyArraySetIndexed( \
flow_graph, MethodRecognizer::MethodKindToReceiverCid( \
MethodRecognizer::k##enum_name##SetIndexed)); \
}

Definition at line 280 of file graph_intrinsifier.cc.

282 { \
283 return IntrinsifyArraySetIndexed( \
284 flow_graph, MethodRecognizer::MethodKindToReceiverCid( \
285 MethodRecognizer::k##enum_name##SetIndexed)); \
286 }

◆ DEFINE_FLOAT_ARRAY_SETTER_INTRINSIC

#define DEFINE_FLOAT_ARRAY_SETTER_INTRINSIC (   enum_name)
Value:
bool GraphIntrinsifier::Build_##enum_name##SetIndexed( \
FlowGraph* flow_graph) { \
if (!FlowGraphCompiler::SupportsUnboxedDoubles()) { \
return false; \
} \
return IntrinsifyArraySetIndexed( \
flow_graph, MethodRecognizer::MethodKindToReceiverCid( \
MethodRecognizer::k##enum_name##SetIndexed)); \
}

Definition at line 302 of file graph_intrinsifier.cc.

304 { \
305 if (!FlowGraphCompiler::SupportsUnboxedDoubles()) { \
306 return false; \
307 } \
308 return IntrinsifyArraySetIndexed( \
309 flow_graph, MethodRecognizer::MethodKindToReceiverCid( \
310 MethodRecognizer::k##enum_name##SetIndexed)); \
311 }

◆ DEFINE_SIMD_ARRAY_SETTER_INTRINSIC

#define DEFINE_SIMD_ARRAY_SETTER_INTRINSIC (   enum_name)
Value:
bool GraphIntrinsifier::Build_##enum_name##SetIndexed( \
FlowGraph* flow_graph) { \
if (!FlowGraphCompiler::SupportsUnboxedSimd128()) { \
return false; \
} \
return IntrinsifyArraySetIndexed( \
flow_graph, MethodRecognizer::MethodKindToReceiverCid( \
MethodRecognizer::k##enum_name##SetIndexed)); \
}

Definition at line 318 of file graph_intrinsifier.cc.

320 { \
321 if (!FlowGraphCompiler::SupportsUnboxedSimd128()) { \
322 return false; \
323 } \
324 return IntrinsifyArraySetIndexed( \
325 flow_graph, MethodRecognizer::MethodKindToReceiverCid( \
326 MethodRecognizer::k##enum_name##SetIndexed)); \
327 }

◆ EMIT_CASE

#define EMIT_CASE (   class_name,
  function_name,
  enum_name,
  fp 
)
Value:
case MethodRecognizer::k##enum_name: \
if (!Build_##enum_name(graph)) return false; \
break;