Burst compiling and outputting dll, but not running in build

Question is if the following is a known random bug, or an issue which can be fixed through some action of my own.

I have a project with a number of jobs, doing a lot of custom physics calculations. It is Universe Sandbox, so it is rather large and hard to cut down to a more debug friendly size.
In editor, the jobs do compile and run using burst. The profiler tells me this and the performance tells me this.

When I make a build, it does compile, and it does output the lib_burst_generated.dll
Attaching the profiler, it indicates that the jobs do not run burst and the performance is about half what I see in the editor, seemingly also indicating that burst is not running.

I have tried a number of different [burstCompile] settings and the result are the same. I tried development builds and ordinary builds. Also same result.

The jobs are heavily using native lists, implicitly cast as arrays upon job start, if that matters.

I made other, smaller, burst job projects which compile and run fine, so it seems the development environment is set up correctly.

unity 2018.3.3f1
burst 0.2.4 preview 41
entities 0.0.12 preview 21 (tried 23 as well)
collections 0.0.9 preview 11

Are the jobs that are supposed to be compiled by burst listed in the burst inspector as active and from which you can dump ASM output?

Yes they are. As I mentioned, they work fine in inspector.
If you mean to say that you would like to see the disassembly, I will paste one below.

  .text
        .intel_syntax noprefix
        .file   "main"
        .section        .rodata.cst8,"aM",@progbits,8
        .p2align        3
.LCPI0_0:
        .quad   4607182418800017408
        .section        .rodata.cst16,"aM",@progbits,16
        .p2align        4
.LCPI0_1:
        .quad   -9223372036854775808
        .quad   -9223372036854775808
        .text
        .globl  "Unity.Jobs.IJobParallelForExtensions+ParallelForJobStruct`1[[NBody.ComputationLayer.GravityCalculator+AcclerationJob, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::Execute(NBody.ComputationLayer.GravityCalculator+AcclerationJob&, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|Unity.Jobs.LowLevel.Unsafe.JobRanges&, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)"
        .p2align        4, 0x90
        .type   "Unity.Jobs.IJobParallelForExtensions+ParallelForJobStruct`1[[NBody.ComputationLayer.GravityCalculator+AcclerationJob, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::Execute(NBody.ComputationLayer.GravityCalculator+AcclerationJob&, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|Unity.Jobs.LowLevel.Unsafe.JobRanges&, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)",@function
"Unity.Jobs.IJobParallelForExtensions+ParallelForJobStruct`1[[NBody.ComputationLayer.GravityCalculator+AcclerationJob, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::Execute(NBody.ComputationLayer.GravityCalculator+AcclerationJob&, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|Unity.Jobs.LowLevel.Unsafe.JobRanges&, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)":
        .cfi_startproc
        push    r15
        .cfi_def_cfa_offset 16
        push    r14
        .cfi_def_cfa_offset 24
        push    r13
        .cfi_def_cfa_offset 32
        push    r12
        .cfi_def_cfa_offset 40
        push    rsi
        .cfi_def_cfa_offset 48
        push    rdi
        .cfi_def_cfa_offset 56
        push    rbp
        .cfi_def_cfa_offset 64
        push    rbx
        .cfi_def_cfa_offset 72
        sub     rsp, 280
        vmovapd xmmword ptr [rsp + 256], xmm15
        vmovapd xmmword ptr [rsp + 240], xmm14
        vmovapd xmmword ptr [rsp + 224], xmm13
        vmovapd xmmword ptr [rsp + 208], xmm12
        vmovapd xmmword ptr [rsp + 192], xmm11
        vmovapd xmmword ptr [rsp + 176], xmm10
        vmovapd xmmword ptr [rsp + 160], xmm9
        vmovapd xmmword ptr [rsp + 144], xmm8
        vmovapd xmmword ptr [rsp + 128], xmm7
        vmovapd xmmword ptr [rsp + 112], xmm6
        .cfi_def_cfa_offset 352
        .cfi_offset rbx, -72
        .cfi_offset rbp, -64
        .cfi_offset rdi, -56
        .cfi_offset rsi, -48
        .cfi_offset r12, -40
        .cfi_offset r13, -32
        .cfi_offset r14, -24
        .cfi_offset r15, -16
        .cfi_offset xmm6, -240
        .cfi_offset xmm7, -224
        .cfi_offset xmm8, -208
        .cfi_offset xmm9, -192
        .cfi_offset xmm10, -176
        .cfi_offset xmm11, -160
        .cfi_offset xmm12, -144
        .cfi_offset xmm13, -128
        .cfi_offset xmm14, -112
        .cfi_offset xmm15, -96
        mov     rax, r9
        mov     qword ptr [rsp + 64], r8
        mov     rbx, rcx
        mov     edx, dword ptr [rsp + 384]
        movabs  rbp, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange_Ptr"
        lea     r8, [rsp + 60]
        lea     r9, [rsp + 56]
        mov     qword ptr [rsp + 72], rax
        mov     rcx, rax
        call    qword ptr [rbp]
        test    al, al
        je      .LBB0_132
        movabs  rsi, offset .Lburst_abort_Ptr
        lea     r14, [rsp + 40]
        movabs  rax, offset .LCPI0_0
        vmovsd  xmm10, qword ptr [rax]
        .p2align        4, 0x90
