Skip to content

Instantly share code, notes, and snippets.

@rzezeski
Created June 11, 2015 19:01
Show Gist options
  • Save rzezeski/3716bb3438209f4379f0 to your computer and use it in GitHub Desktop.
Save rzezeski/3716bb3438209f4379f0 to your computer and use it in GitHub Desktop.
mono 4.0.1 test failure (SmartOS)
for i in basic.exe basic-float.exe basic-long.exe basic-calls.exe objects.exe arrays.exe basic-math.exe exceptions.exe iltests.exe devirtualization.exe generics.exe basic-simd.exe ; do ./test_op_il_seq_point.sh $i || (./test_op_il_seq_point_headerfooter.sh; exit 1) || exit 1; done
Checking unintended native code changes in basic.exe without AOT
Checking unintended native code changes in basic-float.exe without AOT
Checking unintended native code changes in basic-long.exe without AOT
Checking unintended native code changes in basic-calls.exe without AOT
Checking unintended native code changes in objects.exe without AOT
Checking unintended native code changes in arrays.exe without AOT
1d0
< Method (wrapper managed-to-native) System.Threading.InternalThread:Thread_free_internal (System.Threading.InternalThread,intptr) (code length 184) [arrays.exe]
7,8d5
< Method System.Runtime.ConstrainedExecution.CriticalFinalizerObject:Finalize () (code length 46) [arrays.exe]
< Method System.Runtime.Remoting.Contexts.Context:Finalize () (code length 46) [arrays.exe]
12d8
< Method System.Threading.Thread:Finalize () (code length 55) [arrays.exe]
Detected OP_IL_SEQ_POINT incompatibility on arrays.exe
4 methods differ when sequence points are enabled.
This is probably caused by a runtime optimization that is not handling OP_IL_SEQ_POINT
Diff System.Runtime.ConstrainedExecution.CriticalFinalizerObject:Finalize
Without IL_OP_SEQ_POINT With IL_OP_SEQ_POINT
converting method System.Runtime.ConstrainedExecution.CriticalFinalize converting method System.Runtime.ConstrainedExecution.CriticalFinalize
creating vars creating vars
created temp 0 (R16) of type System.Runtime.ConstrainedExecution.Criti created temp 0 (R16) of type System.Runtime.ConstrainedExecution.Criti
this: arg R16 <- this: arg R16 <-
creating locals creating locals
locals done locals done
method to IR System.Runtime.ConstrainedExecution.CriticalFinalizerObje method to IR System.Runtime.ConstrainedExecution.CriticalFinalizerObje
converting (in B4: stack: 0) IL_0000: leave IL_000c converting (in B4: stack: 0) IL_0000: leave IL_000c
converting (in B3: stack: 0) IL_0005: ldarg.0 converting (in B3: stack: 0) IL_0005: ldarg.0
converting (in B3: stack: 1) IL_0006: call 0x0 converting (in B3: stack: 1) IL_0006: call 0x0
INLINE START 8bc4e8 System.Runtime.ConstrainedExecution.CriticalFinali INLINE START 8bc4e8 System.Runtime.ConstrainedExecution.CriticalFinali
method to IR object:Finalize () method to IR object:Finalize ()
created temp 1 (R18) of type System.Object created temp 1 (R18) of type System.Object
converting (in B10: stack: 0) IL_0000: ret converting (in B10: stack: 0) IL_0000: ret
INLINE END System.Runtime.ConstrainedExecution.CriticalFinalizerObject INLINE END System.Runtime.ConstrainedExecution.CriticalFinalizerObject
converting (in B3: stack: 0) IL_000b: endfinally converting (in B3: stack: 0) IL_000b: endfinally
converting (in B6: stack: 0) IL_000c: ret converting (in B6: stack: 0) IL_000c: ret
created temp 2 (R19) of type System.IntPtr created temp 2 (R19) of type System.IntPtr
REGION BB0 IL_0000 ID_00000102 REGION BB0 IL_0000 ID_00000102
REGION BB5 IL_0000 ID_00000102 REGION BB5 IL_0000 ID_00000102
REGION BB4 IL_0000 ID_00000102 REGION BB4 IL_0000 ID_00000102
created temp 3 (R20) of type System.IntPtr created temp 3 (R20) of type System.IntPtr
REGION BB3 IL_000b ID_00000112 REGION BB3 IL_000b ID_00000112
created temp 4 (R21) of type System.IntPtr created temp 4 (R21) of type System.IntPtr
REGION BB6 IL_000c ID_FFFFFFFF REGION BB6 IL_000c ID_FFFFFFFF
REGION BB1 IL_0000 ID_00000102 REGION BB1 IL_0000 ID_00000102
AFTER METHOD-TO-IR 0: [IN: , OUT: BB5(0) ] AFTER METHOD-TO-IR 0: [IN: , OUT: BB5(0) ]
AFTER METHOD-TO-IR 5: [IN: BB0(0), OUT: BB4(0) ] AFTER METHOD-TO-IR 5: [IN: BB0(0), OUT: BB4(0) ]
AFTER METHOD-TO-IR 4: [IN: BB5(0), OUT: BB3(0) BB6(0) ] AFTER METHOD-TO-IR 4: [IN: BB5(0), OUT: BB3(0) BB6(0) ]
call_handler [B3] clobbers: c call_handler [B3] clobbers: c
br [B6] br [B6]
AFTER METHOD-TO-IR 3: [IN: BB4(0), OUT: ] AFTER METHOD-TO-IR 3: [IN: BB4(0), OUT: ]
start_handler start_handler
move R17 <- R16 move R17 <- R16
nop nop
move R18 <- R17 move R18 <- R17
nop nop
endfinally endfinally
AFTER METHOD-TO-IR 6: [IN: BB4(0), OUT: BB1(0) ] AFTER METHOD-TO-IR 6: [IN: BB4(0), OUT: BB1(0) ]
br [B1] br [B1]
AFTER METHOD-TO-IR 1: [IN: BB6(0), OUT: ] AFTER METHOD-TO-IR 1: [IN: BB6(0), OUT: ]
pessimize variables in bb 3. pessimize variables in bb 3.
remove_block_if_useless, removed BB6 remove_block_if_useless, removed BB6
HANDLE-GLOBAL-VREGS BLOCK 0: HANDLE-GLOBAL-VREGS BLOCK 0:
HANDLE-GLOBAL-VREGS BLOCK 5: HANDLE-GLOBAL-VREGS BLOCK 5:
HANDLE-GLOBAL-VREGS BLOCK 4: HANDLE-GLOBAL-VREGS BLOCK 4:
call_handler [B3] clobbers: c call_handler [B3] clobbers: c
br [B1] br [B1]
HANDLE-GLOBAL-VREGS BLOCK 3: HANDLE-GLOBAL-VREGS BLOCK 3:
start_handler start_handler
move R17 <- R16 move R17 <- R16
move R18 <- R17 move R18 <- R17
endfinally endfinally
HANDLE-GLOBAL-VREGS BLOCK 1: HANDLE-GLOBAL-VREGS BLOCK 1:
Reverse copyprop in BB3 on move R18 <- R17 Reverse copyprop in BB3 on move R18 <- R17
BEFORE LOWER-VTYPE-OPTS 0: [IN: , OUT: BB5(1) ] BEFORE LOWER-VTYPE-OPTS 0: [IN: , OUT: BB5(1) ]
AFTER LOWER-VTYPE-OPTS 0: [IN: , OUT: BB5(1) ] AFTER LOWER-VTYPE-OPTS 0: [IN: , OUT: BB5(1) ]
BEFORE LOWER-VTYPE-OPTS 5: [IN: BB0(0), OUT: BB4(2) ] BEFORE LOWER-VTYPE-OPTS 5: [IN: BB0(0), OUT: BB4(2) ]
AFTER LOWER-VTYPE-OPTS 5: [IN: BB0(0), OUT: BB4(2) ] AFTER LOWER-VTYPE-OPTS 5: [IN: BB0(0), OUT: BB4(2) ]
BEFORE LOWER-VTYPE-OPTS 4: [IN: BB5(1), OUT: BB3(3) BB1(4) ] BEFORE LOWER-VTYPE-OPTS 4: [IN: BB5(1), OUT: BB3(3) BB1(4) ]
call_handler [B3] clobbers: c call_handler [B3] clobbers: c
br [B1] br [B1]
AFTER LOWER-VTYPE-OPTS 4: [IN: BB5(1), OUT: BB3(3) BB1(4) ] AFTER LOWER-VTYPE-OPTS 4: [IN: BB5(1), OUT: BB3(3) BB1(4) ]
call_handler [B3] clobbers: c call_handler [B3] clobbers: c
br [B1] br [B1]
BEFORE LOWER-VTYPE-OPTS 3: [IN: BB4(2), OUT: ] BEFORE LOWER-VTYPE-OPTS 3: [IN: BB4(2), OUT: ]
start_handler start_handler
move R18 <- R16 move R18 <- R16
endfinally endfinally
AFTER LOWER-VTYPE-OPTS 3: [IN: BB4(2), OUT: ] AFTER LOWER-VTYPE-OPTS 3: [IN: BB4(2), OUT: ]
start_handler start_handler
move R18 <- R16 move R18 <- R16
endfinally endfinally
BEFORE LOWER-VTYPE-OPTS 1: [IN: BB4(2), OUT: ] BEFORE LOWER-VTYPE-OPTS 1: [IN: BB4(2), OUT: ]
AFTER LOWER-VTYPE-OPTS 1: [IN: BB4(2), OUT: ] AFTER LOWER-VTYPE-OPTS 1: [IN: BB4(2), OUT: ]
pessimize variables in bb 3. pessimize variables in bb 3.
LIVENESS: LIVENESS:
BLOCK BB0 (BB5, ): BLOCK BB0 (BB5, ):
GEN BB0: {} GEN BB0: {}
KILL BB0: {} KILL BB0: {}
BLOCK BB5 (BB4, ): BLOCK BB5 (BB4, ):
GEN BB5: {} GEN BB5: {}
KILL BB5: {} KILL BB5: {}
BLOCK BB4 (BB3, BB1, ): BLOCK BB4 (BB3, BB1, ):
call_handler [B3] clobbers: c call_handler [B3] clobbers: c
br [B1] br [B1]
GEN BB4: {} GEN BB4: {}
KILL BB4: {} KILL BB4: {}
BLOCK BB3 (): BLOCK BB3 ():
start_handler start_handler
move R18 <- R16 move R18 <- R16
GEN: R16(0) GEN: R16(0)
KILL: R18(1) KILL: R18(1)
endfinally endfinally
GEN BB3: {0} GEN BB3: {0}
KILL BB3: {1} KILL BB3: {1}
BLOCK BB1 (): BLOCK BB1 ():
GEN BB1: {} GEN BB1: {}
KILL BB1: {} KILL BB1: {}
ITERATION: ITERATION:
P: BB1(4): IN: BB4 OUT: P: BB1(4): IN: BB4 OUT:
P: BB3(3): IN: BB4 OUT: P: BB3(3): IN: BB4 OUT:
P: BB4(2): IN: BB5 OUT:BB3 BB1 P: BB4(2): IN: BB5 OUT:BB3 BB1
LIVE IN BB4: {0} LIVE IN BB4: {0}
P: BB5(1): IN: BB0 OUT:BB4 P: BB5(1): IN: BB0 OUT:BB4
LIVE IN BB5: {0} LIVE IN BB5: {0}
P: BB0(0): IN: OUT:BB5 P: BB0(0): IN: OUT:BB5
LIVE IN BB0: {0} LIVE IN BB0: {0}
IT: 5 3. IT: 5 3.
LIVE IN BB1: {} LIVE IN BB1: {}
LIVE OUT BB1: {} LIVE OUT BB1: {}
LIVE IN BB3: {0} LIVE IN BB3: {0}
LIVE OUT BB3: {} LIVE OUT BB3: {}
LIVE IN BB4: {0} LIVE IN BB4: {0}
LIVE OUT BB4: {0} LIVE OUT BB4: {0}
LIVE IN BB5: {0} LIVE IN BB5: {0}
LIVE OUT BB5: {0} LIVE OUT BB5: {0}
LIVE IN BB0: {0} LIVE IN BB0: {0}
LIVE OUT BB0: {0} LIVE OUT BB0: {0}
V0: [0x0 - 0x0] V0: [0x0 - 0x0]
V1: [0x0 - 0x0] V1: [0x0 - 0x0]
V2: [0x0 - 0x0] V2: [0x0 - 0x0]
V3: [0x0 - 0x0] V3: [0x0 - 0x0]
V4: [0x0 - 0x0] V4: [0x0 - 0x0]
SPILL BLOCK 0: SPILL BLOCK 0:
SPILL BLOCK 5: SPILL BLOCK 5:
SPILL BLOCK 4: SPILL BLOCK 4:
> -1
call_handler [B3] clobbers: c call_handler [B3] clobbers: c
-1 -1
1 call_handler [B3] clobbers: c 1 call_handler [B3] clobbers: c
br [B1] br [B1]
-1 -1
1 br [B1] 1 br [B1]
SPILL BLOCK 3: SPILL BLOCK 3:
start_handler start_handler
-1 -1
1 start_handler 1 start_handler
> -1
move R18 <- R16 move R18 <- R16
ii 18 16 ii 18 16
1 store_membase_reg [%rbp + 0x0] <- R23 1 store_membase_reg [%rbp + 0x0] <- R23
> -1
> -1
endfinally endfinally
-1 -1
1 endfinally 1 endfinally
SPILL BLOCK 1: SPILL BLOCK 1:
DUMP BLOCK 0: DUMP BLOCK 0:
DUMP BLOCK 5: DUMP BLOCK 5:
DUMP BLOCK 4: DUMP BLOCK 4:
call_handler [B3] clobbers: c call_handler [B3] clobbers: c
br [B1] br [B1]
DUMP BLOCK 3: DUMP BLOCK 3:
start_handler start_handler
load_membase R23 <- [%rbp + 0x0] load_membase R23 <- [%rbp + 0x0]
store_membase_reg [%rbp + 0x0] <- R23 store_membase_reg [%rbp + 0x0] <- R23
endfinally endfinally
DUMP BLOCK 1: DUMP BLOCK 1:
LOCAL REGALLOC BLOCK 4: LOCAL REGALLOC BLOCK 4:
1 call_handler [B3] clobbers: c | 2 call_handler [B3] clobbers: c
2 br [B1] | 3 br [B1]
processing: 2 br [B1] | processing: 3 br [B1]
2 br [B1] | 3 br [B1]
processing: 1 call_handler [B3] clobbers: c | processing: 2 call_handler [B3] clobbers: c
1 call_handler [B3] clobbers: c | 2 call_handler [B3] clobbers: c
LOCAL REGALLOC BLOCK 3: LOCAL REGALLOC BLOCK 3:
1 start_handler 1 start_handler
2 load_membase R23 <- [%rbp + 0x0] | 3 load_membase R23 <- [%rbp + 0x0]
3 store_membase_reg [%rbp + 0x0] <- R23 | 4 store_membase_reg [%rbp + 0x0] <- R23
4 endfinally | 7 endfinally
liveness: %rbp [3 - 0] | liveness: %rbp [4 - 0]
liveness: R23 [2 - 2] | liveness: R23 [3 - 3]
processing: 4 endfinally | processing: 7 endfinally
4 endfinally | 7 endfinally
processing: 3 store_membase_reg [%rbp + 0x0] <- R23 | processing: 4 store_membase_reg [%rbp + 0x0] <- R23
assigned sreg1 %rax to R23 assigned sreg1 %rax to R23
3 store_membase_reg [%rbp + 0x0] <- %rax | 4 store_membase_reg [%rbp + 0x0] <- %rax
processing: 2 load_membase R23 <- [%rbp + 0x0] | processing: 3 load_membase R23 <- [%rbp + 0x0]
assigned dreg %rax to dest R23 assigned dreg %rax to dest R23
freeable %rax (R23) (born in 2) | freeable %rax (R23) (born in 3)
2 load_membase %rax <- [%rbp + 0x0] | 3 load_membase %rax <- [%rbp + 0x0]
processing: 1 start_handler processing: 1 start_handler
1 start_handler 1 start_handler
CFA: [0] def_cfa: %rsp+0x0 CFA: [0] def_cfa: %rsp+0x0
CFA: [0] offset: unknown at cfa-0x0 CFA: [0] offset: unknown at cfa-0x0
CFA: [1] def_cfa_offset: 0x0 CFA: [1] def_cfa_offset: 0x0
CFA: [1] offset: %rbp at cfa-0x0 CFA: [1] offset: %rbp at cfa-0x0
CFA: [4] def_cfa_reg: %rbp CFA: [4] def_cfa_reg: %rbp
Basic block 0 starting at offset 0x0 Basic block 0 starting at offset 0x0
Basic block 5 starting at offset 0x0 Basic block 5 starting at offset 0x0
Basic block 4 starting at offset 0x0 Basic block 4 starting at offset 0x0
Basic block 3 starting at offset 0x0 Basic block 3 starting at offset 0x0
Basic block 1 starting at offset 0x0 Basic block 1 starting at offset 0x0
CFA: [2d] def_cfa: %rsp+0x0 CFA: [2d] def_cfa: %rsp+0x0
Method System.Runtime.ConstrainedExecution.CriticalFinalizerObject:Fin Method System.Runtime.ConstrainedExecution.CriticalFinalizerObject:Fin
Number of try block holes 0 Number of try block holes 0
Shortening try block 0 from 1b to 15 Shortening try block 0 from 1b to 15
JitInfo EH clause 0 flags 2 try c-15 handler 1b-2c JitInfo EH clause 0 flags 2 try c-15 handler 1b-2c
/tmp/.Sla8IK: file format elf64-x86-64-sol2 | /tmp/.EqaIJK: file format elf64-x86-64-sol2
Disassembly of section .text: Disassembly of section .text:
0000000000000000 <tem_Runtime_ConstrainedExecution_CriticalFinalizerOb 0000000000000000 <tem_Runtime_ConstrainedExecution_CriticalFinalizerOb
<BB>:4 <BB>:4
0: 55 push %rbp 0: 55 push %rbp
1: 48 8b ec mov %rsp,%rbp 1: 48 8b ec mov %rsp,%rbp
4: 48 83 ec 30 sub $0x0,%rsp 4: 48 83 ec 30 sub $0x0,%rsp
8: 48 89 7d d8 mov %rdi,-0x0(%rbp) 8: 48 89 7d d8 mov %rdi,-0x0(%rbp)
c: 48 83 ec 08 sub $0x0,%rsp c: 48 83 ec 08 sub $0x0,%rsp
10: e8 06 00 00 00 callq 1b <tem_Runtime_ConstrainedExec 10: e8 06 00 00 00 callq 1b <tem_Runtime_ConstrainedExec
15: 48 83 c4 08 add $0x0,%rsp 15: 48 83 c4 08 add $0x0,%rsp
19: eb 11 jmp 2c <tem_Runtime_ConstrainedExec 19: eb 11 jmp 2c <tem_Runtime_ConstrainedExec
<BB>:3 <BB>:3
1b: 48 89 65 f0 mov %rsp,-0x0(%rbp) 1b: 48 89 65 f0 mov %rsp,-0x0(%rbp)
1f: 48 8b 45 d8 mov -0x0(%rbp),%rax 1f: 48 8b 45 d8 mov -0x0(%rbp),%rax
23: 48 89 45 e0 mov %rax,-0x0(%rbp) 23: 48 89 45 e0 mov %rax,-0x0(%rbp)
27: 48 8b 65 f0 mov -0x0(%rbp),%rsp 27: 48 8b 65 f0 mov -0x0(%rbp),%rsp
2b: c3 retq 2b: c3 retq
<BB>:1 <BB>:1
2c: c9 leaveq 2c: c9 leaveq
2d: c3 retq 2d: c3 retq
usage: hostname [system_name]
usage: hostname [system_name]
Makefile:3002: recipe for target 'check-seq-points' failed
make[3]: *** [check-seq-points] Error 1
make[3]: Leaving directory '/var/tmp/pkgsrc-build/lang/mono/work/mono-4.0.1/mono/mini'
Makefile:2752: recipe for target 'check-am' failed
make[2]: *** [check-am] Error 2
make[2]: Leaving directory '/var/tmp/pkgsrc-build/lang/mono/work/mono-4.0.1/mono/mini'
Makefile:2754: recipe for target 'check' failed
make[1]: *** [check] Error 2
make[1]: Leaving directory '/var/tmp/pkgsrc-build/lang/mono/work/mono-4.0.1/mono/mini'
Makefile:438: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment