8016610: javac, add new internal symbols to make operator resolution faster

Wed, 19 Jun 2013 22:07:05 +0100

author
vromero
date
Wed, 19 Jun 2013 22:07:05 +0100
changeset 1845
be10ac0081b2
parent 1844
29dcd6715b04
child 1846
b3458329d060
child 1850
6debfa63a4a1

8016610: javac, add new internal symbols to make operator resolution faster
Reviewed-by: jjg
Contributed-by: maurizio.cimadamore@oracle.com

src/share/classes/com/sun/tools/javac/code/Symtab.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/javac/tree/TreeInfo.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/classes/com/sun/tools/javac/code/Symtab.java	Wed Jun 19 13:00:00 2013 +0100
     1.2 +++ b/src/share/classes/com/sun/tools/javac/code/Symtab.java	Wed Jun 19 22:07:05 2013 +0100
     1.3 @@ -570,15 +570,18 @@
     1.4          arrayClass.members().enter(arrayCloneMethod);
     1.5  
     1.6          // Enter operators.
     1.7 -        enterUnop("+", doubleType, doubleType, nop);
     1.8 -        enterUnop("+", floatType, floatType, nop);
     1.9 -        enterUnop("+", longType, longType, nop);
    1.10 -        enterUnop("+", intType, intType, nop);
    1.11 +        /*  Internally we use +++, --- for unary +, - to reduce +, - operators
    1.12 +         *  overloading
    1.13 +         */
    1.14 +        enterUnop("+++", doubleType, doubleType, nop);
    1.15 +        enterUnop("+++", floatType, floatType, nop);
    1.16 +        enterUnop("+++", longType, longType, nop);
    1.17 +        enterUnop("+++", intType, intType, nop);
    1.18  
    1.19 -        enterUnop("-", doubleType, doubleType, dneg);
    1.20 -        enterUnop("-", floatType, floatType, fneg);
    1.21 -        enterUnop("-", longType, longType, lneg);
    1.22 -        enterUnop("-", intType, intType, ineg);
    1.23 +        enterUnop("---", doubleType, doubleType, dneg);
    1.24 +        enterUnop("---", floatType, floatType, fneg);
    1.25 +        enterUnop("---", longType, longType, lneg);
    1.26 +        enterUnop("---", intType, intType, ineg);
    1.27  
    1.28          enterUnop("~", longType, longType, lxor);
    1.29          enterUnop("~", intType, intType, ixor);
     2.1 --- a/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java	Wed Jun 19 13:00:00 2013 +0100
     2.2 +++ b/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java	Wed Jun 19 22:07:05 2013 +0100
     2.3 @@ -74,8 +74,11 @@
     2.4          context.put(treeInfoKey, this);
     2.5  
     2.6          Names names = Names.instance(context);
     2.7 -        setOpname(POS, "+", names);
     2.8 -        setOpname(NEG, names.hyphen);
     2.9 +        /*  Internally we use +++, --- for unary +, - to reduce +, - operators
    2.10 +         *  overloading
    2.11 +         */
    2.12 +        setOpname(POS, "+++", names);
    2.13 +        setOpname(NEG, "---", names);
    2.14          setOpname(NOT, "!", names);
    2.15          setOpname(COMPL, "~", names);
    2.16          setOpname(PREINC, "++", names);

mercurial