.LBB0_2:
        mov     r8d, dword ptr [rsp + 60]
        mov     r9d, dword ptr [rsp + 56]
        sub     r9d, r8d
        mov     rcx, qword ptr [rsp + 64]
        mov     rdx, rbx
        movabs  rax, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges_Ptr"
        call    qword ptr [rax]
        movsxd  r15, dword ptr [rsp + 60]
        cmp     r15d, dword ptr [rsp + 56]
        jge     .LBB0_131
        .p2align        4, 0x90
.LBB0_3:
        movsxd  rax, dword ptr [rbx + 12]
        cmp     r15, rax
        jl      .LBB0_5
        movsxd  rcx, dword ptr [rbx + 16]
        cmp     r15, rcx
        jle     .LBB0_9
.LBB0_5:
        movsxd  rcx, dword ptr [rbx + 8]
        cmp     r15, rcx
        jge     .LBB0_8
        test    eax, eax
        jne     .LBB0_10
        dec     ecx
        cmp     dword ptr [rbx + 16], ecx
        jne     .LBB0_10
        .p2align        4, 0x90
.LBB0_8:
        movabs  rcx, offset .Lburst_abort.error.id
        movabs  rdx, offset .Lburst_abort.error.message
        call    qword ptr [rsi]
.LBB0_9:
        mov     eax, dword ptr [rbx + 32]
        test    al, 1
        je      .LBB0_11
        jmp     .LBB0_13
        .p2align        4, 0x90
.LBB0_10:
        movabs  rcx, offset .Lburst_abort.error.id.1
        movabs  rdx, offset .Lburst_abort.error.message.2
        call    qword ptr [rsi]
        mov     eax, dword ptr [rbx + 32]
        test    al, 1
        jne     .LBB0_13
.LBB0_11:
        mov     rcx, qword ptr [rbx + 24]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_13
        mov     eax, dword ptr [rbx + 32]
        mov     rcx, qword ptr [rbx + 24]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_13:
        mov     rax, qword ptr [rbx]
        lea     rdi, [r15 + 2*r15]
        vmovups xmm0, xmmword ptr [rax + 8*rdi]
        vmovaps xmmword ptr [rsp + 96], xmm0
        vmovsd  xmm0, qword ptr [rax + 8*rdi + 16]
        vmovsd  qword ptr [rsp + 88], xmm0
        movsxd  rax, dword ptr [rbx + 180]
        cmp     r15, rax
        jl      .LBB0_15
        movsxd  rcx, dword ptr [rbx + 184]
        cmp     r15, rcx
        jle     .LBB0_19
.LBB0_15:
        movsxd  rcx, dword ptr [rbx + 176]
        cmp     r15, rcx
        jge     .LBB0_18
        test    eax, eax
        jne     .LBB0_20
        dec     ecx
        cmp     dword ptr [rbx + 184], ecx
        jne     .LBB0_20
        .p2align        4, 0x90
.LBB0_18:
        movabs  rcx, offset .Lburst_abort.error.id.3
        movabs  rdx, offset .Lburst_abort.error.message.4
        call    qword ptr [rsi]
.LBB0_19:
        mov     eax, dword ptr [rbx + 200]
        test    al, 1
        je      .LBB0_21
        jmp     .LBB0_23
        .p2align        4, 0x90
.LBB0_20:
        movabs  rcx, offset .Lburst_abort.error.id.5
        movabs  rdx, offset .Lburst_abort.error.message.6
        call    qword ptr [rsi]
        mov     eax, dword ptr [rbx + 200]
        test    al, 1
        jne     .LBB0_23
.LBB0_21:
        mov     rcx, qword ptr [rbx + 192]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_23
        mov     eax, dword ptr [rbx + 200]
        mov     rcx, qword ptr [rbx + 192]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_23:
        mov     eax, dword ptr [rbx + 392]
        test    eax, eax
        mov     qword ptr [rsp + 80], rdi
        jle     .LBB0_122
        mov     r12d, r15d
        mov     rcx, qword ptr [rbx + 168]
        mov     r13d, dword ptr [rcx + 4*r15]
        vxorpd  xmm12, xmm12, xmm12
        vxorpd  xmm13, xmm13, xmm13
        mov     edi, 4
        xor     ebp, ebp
        vxorpd  xmm11, xmm11, xmm11
        .p2align        4, 0x90
.LBB0_25:
        cmp     r12, rbp
        je      .LBB0_118
        cmp     r13d, -1
        vmovapd xmm14, xmm10
        je      .LBB0_49
        movsxd  rax, dword ptr [rbx + 180]
        cmp     rbp, rax
        jl      .LBB0_29
        movsxd  rcx, dword ptr [rbx + 184]
        cmp     rbp, rcx
        jle     .LBB0_33
