RFR(S): 8184123: [MVT] C2 crashes with SIGSEGV in ValueTypeNode::is_loaded
Tobias Hartmann
tobias.hartmann at oracle.com
Wed Jul 12 13:53:55 UTC 2017
Thanks Vladimir!
Best regards,
Tobias
On 12.07.2017 15:16, Vladimir Ivanov wrote:
> 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