6810855: KILL vs. TEMP ordering restrictions are too strong

Thu, 26 Feb 2009 16:57:21 -0800

author
never
date
Thu, 26 Feb 2009 16:57:21 -0800
changeset 1037
ed6404fac86b
parent 1036
523ded093c31
child 1038
dbbe28fc66b5

6810855: KILL vs. TEMP ordering restrictions are too strong
Reviewed-by: kvn

src/share/vm/adlc/formssel.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/adlc/formssel.cpp	Thu Feb 26 14:26:02 2009 -0800
     1.2 +++ b/src/share/vm/adlc/formssel.cpp	Thu Feb 26 16:57:21 2009 -0800
     1.3 @@ -858,19 +858,7 @@
     1.4          OperandForm* kill = (OperandForm*)_localNames[kill_name];
     1.5          globalAD->syntax_err(_linenum, "%s: %s %s must be at the end of the argument list\n",
     1.6                               _ident, kill->_ident, kill_name);
     1.7 -      } else if (e->isa(Component::KILL)) {
     1.8 -        kill_name = name;
     1.9 -      }
    1.10 -
    1.11 -      // TEMPs are real uses and need to be among the first parameters
    1.12 -      // listed, otherwise the numbering of operands and inputs gets
    1.13 -      // screwy, so enforce this restriction during parse.
    1.14 -      if (kill_name != NULL &&
    1.15 -          e->isa(Component::TEMP) && !e->isa(Component::DEF)) {
    1.16 -        OperandForm* kill = (OperandForm*)_localNames[kill_name];
    1.17 -        globalAD->syntax_err(_linenum, "%s: %s %s must follow %s %s in the argument list\n",
    1.18 -                             _ident, kill->_ident, kill_name, opForm->_ident, name);
    1.19 -      } else if (e->isa(Component::KILL)) {
    1.20 +      } else if (e->isa(Component::KILL) && !e->isa(Component::USE)) {
    1.21          kill_name = name;
    1.22        }
    1.23      }

mercurial