.LBB0_29:
        movsxd  rcx, dword ptr [rbx + 176]
        cmp     rbp, rcx
        jge     .LBB0_32
        test    eax, eax
        jne     .LBB0_34
        dec     ecx
        cmp     dword ptr [rbx + 184], ecx
        jne     .LBB0_34
.LBB0_32:
        movabs  rcx, offset .Lburst_abort.error.id.3
        movabs  rdx, offset .Lburst_abort.error.message.4
        call    qword ptr [rsi]
.LBB0_33:
        mov     eax, dword ptr [rbx + 200]
        test    al, 1
        je      .LBB0_35
        jmp     .LBB0_37
.LBB0_34:
        movabs  rcx, offset .Lburst_abort.error.id.5
        movabs  rdx, offset .Lburst_abort.error.message.6
        call    qword ptr [rsi]
        mov     eax, dword ptr [rbx + 200]
        test    al, 1
        jne     .LBB0_37
.LBB0_35:
        mov     rcx, qword ptr [rbx + 192]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_37
        mov     eax, dword ptr [rbx + 200]
        mov     rcx, qword ptr [rbx + 192]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_37:
        mov     rax, qword ptr [rbx + 168]
        cmp     r13d, dword ptr [rax + 4*rbp]
        vmovapd xmm14, xmm10
        jne     .LBB0_49
        movsxd  rax, dword ptr [rbx + 236]
        cmp     r15, rax
        jl      .LBB0_40
        movsxd  rcx, dword ptr [rbx + 240]
        cmp     r15, rcx
        jle     .LBB0_44
.LBB0_40:
        movsxd  rcx, dword ptr [rbx + 232]
        cmp     r15, rcx
        jge     .LBB0_43
        test    eax, eax
        jne     .LBB0_45
        dec     ecx
        cmp     dword ptr [rbx + 240], ecx
        jne     .LBB0_45
.LBB0_43:
        movabs  rcx, offset .Lburst_abort.error.id.7
        movabs  rdx, offset .Lburst_abort.error.message.8
        call    qword ptr [rsi]
.LBB0_44:
        mov     eax, dword ptr [rbx + 256]
        test    al, 1
        je      .LBB0_46
        jmp     .LBB0_48
.LBB0_45:
        movabs  rcx, offset .Lburst_abort.error.id.9
        movabs  rdx, offset .Lburst_abort.error.message.10
        call    qword ptr [rsi]
        mov     eax, dword ptr [rbx + 256]
        test    al, 1
        jne     .LBB0_48
.LBB0_46:
        mov     rcx, qword ptr [rbx + 248]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_48
        mov     eax, dword ptr [rbx + 256]
        mov     rcx, qword ptr [rbx + 248]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_48:
        mov     rax, qword ptr [rbx + 224]
        vmovsd  xmm14, qword ptr [rax + 8*r15]
.LBB0_49:
        movsxd  rax, dword ptr [rbx + 12]
        cmp     rbp, rax
        jl      .LBB0_51
        movsxd  rcx, dword ptr [rbx + 16]
        cmp     rbp, rcx
        jle     .LBB0_55
.LBB0_51:
        movsxd  rcx, dword ptr [rbx + 8]
        cmp     rbp, rcx
        jge     .LBB0_54
        test    eax, eax
        jne     .LBB0_56
        dec     ecx
        cmp     dword ptr [rbx + 16], ecx
        jne     .LBB0_56
        .p2align        4, 0x90
.LBB0_54:
        movabs  rcx, offset .Lburst_abort.error.id
        movabs  rdx, offset .Lburst_abort.error.message
        call    qword ptr [rsi]
.LBB0_55:
        mov     eax, dword ptr [rbx + 32]
        test    al, 1
        je      .LBB0_57
        jmp     .LBB0_59
.LBB0_56:
        movabs  rcx, offset .Lburst_abort.error.id.1
        movabs  rdx, offset .Lburst_abort.error.message.2
        call    qword ptr [rsi]
        mov     eax, dword ptr [rbx + 32]
        test    al, 1
        jne     .LBB0_59
.LBB0_57:
        mov     rcx, qword ptr [rbx + 24]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_59
        mov     eax, dword ptr [rbx + 32]
        mov     rcx, qword ptr [rbx + 24]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_59:
        mov     rax, qword ptr [rbx]
        vmovupd xmm0, xmmword ptr [rax + 4*rdi - 16]
        vmovsd  xmm7, qword ptr [rax + 4*rdi]
        vsubpd  xmm15, xmm0, xmmword ptr [rsp + 96]
        movsxd  rax, dword ptr [rbx + 124]
        cmp     r15, rax
        jl      .LBB0_61
        movsxd  rcx, dword ptr [rbx + 128]
        cmp     r15, rcx
        jle     .LBB0_65
.LBB0_61:
        movsxd  rcx, dword ptr [rbx + 120]
        cmp     r15, rcx
        jge     .LBB0_64
        test    eax, eax
        jne     .LBB0_66
        dec     ecx
        cmp     dword ptr [rbx + 128], ecx
        jne     .LBB0_66
        .p2align        4, 0x90
