• 啥是nanojit?

Javascript的JIT后端,原先firefox直接使用javascript解释器,效率比较低。nanojit可以将频繁执行的javascript代码直接翻译为机器码执行,效率更高,性能更好。详细的介绍可以参看这篇文章:an overview of TraceMonkey,  (我是中国人,我要看中文 ).本博还有一篇英文介绍,自己的蹩脚英语拙作。确实闲着无聊可以猛击这里

  • 咋又蹦出来个tracemonkey?

这得先从spidermonkey说起,spidermonkey是firefox里的Javascprit解释器。因为增加了Nanojit,这种通过跟踪(trace)热JAVAscript代码的JIT。所以改名叫tracemonkey。

  • 我只关心这个firefox!

那就从这个地址下载吧,firefox_release.mips1-1_mipsel.deb. 下载之后切换到root帐号或者直接执行。注意目前Nanojit只测试了O32的龙芯,龙芯默认的操作系统和其他Debian衍生系统都能使用(目前测试了debian-en和Rays,没有问题).目前2E和2F的机器都能使用。N32的gentoo系统还不支持。 Continue reading »

 

工作如果是和编译器相关的或者编译器爱好者们,谁没有点冲动想自己写个编译器出来。我也做了一些调研,分享如下:

–介绍如何使用JAVA语言完成一个面向LLVM后端的编译器,以mjava作为目标语言,这是JAVA语言的一个子集。包括词法分析,语法分析,错误控制,符号表管理,类型检查等部分

–采用一种逐步增加功能的方式构造编译器,作者的文章写的很深入前出(我只看了abstract和introduction部分)

–作者从1988-1995年用了7年的时间完成了这份介绍。没有使用flex和yacc这些东西,纯手工制作。使用pascal语言写出的编译器。是一位学物理的博士,很是钦佩!

MIT OCW 6.035 Computer Language EngineeringMIT关于计算机工程的开放课程,使用JAVA语言创建一个完整的Decaf语言编译器。我也曾看过一点,但这门课的实验要求有MIT的环境,还有一些库什么的。外面的人拿不到,所以没办法,只能作参考了。

–编译器课程,使用C++实现一个Cool(Classroom Object-Oriented Language)语言编译器.也是因为没有缓环境和库,只能作罢。

– 很有特色的一门课,也是使用C++实现COOL语言的编译器,但将LLVM融入进来,前端输出中间表示到LLVM,在作一些后端的实验。另外UIUC还有一门高级的编译器课程,是使用JAVA语言来编写。重要的是这个CS426 能够下到所有课程的资料,包括源码。 感兴趣的朋友可以试试。

– 这个系列的文章主张使用现有的工具体验如何实现编译器。注重快速高效的实现,主要关注前端。有兴趣了解和学习LLVM 中间表示和工作机制的朋友不要错过。

还有如下的参考资料(¶ Link to a PDF, $ Link to a printed book):

两个新闻组,可以上去请教问题:

想起某人在饭桌上曾经的感慨,I have a dream…..
一直以来,都觉得编译器高深莫测。做个编译器出来,或许很难,但做了可能就不能。 可能是勇气不足。再等等吧,总有一天我要把它实现!。。。。。。。

 

循环嵌套优化(LNO)
此文是Fred Chow在德拉华大学所讲open64课程讲义的翻译,转载请注明出处 http://www.lingcc.com
Fred Chow 原版讲义见最后一页

  • 循环嵌套优化

循环嵌套优化(LNO)概述
该优化主要在嵌套循环上做转换。该部分工作的范围时每个顶层循环内的嵌套,优化分析过程中并不构建控制流图,而是通过数据依赖分析驱动。使用标量优化阶段(WOPT)提供的别名和使用-定义信息,并通过代码生成器将数据依赖信息附注在每个use上(仅在最内层循环),这部分优化需要对硬件资源建模。

  • 依赖测试

依赖的定义:给定两个引用R1和R2,若它们都访问同一块内存且从R1到R2有路径存在,则称R2依赖于R1,依赖分为:真依赖,反向依赖(anti dependence)和输出依赖三种。另外还要说明访问数组和向量(vector)的区别,访问数组当每个数组的下表时循环归纳变量时,访问向量时所有的向量下标都访问数组。依赖测试(输入是访问数组时),参考论文<高效精准的数据依赖分析>(Efficient and Exact Data Dependence Analysis),Dror Maydan,et al.., PLDI’91. 依赖测试的输出是依赖向量,每一维表示一个循环嵌套的层。

  • LNO实施的三类优化

数据缓存转换(?),协助其他优化的转换,向量化和并行化 Continue reading »

 

今天的会议日程比昨天轻松。五个报告。

  1. 台湾资讯研究院的游本中老师,未来编译研究的潜在领域展望。
  2. 江南所,关于精细编译调优的
  3. 计算所,关于并行的
  4. 上交 关于llvm的
  5. 武大 关于MCU编译器开发的

