Flutter Engine
The Flutter Engine
Classes | Namespaces | Macros | Functions | Variables
linearscan.cc File Reference
#include "vm/compiler/backend/linearscan.h"
#include "vm/bit_vector.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/loops.h"
#include "vm/compiler/backend/parallel_move_resolver.h"
#include "vm/log.h"
#include "vm/parser.h"
#include "vm/stack_frame.h"

Go to the source code of this file.

Classes

struct  dart::ExtraLoopInfo
 

Namespaces

namespace  dart
 

Macros

#define INCLUDE_LINEAR_SCAN_TRACING_CODE
 
#define TRACE_ALLOC(statement)
 

Functions

static intptr_t dart::MinPosition (intptr_t a, intptr_t b)
 
static bool dart::IsInstructionStartPosition (intptr_t pos)
 
static bool dart::IsInstructionEndPosition (intptr_t pos)
 
static intptr_t dart::ToInstructionStart (intptr_t pos)
 
static intptr_t dart::ToInstructionEnd (intptr_t pos)
 
static ExtraLoopInfo * dart::ComputeExtraLoopInfo (Zone *zone, LoopInfo *loop_info)
 
static const GrowableArray< BlockEntryInstr * > & dart::BlockOrderForAllocation (const FlowGraph &flow_graph)
 
static void dart::DeepLiveness (MaterializeObjectInstr *mat, BitVector *live_in)
 
static bool dart::HasOnlyUnconstrainedUsesInLoop (LiveRange *range, intptr_t boundary)
 
static bool dart::HasOnlyUnconstrainedUses (LiveRange *range)
 
static Location::Kind dart::RegisterKindFromPolicy (Location loc)
 
static ParallelMoveInstr * dart::CreateParallelMoveBefore (Instruction *instr, intptr_t pos)
 
static ParallelMoveInstr * dart::CreateParallelMoveAfter (Instruction *instr, intptr_t pos)
 
static UsePosition * dart::FirstUseAfter (UsePosition *use, intptr_t after)
 
static intptr_t dart::FirstIntersection (UseInterval *a, UseInterval *u)
 
template<typename PositionType >
PositionType * dart::SplitListOfPositions (PositionType **head, intptr_t split_pos, bool split_at_start)
 
static bool dart::ShouldBeAllocatedBefore (LiveRange *a, LiveRange *b)
 
static void dart::AddToSortedListOfRanges (GrowableArray< LiveRange * > *list, LiveRange *range)
 
static LiveRange * dart::FindCover (LiveRange *parent, intptr_t pos)
 
static bool dart::AreLocationsAllTheSame (const GrowableArray< Location > &locs)
 
static void dart::EmitMoveOnEdge (BlockEntryInstr *succ, BlockEntryInstr *pred, const MoveOperands &move)
 
static Representation dart::RepresentationForRange (Representation definition_rep)
 

Variables

static constexpr intptr_t dart::kNoVirtualRegister = -1
 
static constexpr intptr_t dart::kTempVirtualRegister = -2
 
static constexpr intptr_t dart::kIllegalPosition = -1
 
static constexpr intptr_t dart::kMaxPosition = 0x7FFFFFFF
 

Macro Definition Documentation

◆ INCLUDE_LINEAR_SCAN_TRACING_CODE

#define INCLUDE_LINEAR_SCAN_TRACING_CODE

Definition at line 21 of file linearscan.cc.

◆ TRACE_ALLOC

#define TRACE_ALLOC (   statement)
Value:
do { \
if (FLAG_trace_ssa_allocator && CompilerState::ShouldTrace()) statement; \
} while (0)

Definition at line 25 of file linearscan.cc.