相关疑难解决方法(0)

C/C++优化离开检查以查看之前是否已运行过某个功能

假设您在C/C++中有一个函数,它在第一次运行时表现出某种特定的行为.然后,所有其他时间它表现出另一种方式(例如见下文).在第一次运行之后,if语句变得多余,如果速度很重要,可以将其优化掉.有没有办法进行这种优化?

bool val = true; 

void function1() {

   if (val == true) {
      // do something
      val = false; 
   }
   else {
      // do other stuff, val is never set to true again 
   }

}
Run Code Online (Sandbox Code Playgroud)

c c++ optimization performance

18
推荐指数
3
解决办法
4128
查看次数

什么是可以编译自身的*概念*最小*编译器*?

本着这个问题的精神,我想问一个类似的问题,但是关于编译器,而不是解释器.

什么是可以编译自己的代码的概念上最小的编译器?

当我说"概念上最小"时,我的意思是它只使用非常基本的概念并从那里构建,而不是它包含非常短的代码.为什么这是一个重要的区别的一个例子是OTCC是一个非常小的C编译器,它很小,因为它被混淆,不一定是因为它在概念上很简单(它也可能在概念上很简单,但我不知道;它被混淆了).

我还想补充一点,以下也可能是一个非常概念上的小程序,但实际上并没有告诉我们发生了什么,所以它并不是我正在寻找的:

(writefile argv[2] (generate (parse (readfile argv[1]))))
Run Code Online (Sandbox Code Playgroud)

我真正想要的是一种语言:

  1. 图灵完成.
  2. 能够编译自己.

我对此感兴趣因为

  1. 这将是一个有趣的案例研究和
  2. 它可以作为引导编译器的起点.

如果它不存在,我可能只是自己写.:)

compiler-construction

14
推荐指数
3
解决办法
3207
查看次数

使用 Code Sourcery 编译 GCC

是否可以使用 Code Sourcery G++ 为 ARM(主机 == 目标 == ARM)编译本机 GCC?如果不可能,我可以使用 crosstool-NG 来构建交叉编译,然后使用这个来编译本机 ARM GCC 吗?

谢谢,


编辑:至于原因:我正在为beagleboard创建自己的发行版......

compiler-construction gcc arm beagleboard

5
推荐指数
1
解决办法
2206
查看次数