RFR(S): 8184123: [MVT] C2 crashes with SIGSEGV in ValueTypeNode::is_loaded

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Wed Jul 12 13:16:30 UTC 2017


Looks good.

Best regards,
Vladimir Ivanov

On 7/12/17 4:07 PM, Tobias Hartmann wrote:
> Hi,
> 
> please review the following patch:
> https://bugs.openjdk.java.net/browse/JDK-8184123
> http://cr.openjdk.java.net/~thartmann/valhalla/vt_prototype/webrev.30/
> 
> We crash in ValueTypeNode::is_loaded() because the code incorrectly assumes that all value type field loads have an AddP address input [1]. I refactored the code to use AddPNode::Ideal_base_and_offset() to retrieve the base node and offset (if available).
> 
> Verified with replay compilation.
> 
> Thanks,
> Tobias
> 
> [1] Failing ValueTypeNode (i == 0):
>   3	StartOSR	===  3  0  [[ 3  5  6  7  8  9  10 ]]  #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:rawptr:BotPTR}
>   76	ConI	===  0  [[ 77  90  239  135  238 ]]  #int:1
>   10	Parm	===  3  [[ 36  35  29  29  25  25 ]] Parm0: rawptr:BotPTR !jvms: FillI2::bc_value @ bci:11
>   7	Parm	===  3  [[ 178  127  273  27  31  35  36  54  40  270  156  94  81  16  185  230  282  285 ]] Memory  Memory: @BotPTR *+bot, idx=Bot; !orig=[72],[208],[105] !jvms: FillI2::bc_value @ bci:11
>   5	Parm	===  3  [[ 35  36  27  31 ]] Control !jvms: FillI2::bc_value @ bci:11
>   239	AddI	=== _  35  76  [[ 290  237 ]]  !orig=135 !jvms: FillI2::bc_value @ bci:22
>   35	LoadI	===  5  7  10  [[ 63  291  97  84  237  239 ]]  @rawptr:BotPTR, idx=Raw; #int (does not depend only on test) !orig=[75] !jvms: FillI2::bc_value @ bci:11
>   46	ConP	===  0  [[ 47  45  111  148  237 ]]  #NULL
>   237	ValueType	=== _  46  35  239  [[ 288 ]]  #valuetype[2]:{int, int} !orig=148,147,146 !jvms: ValueI2::of @ bci:0 FillI2::bc_value @ bci:23
> 



More information about the valhalla-dev mailing list