19 NodeVector::iterator
i = nodes->begin();
20 for (;
i != nodes->end(); ++
i) {
24 case IrOpcode::kParameter:
26 case IrOpcode::kEffectPhi:
39 ? common->Int64Constant(
reinterpret_cast<intptr_t
>(ptr))
40 : common->Int32Constant(
41 static_cast<int32_t>(
reinterpret_cast<intptr_t
>(ptr)));
49 size_t n_blocks =
static_cast<size_t>(schedule->
RpoBlockCount()) - 1;
56 String::cast(info->
shared_info()->name())->PrintUC16(os);
66 CommonOperatorBuilder common(graph->
zone());
67 Node*
zero = graph->
NewNode(common.Int32Constant(0));
68 Node* one = graph->
NewNode(common.Int32Constant(1));
69 MachineOperatorBuilder machine;
71 size_t block_number = 0;
72 for (BasicBlockVector::iterator it = blocks->begin(); block_number < n_blocks;
73 ++it, ++block_number) {
74 BasicBlock* block = (*it);
81 Node* inc = graph->
NewNode(machine.Int32Add(), load, one);
86 static const int kArraySize = 6;
87 Node* to_insert[kArraySize] = {
zero, one, base, load, inc, store};
88 int insertion_start = block_number == 0 ? 0 : 2;
91 nodes->insert(insertion_point, &to_insert[insertion_start],
92 &to_insert[kArraySize]);
94 for (
int i = insertion_start;
i < kArraySize; ++
i) {
void SetFunctionName(OStringStream *os)
void SetBlockId(size_t offset, int block_id)
uint32_t * GetCounterAddress(size_t offset)
void SetSchedule(OStringStream *os)
Data * NewData(size_t n_blocks)
Isolate * isolate() const
Handle< SharedFunctionInfo > shared_info() const
BasicBlockProfiler * GetOrCreateBasicBlockProfiler()
static BasicBlockProfiler::Data * Instrument(CompilationInfo *info, Graph *graph, Schedule *schedule)
Node * NewNode(const Operator *op, int input_count, Node **inputs)
static bool IsBasicBlockBegin(const Operator *op)
void SetBlockForNode(BasicBlock *block, Node *node)
int RpoBlockCount() const
BasicBlockVector * rpo_order()
static const Operator * PointerConstant(CommonOperatorBuilder *common, void *ptr)
static NodeVector::iterator FindInsertionPoint(NodeVector *nodes)
Debugger support for the V8 JavaScript engine.