<div dir="ltr">Oops, s/GraphKit/GraphBuilder/ in my last email.<div><br></div><div>Thanks,</div><div>Kris</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jun 7, 2015 at 10:47 PM, Krystal Mok <span dir="ltr"><<a href="mailto:rednaxelafx@gmail.com" target="_blank">rednaxelafx@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi compiler team,<div><br></div><div>I'd like to ask a question about a piece of code in C1. The code snippet below is from the tip version of jdk9/hs-comp.</div><div><br></div><div><div>145 ValueType* as_ValueType(ciConstant value) {</div><div>146   switch (value.basic_type()) {</div><div>147     case T_BYTE   : // fall through</div><div>148     case T_CHAR   : // fall through</div><div>149     case T_SHORT  : // fall through</div><div>150     case T_BOOLEAN: // fall through</div><div>151     case T_INT    : return new IntConstant   (value.as_int   ());</div><div>152     case T_LONG   : return new LongConstant  (value.as_long  ());</div><div>153     case T_FLOAT  : return new FloatConstant (value.as_float ());</div><div>154     case T_DOUBLE : return new DoubleConstant(value.as_double());</div><div>155     case T_ARRAY  : // fall through (ciConstant doesn't have an array accessor)</div><div>156     case T_OBJECT : return new ObjectConstant(value.as_object());</div><div>157   }</div><div>158   ShouldNotReachHere();</div><div>159   return illegalType;</div><div>160 }</div></div><div><br></div><div>On lines 155 and 156, both basic types T_ARRAY and T_OBJECT turns into a ObjectConstant.</div><div>That's not consistent with the handling in GraphKit::load_constant(), where ArrayConstant, InstanceConstant and ObjectConstant are treated separately.</div><div><br></div><div>I ran into this inconsistency when I wanted to try out something with array constants. But I was only able to reach the constant from an ObjectConstant, instead of an ArrayConstant like I was expecting.</div><div><br></div><div>If people agree that this inconsistency should be fixed, I'd be happy to provide a patch and test it.</div><div><br></div><div>Thanks,</div><div>Kris</div></div>
</blockquote></div><br></div>