PROPOSAL: Binary Literals
mthornton at optrak.co.uk
Thu Mar 26 01:54:26 PDT 2009
Derek Foster wrote:
> You are not considering the impact of constant folding on compiler optimizations.
> Not all constants are created equal. Constants whose values can be determined at compile time can be inlined by the compiler, and arithmetic expressions involving them can often therefore be simplified at compile time. This process is known as "constant folding". The resulting code need not reference the original variable to get the constant at all -- it can just use the inlined result of evaluating the expression. Additional compiler optimizations may then be performed on the basis of these folded constants. For instance, a compiler might decide to compile this code:
Perhaps you missed my suggestion that the range of operations permitted
in constant expressions be extended to include the bit munging
operations (and possibly others). We could perhaps have an annotation
that was only permitted on static methods in the java.* name space and
which required the compiler to execute the method at compile time if its
arguments were compile time constants. The compiler could alternatively
have a private list of such methods, the annotation conveniently tells
everyone else what is on the list.
More information about the coin-dev