viz_unittests failing on a bunch of win tot bots |
|||
Issue descriptionLooks like a consistent regression on e.g. https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/ToTWin64(dll) , started in https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/ToTWin64%28dll%29/1933 Also on 32-bit, started https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/ToTWin%28dll%29/2030 It looks like the binary fails to start altogether: https://chromium-swarm.appspot.com/task?id=41a44d0d3712f510&refresh=10&show_raw=1 Additional test environment: CHROME_DEVEL_SANDBOX=/opt/chromium/chrome_sandbox CHROME_HEADLESS=1 LANG=en_US.UTF-8 Command: .\viz_unittests.exe --test-launcher-bot-mode --cfi-diag=0 --test-launcher-summary-output=e:\b\s\w\ioatbgvj\output.json And then nothing. From that page, the exit code is -1073741819 which is 0xc0000005 which is EXCEPTION_ACCESS_VIOLATION . The builds I looked at also include a change to viz itself (https://chromium-review.googlesource.com/c/1368031), so not yet sure if it's a regression in the compiler or in chrome.
,
Dec 10
...but it's also broken on the static rel bots, so it's not a component-build-only thing (https://ci.chromium.org/buildbot/chromium.clang/ToTWin64/2711 , https://ci.chromium.org/buildbot/chromium.clang/ToTWin/2771 )
,
Dec 10
,
Dec 10
`svn log -r348636:348656 https://nico@llvm.org/svn/llvm-project` looks pretty harmless. A bunch of HotColdSplitting patches from vedantk (not sure if we use that code? If so, I suppose they could be related), and this jumps out a bit too: r348645 | nikic | 2018-12-07 16:16:58 -0500 (Fri, 07 Dec 2018) | 29 lines [MemCpyOpt] memset->memcpy forwarding with undef tail Currently memcpyopt optimizes cases like memset(a, byte, N); memcpy(b, a, M); to memset(a, byte, N); memset(b, byte, M); if M <= N. Often this allows further simplifications down the line, which drop the first memset entirely. This patch extends this optimization for the case where M > N, but we know that the bytes a[N..M] are undef due to alloca/lifetime.start. This situation arises relatively often for Rust code, because Rust does not initialize trailing structure padding and loves to insert redundant memcpys. This also fixes https://bugs.llvm.org/show_bug.cgi?id=39844. For the implementation, I'm reusing a bit of code for a similar existing optimization (direct memcpy of undef). I've also added memset support to MemDepAnalysis GetLocation -- Instead, getPointerDependencyFrom could be used, but it seems to make more sense to add this to GetLocation and thus make the computation cachable.
,
Dec 10
Differential Revision: https://reviews.llvm.org/D55120
,
Dec 11
I built clang r348656 locally and then viz_unittests with that in a standard debug build and couldn't repro so far.
,
Dec 11
Derp, it doesn't fail on the dbg tot bots either. /me does a release build...
,
Dec 11
I can repro.
,
Dec 11
The crash has no line number: 0:000> g (784.728): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. *** WARNING: Unable to verify checksum for viz_unittests.exe.exe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x473: 00007ff7`beb096e3 f30f7f440d00 movdqu xmmword ptr [rbp+rcx],xmm0 ss:000081bd`aeebccf0=???????????????????????????????? 0:000> k # Child-SP RetAddr Call Site 00 0000000f`1d5df820 00007ffa`4577824e viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x473 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0] 01 0000000f`1d5dfc40 00007ff7`beec2c31 ucrtbase!initterm+0x8e 02 0000000f`1d5dfc90 00007ffa`460b8364 viz_unittests_exe!__scrt_common_main_seh+0x81 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 253] 03 0000000f`1d5dfcd0 00007ffa`4867e851 KERNEL32!BaseThreadInitThunk+0x14 04 0000000f`1d5dfd00 00000000`00000000 ntdll!RtlUserThreadStart+0x21
,
Dec 11
Oh, and I'm at some old revision of chrome, so it's definitely due to a clang-side change.
,
Dec 11
_GLOBAL__sub_I_ comes from CodeGenModule::EmitCXXGlobalInitFunc() : http://llvm-cs.pcc.me.uk/tools/clang/lib/CodeGen/CGDeclCXX.cpp#570
,
Dec 11
That function up to the segfault (with the bad clang): viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc: 00007ff7`beb09270 4157 push r15 00007ff7`beb09272 4156 push r14 00007ff7`beb09274 4155 push r13 00007ff7`beb09276 4154 push r12 00007ff7`beb09278 56 push rsi 00007ff7`beb09279 57 push rdi 00007ff7`beb0927a 55 push rbp 00007ff7`beb0927b 53 push rbx 00007ff7`beb0927c 4881ecd8030000 sub rsp,3D8h 00007ff7`beb09283 440f299424c0030000 movaps xmmword ptr [rsp+3C0h],xmm10 00007ff7`beb0928c 440f298c24b0030000 movaps xmmword ptr [rsp+3B0h],xmm9 00007ff7`beb09295 440f298424a0030000 movaps xmmword ptr [rsp+3A0h],xmm8 00007ff7`beb0929e 660f7fbc2490030000 movdqa xmmword ptr [rsp+390h],xmm7 00007ff7`beb092a7 0f29b42480030000 movaps xmmword ptr [rsp+380h],xmm6 00007ff7`beb092af 488b052a6d4a00 mov rax,qword ptr [viz_unittests_exe!__security_cookie (00007ff7`befaffe0)] 00007ff7`beb092b6 4831e0 xor rax,rsp 00007ff7`beb092b9 4889842478030000 mov qword ptr [rsp+378h],rax 00007ff7`beb092c1 b80f000000 mov eax,0Fh 00007ff7`beb092c6 66480f6ec0 movq xmm0,rax 00007ff7`beb092cb 660f73f808 pslldq xmm0,8 00007ff7`beb092d0 f30f7f842480000000 movdqu xmmword ptr [rsp+80h],xmm0 00007ff7`beb092d9 c644247000 mov byte ptr [rsp+70h],0 00007ff7`beb092de 4c8d0dddf23e00 lea r9,[viz_unittests_exe!`string' (00007ff7`beef85c2)] 00007ff7`beb092e5 488d742470 lea rsi,[rsp+70h] 00007ff7`beb092ea ba3a000000 mov edx,3Ah 00007ff7`beb092ef 4889f1 mov rcx,rsi 00007ff7`beb092f2 e859dacfff call viz_unittests_exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Reallocate_for<`lambda at C:\src\chrome\src\out\gn\..\..\third_party\depot_tools\win_toolchain\vs_files\3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c\VC\Tools\MSVC\14.14.26428\include\xstring:2650:35',const char *> (00007ff7`be806d50) 00007ff7`beb092f7 660fefc0 pxor xmm0,xmm0 00007ff7`beb092fb f30f7f8424a0000000 movdqu xmmword ptr [rsp+0A0h],xmm0 00007ff7`beb09304 488bbc2480000000 mov rdi,qword ptr [rsp+80h] 00007ff7`beb0930c 4883bc24880000000f cmp qword ptr [rsp+88h],0Fh 00007ff7`beb09315 7605 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xac (00007ff7`beb0931c) 00007ff7`beb09317 488b742470 mov rsi,qword ptr [rsp+70h] 00007ff7`beb0931c 48bdffffffffffffff7f mov rbp,7FFFFFFFFFFFFFFFh 00007ff7`beb09326 4883ff0f cmp rdi,0Fh 00007ff7`beb0932a 7714 ja viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xd0 (00007ff7`beb09340) 00007ff7`beb0932c f30f6f06 movdqu xmm0,xmmword ptr [rsi] 00007ff7`beb09330 660f7f842490000000 movdqa xmmword ptr [rsp+90h],xmm0 00007ff7`beb09339 bb0f000000 mov ebx,0Fh 00007ff7`beb0933e eb4e jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x11e (00007ff7`beb0938e) 00007ff7`beb09340 4889fb mov rbx,rdi 00007ff7`beb09343 4883cb0f or rbx,0Fh 00007ff7`beb09347 4839eb cmp rbx,rbp 00007ff7`beb0934a 480f43dd cmovae rbx,rbp 00007ff7`beb0934e 4881fbff0f0000 cmp rbx,0FFFh 00007ff7`beb09355 7217 jb viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xfe (00007ff7`beb0936e) 00007ff7`beb09357 488d4b28 lea rcx,[rbx+28h] 00007ff7`beb0935b e86c7c3b00 call viz_unittests_exe!operator new (00007ff7`beec0fcc) 00007ff7`beb09360 488d4827 lea rcx,[rax+27h] 00007ff7`beb09364 4883e1e0 and rcx,0FFFFFFFFFFFFFFE0h 00007ff7`beb09368 488941f8 mov qword ptr [rcx-8],rax 00007ff7`beb0936c eb0c jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x10a (00007ff7`beb0937a) 00007ff7`beb0936e 488d4b01 lea rcx,[rbx+1] 00007ff7`beb09372 e8557c3b00 call viz_unittests_exe!operator new (00007ff7`beec0fcc) 00007ff7`beb09377 4889c1 mov rcx,rax 00007ff7`beb0937a 48898c2490000000 mov qword ptr [rsp+90h],rcx 00007ff7`beb09382 4c8d4701 lea r8,[rdi+1] 00007ff7`beb09386 4889f2 mov rdx,rsi 00007ff7`beb09389 e8f2323c00 call viz_unittests_exe!memcpy (00007ff7`beecc680) 00007ff7`beb0938e 4889bc24a0000000 mov qword ptr [rsp+0A0h],rdi 00007ff7`beb09396 48899c24a8000000 mov qword ptr [rsp+0A8h],rbx 00007ff7`beb0939e c78424b000000091030000 mov dword ptr [rsp+0B0h],391h 00007ff7`beb093a9 b908000000 mov ecx,8 00007ff7`beb093ae e8197c3b00 call viz_unittests_exe!operator new (00007ff7`beec0fcc) 00007ff7`beb093b3 4989c7 mov r15,rax 00007ff7`beb093b6 488d0543163f00 lea rax,[viz_unittests_exe!testing::internal::CartesianProductGenerator3<gfx::ColorSpace,gfx::ColorSpace,bool>::Iterator::`vftable'+0x30 (00007ff7`beefaa00)] 00007ff7`beb093bd 498907 mov qword ptr [r15],rax 00007ff7`beb093c0 4883fb0f cmp rbx,0Fh 00007ff7`beb093c4 760a jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x160 (00007ff7`beb093d0) 00007ff7`beb093c6 488bb42490000000 mov rsi,qword ptr [rsp+90h] 00007ff7`beb093ce eb08 jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x168 (00007ff7`beb093d8) 00007ff7`beb093d0 488db42490000000 lea rsi,[rsp+90h] 00007ff7`beb093d8 660fefc0 pxor xmm0,xmm0 00007ff7`beb093dc f30f7f8424f0000000 movdqu xmmword ptr [rsp+0F0h],xmm0 00007ff7`beb093e5 4883ff0f cmp rdi,0Fh 00007ff7`beb093e9 7728 ja viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1a3 (00007ff7`beb09413) 00007ff7`beb093eb f30f6f06 movdqu xmm0,xmmword ptr [rsi] 00007ff7`beb093ef 660f7f8424e0000000 movdqa xmmword ptr [rsp+0E0h],xmm0 00007ff7`beb093f8 4889bc24f0000000 mov qword ptr [rsp+0F0h],rdi 00007ff7`beb09400 48c78424f80000000f000000 mov qword ptr [rsp+0F8h],0Fh 00007ff7`beb0940c b891030000 mov eax,391h 00007ff7`beb09411 eb65 jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x208 (00007ff7`beb09478) 00007ff7`beb09413 4889fb mov rbx,rdi 00007ff7`beb09416 4883cb0f or rbx,0Fh 00007ff7`beb0941a 4839eb cmp rbx,rbp 00007ff7`beb0941d 480f43dd cmovae rbx,rbp 00007ff7`beb09421 4881fbff0f0000 cmp rbx,0FFFh 00007ff7`beb09428 7217 jb viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1d1 (00007ff7`beb09441) 00007ff7`beb0942a 488d4b28 lea rcx,[rbx+28h] 00007ff7`beb0942e e8997b3b00 call viz_unittests_exe!operator new (00007ff7`beec0fcc) 00007ff7`beb09433 488d4827 lea rcx,[rax+27h] 00007ff7`beb09437 4883e1e0 and rcx,0FFFFFFFFFFFFFFE0h 00007ff7`beb0943b 488941f8 mov qword ptr [rcx-8],rax 00007ff7`beb0943f eb0c jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1dd (00007ff7`beb0944d) 00007ff7`beb09441 488d4b01 lea rcx,[rbx+1] 00007ff7`beb09445 e8827b3b00 call viz_unittests_exe!operator new (00007ff7`beec0fcc) 00007ff7`beb0944a 4889c1 mov rcx,rax 00007ff7`beb0944d 48898c24e0000000 mov qword ptr [rsp+0E0h],rcx 00007ff7`beb09455 4c8d4701 lea r8,[rdi+1] 00007ff7`beb09459 4889f2 mov rdx,rsi 00007ff7`beb0945c e81f323c00 call viz_unittests_exe!memcpy (00007ff7`beecc680) 00007ff7`beb09461 4889bc24f0000000 mov qword ptr [rsp+0F0h],rdi 00007ff7`beb09469 48899c24f8000000 mov qword ptr [rsp+0F8h],rbx 00007ff7`beb09471 8b8424b0000000 mov eax,dword ptr [rsp+0B0h] 00007ff7`beb09478 89842400010000 mov dword ptr [rsp+100h],eax 00007ff7`beb0947f 660f6f3529ef3e00 movdqa xmm6,xmmword ptr [viz_unittests_exe!_xmm (00007ff7`beef83b0)] 00007ff7`beb09487 f30f7fb42460030000 movdqu xmmword ptr [rsp+360h],xmm6 00007ff7`beb09490 66c7842454030000653e mov word ptr [rsp+354h],3E65h 00007ff7`beb0949a c78424500300003c747970 mov dword ptr [rsp+350h],7079743Ch 00007ff7`beb094a5 c684245603000000 mov byte ptr [rsp+356h],0 00007ff7`beb094ad 440f2815bbf03e00 movaps xmm10,xmmword ptr [viz_unittests_exe!_xmm (00007ff7`beef8570)] 00007ff7`beb094b5 440f119424d0000000 movups xmmword ptr [rsp+0D0h],xmm10 00007ff7`beb094be 48b87265656e52656374 mov rax,746365526E656572h 00007ff7`beb094c8 48898424c7000000 mov qword ptr [rsp+0C7h],rax 00007ff7`beb094d0 48b853696d706c654772 mov rax,7247656C706D6953h 00007ff7`beb094da 48898424c0000000 mov qword ptr [rsp+0C0h],rax 00007ff7`beb094e2 488dbc24cf000000 lea rdi,[rsp+0CFh] 00007ff7`beb094ea c68424cf00000000 mov byte ptr [rsp+0CFh],0 00007ff7`beb094f2 31db xor ebx,ebx 00007ff7`beb094f4 488bb424c0000000 mov rsi,qword ptr [rsp+0C0h] 00007ff7`beb094fc 4c8db424c0000000 lea r14,[rsp+0C0h] 00007ff7`beb09504 662e0f1f840000000000 nop word ptr cs:[rax+rax] 00007ff7`beb0950e 6690 xchg ax,ax 00007ff7`beb09510 0fb64fff movzx ecx,byte ptr [rdi-1] 00007ff7`beb09514 ff156eee4300 call qword ptr [viz_unittests_exe!_imp_isspace (00007ff7`bef48388)] 00007ff7`beb0951a 85c0 test eax,eax 00007ff7`beb0951c 7477 je viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x325 (00007ff7`beb09595) 00007ff7`beb0951e 4883c7ff add rdi,0FFFFFFFFFFFFFFFFh 00007ff7`beb09522 f6c301 test bl,1 00007ff7`beb09525 490f44f6 cmove rsi,r14 00007ff7`beb09529 4889fd mov rbp,rdi 00007ff7`beb0952c 4829f5 sub rbp,rsi 00007ff7`beb0952f 488b9c24d0000000 mov rbx,qword ptr [rsp+0D0h] 00007ff7`beb09537 4839eb cmp rbx,rbp 00007ff7`beb0953a 0f827d180200 jb viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x21b4d (00007ff7`beb2adbd) 00007ff7`beb09540 0f95c1 setne cl 00007ff7`beb09543 0fb6d1 movzx edx,cl 00007ff7`beb09546 488d0c2a lea rcx,[rdx+rbp] 00007ff7`beb0954a 4889d8 mov rax,rbx 00007ff7`beb0954d 4829d0 sub rax,rdx 00007ff7`beb09550 48898424d0000000 mov qword ptr [rsp+0D0h],rax 00007ff7`beb09558 48f7d9 neg rcx 00007ff7`beb0955b 4c8d040b lea r8,[rbx+rcx] 00007ff7`beb0955f 4983c001 add r8,1 00007ff7`beb09563 4801fa add rdx,rdi 00007ff7`beb09566 4889f9 mov rcx,rdi 00007ff7`beb09569 e822313c00 call viz_unittests_exe!memmove (00007ff7`beecc690) 00007ff7`beb0956e 4883bc24d80000000f cmp qword ptr [rsp+0D8h],0Fh 00007ff7`beb09577 488bb424c0000000 mov rsi,qword ptr [rsp+0C0h] 00007ff7`beb0957f 4c89f7 mov rdi,r14 00007ff7`beb09582 480f47fe cmova rdi,rsi 00007ff7`beb09586 0f97c3 seta bl 00007ff7`beb09589 4801ef add rdi,rbp 00007ff7`beb0958c 4885ed test rbp,rbp 00007ff7`beb0958f 0f857bffffff jne viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x2a0 (00007ff7`beb09510) 00007ff7`beb09595 0f108424c0000000 movups xmm0,xmmword ptr [rsp+0C0h] 00007ff7`beb0959d 0f108c24d0000000 movups xmm1,xmmword ptr [rsp+0D0h] 00007ff7`beb095a5 0f298c24b0020000 movaps xmmword ptr [rsp+2B0h],xmm1 00007ff7`beb095ad 0f298424a0020000 movaps xmmword ptr [rsp+2A0h],xmm0 00007ff7`beb095b5 b80f000000 mov eax,0Fh 00007ff7`beb095ba 66480f6ec0 movq xmm0,rax 00007ff7`beb095bf 660f73f808 pslldq xmm0,8 00007ff7`beb095c4 f30f7f8424d0000000 movdqu xmmword ptr [rsp+0D0h],xmm0 00007ff7`beb095cd c68424c000000000 mov byte ptr [rsp+0C0h],0 00007ff7`beb095d5 4883bc24b80200000f cmp qword ptr [rsp+2B8h],0Fh 00007ff7`beb095de 760a jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x37a (00007ff7`beb095ea) 00007ff7`beb095e0 4c8bb424a0020000 mov r14,qword ptr [rsp+2A0h] 00007ff7`beb095e8 eb08 jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x382 (00007ff7`beb095f2) 00007ff7`beb095ea 4c8db424a0020000 lea r14,[rsp+2A0h] 00007ff7`beb095f2 4c8da42450020000 lea r12,[rsp+250h] 00007ff7`beb095fa 4c89e1 mov rcx,r12 00007ff7`beb095fd e868901b00 call viz_unittests_exe!testing::Message::Message (00007ff7`becc266a) 00007ff7`beb09602 488b8c2450020000 mov rcx,qword ptr [rsp+250h] 00007ff7`beb0960a 4883c110 add rcx,10h 00007ff7`beb0960e 31d2 xor edx,edx 00007ff7`beb09610 ff158ae74300 call qword ptr [viz_unittests_exe!_imp_??6?$basic_ostreamDU?$char_traitsDstdstdQEAAAEAV01HZ (00007ff7`bef47da0)] 00007ff7`beb09616 4c8dac24c0010000 lea r13,[rsp+1C0h] 00007ff7`beb0961e 4c89e1 mov rcx,r12 00007ff7`beb09621 4c89ea mov rdx,r13 00007ff7`beb09624 e8159b1b00 call viz_unittests_exe!testing::Message::GetString (00007ff7`becc313e) 00007ff7`beb09629 4883bc245002000000 cmp qword ptr [rsp+250h],0 00007ff7`beb09632 743a je viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3fe (00007ff7`beb0966e) 00007ff7`beb09634 b101 mov cl,1 00007ff7`beb09636 e865791b00 call viz_unittests_exe!testing::internal::IsTrue (00007ff7`becc0fa0) 00007ff7`beb0963b 84c0 test al,al 00007ff7`beb0963d 7423 je viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3f2 (00007ff7`beb09662) 00007ff7`beb0963f 488b842450020000 mov rax,qword ptr [rsp+250h] 00007ff7`beb09647 4885c0 test rax,rax 00007ff7`beb0964a 7416 je viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3f2 (00007ff7`beb09662) 00007ff7`beb0964c 488b08 mov rcx,qword ptr [rax] 00007ff7`beb0964f 48635104 movsxd rdx,dword ptr [rcx+4] 00007ff7`beb09653 488d0c10 lea rcx,[rax+rdx] 00007ff7`beb09657 488b0410 mov rax,qword ptr [rax+rdx] 00007ff7`beb0965b ba01000000 mov edx,1 00007ff7`beb09660 ff10 call qword ptr [rax] 00007ff7`beb09662 48c784245002000000000000 mov qword ptr [rsp+250h],0 00007ff7`beb0966e c684241003000000 mov byte ptr [rsp+310h],0 00007ff7`beb09676 488b8c2420030000 mov rcx,qword ptr [rsp+320h] 00007ff7`beb0967e 488b942428030000 mov rdx,qword ptr [rsp+328h] 00007ff7`beb09686 4889d0 mov rax,rdx 00007ff7`beb09689 4829c8 sub rax,rcx 00007ff7`beb0968c 4883f811 cmp rax,11h 00007ff7`beb09690 7324 jae viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x446 (00007ff7`beb096b6) 00007ff7`beb09692 48c744242011000000 mov qword ptr [rsp+20h],11h 00007ff7`beb0969b 4c8d0d0eef3e00 lea r9,[viz_unittests_exe!`string' (00007ff7`beef85b0)] 00007ff7`beb096a2 488d8c2410030000 lea rcx,[rsp+310h] 00007ff7`beb096aa ba11000000 mov edx,11h 00007ff7`beb096af e81cb4cfff call viz_unittests_exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Reallocate_grow_by<`lambda at C:\src\chrome\src\out\gn\..\..\third_party\depot_tools\win_toolchain\vs_files\3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c\VC\Tools\MSVC\14.14.26428\include\xstring:2564:4',const char *,unsigned long long> (00007ff7`be804ad0) 00007ff7`beb096b4 eb3d jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x483 (00007ff7`beb096f3) 00007ff7`beb096b6 488d842410030000 lea rax,[rsp+310h] 00007ff7`beb096be 488d6911 lea rbp,[rcx+11h] 00007ff7`beb096c2 4889ac2420030000 mov qword ptr [rsp+320h],rbp 00007ff7`beb096ca 4889c5 mov rbp,rax 00007ff7`beb096cd 4883fa0f cmp rdx,0Fh 00007ff7`beb096d1 7608 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x46b (00007ff7`beb096db) 00007ff7`beb096d3 488bac2410030000 mov rbp,qword ptr [rsp+310h] 00007ff7`beb096db f30f6f05cdee3e00 movdqu xmm0,xmmword ptr [viz_unittests_exe!`string' (00007ff7`beef85b0)] 00007ff7`beb096e3 f30f7f440d00 movdqu xmmword ptr [rbp+rcx],xmm0 ss:000081bd`aeebccf0=????????????????????????????????
,
Dec 11
I synced my clang to r348645, rebuilt clang, deleted out\gn\obj\components\viz\service\unit_tests\renderer_pixeltest.obj and rebuilt viz_unittests. Same crash.
,
Dec 11
Working disassembly from working clang:
0:019> uf viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc
*** WARNING: Unable to verify checksum for viz_unittests.exe.exe
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e084b0 4157 push r15
0 00007ff7`62e084b2 4156 push r14
0 00007ff7`62e084b4 4155 push r13
0 00007ff7`62e084b6 4154 push r12
0 00007ff7`62e084b8 56 push rsi
0 00007ff7`62e084b9 57 push rdi
0 00007ff7`62e084ba 55 push rbp
0 00007ff7`62e084bb 53 push rbx
0 00007ff7`62e084bc 4881ecd8030000 sub rsp,3D8h
0 00007ff7`62e084c3 440f299424c0030000 movaps xmmword ptr [rsp+3C0h],xmm10
0 00007ff7`62e084cc 440f298c24b0030000 movaps xmmword ptr [rsp+3B0h],xmm9
0 00007ff7`62e084d5 440f298424a0030000 movaps xmmword ptr [rsp+3A0h],xmm8
0 00007ff7`62e084de 660f7fbc2490030000 movdqa xmmword ptr [rsp+390h],xmm7
0 00007ff7`62e084e7 0f29b42480030000 movaps xmmword ptr [rsp+380h],xmm6
0 00007ff7`62e084ef 488b05ea5a4a00 mov rax,qword ptr [viz_unittests_exe!__security_cookie (00007ff7`632adfe0)]
0 00007ff7`62e084f6 4831e0 xor rax,rsp
0 00007ff7`62e084f9 4889842478030000 mov qword ptr [rsp+378h],rax
0 00007ff7`62e08501 b80f000000 mov eax,0Fh
0 00007ff7`62e08506 66480f6ec0 movq xmm0,rax
0 00007ff7`62e0850b 660f73f808 pslldq xmm0,8
0 00007ff7`62e08510 f30f7f842480000000 movdqu xmmword ptr [rsp+80h],xmm0
0 00007ff7`62e08519 c644247000 mov byte ptr [rsp+70h],0
0 00007ff7`62e0851e 4c8d0d9de03e00 lea r9,[viz_unittests_exe!`string' (00007ff7`631f65c2)]
0 00007ff7`62e08525 488d742470 lea rsi,[rsp+70h]
0 00007ff7`62e0852a ba3a000000 mov edx,3Ah
0 00007ff7`62e0852f 4889f1 mov rcx,rsi
0 00007ff7`62e08532 e819e8cfff call viz_unittests_exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Reallocate_for<`lambda at C:\src\chrome\src\out\gn\..\..\third_party\depot_tools\win_toolchain\vs_files\3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c\VC\Tools\MSVC\14.14.26428\include\xstring:2650:35',const char *> (00007ff7`62b06d50)
0 00007ff7`62e08537 660fefc0 pxor xmm0,xmm0
0 00007ff7`62e0853b f30f7f8424a0000000 movdqu xmmword ptr [rsp+0A0h],xmm0
0 00007ff7`62e08544 488bbc2480000000 mov rdi,qword ptr [rsp+80h]
0 00007ff7`62e0854c 4883bc24880000000f cmp qword ptr [rsp+88h],0Fh
0 00007ff7`62e08555 7605 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xac (00007ff7`62e0855c) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xa7 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08557 488b742470 mov rsi,qword ptr [rsp+70h]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xac [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0855c 48bdffffffffffffff7f mov rbp,7FFFFFFFFFFFFFFFh
0 00007ff7`62e08566 4883ff0f cmp rdi,0Fh
0 00007ff7`62e0856a 7714 ja viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xd0 (00007ff7`62e08580) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xbc [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0856c f30f6f06 movdqu xmm0,xmmword ptr [rsi]
0 00007ff7`62e08570 660f7f842490000000 movdqa xmmword ptr [rsp+90h],xmm0
0 00007ff7`62e08579 bb0f000000 mov ebx,0Fh
0 00007ff7`62e0857e eb4e jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x11e (00007ff7`62e085ce) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xd0 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08580 4889fb mov rbx,rdi
0 00007ff7`62e08583 4883cb0f or rbx,0Fh
0 00007ff7`62e08587 4839eb cmp rbx,rbp
0 00007ff7`62e0858a 480f43dd cmovae rbx,rbp
0 00007ff7`62e0858e 4881fbff0f0000 cmp rbx,0FFFh
0 00007ff7`62e08595 7217 jb viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xfe (00007ff7`62e085ae) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xe7 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08597 488d4b28 lea rcx,[rbx+28h]
0 00007ff7`62e0859b e87c6b3b00 call viz_unittests_exe!operator new (00007ff7`631bf11c)
0 00007ff7`62e085a0 488d4827 lea rcx,[rax+27h]
0 00007ff7`62e085a4 4883e1e0 and rcx,0FFFFFFFFFFFFFFE0h
0 00007ff7`62e085a8 488941f8 mov qword ptr [rcx-8],rax
0 00007ff7`62e085ac eb0c jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x10a (00007ff7`62e085ba) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xfe [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e085ae 488d4b01 lea rcx,[rbx+1]
0 00007ff7`62e085b2 e8656b3b00 call viz_unittests_exe!operator new (00007ff7`631bf11c)
0 00007ff7`62e085b7 4889c1 mov rcx,rax
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x10a [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e085ba 48898c2490000000 mov qword ptr [rsp+90h],rcx
0 00007ff7`62e085c2 4c8d4701 lea r8,[rdi+1]
0 00007ff7`62e085c6 4889f2 mov rdx,rsi
0 00007ff7`62e085c9 e802223c00 call viz_unittests_exe!memcpy (00007ff7`631ca7d0)
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x11e [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e085ce 4889bc24a0000000 mov qword ptr [rsp+0A0h],rdi
0 00007ff7`62e085d6 48899c24a8000000 mov qword ptr [rsp+0A8h],rbx
0 00007ff7`62e085de c78424b000000091030000 mov dword ptr [rsp+0B0h],391h
0 00007ff7`62e085e9 b908000000 mov ecx,8
0 00007ff7`62e085ee e8296b3b00 call viz_unittests_exe!operator new (00007ff7`631bf11c)
0 00007ff7`62e085f3 4989c7 mov r15,rax
0 00007ff7`62e085f6 488d0503043f00 lea rax,[viz_unittests_exe!testing::internal::CartesianProductGenerator3<gfx::ColorSpace,gfx::ColorSpace,bool>::Iterator::`vftable'+0x30 (00007ff7`631f8a00)]
0 00007ff7`62e085fd 498907 mov qword ptr [r15],rax
0 00007ff7`62e08600 4883fb0f cmp rbx,0Fh
0 00007ff7`62e08604 760a jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x160 (00007ff7`62e08610) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x156 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08606 488bb42490000000 mov rsi,qword ptr [rsp+90h]
0 00007ff7`62e0860e eb08 jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x168 (00007ff7`62e08618) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x160 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08610 488db42490000000 lea rsi,[rsp+90h]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x168 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08618 660fefc0 pxor xmm0,xmm0
0 00007ff7`62e0861c f30f7f8424f0000000 movdqu xmmword ptr [rsp+0F0h],xmm0
0 00007ff7`62e08625 4883ff0f cmp rdi,0Fh
0 00007ff7`62e08629 7728 ja viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1a3 (00007ff7`62e08653) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x17b [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0862b f30f6f06 movdqu xmm0,xmmword ptr [rsi]
0 00007ff7`62e0862f 660f7f8424e0000000 movdqa xmmword ptr [rsp+0E0h],xmm0
0 00007ff7`62e08638 4889bc24f0000000 mov qword ptr [rsp+0F0h],rdi
0 00007ff7`62e08640 48c78424f80000000f000000 mov qword ptr [rsp+0F8h],0Fh
0 00007ff7`62e0864c b891030000 mov eax,391h
0 00007ff7`62e08651 eb65 jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x208 (00007ff7`62e086b8) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1a3 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08653 4889fb mov rbx,rdi
0 00007ff7`62e08656 4883cb0f or rbx,0Fh
0 00007ff7`62e0865a 4839eb cmp rbx,rbp
0 00007ff7`62e0865d 480f43dd cmovae rbx,rbp
0 00007ff7`62e08661 4881fbff0f0000 cmp rbx,0FFFh
0 00007ff7`62e08668 7217 jb viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1d1 (00007ff7`62e08681) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1ba [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0866a 488d4b28 lea rcx,[rbx+28h]
0 00007ff7`62e0866e e8a96a3b00 call viz_unittests_exe!operator new (00007ff7`631bf11c)
0 00007ff7`62e08673 488d4827 lea rcx,[rax+27h]
0 00007ff7`62e08677 4883e1e0 and rcx,0FFFFFFFFFFFFFFE0h
0 00007ff7`62e0867b 488941f8 mov qword ptr [rcx-8],rax
0 00007ff7`62e0867f eb0c jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1dd (00007ff7`62e0868d) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1d1 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08681 488d4b01 lea rcx,[rbx+1]
0 00007ff7`62e08685 e8926a3b00 call viz_unittests_exe!operator new (00007ff7`631bf11c)
0 00007ff7`62e0868a 4889c1 mov rcx,rax
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x1dd [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0868d 48898c24e0000000 mov qword ptr [rsp+0E0h],rcx
0 00007ff7`62e08695 4c8d4701 lea r8,[rdi+1]
0 00007ff7`62e08699 4889f2 mov rdx,rsi
0 00007ff7`62e0869c e82f213c00 call viz_unittests_exe!memcpy (00007ff7`631ca7d0)
0 00007ff7`62e086a1 4889bc24f0000000 mov qword ptr [rsp+0F0h],rdi
0 00007ff7`62e086a9 48899c24f8000000 mov qword ptr [rsp+0F8h],rbx
0 00007ff7`62e086b1 8b8424b0000000 mov eax,dword ptr [rsp+0B0h]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x208 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e086b8 89842400010000 mov dword ptr [rsp+100h],eax
0 00007ff7`62e086bf 660f6f35e9dc3e00 movdqa xmm6,xmmword ptr [viz_unittests_exe!_xmm (00007ff7`631f63b0)]
0 00007ff7`62e086c7 f30f7fb42460030000 movdqu xmmword ptr [rsp+360h],xmm6
0 00007ff7`62e086d0 66c7842454030000653e mov word ptr [rsp+354h],3E65h
0 00007ff7`62e086da c78424500300003c747970 mov dword ptr [rsp+350h],7079743Ch
0 00007ff7`62e086e5 c684245603000000 mov byte ptr [rsp+356h],0
0 00007ff7`62e086ed 440f28157bde3e00 movaps xmm10,xmmword ptr [viz_unittests_exe!_xmm (00007ff7`631f6570)]
0 00007ff7`62e086f5 440f119424d0000000 movups xmmword ptr [rsp+0D0h],xmm10
0 00007ff7`62e086fe 48b87265656e52656374 mov rax,746365526E656572h
0 00007ff7`62e08708 48898424c7000000 mov qword ptr [rsp+0C7h],rax
0 00007ff7`62e08710 48b853696d706c654772 mov rax,7247656C706D6953h
0 00007ff7`62e0871a 48898424c0000000 mov qword ptr [rsp+0C0h],rax
0 00007ff7`62e08722 488db424cf000000 lea rsi,[rsp+0CFh]
0 00007ff7`62e0872a c68424cf00000000 mov byte ptr [rsp+0CFh],0
0 00007ff7`62e08732 31db xor ebx,ebx
0 00007ff7`62e08734 488bbc24c0000000 mov rdi,qword ptr [rsp+0C0h]
0 00007ff7`62e0873c 4c8db424c0000000 lea r14,[rsp+0C0h]
0 00007ff7`62e08744 662e0f1f840000000000 nop word ptr cs:[rax+rax]
0 00007ff7`62e0874e 6690 xchg ax,ax
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x2a0 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08750 0fb64eff movzx ecx,byte ptr [rsi-1]
0 00007ff7`62e08754 ff152edc4300 call qword ptr [viz_unittests_exe!_imp_isspace (00007ff7`63246388)]
0 00007ff7`62e0875a 85c0 test eax,eax
0 00007ff7`62e0875c 7477 je viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x325 (00007ff7`62e087d5) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x2ae [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0875e 4883c6ff add rsi,0FFFFFFFFFFFFFFFFh
0 00007ff7`62e08762 f6c301 test bl,1
0 00007ff7`62e08765 490f44fe cmove rdi,r14
0 00007ff7`62e08769 4889f5 mov rbp,rsi
0 00007ff7`62e0876c 4829fd sub rbp,rdi
0 00007ff7`62e0876f 488b9c24d0000000 mov rbx,qword ptr [rsp+0D0h]
0 00007ff7`62e08777 4839eb cmp rbx,rbp
0 00007ff7`62e0877a 0f828d070200 jb viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x20a5d (00007ff7`62e28f0d) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x2d0 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08780 0f95c1 setne cl
0 00007ff7`62e08783 0fb6d1 movzx edx,cl
0 00007ff7`62e08786 488d0c2a lea rcx,[rdx+rbp]
0 00007ff7`62e0878a 4889d8 mov rax,rbx
0 00007ff7`62e0878d 4829d0 sub rax,rdx
0 00007ff7`62e08790 48898424d0000000 mov qword ptr [rsp+0D0h],rax
0 00007ff7`62e08798 48f7d9 neg rcx
0 00007ff7`62e0879b 4c8d040b lea r8,[rbx+rcx]
0 00007ff7`62e0879f 4983c001 add r8,1
0 00007ff7`62e087a3 4801f2 add rdx,rsi
0 00007ff7`62e087a6 4889f1 mov rcx,rsi
0 00007ff7`62e087a9 e832203c00 call viz_unittests_exe!memmove (00007ff7`631ca7e0)
0 00007ff7`62e087ae 4883bc24d80000000f cmp qword ptr [rsp+0D8h],0Fh
0 00007ff7`62e087b7 488bbc24c0000000 mov rdi,qword ptr [rsp+0C0h]
0 00007ff7`62e087bf 4c89f6 mov rsi,r14
0 00007ff7`62e087c2 480f47f7 cmova rsi,rdi
0 00007ff7`62e087c6 0f97c3 seta bl
0 00007ff7`62e087c9 4801ee add rsi,rbp
0 00007ff7`62e087cc 4885ed test rbp,rbp
0 00007ff7`62e087cf 0f857bffffff jne viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x2a0 (00007ff7`62e08750) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x325 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e087d5 0f108424c0000000 movups xmm0,xmmword ptr [rsp+0C0h]
0 00007ff7`62e087dd 0f108c24d0000000 movups xmm1,xmmword ptr [rsp+0D0h]
0 00007ff7`62e087e5 0f298c24b0020000 movaps xmmword ptr [rsp+2B0h],xmm1
0 00007ff7`62e087ed 0f298424a0020000 movaps xmmword ptr [rsp+2A0h],xmm0
0 00007ff7`62e087f5 b80f000000 mov eax,0Fh
0 00007ff7`62e087fa 66480f6ec0 movq xmm0,rax
0 00007ff7`62e087ff 660f73f808 pslldq xmm0,8
0 00007ff7`62e08804 f30f7f8424d0000000 movdqu xmmword ptr [rsp+0D0h],xmm0
0 00007ff7`62e0880d c68424c000000000 mov byte ptr [rsp+0C0h],0
0 00007ff7`62e08815 4883bc24b80200000f cmp qword ptr [rsp+2B8h],0Fh
0 00007ff7`62e0881e 760a jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x37a (00007ff7`62e0882a) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x370 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08820 488b9c24a0020000 mov rbx,qword ptr [rsp+2A0h]
0 00007ff7`62e08828 eb08 jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x382 (00007ff7`62e08832) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x37a [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0882a 488d9c24a0020000 lea rbx,[rsp+2A0h]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x382 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08832 4c8dac2450020000 lea r13,[rsp+250h]
0 00007ff7`62e0883a 4c89e9 mov rcx,r13
0 00007ff7`62e0883d e8787f1b00 call viz_unittests_exe!testing::Message::Message (00007ff7`62fc07ba)
0 00007ff7`62e08842 488b8c2450020000 mov rcx,qword ptr [rsp+250h]
0 00007ff7`62e0884a 4883c110 add rcx,10h
0 00007ff7`62e0884e 31d2 xor edx,edx
0 00007ff7`62e08850 ff154ad54300 call qword ptr [viz_unittests_exe!_imp_??6?$basic_ostreamDU?$char_traitsDstdstdQEAAAEAV01HZ (00007ff7`63245da0)]
0 00007ff7`62e08856 4c8db424c0010000 lea r14,[rsp+1C0h]
0 00007ff7`62e0885e 4c89e9 mov rcx,r13
0 00007ff7`62e08861 4c89f2 mov rdx,r14
0 00007ff7`62e08864 e8258a1b00 call viz_unittests_exe!testing::Message::GetString (00007ff7`62fc128e)
0 00007ff7`62e08869 4883bc245002000000 cmp qword ptr [rsp+250h],0
0 00007ff7`62e08872 743a je viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3fe (00007ff7`62e088ae) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3c4 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08874 b101 mov cl,1
0 00007ff7`62e08876 e875681b00 call viz_unittests_exe!testing::internal::IsTrue (00007ff7`62fbf0f0)
0 00007ff7`62e0887b 84c0 test al,al
0 00007ff7`62e0887d 7423 je viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3f2 (00007ff7`62e088a2) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3cf [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0887f 488b842450020000 mov rax,qword ptr [rsp+250h]
0 00007ff7`62e08887 4885c0 test rax,rax
0 00007ff7`62e0888a 7416 je viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3f2 (00007ff7`62e088a2) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3dc [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0888c 488b08 mov rcx,qword ptr [rax]
0 00007ff7`62e0888f 48635104 movsxd rdx,dword ptr [rcx+4]
0 00007ff7`62e08893 488d0c10 lea rcx,[rax+rdx]
0 00007ff7`62e08897 488b0410 mov rax,qword ptr [rax+rdx]
0 00007ff7`62e0889b ba01000000 mov edx,1
0 00007ff7`62e088a0 ff10 call qword ptr [rax]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3f2 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e088a2 48c784245002000000000000 mov qword ptr [rsp+250h],0
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3fe [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e088ae c684241003000000 mov byte ptr [rsp+310h],0
0 00007ff7`62e088b6 b80f000000 mov eax,0Fh
0 00007ff7`62e088bb 66480f6ef8 movq xmm7,rax
0 00007ff7`62e088c0 660f73ff08 pslldq xmm7,8
0 00007ff7`62e088c5 f30f7fbc2420030000 movdqu xmmword ptr [rsp+320h],xmm7
0 00007ff7`62e088ce 48c744242011000000 mov qword ptr [rsp+20h],11h
0 00007ff7`62e088d7 4c8d0dd2dc3e00 lea r9,[viz_unittests_exe!`string' (00007ff7`631f65b0)]
0 00007ff7`62e088de 4c8da42410030000 lea r12,[rsp+310h]
0 00007ff7`62e088e6 ba11000000 mov edx,11h
0 00007ff7`62e088eb 4c89e1 mov rcx,r12
0 00007ff7`62e088ee e8ddc1cfff call viz_unittests_exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Reallocate_grow_by<`lambda at C:\src\chrome\src\out\gn\..\..\third_party\depot_tools\win_toolchain\vs_files\3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c\VC\Tools\MSVC\14.14.26428\include\xstring:2564:4',const char *,unsigned long long> (00007ff7`62b04ad0)
0 00007ff7`62e088f3 0f1000 movups xmm0,xmmword ptr [rax]
0 00007ff7`62e088f6 0f104810 movups xmm1,xmmword ptr [rax+10h]
0 00007ff7`62e088fa 0f298c2440030000 movaps xmmword ptr [rsp+340h],xmm1
0 00007ff7`62e08902 0f29842430030000 movaps xmmword ptr [rsp+330h],xmm0
0 00007ff7`62e0890a f30f7f7810 movdqu xmmword ptr [rax+10h],xmm7
0 00007ff7`62e0890f c60000 mov byte ptr [rax],0
0 00007ff7`62e08912 488b8c2440030000 mov rcx,qword ptr [rsp+340h]
0 00007ff7`62e0891a 488b942448030000 mov rdx,qword ptr [rsp+348h]
0 00007ff7`62e08922 4839ca cmp rdx,rcx
0 00007ff7`62e08925 7524 jne viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x49b (00007ff7`62e0894b) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x477 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08927 48c744242001000000 mov qword ptr [rsp+20h],1
0 00007ff7`62e08930 4c8d0d19403c00 lea r9,[viz_unittests_exe!`string' (00007ff7`631cc950)]
0 00007ff7`62e08937 488d8c2430030000 lea rcx,[rsp+330h]
0 00007ff7`62e0893f ba01000000 mov edx,1
0 00007ff7`62e08944 e887c1cfff call viz_unittests_exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Reallocate_grow_by<`lambda at C:\src\chrome\src\out\gn\..\..\third_party\depot_tools\win_toolchain\vs_files\3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c\VC\Tools\MSVC\14.14.26428\include\xstring:2564:4',const char *,unsigned long long> (00007ff7`62b04ad0)
0 00007ff7`62e08949 eb2c jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x4c7 (00007ff7`62e08977) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x49b [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e0894b 488d842430030000 lea rax,[rsp+330h]
0 00007ff7`62e08953 488d6901 lea rbp,[rcx+1]
0 00007ff7`62e08957 4889ac2440030000 mov qword ptr [rsp+340h],rbp
0 00007ff7`62e0895f 4889c5 mov rbp,rax
0 00007ff7`62e08962 4883fa0f cmp rdx,0Fh
0 00007ff7`62e08966 7608 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x4c0 (00007ff7`62e08970) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x4b8 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08968 488bac2430030000 mov rbp,qword ptr [rsp+330h]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x4c0 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08970 66c7440d002f00 mov word ptr [rbp+rcx],2Fh
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x4c7 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08977 0f1000 movups xmm0,xmmword ptr [rax]
0 00007ff7`62e0897a 0f104810 movups xmm1,xmmword ptr [rax+10h]
0 00007ff7`62e0897e 0f298c2480010000 movaps xmmword ptr [rsp+180h],xmm1
0 00007ff7`62e08986 0f29842470010000 movaps xmmword ptr [rsp+170h],xmm0
0 00007ff7`62e0898e b90f000000 mov ecx,0Fh
0 00007ff7`62e08993 66480f6ec1 movq xmm0,rcx
0 00007ff7`62e08998 660f73f808 pslldq xmm0,8
0 00007ff7`62e0899d f30f7f4010 movdqu xmmword ptr [rax+10h],xmm0
0 00007ff7`62e089a2 c60000 mov byte ptr [rax],0
0 00007ff7`62e089a5 4c8b8424d0010000 mov r8,qword ptr [rsp+1D0h]
0 00007ff7`62e089ad 488b8424d8010000 mov rax,qword ptr [rsp+1D8h]
0 00007ff7`62e089b5 488bbc2480010000 mov rdi,qword ptr [rsp+180h]
0 00007ff7`62e089bd 488b8c2488010000 mov rcx,qword ptr [rsp+188h]
0 00007ff7`62e089c5 4889ca mov rdx,rcx
0 00007ff7`62e089c8 4829fa sub rdx,rdi
0 00007ff7`62e089cb 4939d0 cmp r8,rdx
0 00007ff7`62e089ce 761f jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x53f (00007ff7`62e089ef) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x520 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e089d0 4889c2 mov rdx,rax
0 00007ff7`62e089d3 4c29c2 sub rdx,r8
0 00007ff7`62e089d6 4839fa cmp rdx,rdi
0 00007ff7`62e089d9 736f jae viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x59a (00007ff7`62e08a4a) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x52b [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e089db 4883f80f cmp rax,0Fh
0 00007ff7`62e089df 0f8681000000 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x5b6 (00007ff7`62e08a66) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x535 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e089e5 4c8b8c24c0010000 mov r9,qword ptr [rsp+1C0h]
0 00007ff7`62e089ed eb7f jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x5be (00007ff7`62e08a6e) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x53f [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e089ef 4d89fc mov r12,r15
0 00007ff7`62e089f2 4989df mov r15,rbx
0 00007ff7`62e089f5 4883f80f cmp rax,0Fh
0 00007ff7`62e089f9 7608 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x553 (00007ff7`62e08a03) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x54b [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e089fb 4c8bb424c0010000 mov r14,qword ptr [rsp+1C0h]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x553 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08a03 488db42470010000 lea rsi,[rsp+170h]
0 00007ff7`62e08a0b 4a8d2c07 lea rbp,[rdi+r8]
0 00007ff7`62e08a0f 4889ac2480010000 mov qword ptr [rsp+180h],rbp
0 00007ff7`62e08a17 4889f3 mov rbx,rsi
0 00007ff7`62e08a1a 4883f90f cmp rcx,0Fh
0 00007ff7`62e08a1e 7608 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x578 (00007ff7`62e08a28) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x570 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08a20 488b9c2470010000 mov rbx,qword ptr [rsp+170h]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x578 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08a28 4801df add rdi,rbx
0 00007ff7`62e08a2b 4889f9 mov rcx,rdi
0 00007ff7`62e08a2e 4c89f2 mov rdx,r14
0 00007ff7`62e08a31 e8aa1d3c00 call viz_unittests_exe!memmove (00007ff7`631ca7e0)
0 00007ff7`62e08a36 c6042b00 mov byte ptr [rbx+rbp],0
0 00007ff7`62e08a3a 4c89fb mov rbx,r15
0 00007ff7`62e08a3d 4d89e7 mov r15,r12
0 00007ff7`62e08a40 4c8da42410030000 lea r12,[rsp+310h]
0 00007ff7`62e08a48 eb3c jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x5d6 (00007ff7`62e08a86) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x59a [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08a4a 48895c2448 mov qword ptr [rsp+48h],rbx
0 00007ff7`62e08a4f 4883f90f cmp rcx,0Fh
0 00007ff7`62e08a53 0f8691070000 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xd3a (00007ff7`62e091ea) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x5a9 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08a59 488b9c2470010000 mov rbx,qword ptr [rsp+170h]
0 00007ff7`62e08a61 e98c070000 jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0xd42 (00007ff7`62e091f2) Branch
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x5b6 [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08a66 4c8d8c24c0010000 lea r9,[rsp+1C0h]
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x5be [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e08a6e 4c89442420 mov qword ptr [rsp+20h],r8
0 00007ff7`62e08a73 488d8c2470010000 lea rcx,[rsp+170h]
0 00007ff7`62e08a7b 4c89c2 mov rdx,r8
0 00007ff7`62e08a7e e84dc0cfff call viz_unittests_exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Reallocate_grow_by<`lambda at C:\src\chrome\src\out\gn\..\..\third_party\depot_tools\win_toolchain\vs_files\3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c\VC\Tools\MSVC\14.14.26428\include\xstring:2564:4',const char *,unsigned long long> (00007ff7`62b04ad0)
0 00007ff7`62e08a83 4889c6 mov rsi,rax
,
Dec 11
renderer_pixeltest.cc fairly small
,
Dec 11
This is enough (still requires the rest of the chrome build):
#include "cc/test/pixel_test.h"
#include "cc/test/render_pass_test_utils.h"
#include "components/viz/service/display/gl_renderer.h"
using cc::RendererPixelTest;
namespace viz {
namespace {
using RendererTypes =
::testing::Types<GLRenderer,
cc::GLRendererWithExpandedViewport,
cc::SoftwareRendererWithExpandedViewport>;
TYPED_TEST_CASE(RendererPixelTest, RendererTypes);
TYPED_TEST(RendererPixelTest, SimpleGreenRect) {
}
} // namespace
} // namespace viz
,
Dec 11
preprocessed file
,
Dec 12
Comparing comments 13 and 16, it starts out identical (somewhere an r13 is used instead of an r12 as a temporary). The last basic block of comment 13 is different though.
Correct:
viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x3fe [C:\src\chrome\src\components\viz\service\display\renderer_pixeltest.cc @ 0]:
0 00007ff7`62e088ae c684241003000000 mov byte ptr [rsp+310h],0
0 00007ff7`62e088b6 b80f000000 mov eax,0Fh
0 00007ff7`62e088bb 66480f6ef8 movq xmm7,rax
0 00007ff7`62e088c0 660f73ff08 pslldq xmm7,8
0 00007ff7`62e088c5 f30f7fbc2420030000 movdqu xmmword ptr [rsp+320h],xmm7
0 00007ff7`62e088ce 48c744242011000000 mov qword ptr [rsp+20h],11h
0 00007ff7`62e088d7 4c8d0dd2dc3e00 lea r9,[viz_unittests_exe!`string' (00007ff7`631f65b0)]
0 00007ff7`62e088de 4c8da42410030000 lea r12,[rsp+310h]
0 00007ff7`62e088e6 ba11000000 mov edx,11h
0 00007ff7`62e088eb 4c89e1 mov rcx,r12
0 00007ff7`62e088ee e8ddc1cfff call viz_unittests_exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Reallocate_grow_by<`lambda at C:\src\chrome\src\out\gn\..\..\third_party\depot_tools\win_toolchain\vs_files\3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c\VC\Tools\MSVC\14.14.26428\include\xstring:2564:4',const char *,unsigned long long> (00007ff7`62b04ad0)
0 00007ff7`62e088f3 0f1000 movups xmm0,xmmword ptr [rax]
0 00007ff7`62e088f6 0f104810 movups xmm1,xmmword ptr [rax+10h]
0 00007ff7`62e088fa 0f298c2440030000 movaps xmmword ptr [rsp+340h],xmm1
0 00007ff7`62e08902 0f29842430030000 movaps xmmword ptr [rsp+330h],xmm0
0 00007ff7`62e0890a f30f7f7810 movdqu xmmword ptr [rax+10h],xmm7
0 00007ff7`62e0890f c60000 mov byte ptr [rax],0
0 00007ff7`62e08912 488b8c2440030000 mov rcx,qword ptr [rsp+340h]
0 00007ff7`62e0891a 488b942448030000 mov rdx,qword ptr [rsp+348h]
0 00007ff7`62e08922 4839ca cmp rdx,rcx
0 00007ff7`62e08925 7524 jne viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x49b (00007ff7`62e0894b) Branch
(That does look like a memcpy...)
Incorrect:
00007ff7`beb0966e c684241003000000 mov byte ptr [rsp+310h],0
00007ff7`beb09676 488b8c2420030000 mov rcx,qword ptr [rsp+320h]
00007ff7`beb0967e 488b942428030000 mov rdx,qword ptr [rsp+328h]
00007ff7`beb09686 4889d0 mov rax,rdx
00007ff7`beb09689 4829c8 sub rax,rcx
00007ff7`beb0968c 4883f811 cmp rax,11h
00007ff7`beb09690 7324 jae viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x446 (00007ff7`beb096b6)
00007ff7`beb09692 48c744242011000000 mov qword ptr [rsp+20h],11h
00007ff7`beb0969b 4c8d0d0eef3e00 lea r9,[viz_unittests_exe!`string' (00007ff7`beef85b0)]
00007ff7`beb096a2 488d8c2410030000 lea rcx,[rsp+310h]
00007ff7`beb096aa ba11000000 mov edx,11h
00007ff7`beb096af e81cb4cfff call viz_unittests_exe!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Reallocate_grow_by<`lambda at C:\src\chrome\src\out\gn\..\..\third_party\depot_tools\win_toolchain\vs_files\3bc0ec615cf20ee342f3bc29bc991b5ad66d8d2c\VC\Tools\MSVC\14.14.26428\include\xstring:2564:4',const char *,unsigned long long> (00007ff7`be804ad0)
00007ff7`beb096b4 eb3d jmp viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x483 (00007ff7`beb096f3)
00007ff7`beb096b6 488d842410030000 lea rax,[rsp+310h]
00007ff7`beb096be 488d6911 lea rbp,[rcx+11h]
00007ff7`beb096c2 4889ac2420030000 mov qword ptr [rsp+320h],rbp
00007ff7`beb096ca 4889c5 mov rbp,rax
00007ff7`beb096cd 4883fa0f cmp rdx,0Fh
00007ff7`beb096d1 7608 jbe viz_unittests_exe!_GLOBAL__sub_I_renderer_pixeltest.cc+0x46b (00007ff7`beb096db)
00007ff7`beb096d3 488bac2410030000 mov rbp,qword ptr [rsp+310h]
00007ff7`beb096db f30f6f05cdee3e00 movdqu xmm0,xmmword ptr [viz_unittests_exe!`string' (00007ff7`beef85b0)]
00007ff7`beb096e3 f30f7f440d00 movdqu xmmword ptr [rbp+rcx],xmm0 ss:000081bd`aeebccf0=????????????????????????????????
,
Dec 13
This got reverted in r348645 , http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20181210/610520.html has a reduced repro (not by me). |
|||
►
Sign in to add a comment |
|||
Comment 1 by thakis@chromium.org
, Dec 10