> Additional Comments From pinskia at gcc dot gnu dot org 2004-11-17 > Here is a bug which says the oposite should be done (as arguments are > already > done): PR 15484.
Unless I misunderstand; C's promotion/evaluation semantics need not be literally applied, but must only yield equivalent results to as if they were. Thereby providing opportunities to the compiler to avoid the otherwise needless promotion of expression/argument precision if it's known that their use in an alternate form will not affect a resulting utilized variable or control flow state. Thereby enabling the compiler to avoid the promotion of arguments to functions, and correspondingly only require their promotion within functions if required. If an ABI specifies that this may not be done, then that's that; but if it's allowed, or not specified, the compiler should be enabled to perform this type of global optimization, I would think. (although GCC may not presently takes full advantage of this potential today.)