博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
飞翔,嵌入式linux
linux嵌入式系统必将大行于天下。专注于linux嵌入式系统的搭键,专注于高效稳定软件的开发,专注底层程序调试技术。
feixiang.cublog.cn
管理博客
发表文章
留言
收藏夹
· 嵌入式资源
}
· 技术文章
· Arm资源
· 技术博客
· linux论坛及网站
}
· 技术文章
· 电子图书
· 技术文章
· 调试工具
}
· 技术文章
· LFS讨论区
博客圈
音乐
相册
文章
· Android
· 邮件服务器
· 硬件
· 关注性能
· 内存管理
· 嵌入式平台
}
· BootLoader
· 交叉编译工具链
}
· glibc
· gcc
· FLASH
· 底层调试技术
· Linux平台技术分析
· 程序设计
· 个人观点
· linux基础知识
· 软件工程
· VC
· License
首页
关于作者
姓名:飞翔 Email:loughsky@sina.com 职业:IT 年龄:32 位置:北京 个性介绍:专注在嵌入式操作系统,以及高效程序调试
||
<<
>>
||
我的分类
文章列表 - gcc
GCC-4.1.0发布
<DIV> <P>这一版本重点在于过程间优化(IPO)框架和相应的优化实现:</P> <UL> <LI>基于剖视的内联,对于一些递归深度小的函数也可以实现内联。 <LI>通过副作用分析确定纯函数和常函数。 <LI>静态变量引用分析和type escape分析,消除冗余load操作和进行更好的寄存器分配。 <LI>提高基于RTL的别名分析。 <LI>全程序优化(-fwhole-program --combine )。</LI></UL> <P>还有一个重点是向量化。自从引入SSA之后,很多优化都基于SSA进行。</P> <P>关于纯函数和常函数:</P> <UL> <LI>纯函数(pure function)是指不会影响它自……
查看全文
发表于:2008-04-14 ┆
阅读(619)
┆
评论(0)
内部连接和外部链接
<DIV> <P>今天看东西,不知道搞到内部链接这个概念上去了,于是翻了Stronstrup的TCPL,和c++编程思想,发现还是后者讲的不错。把英文的东西copy下来。</P> <P>这个概念对写头文件是有帮助的。 <FONT face=Verdana></FONT></P> <H4 align=left>Linkage<A id=Index641 target=_blank name=Index641></A></H4> <DIV align=left> <P><FONT face=Georgia>To understand the behavior of C and C++ programs, you need to know about <EM>linkage</EM>. In an executing program, an identifier is represented by storage in memory that ……
查看全文
发表于:2008-04-08 ┆
阅读(639)
┆
评论(0)
const关键字的internal linkage属性
<DIV>当将const关键字用于声明某个常量时,该标识符自动具备internal linkage属性,即只对相同文件内的函数可见,对其他文件中的函数是不可见的。这可以通过如下的示例程序证明<BR><BR> <BR> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: rgb(230,230,230) 0% 50%; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid; moz-backgr……
查看全文
发表于:2008-04-08 ┆
阅读(530)
┆
评论(1)
gcc和g++的区别
<P>gcc和g++都是GNU(组织)的一个编译器。</P> <P>误区一:gcc只能编译c代码,g++只能编译c++代码<BR>两者都可以,但是请注意:<BR>1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。<BR>2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用……
查看全文
发表于:2008-04-07 ┆
阅读(1559)
┆
评论(4)
Adding New SIMD Instructions to the GCC Back-end
<DIV>Mauricio Alvarez: alvarez (at) ac (dot) upc (dot) edu<BR>Created: 16/09/2005.<BR>Modified: 13.03.2006. <H3><B>1. <A name=Introduction></A>Introduction</B></H3>This guide shows how to include support in the gcc compiler for new instructions that are added to an existing ISA. The idea is to extend an ISA with custom instructions for domain-specific processor acceleration and to support these instructions into the compiler using intrinsics.<BR><BR>This work is based on the PowerPC ISA ……
查看全文
发表于:2008-03-04 ┆
阅读(498)
┆
评论(0)
GCC编译器中和ARM体系结构相关的选项解释
和ARM体系结构相关的选项 <P></P> <P>这些是为ARM(Advanced RISC Machines)结构定义的“-m”开关:</P> <P>-mapcs-frame</P> <P>对所有函数都生成一个遵从ARM程序调用标准的堆栈帧,即使在正确执行代码无需严格这么做时。使用此开关时指定“-fomit-frame-pointer”将不产生叶函数的堆栈帧。缺省情况下是“-mno-apcs-frame”。</P> <P>-mapcs<BR>与“-mapcs-frame”相同。</P> <P>-mapcs-26</P> <P>产生使用26比特程序计数器的处理器代码,遵从APCS 26比特选项的函数调用标准。此开关替代了编译器早期版本中的“-m2”和“-m3”开……
查看全文
发表于:2008-02-26 ┆
阅读(827)
┆
评论(0)
GCC 编译流程及中间 RTL 的探索
<DIV><STRONG>1. GCC 简介<BR></STRONG> 编译器的工作是将源代码(通常使用高级语言编写)翻译成目标代码(通常是低级的目标代码或者机器语言),在现代编译器的实现中,这个工作一般是分为两个阶段来实现的:<BR> <BR> 第一阶段,编译器的前端接受输入的源代码,经过词法、语法和语义分析等等得到源程序的某种中间表示方式。<BR> <BR> 第二阶段,编译器的后端将前端处理生成的中间表示方式进行一些优化,并最终生成在目标机器上可运行的代码。<BR> <BR> GCC(GNU Compiler Collection) 是在 UNIX 以及类 UNIX 平台上广泛……
查看全文
发表于:2008-02-03 ┆
阅读(527)
┆
评论(1)
gcc 在编译时如何去寻找所需要的头文件
<DIV> <P class=MsoNormal style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">当我们给<SPAN lang=EN-US> <?XML:NAMESPACE PREFIX = O /><O:P></O:P></SPAN></SPAN></P> <TABLE class=MsoNormalTable style="BACKGROUND: rgb(224,224,224) 0% 50%; WIDTH: 100%; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial" cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-……
查看全文
发表于:2007-08-10 ┆
阅读(1252)
┆
评论(0)
lds文件的Info
<H2>The GNU linker</H2> <H2><CODE><FONT face=新宋体>ld</FONT></CODE> version 2</H2> <H2>January 1994</H2> <ADDRESS>Steve Chamberlain</ADDRESS> <ADDRESS>Cygnus Support</ADDRESS> <P></P> <HR> <P></P> <H1>Table of Contents</H1> <UL> <LI><A href="http://www.gnu.org/software/binutils/manual/ld-2.9.1/html_mono/ld.html#SEC1" name=TOC1><FONT color=#0000ff>Overview</FONT></A> <LI><A href="http://www.gnu.org/software/binutils/manual/ld-2.9.1/html_mono/ld.html#SEC2" name=TOC2><FONT color=#000……
查看全文
发表于:2007-08-10 ┆
阅读(1307)
┆
评论(0)
GNU-ld链接脚本浅析
<DIV>本文乃转载, 我在其基础上做了少量修改。 原作者的E-mail是<A href="mailto:zhanglei@sict">zhanglei@sict</A>。ac。cn。 完成于2005。11。5-2005。11。8</DIV> <DIV>0。 Contents</DIV> <DIV>1。 概论<BR>2。 基本概念<BR>3。 脚本格式<BR>4。 简单例子<BR>5。 简单脚本命令<BR>6。 对符号的赋值<BR>7。 SECTIONS命令<BR>8。 MEMORY命令<BR>9。 PHDRS命令<BR>10。 VERSION命令<BR>11。 脚本内的表达式<BR>12。 暗含的连接脚本</DIV> <DIV><BR>1。 概论</DIV> <DIV><BR>-------------------------------------------------------……
查看全文
发表于:2007-08-10 ┆
阅读(1727)
┆
评论(0)