RFR(S): 8077843: adlc: allow nodes that use TEMP inputs in expand rules. (original) (raw)

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Apr 17 00:27:53 UTC 2015


Here is what Tom R said during review of TEMP implementation:

  1. In formssel.cpp you restricted TEMP usage only to instruction with match rule, why? What about effect()?:
  • bool InstructForm::has_temps() {
  • if (_matrule) {

TEMP isn't allowed for instructions which don't have match rules. The reason is that if an instruct doesn't have a match rule the only way it can be constructed is by an expand rule. expand rules look like explicit invocations of encodings but TEMPs are synthetic so you can't properly write an expand rule to work with TEMP. I mean you could make it work but I decided not to support it. I'll make this more explicit.

So I am not sure that just removing the assert will be enough. Please, verify.

Regards, Vladimir

On 4/15/15 6:08 AM, Lindenmaier, Goetz wrote:

Hi,

I have a tiny fix that allows nodes that use TEMP inputs / TEMP effect in expand rules. Currently an assertion fires if you do so. This is harmless, though, as the TEMP node is added in the Expand() of the used node, which is called by the Expand() of the node being expanded. Probably the assertion was meant for the node being expanded. The change simply removed the assertion. Please review this change. I please need a sponsor. http://cr.openjdk.java.net/~goetz/webrevs/8077843-adlcTEMP/webrev.01/ I need this feature for a change I intend to do in the ppc.ad file. Best regards, Goetz.



More information about the hotspot-dev mailing list