Closed Bug 1452491 Opened 2 years ago Closed 2 years ago

Windows 32-bit opt and Android opt bustage at js/src/vm/TypeInference.h:1178 when Gecko 61 merges to Beta on 2018-04-26

Categories

(Core :: JavaScript Engine: JIT, defect)

defect
Not set

Tracking

()

VERIFIED FIXED
mozilla61
Tracking Status
firefox-esr52 --- unaffected
firefox59 --- unaffected
firefox60 --- unaffected
firefox61 blocking verified

People

(Reporter: aryx, Assigned: jandem)

References

Details

Attachments

(1 file)

This is from bug 1451443.

central-as-beta simulation: https://treeherder.mozilla.org/#/jobs?repo=try&revision=2ab8152c4b51cc057c3d202936a9d629e3fde8d6&group_state=expanded&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable&selectedJob=172537745

Log: https://treeherder.mozilla.org/logviewer.html#?job_id=172537745&repo=try

11:41:09     INFO -  mozmake.EXE[5]: Entering directory 'z:/build/build/src/obj-firefox/js/src'
11:41:09     INFO -  z:/build/build/src/sccache2/sccache.exe z:/build/build/src/vs2017_15.6.0/VC/bin/Hostx64/x86/cl.exe -FoArray.obj -c -DNDEBUG=1 -DTRIMMED=1 -DENABLE_WASM_GLOBAL -DENABLE_SHARED_ARRAY_BUFFER -DEXPORT_JS_API -DJS_HAS_CTYPES '-DDLL_PREFIX=""' '-DDLL_SUFFIX=".dll"' -DFFI_BUILDING -DMOZ_HAS_MOZGLUE -Iz:/build/build/src/js/src -Iz:/build/build/src/obj-firefox/js/src -Iz:/build/build/src/obj-firefox/js/src/ctypes/libffi/include -Iz:/build/build/src/js/src/ctypes/libffi/src/x86 -Iz:/build/build/src/obj-firefox/dist/include -Iz:/build/build/src/obj-firefox/dist/include/nspr -MD -FI z:/build/build/src/obj-firefox/js/src/js-confdefs.h -DMOZILLA_CLIENT -utf-8 -TP -nologo -wd4800 -wd4595 -D_CRT_SECURE_NO_WARNINGS -w15038 -wd5026 -wd5027 -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -arch:SSE2 -Gw -wd4244 -wd4267 -wd4251 -we4553 -GR- -Z7 -O2 -Oy- -wd4805 -wd4661 -wd4146 -wd4312 -GL -deps.deps/Array.obj.pp    z:/build/build/src/js/src/builtin/Array.cpp
11:41:09     INFO -  Array.cpp
11:41:09     INFO -  z:\build\build\src\js\src\vm/TypeInference.h(1178): error C2338: JS_STATIC_ASSERT
11:41:09     INFO -  z:\build\build\src\js\src\vm/TypeInference.h(1185): error C2338: JS_STATIC_ASSERT
11:41:09     INFO -  z:/build/build/src/config/rules.mk:1024: recipe for target 'Array.obj' failed
11:41:09     INFO -  mozmake.EXE[5]: *** [Array.obj] Error 2
Flags: needinfo?(jdemooij)
Oops, sorry about that. I'll try some fixes.
Attached patch PatchSplinter Review
IonCompilationId has a uint64_t field and on some 32-bit platforms (ARM32, Win32) that means IonCompilationId requires 8-byte alignment. That's kind of wasteful and unnecessary so this patch splits this uint64_t into two uint32_t's. We only do == and != comparisons so it's pretty straight-forward.

We could use #ifdefs to keep the uint64_t on 64-bit platforms, but it's not worth the code complexity.

This looks green so far on the 32-bit platforms on Try (with the beta simulation config).
Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
Flags: needinfo?(jdemooij)
Attachment #8966154 - Flags: review?(tcampbell)
Attachment #8966154 - Flags: review?(tcampbell) → review+
Pushed by jandemooij@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/552c2afe559f
Split uint64_t in IonCompilationId in two 32-bit integers to avoid 8-byte alignment. r=tcampbell
https://hg.mozilla.org/mozilla-central/rev/552c2afe559f
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
You need to log in before you can comment on or make changes to this bug.