Chinaunix

标题: 做过编译器的朋友进来看看 [打印本页]

作者: rocky1972    时间: 2010-01-23 09:59
标题: 做过编译器的朋友进来看看
标题写的不好,因为我本身对编译器的内部原理就不很了解,大牛们别笑话啊。

公司自己开发的一款处理器是非主流的ARM/PPC核,原来的编译器只能编译汇编文件,现在自己想增加编译C代码的功能。
想请教一下版上的大牛没要实现这个需要看哪些资料?从哪里入手比较好?
作者: jzhang918    时间: 2010-01-23 12:26
也就是说你们现在的处理器核的指令集是你们自己设计的?你们现在没有编译器,只有汇编器? 如果你们想实现一个编译器,我觉得移植gcc是个比较好的选择。
作者: readkernel    时间: 2010-01-23 12:45
移植gcc前端吧..复杂程度可想而知..:em12:
作者: rocky1972    时间: 2010-01-24 20:00
标题: 回复 #2 jzhang918 的帖子
>>>>>也就是说你们现在的处理器核的指令集是你们自己设计的?
是的,指令集是自己设计的。

>>>>>你们现在没有编译器,只有汇编器?
恩,汇编器已经实现了,能够正常编译汇编代码。

>>>>> 如果你们想实现一个编译器,我觉得移植gcc是个比较好的选择。
有没有一些入门的文档推荐。
作者: snail_314    时间: 2010-01-25 12:53
标题: 回复 #4 rocky1972 的帖子
gcc后端的文档吧,好像有个gcc internal比较详细。或者llvm的资料应该也比较有帮助。感兴趣搂主是什么公司?君正?应该不是startup的外企吧?
作者: prolj    时间: 2010-01-25 20:30
资料给我吧,我给你port llvm,这样你好了,我也在llvm社区里面混个地位。
作者: rocky1972    时间: 2010-01-25 20:39
原帖由 prolj 于 2010-1-25 20:30 发表
资料给我吧,我给你port llvm,这样你好了,我也在llvm社区里面混个地位。


哈哈,小弟只想混口饭吃而已。
这个活其实不是在项目的计划中,只是我自己好奇而已。
移植内核时经常因为编译器的各种问题而困扰,换换编译器有时确实能解决问题,但是有些情况就不是换编译器能解决的了,只有了解编译器内部的工作原理才能看清问题的本质,所以想利用自己的业余时间自己来移植GCC到这个CPU上。
作者: prolj    时间: 2010-01-25 22:18
那OK啊,给我资料,我来port gcc,顺便在gcc的社区混个地位,反正我就好这口。
作者: jequi    时间: 2010-01-25 22:34
原帖由 rocky1972 于 2010-1-25 20:39 发表


哈哈,小弟只想混口饭吃而已。
这个活其实不是在项目的计划中,只是我自己好奇而已。
移植内核时经常因为编译器的各种问题而困扰,换换编译器有时确实能解决问题,但是有些情况就不是换编译器能解决的了, ...

原来用的是什么编译器啊?
作者: rocky1972    时间: 2010-01-25 22:42
原帖由 jequi 于 2010-1-25 22:34 发表

原来用的是什么编译器啊?



原来只有汇编器,但是没有编译器
作者: jequi    时间: 2010-01-25 22:51
原帖由 rocky1972 于 2010-1-25 22:42 发表



原来只有汇编器,但是没有编译器

噢,看到你前面说编译内核用编译器 还以为有一个在用了

我也在做gcc移植 呵呵
作者: rocky1972    时间: 2010-01-26 11:09
原帖由 jequi 于 2010-1-25 22:51 发表

噢,看到你前面说编译内核用编译器 还以为有一个在用了

我也在做gcc移植 呵呵



内核是往ARM11上移植,编译器用buildroot等编译环境来构建。

需要移植编译器的是另外一个私有处理器,汇编指令还没对外开放,所以只能自己搞了。

>>>>>我也在做gcc移植

做的差不多的话,可以一起交流哦。
作者: jzhang918    时间: 2010-01-27 11:34
标题: 回复 #4 rocky1972 的帖子
> >>>>> 如果你们想实现一个编译器,我觉得移植gcc是个比较好的选择。
> 有没有一些入门的文档推荐。

如果你想自己实现的话,你可以看一下 gcc internals 。

http://gcc.gnu.org/onlinedocs/gccint/

同时找一个类似是port,看一下那个port的代码。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2