.LBB0_64:
        movabs  rcx, offset .Lburst_abort.error.id.7
        movabs  rdx, offset .Lburst_abort.error.message.8
        call    qword ptr [rsi]
.LBB0_65:
        vpermilpd       xmm6, xmm15, 1
        mov     eax, dword ptr [rbx + 144]
        test    al, 1
        je      .LBB0_67
        jmp     .LBB0_69
.LBB0_66:
        movabs  rcx, offset .Lburst_abort.error.id.9
        movabs  rdx, offset .Lburst_abort.error.message.10
        call    qword ptr [rsi]
        vpermilpd       xmm6, xmm15, 1
        mov     eax, dword ptr [rbx + 144]
        test    al, 1
        jne     .LBB0_69
.LBB0_67:
        mov     rcx, qword ptr [rbx + 136]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_69
        mov     eax, dword ptr [rbx + 144]
        mov     rcx, qword ptr [rbx + 136]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_69:
        vmulsd  xmm6, xmm6, xmm6
        mov     rax, qword ptr [rbx + 112]
        vmovsd  xmm8, qword ptr [rax + 8*r15]
        movsxd  rax, dword ptr [rbx + 124]
        cmp     rbp, rax
        jl      .LBB0_71
        movsxd  rcx, dword ptr [rbx + 128]
        cmp     rbp, rcx
        jle     .LBB0_77
.LBB0_71:
        movsxd  rcx, dword ptr [rbx + 120]
        cmp     rbp, rcx
        jge     .LBB0_74
        test    eax, eax
        jne     .LBB0_75
        dec     ecx
        cmp     dword ptr [rbx + 128], ecx
        jne     .LBB0_75
        .p2align        4, 0x90
.LBB0_74:
        movabs  rcx, offset .Lburst_abort.error.id.7
        movabs  rdx, offset .Lburst_abort.error.message.8
        jmp     .LBB0_76
.LBB0_75:
        movabs  rcx, offset .Lburst_abort.error.id.9
        movabs  rdx, offset .Lburst_abort.error.message.10
.LBB0_76:
        call    qword ptr [rsi]
.LBB0_77:
        vsubsd  xmm9, xmm7, qword ptr [rsp + 88]
        vfmadd231sd     xmm6, xmm15, xmm15
        mov     eax, dword ptr [rbx + 144]
        test    al, 1
        jne     .LBB0_80
        mov     rcx, qword ptr [rbx + 136]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_80
        mov     eax, dword ptr [rbx + 144]
        mov     rcx, qword ptr [rbx + 136]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_80:
        vfmadd231sd     xmm6, xmm9, xmm9
        cmp     byte ptr [rbx + 416], 0
        je      .LBB0_82
        vaddsd  xmm0, xmm6, qword ptr [rbx + 408]
        jmp     .LBB0_83
.LBB0_82:
        mov     rax, qword ptr [rbx + 112]
        vaddsd  xmm0, xmm8, qword ptr [rax + 8*rbp]
        vmulsd  xmm0, xmm0, xmm0
        vmaxsd  xmm0, xmm0, xmm6
.LBB0_83:
        vsqrtsd xmm6, xmm0, xmm0
        vmulsd  xmm7, xmm14, qword ptr [rbx + 400]
        movsxd  rax, dword ptr [rbx + 68]
        cmp     rbp, rax
        jl      .LBB0_85
        movsxd  rcx, dword ptr [rbx + 72]
        cmp     rbp, rcx
        jle     .LBB0_89
.LBB0_85:
        movsxd  rcx, dword ptr [rbx + 64]
        cmp     rbp, rcx
        jge     .LBB0_88
        test    eax, eax
        jne     .LBB0_90
        dec     ecx
        cmp     dword ptr [rbx + 72], ecx
        jne     .LBB0_90
        .p2align        4, 0x90
.LBB0_88:
        movabs  rcx, offset .Lburst_abort.error.id.7
        movabs  rdx, offset .Lburst_abort.error.message.8
        call    qword ptr [rsi]
.LBB0_89:
        vdivsd  xmm14, xmm10, xmm6
        mov     eax, dword ptr [rbx + 88]
        test    al, 1
        je      .LBB0_91
        jmp     .LBB0_93
.LBB0_90:
        movabs  rcx, offset .Lburst_abort.error.id.9
        movabs  rdx, offset .Lburst_abort.error.message.10
        call    qword ptr [rsi]
        vdivsd  xmm14, xmm10, xmm6
        mov     eax, dword ptr [rbx + 88]
        test    al, 1
        jne     .LBB0_93
.LBB0_91:
        mov     rcx, qword ptr [rbx + 80]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_93
        mov     eax, dword ptr [rbx + 88]
        mov     rcx, qword ptr [rbx + 80]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_93:
        mov     rax, qword ptr [rbx + 56]
        vmulsd  xmm0, xmm7, qword ptr [rax + 8*rbp]
        vmovddup        xmm1, xmm0
        vmulpd  xmm1, xmm15, xmm1
        vmulsd  xmm0, xmm9, xmm0
        vmovddup        xmm7, xmm14
        vmulsd  xmm8, xmm14, xmm0
        vmulpd  xmm9, xmm1, xmm7
        movsxd  rax, dword ptr [rbx + 292]
        cmp     r15, rax
        jl      .LBB0_95
        movsxd  rcx, dword ptr [rbx + 296]
        cmp     r15, rcx
        jle     .LBB0_101
