PROPOSAL: Binary Literals (original) (raw)
Mark Thornton mthornton at optrak.co.uk
Thu Mar 26 01:54:26 PDT 2009
- Previous message: PROPOSAL: Binary Literals
- Next message: PROPOSAL: Binary Literals
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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.
Mark Thornton
- Previous message: PROPOSAL: Binary Literals
- Next message: PROPOSAL: Binary Literals
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]