📄 00000006.htm
字号:
and member functions may differ from one function <BR> context to the next, g++ may need to flush the <BR> cache. With the `-fmemoize-lookups' flag, the <BR> cache is flushed after every function that is com- <BR> piled. The `-fsave-memoized' flag enables the same <BR> software cache, but when the compiler determines <BR> that the context of the last function compiled <BR> would yield the same access privileges of the next <BR> function to compile, it preserves the cache. This <BR> is most helpful when defining many member functions <BR> for the same class: with the exception of member <BR> functions which are friends of other classes, each <BR> member function has exactly the same access privi- <BR> leges as every other, and the cache need not be <BR> flushed. <BR> <BR> -fno-default-inline <BR> Don't make member functions inline by default mere- <BR> ly because they are defined inside the class scope <BR> (C++ only). <BR> <BR> -fno-defer-pop <BR> Always pop the arguments to each function call as <BR> soon as that function returns. For machines which <BR> must pop arguments after a function call, the com- <BR> piler normally lets arguments accumulate on the <BR> stack for several function calls and pops them all <BR> at once. <BR> <BR> -fforce-mem <BR> Force memory operands to be copied into registers <BR> before doing arithmetic on them. This may produce <BR> better code by making all memory references poten- <BR> tial common subexpressions. When they are not com- <BR> mon subexpressions, instruction combination should <BR> eliminate the separate register-load. I am inter- <BR> ested in hearing about the difference this makes. <BR> <BR> -fforce-addr <BR> Force memory address constants to be copied into <BR> registers before doing arithmetic on them. This <BR> may produce better code just as `-fforce-mem' may. <BR> I am interested in hearing about the difference <BR> this makes. <BR> <BR> -fomit-frame-pointer <BR> Don't keep the frame pointer in a register for <BR> functions that don't need one. This avoids the in- <BR> structions to save, set up and restore frame point- <BR> ers; it also makes an extra register available in <BR> many functions. It also makes debugging impossible <BR> on most machines. <BR> <BR> On some machines, such as the Vax, this flag has no <BR> effect, because the standard calling sequence auto- <BR> matically handles the frame pointer and nothing is <BR> saved by pretending it doesn't exist. The machine- <BR> description macro FRAME_POINTER_REQUIRED controls <BR> whether a target machine supports this flag. <BR> <BR> -finline-functions <BR> Integrate all simple functions into their callers. <BR> The compiler heuristically decides which functions <BR> are simple enough to be worth integrating in this <BR> way. <BR> <BR> If all calls to a given function are integrated, <BR> and the function is declared static, then GCC nor- <BR> mally does not output the function as assembler <BR> code in its own right. <BR> <BR> -fcaller-saves <BR> Enable values to be allocated in registers that <BR> will be clobbered by function calls, by emitting <BR> extra instructions to save and restore the regis- <BR> ters around such calls. Such allocation is done <BR> only when it seems to result in better code than <BR> would otherwise be produced. <BR> <BR> This option is enabled by default on certain ma- <BR> chines, usually those which have no call-preserved <BR> registers to use instead. <BR> <BR> -fkeep-inline-functions <BR> Even if all calls to a given function are integrat- <BR> ed, and the function is declared static, neverthe- <BR> less output a separate run-time callable version of <BR> the function. <BR> <BR> -fno-function-cse <BR> Do not put function addresses in registers; make <BR> each instruction that calls a constant function <BR> contain the function's address explicitly. <BR> <BR> This option results in less efficient code, but <BR> some strange hacks that alter the assembler output <BR> may be confused by the optimizations performed when <BR> this option is not used. <BR> <BR> -fno-peephole <BR> Disable any machine-specific peephole optimiza- <BR> tions. <BR> <BR> -ffast-math <BR> This option allows GCC to violate some ANSI or IEEE <BR> rules/specifications in the interest of optimizing <BR> code for speed. For example, it allows the compil- <BR> er to assume arguments to the sqrt function are <BR> non-negative numbers. <BR> <BR> This option should never be turned on by any `-O' <BR> option since it can result in incorrect output for <BR> programs which depend on an exact implementation of <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -