JIT 可以应用多少指令级优化?
JIT 在多大程度上可以用特定于处理器的机器指令替代平台无关的代码? 例如,x86 指令集包括用于反转 32 位整数字节顺序的 BSWAP 指令。在 Java 中,In…
什么是寄存器缓存以及它与 const 变量有什么关系?
来自 http://www.parashift.com/c++- faq-lite/const- Correctness.html#faq-18.14: 即使该语言禁止 const_cast,避免通过 const 成员函数调用刷新寄…
布尔操作数的短路没有副作用
对于赏金:如何在不禁用或降低优化级别的情况下禁用此行为? 以下条件表达式是在 MinGW GCC 上编译的3.4.5,其中 a 是 signed long 类型,m 是 unsign…
GCC 4.3/4.4 与 MSC 6 在 i386 优化上的尺寸失败
我不确定我做错了什么,但我尝试阅读有关 GCC 调用约定的手册,但发现没有任何有用的东西。我当前的问题是 GCC 为一个非常简单的操作生成过大的代码,…
各种编译器调试标志之间有什么区别?
我找到了 ifort 调试标志列表。但是,我对调试标志的一些解释感到困惑。正如它所说,-debug 可以配置为全部、完整、最小和无。请问“-debug all”和“…
LLVM 做了哪些类型的优化以及其前端必须自行实现哪些类型的优化?
注意:我注意到这个问题与这个问题有很大关系,所以如果如果您对我的问题感兴趣,您也绝对应该阅读另一个问题及其答案。 我可以想到 OOP 语言前端可以…
编译器通常对字符串有特殊的优化吗?
很多时候,您会看到类似 std::map m_named_objects; 或 std::string state; //... if(state == "EXIT") exit(); else if(state == "california") hot(…
编译器可以简化涉及函数的逻辑表达式吗?
一些计算布尔值的函数: bool a() { return trueorfalse; } bool b() { //... } bool c() { //... } 这个条件 //somewhere else if((a()&&b()&&c(…
VB 2010 Express:Debug.WriteLine 在调试版本中完全优化?
似乎没有涵盖的简单问题:如果我在代码中使用大量 Debug.WriteLine 语句,它们在我的生产版本中会完全不存在吗? 我的意思是:编译器是否足够聪明,不…
为什么 C++如果写入后没有代码,编译器只会消除无用的写入?
我正在检查 Visual C++ 10 优化功能,发现了一个相当奇怪的事情。本文所有代码均使用 /O2 编译。 在以下代码中: int _tmain(int argc, _TCHAR* argv[…
声明 Lisp 函数“纯”的能力是否会成为现实?有好处吗?
我最近读了很多关于 Haskell 的内容,以及它从纯粹中获得的好处 函数式语言。 (我对讨论 Lisp 的 monad 不感兴趣)对我来说,(至少在逻辑上)尽可能…
Python 是否优化循环中的函数调用?
比如说,我有一段代码从循环中调用某个函数数百万次,并且我希望代码能够快速: def outer_function(file): for line in file: inner_function(line) …
调用一个空函数需要多长时间?
我有一个实现接口的项目列表。对于这个问题,让我们使用这个示例界面: interface Person { void AgeAYear(); } 有两个类 class NormalPerson : Perso…
优化不会出现在 EXE 中的 DLL 是否有任何注意事项?
我通常熟悉 -O2 或 -O3 开关执行的各种优化。 我已经被一些特定于构建 DLL 的问题所困扰,而这些问题在编写平面可执行文件时不会出现,所以在我开始打…