Thu, 26 Feb 2009 16:57:21 -0800
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 }