HGraph&HBasicBlock

HGraph是表示方法控制流图的结构,包含一系列HBasicBlock。每个HBasicBlock作为双向链表的指令序列,知道其前驱和后继。ArenaAllocator是一种内存分配技术,用于高效分配和释放大块内存。HInvoke则对应Dalvik的调用指令,如invoke-virtual、invoke-direct等,它们在运行时动态或静态地确定调用的目标方法。
摘要由CSDN通过智能技术生成

HGraph是一个method的控制流图。包含a list of basic blocks。
该类的私有变量有:

 328   ArenaAllocator* const arena_;//该图所在的arena
 329 
 330   // List of blocks in insertion order.以插入顺序形成的基本块表
 331   GrowableArray<HBasicBlock*> blocks_;
 332 
 333   // List of blocks to perform a reverse post order tree traversal.形成倒序树型遍历的基本块表
 334   GrowableArray<HBasicBlock*> reverse_post_order_;
 335 
 336   // List of blocks to perform a linear order tree traversal.形成线性树型遍历的基本快表
 337   GrowableArray<HBasicBlock*> linear_order_;
 338 
 339   HBasicBlock* entry_block_;//入口块
 340   HBasicBlock* exit_block_;//出口块
 341 
 342   // The maximum number of virtual registers arguments passed to a HInvoke in this graph.
       //在该图中传递给HInvoke的虚拟寄存器参数的最大值。
 343   uint16_t maximum_number_of_out_vregs_;
 344 
 345   // The number of virtual registers in this method. Contains the parameters.
     //本方法中的虚拟寄存器的数量。包括参数。
 346   uint16_t number_of_vregs_;
 347 
 348   // The number of virtual registers used by parameters of this method.
     //本方法的参数所使用的虚拟寄存器的数量
 349   uint16_t number_of_in_vregs_;
 350 
 351   // Number of vreg size slots that the temporaries use (used in baseline compiler).
     //临时使用的vreg size slots的数量(在baseline compiler中使用,即无优化的编译器)
 352   size_t temporaries_vreg_slots_;
 353 
 354   // Has bounds checks. We can totally skip BCE if it's false.</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值