.LBB0_95:
        movsxd  rcx, dword ptr [rbx + 288]
        cmp     r15, rcx
        jge     .LBB0_98
        test    eax, eax
        jne     .LBB0_99
        dec     ecx
        cmp     dword ptr [rbx + 296], ecx
        jne     .LBB0_99
        .p2align        4, 0x90
.LBB0_98:
        movabs  rcx, offset .Lburst_abort.error.id.11
        movabs  rdx, offset .Lburst_abort.error.message.12
        jmp     .LBB0_100
.LBB0_99:
        movabs  rcx, offset .Lburst_abort.error.id.13
        movabs  rdx, offset .Lburst_abort.error.message.14
.LBB0_100:
        call    qword ptr [rsi]
.LBB0_101:
        vmulsd  xmm8, xmm14, xmm8
        vmulpd  xmm6, xmm9, xmm7
        mov     eax, dword ptr [rbx + 312]
        test    al, 1
        jne     .LBB0_104
        mov     rcx, qword ptr [rbx + 304]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_104
        mov     eax, dword ptr [rbx + 312]
        mov     rcx, qword ptr [rbx + 304]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_104:
        vmulpd  xmm7, xmm7, xmm6
        vmulsd  xmm6, xmm14, xmm8
        mov     rax, qword ptr [rbx + 280]
        test    byte ptr [rax + 2*r15 + 1], 2
        jne     .LBB0_116
        movsxd  rax, dword ptr [rbx + 292]
        cmp     rbp, rax
        jl      .LBB0_107
        movsxd  rcx, dword ptr [rbx + 296]
        cmp     rbp, rcx
        jle     .LBB0_111
.LBB0_107:
        movsxd  rcx, dword ptr [rbx + 288]
        cmp     rbp, rcx
        jge     .LBB0_110
        test    eax, eax
        jne     .LBB0_112
        dec     ecx
        cmp     dword ptr [rbx + 296], ecx
        jne     .LBB0_112
.LBB0_110:
        movabs  rcx, offset .Lburst_abort.error.id.11
        movabs  rdx, offset .Lburst_abort.error.message.12
        call    qword ptr [rsi]
.LBB0_111:
        mov     eax, dword ptr [rbx + 312]
        test    al, 1
        je      .LBB0_113
        jmp     .LBB0_115
.LBB0_112:
        movabs  rcx, offset .Lburst_abort.error.id.13
        movabs  rdx, offset .Lburst_abort.error.message.14
        call    qword ptr [rsi]
        mov     eax, dword ptr [rbx + 312]
        test    al, 1
        jne     .LBB0_115
.LBB0_113:
        mov     rcx, qword ptr [rbx + 304]
        mov     ecx, dword ptr [rcx]
        and     ecx, -3
        cmp     eax, ecx
        je      .LBB0_115
        mov     eax, dword ptr [rbx + 312]
        mov     rcx, qword ptr [rbx + 304]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_115:
        mov     rax, qword ptr [rbx + 280]
        test    byte ptr [rax + 2*rbp + 1], 2
        je      .LBB0_117
.LBB0_116:
        movabs  rax, offset .LCPI0_1
        vmovapd xmm0, xmmword ptr [rax]
        vxorpd  xmm7, xmm7, xmm0
        vxorpd  xmm6, xmm6, xmm0
.LBB0_117:
        vblendpd        xmm0, xmm12, xmm13, 1
        vaddpd  xmm13, xmm0, xmm7
        vaddsd  xmm11, xmm11, xmm6
        mov     eax, dword ptr [rbx + 392]
        vmovapd xmm12, xmm13
.LBB0_118:
        inc     rbp
        movsxd  rcx, eax
        add     rdi, 6
        cmp     rbp, rcx
        jl      .LBB0_25
        movsxd  rax, dword ptr [rbx + 348]
        cmp     r15, rax
        mov     rdi, qword ptr [rsp + 80]
        jl      .LBB0_123
.LBB0_120:
        movsxd  rcx, dword ptr [rbx + 352]
        cmp     r15, rcx
        jg      .LBB0_123
        mov     eax, dword ptr [rbx + 368]
        test    al, 2
        je      .LBB0_128
        jmp     .LBB0_130
        .p2align        4, 0x90
.LBB0_122:
        vxorpd  xmm12, xmm12, xmm12
        vxorpd  xmm11, xmm11, xmm11
        movsxd  rax, dword ptr [rbx + 348]
        cmp     r15, rax
        mov     rdi, qword ptr [rsp + 80]
        jge     .LBB0_120
