惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
美团技术团队
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
T
Tailwind CSS Blog
U
Unit 42
C
Check Point Blog
S
SegmentFault 最新的问题
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
罗磊的独立博客
小众软件
小众软件
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net

博客园 - 姜伟华

HBase的内存使用 我常用的软件列表 How can I handle a destructor that fails 让windows explorer总是打开文件夹视图的方法 转一个windows "无法停止‘通用卷’设备"的解决方法 终于看到外界宣传我们的产品 Intel XML Software Suite了。 将PDF文件放大缩小 一篇非常不错的探讨pure virtual function call错误的文章。 D-LINK DI-524无线路由器变身DI-624,解决BT断线问题 Emacs在FreeNX下不工作 gdb中如何使用shell环境变量 我的GVIM配置 开始写XML Code了 终于毕业了 放弃office,拥抱latex 终于选定了编辑器了 郁闷的夏天 在PearPC上安装Mandrake 9.1 for PPC的经历 今天复旦软院的第一届学生就要毕业了
Jikes RVM中 Java 循环的识别
姜伟华 · 2004-06-30 · via 博客园 - 姜伟华

对于Jikes RVM 2.3.2来说,其基本的循环识别步骤在OPT_LSTGraph.java中。它通过构造LSTGraph(Loop Structure Tree Graph)来识别Java bytecode中的循环。

首先它通过回边(back edge)查找来识别出循环,并确定循环中包括的基本块,然后构造一个OPT_LSTNode来包含这个循环的信息(其header域指向循环的第一个基本块,其loop域包含了循环包含的所有基本块列表)。然后循环之间的相互包含关系是通过OPT_LSTNode的inNodes和outNodes来指向的。即如果循环A包含循环B,那么B在A的outNodes中,A在B的inNodes中。

但是,这个循环的识别功能是比较弱的。它识别的是广义上的循环(for、while等等)。对于for循环的识别实际上还要用到OPT_LoopUnrolling.java中的unrollLeaf方法中的一些功能。