其中,游老师的演讲最为重量级,也对我们这些晚生最有指导意义。大牛就是大牛,在美国混了这么久,现在又是台湾某个研究所的所长,编译领域的了解可谓渊博,虽然还谦虚的说自己的讲义只是匆匆的准备,但是演讲的过程却功底颇厚。 Continue reading »

 

Simplnano 刚刚提交了自己后端的代码,ICT马上也要提交一部分,接下来AMD的patch也要进来了。
性能和正确性真的不能兼顾?在研究研究吧,可能还有戏。

 

此文是Fred Chow在德拉华大学所讲open64课程讲义的翻译,转载请注明出处 http://lingcc.com
若需要此讲义的原版,请email我

Fred Chow 原版讲义见最后一页

—————————————————

1.优化控制哲学

  • 低优化级别–更短优化时间,更安全优化,更精确的计算,较缓慢的代码产生速度
  • 高优化级别–较长优化时间,更激进优化,精确性让步于高性能,更快的代码生成
  • 通过大量选项较好的控制优化–PathOpt2(?)提供了很多帮助

Continue reading »

 

受够了百度空间的不务正业,看腻了无数博客被墙的惨痛经历,在无比复杂的思想斗争和砸锅卖铁的决心之后,本博决定自己掏钱买空间。

花了97刀买了这个空间,还有个域名,尚不知如何绑定,暂时使用主机商提供的免费域名。以后可以通过网址:http://lingcc.com 找到我了。完全属于自己的空间,用着就是自在。

欢迎各位光临。

本博将关注以下内容:编译器架构设计,编译器后端优化,Open64,gcc编译器等的相关内容,另外还有我自己的Gentoo linux使用情况和生活琐事。欢迎光临。
Continue reading »

 

这是Fred chow 在德拉华大学所讲的open64课程讲稿的翻译。若需要原文ppt,请发邮件向我索取。
转载请注明出处: http://lingcc.com

Fred Chow 原版幻灯片见最后一页
1,历史:
1980-83 斯坦福大学RISC编译器研究
1987 MIPS Ucode编译器(R2000) -O2下的全局优化
1991 MIPS UCode编译器(R4000) -O3下的循环优化

另外:
1989 Cydrome Cydra5编译器 软流水优化
1994  SGI Ragnarok编译器(R8000) 浮点性能优化(Floating-pt performance?)

1997年SGI将上面两个分支连同斯坦福SUIF的工作,Rice的IPA整合在一起发布MIPSpro编译器(R10000)
2000年Pro64/Open64编译器(安腾)诞生

2,Open64大事记:
Continue reading »

 

GNOME 2.22 是 GNOME 桌面环境目前最新的稳定版,该版本计划在今天正式发布。根据 GNOME 项目团队的开发周期,每隔 6 个月,GNOME 都会发布一个新的版本。可以预见的是,在 Ubuntu 8.04、Fedora 9、openSUSE 11 等 Linux 发行版中都将装载 GNOME 2.22。在 GNOME 2.22 中都有哪些新特性,让我们一起来关注。

Cheese:摄像头程序

Cheese 是一个有趣的小程序,它允许用户从摄像头拍摄照片或录制视频。之所以说它有趣,是因为该程序自带了许多神奇的效果,你只需轻点鼠标就可以将其应用到所拍摄的照片或录制的视频上。试试 Cheese,相信你会喜欢它的。

Metacity:加入了窗口混合特性

GNOME 桌面环境的默认窗口管理器 Metacity 已经具有了混合特性,这使得你的桌面即使不用 Compiz,也可以获得诸如下拉阴影、窗口透明、以及 Alt+Tab 切换效果。

Totem:支持 DVD 及 DVB 播放

在 GNOME 中的电影播放器 Totem 已改进了对 DVD 及 DVB (数字电视) 播放的支持。

GVFS

GNOME 2.22 引入了 GVFS。GVFS 为文件传输/复制/移动对话框提供更多信息,并支持使用诸如 cdda://、gphoto2:// 等之类的新协议来访问。

Clock applet:支持显示多个时区

时钟面板程序引入了从世界各地显示多个时区的新功能。

Evolution:更多改善

Evolution 不仅支持 Google Calendar,而且能够为邮件打 tag。此外,在垃圾邮件过滤方面也有新的进展。

Vinagre:远程桌面

GNOME 2.22 加入了新的远程桌面程序 Vinagre,它支持浏览服务器网络,并允许收藏经常使用的连接。

键盘设置:更加简单

GNOME 2.22 对 Keyboard Preferences 窗口进行了重新设计,使键盘的设置更加简单。

其他特性

在 GNOME 2.22 中增加的其他特性也值得注意,包括:改善了屏幕阅读和放大功能,新的 Mousetweaks 鼠标工具,集成了 PolicyKit,更佳的系统工具,在 Deskbar 中可以直接打开 Evolution 联系人,改进了文本编辑器 gedit 的打印功能,Chess 支持网络多玩家对战,Epiphany 支持 Webkit 后端和下载通知功能,存档管理器支持 LZMA (7-zip),当烧录 CD 时能禁止自动挂机和休眠,文档查看器 Evince 具有更快的执行速度、更低的内存占用及支持页面过渡效果 (PDF slideshows),Tomboy 支持分类整理笔记,Sound Juicer 支持更多的元数据,计算器程序的精度和可用性都得到了改进,Keyring Manager 被 Seahorse 完全取代,等等。

 