.LBB0_123:
        movsxd  rcx, dword ptr [rbx + 344]
        cmp     r15, rcx
        jge     .LBB0_126
        test    eax, eax
        jne     .LBB0_127
        dec     ecx
        cmp     dword ptr [rbx + 352], ecx
        jne     .LBB0_127
        .p2align        4, 0x90
.LBB0_126:
        movabs  rcx, offset .Lburst_abort.error.id
        movabs  rdx, offset .Lburst_abort.error.message
        call    qword ptr [rsi]
        mov     eax, dword ptr [rbx + 368]
        test    al, 2
        je      .LBB0_128
        jmp     .LBB0_130
        .p2align        4, 0x90
.LBB0_127:
        movabs  rcx, offset .Lburst_abort.error.id.1
        movabs  rdx, offset .Lburst_abort.error.message.2
        call    qword ptr [rsi]
        mov     eax, dword ptr [rbx + 368]
        test    al, 2
        jne     .LBB0_130
.LBB0_128:
        mov     rcx, qword ptr [rbx + 360]
        mov     ecx, dword ptr [rcx]
        and     ecx, -2
        cmp     eax, ecx
        je      .LBB0_130
        mov     eax, dword ptr [rbx + 368]
        mov     rcx, qword ptr [rbx + 360]
        mov     qword ptr [rsp + 40], rcx
        mov     dword ptr [rsp + 48], eax
        mov     rcx, r14
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected_Ptr"
        call    qword ptr [rax]
.LBB0_130:
        mov     rax, qword ptr [rbx + 336]
        vmovupd xmmword ptr [rax + 8*rdi], xmm12
        vmovsd  qword ptr [rax + 8*rdi + 16], xmm11
        inc     r15
        movsxd  rax, dword ptr [rsp + 56]
        cmp     r15, rax
        jl      .LBB0_3
.LBB0_131:
        mov     rcx, qword ptr [rsp + 72]
        mov     edx, dword ptr [rsp + 384]
        lea     r8, [rsp + 60]
        lea     r9, [rsp + 56]
        movabs  rax, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange_Ptr"
        call    qword ptr [rax]
        test    al, al
        jne     .LBB0_2
.LBB0_132:
        vmovaps xmm6, xmmword ptr [rsp + 112]
        vmovaps xmm7, xmmword ptr [rsp + 128]
        vmovaps xmm8, xmmword ptr [rsp + 144]
        vmovaps xmm9, xmmword ptr [rsp + 160]
        vmovaps xmm10, xmmword ptr [rsp + 176]
        vmovaps xmm11, xmmword ptr [rsp + 192]
        vmovaps xmm12, xmmword ptr [rsp + 208]
        vmovaps xmm13, xmmword ptr [rsp + 224]
        vmovaps xmm14, xmmword ptr [rsp + 240]
        vmovaps xmm15, xmmword ptr [rsp + 256]
        add     rsp, 280
        pop     rbx
        pop     rbp
        pop     rdi
        pop     rsi
        pop     r12
        pop     r13
        pop     r14
        pop     r15
        ret
.Lfunc_end0:
        .size   "Unity.Jobs.IJobParallelForExtensions+ParallelForJobStruct`1[[NBody.ComputationLayer.GravityCalculator+AcclerationJob, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::Execute(NBody.ComputationLayer.GravityCalculator+AcclerationJob&, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|Unity.Jobs.LowLevel.Unsafe.JobRanges&, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)", .Lfunc_end0-"Unity.Jobs.IJobParallelForExtensions+ParallelForJobStruct`1[[NBody.ComputationLayer.GravityCalculator+AcclerationJob, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::Execute(NBody.ComputationLayer.GravityCalculator+AcclerationJob&, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|System.IntPtr, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|Unity.Jobs.LowLevel.Unsafe.JobRanges&, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)"
        .cfi_endproc

        .globl  "Unity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange"
        .p2align        4, 0x90
        .type   "Unity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange",@function
"Unity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange":
        .cfi_startproc
        movabs  rax, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange_Ptr"
        mov     rax, qword ptr [rax]
        rex64 jmp       rax
.Lfunc_end1:
        .size   "Unity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange", .Lfunc_end1-"Unity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange"
        .cfi_endproc

        .globl  "Unity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges"
        .p2align        4, 0x90
        .type   "Unity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges",@function
"Unity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges":
        .cfi_startproc
        movabs  rax, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges_Ptr"
        mov     rax, qword ptr [rax]
        rex64 jmp       rax
.Lfunc_end2:
        .size   "Unity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges", .Lfunc_end2-"Unity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges"
        .cfi_endproc

        .globl  "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected"
        .p2align        4, 0x90
        .type   "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected",@function
"Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected":
        .cfi_startproc
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        rex64 jmp       qword ptr [rax]
.Lfunc_end3:
        .size   "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected", .Lfunc_end3-"Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected"
        .cfi_endproc

        .globl  "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected"
        .p2align        4, 0x90
        .type   "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected",@function
"Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected":
        .cfi_startproc
        movabs  rax, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected_Ptr"
        rex64 jmp       qword ptr [rax]
