当前位置: 首页 > news >正文

为网站开发网站之家查询域名

为网站开发,网站之家查询域名,微信小程序线上商城怎么申请,网站开发评审时间安排中间表达形式(IR) 编译器一般被分为前端和后端。 前端会对输入的程序进行词法分析、语法分析和语义分析,然后生成中间表达形式(IR);后端对IR进行优化,生成目标代码 不考虑解释执行的话&#xf…

中间表达形式(IR)

  • 编译器一般被分为前端和后端。

    • 前端会对输入的程序进行词法分析、语法分析和语义分析,然后生成中间表达形式(IR);
    • 后端对IR进行优化,生成目标代码
  • 不考虑解释执行的话,Java源码到最终机器码实际上进行了两轮编译:

    • 源码---->Java字节码(Java编译器)
    • Java字节码----> 机器码(即时编译器)
  • JIT不需要重新进行词法、语法、语义分析,而是直接将Java字节码当做IR。

SSA IR

SSA:静态单赋值
这种IR的特点是每个变量只能被赋值一次,且只有在被赋值以后才能使用。

y = 1;
y = 2;
x = y;对应如下SSA IR伪代码
y1 = 1;
y2 = 2;
x1 = y2;
  • SSA IR的优势
    • 编译器可以识别出赋值未使用的变量
    • 常量折叠、常量传播、强度削减、死代码删除
示例:
x1=4*1024 经过常量折叠后变为 x1=4096
x1=4; y1=x1 经过常量传播后变为 x1=4; y1=4
y1=x1*3 经过强度削减后变为 y1=(x1<<1)+x1
if(2>1){y1=1;}else{y2=1;}经过死代码删除后变为 y1=1
  • SSA IR的存在的问题:不同路径对同一变量设置不同的值,如下
x = ..;
if (x > 0) {y = 0;
} else {y = 1;
}
x = y;解决思路,引入Phi函数(根据不同执行路径,选择不同的值)
x1 = ..;
if (x1 > 0) {y1 = 0;
} else {y2 = 1;
}
y3 = Phi(y1, y2);
x2 = y3;

总之,即时编译器会将 Java 字节码转换成 SSA IR。更确切的说,是一张包含控制流和数据流的 IR 图,每个字节码对应其中的若干个节点(注意,有些字节码并没有对应的 IR 节点)。然后,即时编译器在 IR 图上面进行优化。我们可以将每一种优化看成一个独立的图算法,它接收一个 IR 图,并输出经过转换后的 IR 图。整个编译器优化过程便是一个个优化串联起来的。

Sea of Nodes

HotSpot里的C2采用的是名为 Sea-of-nodes的SSA IR。它最大的特点是去除了变量的概念,直接采用变量所指向的值来进行运算。

http://www.yayakq.cn/news/175025/

相关文章:

  • 有找专业做淘宝网站的美工网站外部推广
  • 网站开发协议中的注意事项上海网站公司建设
  • 烟台网站制作软件黟县网站建设
  • 网站如何做会员登录页面一个网站的tdk是指网站的
  • 网站套餐报价 模版wordpress 代码位置
  • 亚马逊如何做折扣网站的营销wordpress选项卡分页
  • 住房和城乡建设部网站施工员客套企业名录搜索软件
  • 怎么查看网站是否被百度收录学网站开发多久
  • 湛江网站建设公司网页设计模板设计
  • 景区网站的作用我要自学网网页制作视频教程
  • 韩国网站设计欣赏无锡网站建设开发
  • 网站建设需解决问题织梦软件展示网站源码
  • 珠海专业网站建设价格重庆专业做淘宝网站
  • 软件公司网站模板图片传统企业营销型网站建设
  • 怀化建设网站模板之家网页模板
  • 文化共享工程网站建设情况如何在手机上建立自己的网站
  • 做百度网站找谁怎么做像天猫类似的网站
  • 天山路街道网站建设wordpress动漫整站
  • 网站网络服务器是什么情况安顺网站开发
  • 网站定制论文1500字左右单职业传奇手机手游版
  • 水果网站策划书网络公司排名前十名有哪些
  • 表白网站生成器html静态网页作业成品
  • 做网站干什么互联网推广seo
  • 马上飞做的一些网站织梦网站调用工具
  • 正规网站建设哪家好升级网页
  • 大气公司网站源码空间做网站
  • 高端网站制作报价企业网站带数据库
  • 企业网站建设费是无形资产吗应用开发工具有哪些
  • 做兼职的网站 知乎南昌网络排名优化
  • 网站建设顾问电子商务网站建设的步骤一般为