导语:《福布斯》网站今天发表分析文章称,得益于外包业务迅猛发展,印度经济一直保持着较高的增长速度。但是,随着劳动力成本不断提升,印度外包业务可能会走向

衰亡。

*成本优势下滑*

根据印度IT行业组织Nasscom公布的数据,印度IT和支持服务2008年将提供400万个就业机会,在国内生产总值中所占比例达7%,在外汇流入中所占比例达33%。在任何人的脑海中,都不会认为这样一个行业会走向衰退。但现实情况是,印度的工资水平正在不断提高。印度外包业务的成本优势已经由过去的至少1比6变为今天的最多1比3,形势十分严峻。未来10年里,那些低增值和容易被自动化替代的外包工作将逐步在印度消失。

一些人可能对此有不同看法,他们认为印度正在提高整个价值链。在某些时候,这种情况的确在发生。当印度软件工程师成功解决了老软件代码中存在的"千年虫"问题之后,印度软件行业吸引了全球的关注,并迅速发展壮大,并带动了IT服务行业的全面发展。但是,尽管在某些方面有过辉煌,印度整体而言仍然是全世界的后端办公室。印度科技行业是一个服务行业,印度人不负责思考,而只负责执行客户的想法。

基于这一原因,印度并没有学会创造自己的科技产品。除了少许例外,绝大多数在印度寻找机会的风险投资者都无功而返。由于难以找到合适的交易,很多以科技为主的风险投资者只能将资金转向零售、房地产、酒店和其它非科技领域。印度IT和支持服务行业的总产值已经达到300亿美元,但整体而言,这一行业的增长速度正在减缓,而且肯定会失去竞争优势。

在印度IT和支持服务行业所雇佣的400万名从业人员中,绝大多数人都已经实现了自己原来设定的人生目标。他们已经拥有了自己父辈用一辈子去追求的东西,例如一部手机、一块手表、一台电视机、一辆汽车、以及一套房子。他们对自己的生活非常满意,因此不愿意去承担风险。他们也将这种想法"外包"给了客户。

如果印度外包业务的成本优势由1比3变为1比1.5,
那么再使用印度劳动力也就失去了意义。为何不将工作转移至美国奥克拉荷马或英国哥伦比亚呢?对于很多欧洲人来说,东欧已经比印度更具吸引力。可以说,印度仅仅依靠劳动力成本优势就包打天下的局面已经一去不复返。

*SaaS构成威胁*

美国最大的雇主服务提供商ADP在全球拥有4.5万名员工,但只有约2500人在印度。ADP在德克萨斯州El
Paso拥有约1000名员工,目前正计划向乔治亚州Augusta扩展业务,并在密西西比州Jackson开设一家办事机构。ADP还希望在加拿大
Halifax有所发展,但由于地理位置方面的原因,该公司并没有将业务外包到印度的打算。在近期召开的电话会议上,ADP首席执行官将公司的这一战略成为"精明外包"和"就近外包"。

对于印度外包服务行业而言,"软件即服务"(SaaS)趋势的兴起也是一个不利的因素。以硅谷创业公司
InsideView为例,这家公司主要帮助客户生成销售引导,以及使用技术工具为客户寻找大的销售机会。2007年11月,InsideView收购了一家名为TrueAdvantage的公司。TrueAdvantage的业务与InsideView类似,不同之处在于,该公司在印度拥有一支150人的团队,所有工作都手工完成。交易完成之后,InsideView将TrueAdvantage所有2500家客户都转移至其SaaS解决方案,而后者的
150名印度员工则被裁员。

面对这一趋势,Infosys和Wipro等印度软件巨头必须改变原有战略,由单一的专业代工和处理向技术驱动转型。当然,它们也可以打造或收购SaaS业务。但到目前为止,这种情况还没有发生。例如,Infosys每年仍在印度招聘数千名新员工,主要从事一些低技术含量的工作。对于印度IT和支持服务行业未来的发展前景,Nasscom非常乐观,预计这一行业未来几年可以保持25%的年均增长速度。原因很简单,这只"金鹅"仍在下着硕大、温暖的金蛋,足以养活400万人和他们的家庭。

最新数据显示,印度的工资水平一直加速增长。 2007年,印度平均工资水平增长了15.1%,增幅高于2006年的14.4%。2008年,
印度平均工资水平的增幅将达到15.2%
,连续五年的增幅超过10%。再考虑到印度卢比对美元大幅升值的因素,印度劳动力成本的优势将会越来越小。那么,印度IT外包行业走向衰退还会远吗?假设印度工

资水平每年增长15%,2007年的成本优势为1比3,那么这一优势将于2015年后消失。到那个时候,将会发生什么

2009-2011© 编译点滴 Suffusion theme by Sayontan Sinha

无觅相关文章插件,快速提升流量