Closed Bug 1653357 Opened 3 years ago Closed 2 years ago

Nondeterministic block placement in nsCSSBorderRenderer::DrawBorders() with clang-11

Categories

(Firefox Build System :: Toolchains, defect)

defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: away, Unassigned)

References

(Blocks 2 open bugs)

Details

https://firefoxci.taskcluster-artifacts.net/MvdcZql-ToeXR5VQb_dtsA/2/public/diff.html

The placement of the jump target changes the size of the je instruction, which changes the size of the overall function, which affects so many other things down the line that the diff.html becomes pretty much unreadable.

First build: https://firefox-ci-tc.services.mozilla.com/tasks/dqXn6GKFRR2yMyXrlmkJLw

libxul!ZN19nsCSSBorderRenderer11DrawBordersEv+0x1322:
04324242 8b8d88feffff    mov     ecx,dword ptr [ebp-178h]
04324248 8b4228          mov     eax,dword ptr [edx+28h]
0432424b 0f57d2          xorps   xmm2,xmm2
0432424e 80f903          cmp     cl,3
04324251 745b            je      libxul!ZN19nsCSSBorderRenderer11DrawBordersEv+0x138e (043242ae)  Branch

Second build: https://firefox-ci-tc.services.mozilla.com/tasks/KB7e4FEaSvqR3mU-wpEJrQ

libxul!ZN19nsCSSBorderRenderer11DrawBordersEv+0x1322:
04324242 8b8d88feffff    mov     ecx,dword ptr [ebp-178h]
04324248 8b4228          mov     eax,dword ptr [edx+28h]
0432424b 0f57d2          xorps   xmm2,xmm2
0432424e 80f903          cmp     cl,3
04324251 0f84bd000000    je      libxul!ZN19nsCSSBorderRenderer11DrawBordersEv+0x13f4 (04324314)  Branch

There's a large difference in the jump target (an offset of 102), which suggests more changes to that function. Like a large block reordering.

Component: General → Toolchains

It seems like this is not happening anymore.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.