.Lfunc_end4:
        .size   "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected", .Lfunc_end4-"Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected"
        .cfi_endproc

        .globl  burst_abort
        .p2align        4, 0x90
        .type   burst_abort,@function
burst_abort:
        .cfi_startproc
        movabs  rax, offset .Lburst_abort_Ptr
        mov     rax, qword ptr [rax]
        rex64 jmp       rax
.Lfunc_end5:
        .size   burst_abort, .Lfunc_end5-burst_abort
        .cfi_endproc

        .globl  burst.initialize
        .p2align        4, 0x90
        .type   burst.initialize,@function
burst.initialize:
        .cfi_startproc
        push    rsi
        .cfi_def_cfa_offset 16
        sub     rsp, 32
        .cfi_def_cfa_offset 48
        .cfi_offset rsi, -16
        mov     rsi, rcx
        movabs  rcx, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange.function.string"
        call    rsi
        movabs  rcx, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange_Ptr"
        mov     qword ptr [rcx], rax
        movabs  rcx, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges.function.string"
        call    rsi
        movabs  rcx, offset ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges_Ptr"
        mov     qword ptr [rcx], rax
        movabs  rcx, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected.function.string"
        call    rsi
        movabs  rcx, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        mov     qword ptr [rcx], rax
        movabs  rcx, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected.function.string"
        call    rsi
        movabs  rcx, offset ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected_Ptr"
        mov     qword ptr [rcx], rax
        movabs  rcx, offset .Lburst_abort.function.string
        call    rsi
        movabs  rcx, offset .Lburst_abort_Ptr
        mov     qword ptr [rcx], rax
        add     rsp, 32
        pop     rsi
        ret
.Lfunc_end6:
        .size   burst.initialize, .Lfunc_end6-burst.initialize
        .cfi_endproc

        .type   .Lburst_abort.error.id, @ 
        .section        .rodata,"a",@progbits
.Lburst_abort.error.id:
        .asciz  "System.IndexOutOfRangeException"
        .size   .Lburst_abort.error.id, 32

        .type   .Lburst_abort.error.message, @ 
.Lburst_abort.error.message:
        .asciz  "Index {0} is out of range of '{1}' Length."
        .size   .Lburst_abort.error.message, 43

        .type   .Lburst_abort.error.id.1, @ 
.Lburst_abort.error.id.1:
        .asciz  "System.IndexOutOfRangeException"
        .size   .Lburst_abort.error.id.1, 32

        .type   .Lburst_abort.error.message.2, @ 
.Lburst_abort.error.message.2:
        .asciz  "Index {0} is out of restricted IJobParallelFor range [{1}...{2}] in ReadWriteBuffer.\n"
        .size   .Lburst_abort.error.message.2, 86

        .type   .Lburst_abort.error.id.3, @ 
.Lburst_abort.error.id.3:
        .asciz  "System.IndexOutOfRangeException"
        .size   .Lburst_abort.error.id.3, 32

        .type   .Lburst_abort.error.message.4, @ 
.Lburst_abort.error.message.4:
        .asciz  "Index {0} is out of range of '{1}' Length."
        .size   .Lburst_abort.error.message.4, 43

        .type   .Lburst_abort.error.id.5, @ 
.Lburst_abort.error.id.5:
        .asciz  "System.IndexOutOfRangeException"
        .size   .Lburst_abort.error.id.5, 32

        .type   .Lburst_abort.error.message.6, @ 
.Lburst_abort.error.message.6:
        .asciz  "Index {0} is out of restricted IJobParallelFor range [{1}...{2}] in ReadWriteBuffer.\n"
        .size   .Lburst_abort.error.message.6, 86

        .type   .Lburst_abort.error.id.7, @ 
.Lburst_abort.error.id.7:
        .asciz  "System.IndexOutOfRangeException"
        .size   .Lburst_abort.error.id.7, 32

        .type   .Lburst_abort.error.message.8, @ 
.Lburst_abort.error.message.8:
        .asciz  "Index {0} is out of range of '{1}' Length."
        .size   .Lburst_abort.error.message.8, 43

        .type   .Lburst_abort.error.id.9, @ 
.Lburst_abort.error.id.9:
        .asciz  "System.IndexOutOfRangeException"
        .size   .Lburst_abort.error.id.9, 32

        .type   .Lburst_abort.error.message.10, @ 
.Lburst_abort.error.message.10:
        .asciz  "Index {0} is out of restricted IJobParallelFor range [{1}...{2}] in ReadWriteBuffer.\n"
        .size   .Lburst_abort.error.message.10, 86

        .type   .Lburst_abort.error.id.11, @ 
.Lburst_abort.error.id.11:
        .asciz  "System.IndexOutOfRangeException"
        .size   .Lburst_abort.error.id.11, 32

        .type   .Lburst_abort.error.message.12, @ 
.Lburst_abort.error.message.12:
        .asciz  "Index {0} is out of range of '{1}' Length."
        .size   .Lburst_abort.error.message.12, 43

        .type   .Lburst_abort.error.id.13, @ 
