问题标签 [constantfolding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - 这两个 eval 之间的区别是否用常量折叠来解释?
鉴于这两个仅更改Module::FOO()
和的评估FOO()
。
为什么顶部块占用的空间要少得多?脚本和输出复制如下,
脚本
结果
包(命名空间)合格
本地进口
perl - 如何在 Perl 中禁用常量折叠?
给定一个类似的命令,
如何禁用常量折叠,这样
给我看
或之类的。理想情况下,我希望这是一个适用于所有 Perl 的编译器选项。你可以在 perl 邮件列表的这个线程中看到这个话题,[perl #97942] [PATCH] 添加-DO
选项以禁用优化并禁用常量折叠和使用时的窥孔优化器。. 我试过-DO
了,但没有用。如果该选项不起作用,我愿意接受变通办法,但它们可能会出现。
c++ - 整数表达式的 C++ 常量折叠的预期行为是什么?
例如,假设我们有一个函数用 替换 a 的两个最低有效小数int
位0
:
如果我们通过2052
了,我们应该期望返回2000
,2199
应该返回2100
。
如果您在有或没有优化的情况下运行 MSVC 编译器,似乎不会发生常量折叠,这是我所期望的,因为x / 100
应该在之前进行评估* 100
,并且我们不在x / 100
编译时进行评估。该参数x
来自运行时输入。
根据我的假设和测试,我认为我不必担心不断折叠变为return x / 100 * 100;
;return x;
但是,我希望找到关于这种情况下预期行为的更好文档,而不是仅仅依靠我的假设和测试。
有没有关于这种行为的好的文档?我查看了网络上的 SO 和其他地方,但找不到对我有用的文档。