关于编译点滴和博主,有什么想说的,欢迎畅谈
博主你好, 搜索LLVM来到了你的blog, 非常高兴发现你, 呵呵, 我是PHP语言以及Runtime开发者, 经常会需要用到编译相关的知识, 希望可以和博主做个朋友, 博主有IM可以加一下么?
已加,敬请多多关注《编译点滴》
最近在使用 GCC 4.6.2 的C语言编译器,测试发现使用 loongson3a 架设编译出来的程序行为不对,而使用 mips3 则是正常的,可能是编译器的 bug 吧,您有兴趣的话看看吧。 lame 是一个测试样例。
好的,谢谢提醒。多谢。最近项目比较紧,估计时间不充裕,等有时间了吧:)
有新的发现,好像是因为指令集混用导致的,在使用 -march=loongson3a 时,会使用到奇数号的FPR,而其它如C库里是把FPR使用另外的约定使用的,导致的问题。
用户态应用程序使用FPR时,不都是遵照ABI使用的码?C库为什么能混用寄存器。 首先,你两边的代码都是 o32, mips1指令集的码?
昨天晚上仔细研究了一下,情况是这样的, Status 寄存器有个 FR 位,置位的话操作双精度 FPR 的指令就会认为 odd/even 组合的FPR是同一个,只有16个可用。而 FR 复位时则会认为是不同的,有32个可用。FR位同时还表示 FPR 的位宽是32还是64。
引发问题的问题代码是使用 -march=loongson3a 生成的,生成的代码默认误会使用 odd 号的 FPR,代码中默认认为了 FR 位是置位的(与N32的行为是一致的),而问题就在于生成的这个ELF是 o32 的ABI。
博主有没有微博啊。再请教一下,open64 里面的enclosing do loop是怎么个意思
首先,从这个函数体,以及对这个函数的调用情况、以及注释来看,这个函数应该是返回WHIRL中的DO_LOOP信息。其次,这个DO_LOOP是Fortran中才有的一种loop,你可以参考WHIRL手册,看看这个节点的具体含义。 因为对LNO不熟,所以只能根据程序稍作分析,供参考。:)
重点在enclosing , do loop知道。呵呵,那就算了
有微博,但基本没有发过言。嘿嘿,如果想跟踪最新消息,还是来看《编译点滴》吧:)
交换个链接吧? ;)
哈哈,欢迎。赞一下你做的龙芯上的Arch,关注很久了:) Done
我是初学者, 想问一下关于gcc的简单问题: http://download.chinaunix.net/download/0001000/69.shtml 这个网页上,在下载链接上的链接有些名称标了manpages或者是branch update,这些是什么呢?它们是干什么的?如何使用?
hi, iant。 manpages是gcc的帮助手册, branch update和patch类似,主要的差别是branch update一般的改动更大些。
你好,无意中发现了您的网页,发现有好多编译器的内容,并且有众多的关注者。我们公司正好有一个编译器相关职位需要招聘合适的工程师,不知可否借用您的页面,来发布一下我们的招聘信息? 期待您的回复,谢谢。
嘿嘿,欢迎。中科院计算所编译组今年有7个硕士、4个博士毕业。不知NI感不感兴趣,需要我在课题组内广播一下吗? JD发到我邮箱(lkun.erlv@gmail.com)吧,我来发布。
谢谢您了,JD已经发到您的gmail邮箱,麻烦您让大家在发送简历的时候在subject里注明一下:from 中科院计算所编译组,谢谢。
已经收到:)
导航栏是用了什么插件?
默认主题在“外观设置”中,有菜单设置,稍微设定一下菜单分级就行了,不需要插件。
呵呵,我正在用Flex&Bison编写一个类C编译器,目前已经实现了结构体。计划再做几天就试试LLVM。
就是不知道cygwin该用什么包。mingw?或者自己build一个?
。。博主有没有国外编译研究状况的资料啊?
不知道你想了解哪一方面的,编译研究有很多方向,你可以认为和程序员工作相关的都是编译的研究方向:程序验证(安全)、后端优化(面向单核结构)、并行(面向多核,大规模集群,GPU的数据并行)、程序语言(面向对象、并行制导)、新编程模型(Ct,upc等)、虚拟机(Java Virtual Machine, 二进制翻译)。 一时半会我也说不清,推荐你从维基百科上的介绍看起。http://en.wikipedia.org/wiki/Compiler 我也一直想写写这些方面,嘿嘿,现在还没动手写。敬请期待。
09年几位大牛合写了一篇文章,展望未来50年编译研究的发展,也很值得一看:) http://cacm.acm.org/magazines/2009/2/19325-compiler-research-the-next-50-years/fulltext
坤哥,你的博客是怎样推广的?正在努力中!
没有作什么推广,因为写的东西比较偏,一般人不写,而且坚持了一年多,所以慢慢有了很多经常关注的朋友。 你要是有博客什么的话,我可以给你加个友链。
如题
这位哥太犀利了。嘿嘿,话说硕士论文初稿28号之前要写出来,还要准备预答辩,所以写博计划只能再往后推推了,不过这两天就补上,稍安勿躁:)
您好 想换下友情链接。已经给您加好了。http://www.90code.info
链接已经添加,谢谢你:)
无意间进来,踩踩!
我对处理器架构、操作系统和编译都比较感兴趣,博主加油写更多更漂亮的文章出来吧~
谢谢鼓励,一定努力,欢迎多多关注:)
虽然我啥都看不懂,不过还是来看看,关心你吧 其实是等赛赛烫头发太无聊了
理解理解:)
申请交换链接,加油! :-)
谢谢,done。 订阅了你的博客,学到不少:) 你也加油,文章都写的很有深度,尤其是关于多核的。期待你能介绍一下对多核中最后一级共享cache的理解。
为什么对“最后一级”的cache感兴趣?因为它是共享的?
对,共享的。cache利用了程序的局部性,但最后一级cache是共享的。对于多进程或者多线程的程序,多核共享的cache时。多个核上执行的进程/线程就会同时使用最后一级cache。局部性会变差,cache缺失率、cache行冲突会增多。不知道你对这方面有没有什么理解:)
Cache的学问太深了 一家公司Acumem专门做这个的 你可以申请试用下他们的产品 里面的手册非常有看头:)
哇,坤哥,博客什么时候改版了,更漂亮了,哈哈,顶一个!!
换了个主题而已:)
坤哥,今天本来写pdf来着,后来发现您老翻译的指令的确不是那么完美,所以我就没做pdf。反正我基本上跟whirl无缘了,就看英文也能看懂。
呵呵,不好意思。确实是水平有限:)
我现在确实没时间,等我有时间了再跟坤哥一起翻译。
来个链~!~~
Done,写的很不错。学习学习
搜llvm的东西,发觉写的很好,仔细一看,原来是坤哥的博客。。。
过奖,只是看一些论文总结的,纸上谈兵而已:)
啥都看不懂
这是专业技术博客:) 你当然看不懂
坤哥你太博爱了,突壳那种鸟人竟然被你连接了。
编译点滴只谈技术,呵呵:) 喜欢编译的都欢迎。
问个问题哈,Open64咋用GCC前端的啊?从GIMPLE开始翻译?
我不知道那个应不应该叫GIMPLE,反正就是tree.c文件里的。基本从这个文件开始,GCC和Open64就分开了。具体的,我计划写一篇关于open64使用gcc前端的文章发到hellogcc上去。只是一直没有太多空余时间做:) 等有空的时候,就会写写。
tree.c… 您老这范围也太大了,AST、GENERIC、GIMPLE还有Tree-SSA都在这里了。
楼主,你是说hostmonster在你的主机重启之后就再也没有出现过cpu throttling了吗?
我两三周前有经历了一次cpu throttling. 所以,估计只是稍微放宽了一点。 我现在用的是bluehost的主机,不是hostmonster:)
都是原创啊,哪儿有翻译了?你太神了。
@AuntP, 右上角搜“翻译”俩字,你就能找到了:) 现在写的都很肤浅。编译这块,牛人都很低调的。
图书馆的TP312(计算机理论和编程类书).我们学校图书馆好像也是这样的啊! 哥们是武汉的不?
@scottscott, 不是武汉的。图书馆都应该是按照统一的图书分类标准分的,全国都一样的。
好久没写了阿
@zsc, 正在构思:) 别急哈
坤哥,我也想要Fred Chow的open64的PPT~谢谢师兄:-)
@竹子, 见邮箱
更新速度慢了啊~~
@comeagle, 呵呵 您老批评的是,最近正在寻思写些什么呢:) 多来转转哈。
我想要一份Fred Chow的open64的PPT,我的邮箱是sunjun_1123@163.com,谢谢
@sunjun, 已发送,请查收,欢迎来讨论,请不要用于商业目的。
open64的主页上不是能找到么?藏在sf上一个不起眼的目录里。
改版怎么把博客标题改没了?
@王辉, 这个我也发现了。现在标题只出现在任务栏上。 看来还得再改改:)
自从上次撤了友情链接,有一年半没来了,变化很大呀这里,RSS都400了,真给力。呵呵,第一个留言尽然是我的!
接着关注。加油博主!
一晃都一年多了。谢谢鼓励:) 你也一样:) 加油
Name (required)
E-mail (required)
URI
Your Comment
You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
有人回复时邮件通知我
博主你好, 搜索LLVM来到了你的blog, 非常高兴发现你, 呵呵, 我是PHP语言以及Runtime开发者, 经常会需要用到编译相关的知识, 希望可以和博主做个朋友, 博主有IM可以加一下么?
已加,敬请多多关注《编译点滴》
最近在使用 GCC 4.6.2 的C语言编译器,测试发现使用 loongson3a 架设编译出来的程序行为不对,而使用 mips3 则是正常的,可能是编译器的 bug 吧,您有兴趣的话看看吧。 lame 是一个测试样例。
好的,谢谢提醒。多谢。最近项目比较紧,估计时间不充裕,等有时间了吧:)
有新的发现,好像是因为指令集混用导致的,在使用 -march=loongson3a 时,会使用到奇数号的FPR,而其它如C库里是把FPR使用另外的约定使用的,导致的问题。
用户态应用程序使用FPR时,不都是遵照ABI使用的码?C库为什么能混用寄存器。
首先,你两边的代码都是 o32, mips1指令集的码?
昨天晚上仔细研究了一下,情况是这样的, Status 寄存器有个 FR 位,置位的话操作双精度 FPR 的指令就会认为 odd/even 组合的FPR是同一个,只有16个可用。而 FR 复位时则会认为是不同的,有32个可用。FR位同时还表示 FPR 的位宽是32还是64。
引发问题的问题代码是使用 -march=loongson3a 生成的,生成的代码默认误会使用 odd 号的 FPR,代码中默认认为了 FR 位是置位的(与N32的行为是一致的),而问题就在于生成的这个ELF是 o32 的ABI。
博主有没有微博啊。再请教一下,open64 里面的enclosing do loop是怎么个意思
首先,从这个函数体,以及对这个函数的调用情况、以及注释来看,这个函数应该是返回WHIRL中的DO_LOOP信息。其次,这个DO_LOOP是Fortran中才有的一种loop,你可以参考WHIRL手册,看看这个节点的具体含义。
因为对LNO不熟,所以只能根据程序稍作分析,供参考。:)
重点在enclosing , do loop知道。呵呵,那就算了
有微博,但基本没有发过言。嘿嘿,如果想跟踪最新消息,还是来看《编译点滴》吧:)
交换个链接吧? ;)
哈哈,欢迎。赞一下你做的龙芯上的Arch,关注很久了:)
Done
我是初学者, 想问一下关于gcc的简单问题:
http://download.chinaunix.net/download/0001000/69.shtml 这个网页上,在下载链接上的链接有些名称标了manpages或者是branch update,这些是什么呢?它们是干什么的?如何使用?
hi, iant。 manpages是gcc的帮助手册, branch update和patch类似,主要的差别是branch update一般的改动更大些。
你好,无意中发现了您的网页,发现有好多编译器的内容,并且有众多的关注者。我们公司正好有一个编译器相关职位需要招聘合适的工程师,不知可否借用您的页面,来发布一下我们的招聘信息? 期待您的回复,谢谢。
嘿嘿,欢迎。中科院计算所编译组今年有7个硕士、4个博士毕业。不知NI感不感兴趣,需要我在课题组内广播一下吗? JD发到我邮箱(lkun.erlv@gmail.com)吧,我来发布。
谢谢您了,JD已经发到您的gmail邮箱,麻烦您让大家在发送简历的时候在subject里注明一下:from 中科院计算所编译组,谢谢。
已经收到:)
导航栏是用了什么插件?
默认主题在“外观设置”中,有菜单设置,稍微设定一下菜单分级就行了,不需要插件。
呵呵,我正在用Flex&Bison编写一个类C编译器,目前已经实现了结构体。计划再做几天就试试LLVM。
就是不知道cygwin该用什么包。mingw?或者自己build一个?
。。博主有没有国外编译研究状况的资料啊?
不知道你想了解哪一方面的,编译研究有很多方向,你可以认为和程序员工作相关的都是编译的研究方向:程序验证(安全)、后端优化(面向单核结构)、并行(面向多核,大规模集群,GPU的数据并行)、程序语言(面向对象、并行制导)、新编程模型(Ct,upc等)、虚拟机(Java Virtual Machine, 二进制翻译)。
一时半会我也说不清,推荐你从维基百科上的介绍看起。http://en.wikipedia.org/wiki/Compiler
我也一直想写写这些方面,嘿嘿,现在还没动手写。敬请期待。
09年几位大牛合写了一篇文章,展望未来50年编译研究的发展,也很值得一看:)
http://cacm.acm.org/magazines/2009/2/19325-compiler-research-the-next-50-years/fulltext
坤哥,你的博客是怎样推广的?正在努力中!
没有作什么推广,因为写的东西比较偏,一般人不写,而且坚持了一年多,所以慢慢有了很多经常关注的朋友。 你要是有博客什么的话,我可以给你加个友链。
如题
这位哥太犀利了。嘿嘿,话说硕士论文初稿28号之前要写出来,还要准备预答辩,所以写博计划只能再往后推推了,不过这两天就补上,稍安勿躁:)
您好 想换下友情链接。已经给您加好了。http://www.90code.info
链接已经添加,谢谢你:)
无意间进来,踩踩!
我对处理器架构、操作系统和编译都比较感兴趣,博主加油写更多更漂亮的文章出来吧~
谢谢鼓励,一定努力,欢迎多多关注:)
虽然我啥都看不懂,不过还是来看看,关心你吧
其实是等赛赛烫头发太无聊了
理解理解:)
申请交换链接,加油! :-)
谢谢,done。
订阅了你的博客,学到不少:) 你也加油,文章都写的很有深度,尤其是关于多核的。期待你能介绍一下对多核中最后一级共享cache的理解。
为什么对“最后一级”的cache感兴趣?因为它是共享的?
对,共享的。cache利用了程序的局部性,但最后一级cache是共享的。对于多进程或者多线程的程序,多核共享的cache时。多个核上执行的进程/线程就会同时使用最后一级cache。局部性会变差,cache缺失率、cache行冲突会增多。不知道你对这方面有没有什么理解:)
Cache的学问太深了 一家公司Acumem专门做这个的 你可以申请试用下他们的产品 里面的手册非常有看头:)
哇,坤哥,博客什么时候改版了,更漂亮了,哈哈,顶一个!!
换了个主题而已:)
坤哥,今天本来写pdf来着,后来发现您老翻译的指令的确不是那么完美,所以我就没做pdf。反正我基本上跟whirl无缘了,就看英文也能看懂。
呵呵,不好意思。确实是水平有限:)
我现在确实没时间,等我有时间了再跟坤哥一起翻译。
来个链~!~~
Done,写的很不错。学习学习
搜llvm的东西,发觉写的很好,仔细一看,原来是坤哥的博客。。。
过奖,只是看一些论文总结的,纸上谈兵而已:)
啥都看不懂
这是专业技术博客:)
你当然看不懂
坤哥你太博爱了,突壳那种鸟人竟然被你连接了。
编译点滴只谈技术,呵呵:)
喜欢编译的都欢迎。
问个问题哈,Open64咋用GCC前端的啊?从GIMPLE开始翻译?
我不知道那个应不应该叫GIMPLE,反正就是tree.c文件里的。基本从这个文件开始,GCC和Open64就分开了。具体的,我计划写一篇关于open64使用gcc前端的文章发到hellogcc上去。只是一直没有太多空余时间做:)
等有空的时候,就会写写。
tree.c… 您老这范围也太大了,AST、GENERIC、GIMPLE还有Tree-SSA都在这里了。
楼主,你是说hostmonster在你的主机重启之后就再也没有出现过cpu throttling了吗?
我两三周前有经历了一次cpu throttling. 所以,估计只是稍微放宽了一点。 我现在用的是bluehost的主机,不是hostmonster:)
都是原创啊,哪儿有翻译了?你太神了。
@AuntP, 右上角搜“翻译”俩字,你就能找到了:)
现在写的都很肤浅。编译这块,牛人都很低调的。
图书馆的TP312(计算机理论和编程类书).我们学校图书馆好像也是这样的啊!
哥们是武汉的不?
@scottscott, 不是武汉的。图书馆都应该是按照统一的图书分类标准分的,全国都一样的。
好久没写了阿
@zsc, 正在构思:) 别急哈
坤哥,我也想要Fred Chow的open64的PPT~谢谢师兄:-)
@竹子, 见邮箱
更新速度慢了啊~~
@comeagle, 呵呵 您老批评的是,最近正在寻思写些什么呢:)
多来转转哈。
我想要一份Fred Chow的open64的PPT,我的邮箱是sunjun_1123@163.com,谢谢
@sunjun, 已发送,请查收,欢迎来讨论,请不要用于商业目的。
open64的主页上不是能找到么?藏在sf上一个不起眼的目录里。
改版怎么把博客标题改没了?
@王辉, 这个我也发现了。现在标题只出现在任务栏上。 看来还得再改改:)
自从上次撤了友情链接,有一年半没来了,变化很大呀这里,RSS都400了,真给力。呵呵,第一个留言尽然是我的!
接着关注。加油博主!
一晃都一年多了。谢谢鼓励:)
你也一样:)
加油