.Lburst_abort.error.id.13:
        .asciz  "System.IndexOutOfRangeException"
        .size   .Lburst_abort.error.id.13, 32

        .type   .Lburst_abort.error.message.14, @ 
.Lburst_abort.error.message.14:
        .asciz  "Index {0} is out of restricted IJobParallelFor range [{1}...{2}] in ReadWriteBuffer.\n"
        .size   .Lburst_abort.error.message.14, 86

        .type   ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange_Ptr", @ 
        .local  ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange_Ptr"
        .comm   ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange_Ptr",8,8
        .type   ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange.function.string", @ 
".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange.function.string":
        .asciz  "Unity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange"
        .size   ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::GetWorkStealingRange.function.string", 61

        .type   ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges_Ptr", @ 
        .local  ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges_Ptr"
        .comm   ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges_Ptr",8,8
        .type   ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges.function.string", @ 
".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges.function.string":
        .asciz  "Unity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges"
        .size   ".LUnity.Jobs.LowLevel.Unsafe.JobsUtility::patchBufferMinMaxRanges.function.string", 64

        .type   ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr", @ 
        .local  ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr"
        .comm   ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected_Ptr",8,8
        .type   ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected.function.string", @ 
".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected.function.string":
        .asciz  "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected"
        .size   ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckReadAndThrowNoEarlyOut_Injected.function.string", 91

        .type   ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected_Ptr", @ 
        .local  ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected_Ptr"
        .comm   ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected_Ptr",8,8
        .type   ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected.function.string", @ 
".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected.function.string":
        .asciz  "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected"
        .size   ".LUnity.Collections.LowLevel.Unsafe.AtomicSafetyHandle::CheckWriteAndThrowNoEarlyOut_Injected.function.string", 92

        .type   .Lburst_abort_Ptr, @ 
        .local  .Lburst_abort_Ptr
        .comm   .Lburst_abort_Ptr,8,8
        .type   .Lburst_abort.function.string, @ 
.Lburst_abort.function.string:
        .asciz  "burst_abort"
        .size   .Lburst_abort.function.string, 12


        .section        ".note.GNU-stack","",@progbits

We have found the solution to this. As it happens we are using the AssemblyVersionAttribute in order to acquire the build date for the assembly.

We are using it like this:

[assembly: AssemblyVersion(β€œ1.0.*”)]

Removing this (actually moving it to its own assembly using an assembly definition) fixed our problem. I was able to reproduce this in a simple test project - for a simple working project that uses Burst, just add that attribute to any .cs file in the same assembly as the IJob, and Burst will no longer run in a build.

Does lib_burst_generated.dll perhaps use the assembly version to associate itself with the job, and this is somehow knocking it out of sync?

Dave Nelson - Universe Sandbox

Hi @xoofx ,

it seems I have got the same problem. I have upgraded the project (full-rebuild) from 2018.2.20 to 2018.3.6 and in the builds (Win64) Burst is clearly not being used anymore. I get the lib_burst_generated.dll generated (I can delete it without any effect) and I am not using any AssemblyVersionAttributes. In editor seems to work fine, the Burst compiled jobs are also shown in the assembly inspector.

(everything latest stable)
Unity 2018.3.6
Burst 0.2.4-preview.50
Mathematics 1.0.0-preview.1
Jobs 0.0.7-preview.6
Collections 0.0.9-preview.12

Thanks for help!

So I have made some further investigations and can confirm the problem. Here is a quick video showing the problem:

Later, I have tried to strip down the problem with even simpler simulation and some jobs in the build are Burst-compiled and some are not. Could you please give some hints how to verify why is this happening? The jobs which are not compiled are rather simple, some ParallelFor loops doing physics integration.

Thanks

OK @xoofx , I have found what is causing that the Jobs don’t get Burst accelerated in standalone builds.

In my code I have got a single job struct implementing both IJob and IJobParallelFor. This is somehow causing that the job is not getting detected as Burst or compiled properly in the latest Unity versions. When I removed the IJobParallelFor things finally started to work fine.

[BurstCompile]
        public struct UpdatePositionsJob : IJob, IJobParallelFor
        {
            public int particlesCount;
            public float dtInv;
            [ReadOnly] public NativeArray<Vector4> predPositions;
            [ReadOnly] public NativeArray<float> massesInv;
            [WriteOnly] public NativeArray<Vector4> velocities;

            public NativeArray<Vector4> positions;

            public void Execute()
            {
                for (int i = 0; i < particlesCount; i++)
                {

                        velocities[i] = (predPositions[i] - positions[i]) * dtInv;
                        positions[i] = predPositions[i];
                }

            }

            public void Execute(int i)
            {
                    velocities[i] = (predPositions[i] - positions[i]) * dtInv;
                    positions[i] = predPositions[i];
            }
        }

Thanks, we will investigate this.

Question though: How does this UpdatePositionsJob appears in the burst inspector?

This should be fixed in the upcoming burst 1.0.0-preview.5 that will be released early next week

1 Like

Thank you @xoofx !