Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
dart::ConstantPropagator Class Reference

#include <constant_propagator.h>

Inheritance diagram for dart::ConstantPropagator:
dart::FlowGraphVisitor dart::InstructionVisitor dart::ValueObject

Public Member Functions

 ConstantPropagator (FlowGraph *graph, const GrowableArray< BlockEntryInstr * > &ignored)
 
- Public Member Functions inherited from dart::FlowGraphVisitor
 FlowGraphVisitor (const GrowableArray< BlockEntryInstr * > &block_order)
 
virtual ~FlowGraphVisitor ()
 
ForwardInstructionIteratorcurrent_iterator () const
 
- Public Member Functions inherited from dart::InstructionVisitor
 InstructionVisitor ()
 
virtual ~InstructionVisitor ()
 
- Public Member Functions inherited from dart::ValueObject
 ValueObject ()
 
 ~ValueObject ()
 

Static Public Member Functions

static void Optimize (FlowGraph *graph)
 
static void OptimizeBranches (FlowGraph *graph)
 
static ObjectPtr Unknown ()
 

Private Member Functions

virtual void VisitBlocks ()
 

Additional Inherited Members

- Protected Member Functions inherited from dart::FlowGraphVisitor
void set_block_order (const GrowableArray< BlockEntryInstr * > &block_order)
 
- Protected Attributes inherited from dart::FlowGraphVisitor
ForwardInstructionIteratorcurrent_iterator_
 

Detailed Description

Definition at line 19 of file constant_propagator.h.

Constructor & Destructor Documentation

◆ ConstantPropagator()

dart::ConstantPropagator::ConstantPropagator ( FlowGraph graph,
const GrowableArray< BlockEntryInstr * > &  ignored 
)

Definition at line 29 of file constant_propagator.cc.

32 : FlowGraphVisitor(ignored),
33 graph_(graph),
34 unknown_(Object::unknown_constant()),
35 non_constant_(Object::non_constant()),
36 constant_value_(Object::Handle(Z)),
37 reachable_(new(Z) BitVector(Z, graph->preorder().length())),
38 unwrapped_phis_(new(Z) BitVector(Z, graph->current_ssa_temp_index())),
39 block_worklist_(),
40 definition_worklist_(graph, 10) {}
#define Z
FlowGraphVisitor(const GrowableArray< BlockEntryInstr * > &block_order)
Definition il.h:11788
static Object & Handle()
Definition object.h:407

Member Function Documentation

◆ Optimize()

void dart::ConstantPropagator::Optimize ( FlowGraph graph)
static

Definition at line 42 of file constant_propagator.cc.

42 {
43 GrowableArray<BlockEntryInstr*> ignored;
44 ConstantPropagator cp(graph, ignored);
45 cp.Analyze();
46 cp.Transform();
47}
ConstantPropagator(FlowGraph *graph, const GrowableArray< BlockEntryInstr * > &ignored)

◆ OptimizeBranches()

void dart::ConstantPropagator::OptimizeBranches ( FlowGraph graph)
static

Definition at line 49 of file constant_propagator.cc.

49 {
50 GrowableArray<BlockEntryInstr*> ignored;
51 ConstantPropagator cp(graph, ignored);
52 cp.Analyze();
53 cp.Transform();
54 cp.EliminateRedundantBranches();
55}

◆ Unknown()

static ObjectPtr dart::ConstantPropagator::Unknown ( )
inlinestatic

Definition at line 39 of file constant_propagator.h.

39{ return Object::unknown_constant().ptr(); }

◆ VisitBlocks()

virtual void dart::ConstantPropagator::VisitBlocks ( )
inlineprivatevirtual

Reimplemented from dart::FlowGraphVisitor.

Definition at line 75 of file constant_propagator.h.

75{ UNREACHABLE(); }
#define UNREACHABLE()
Definition assert.h:248

The documentation for this class was generated from the following files: