Closed Bug 1609138 Opened 4 years ago Closed 4 years ago

Various problems with ARM64 register sets

Categories

(Core :: JavaScript Engine: JIT, defect, P3)

ARM64
All
defect

Tracking

()

RESOLVED FIXED
mozilla74
Tracking Status
firefox74 --- fixed

People

(Reporter: lth, Assigned: lth)

References

Details

Attachments

(1 file)

Problem 1: FloatRegister name table covers only half of the register space but may be indexed by all of it

Observe in Architecture-arm64.cpp:

FloatRegisters::Code FloatRegisters::FromName(const char* name) {
  for (size_t i = 0; i < Total; i++) {
    if (strcmp(GetName(Code(i)), name) == 0) {
      return Code(i);
    }
  }
  return invalid_fpreg;
}

And in Architecture-arm64.h:

  static const uint32_t Total = 64;
  typedef uint8_t Code;

  static const char* GetName(Code code) {
    static const char* const Names[] = {
        "d0",  "d1",  "d2",  "d3",  "d4",  "d5",     "d6",  "d7",  "d8",
        "d9",  "d10", "d11", "d12", "d13", "d14",    "d15", "d16", "d17",
        "d18", "d19", "d20", "d21", "d22", "d23",    "d24", "d25", "d26",
        "d27", "d28", "d29", "d30", "d31", "invalid"};
    return Names[code];
  }

  const char* name() const { return FloatRegisters::GetName(code()); }

  Code code() const {
    MOZ_ASSERT((uint32_t)code_ < FloatRegisters::Total);
    return Code(code_ | (k_ << 5));
  }

Clearly FromName() may index the table OOB though that's not really an issue since FromName is not called from anywhere. More concerning is that name() may index it OOB too, and name() is called -- though only (ultimately) from the backtracking allocator and only to do jitspew and similar debug dumps.

Problem 2: AllSingleMask and AllDoubleMask are defined incorrectly, they are switched. The patch on bug 1608791 found that.

Problem 3: There is only one InvalidFloatReg which is of type Single, and assertions start failing when Problem 2 is fixed because what is really double registers then starts being allocated as double and they don't compare == with single registers. The fix here is to use .isInvalid(), which is a new thing.

Component: Javascript: WebAssembly → JavaScript Engine: JIT

Not just ARM64, either. x86 seems to have exactly the same problem.

Part of the problem seems to be that clients are confused about the 'Encoding' (which is just the hardware code) vs the 'Code' (which is the hardware code + the bitwidth).

Create a clearer distinction between the register's Encoding, which is
its hardware name, and its Code, which is a dense encoding of
bitwidth+Encoding along with a distinguished Invalid value. These
concepts exist already but it gets out of hand when the FloatRegister
uses a Code to encode the Encoding.

Make FloatRegister contain separate fields for bitwidth, encoding, and
validity, as it does on other platforms.

Add assertions on validity of inputs and on the validity of the
FloatRegister for some operations. And tidy up some.

Expand the register name table so that it covers the possible range of
Code and so that we won't reference the table OOB.

Summary: FloatRegister name table covers only half of the register space but may be indexed by all of it → Various problems with ARM64 register sets
Blocks: 1608791
Attachment #9120834 - Attachment description: Bug 1609138 - Clean up float registers on arm64. r?sstangl → Bug 1609138 - Clean up float registers on arm64. r?rhunt
Attachment #9120834 - Attachment description: Bug 1609138 - Clean up float registers on arm64. r?rhunt → Bug 1609138 - Clean up float registers on arm64. r=rhunt
Pushed by lhansen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d2b7ff305b35
Clean up float registers on arm64. r=rhunt

Backed out 2 changesets (Bug 1609138, Bug 1608791) for Assembler-vixl.h related bustage

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=spidermonkey&fromchange=74e4bc39fbb10fb53f90fa88d2072809e916d561&tochange=292b3f9194c0c216e82130d7568951af18ad89c0&selectedJob=285594499

Backout link: https://hg.mozilla.org/integration/autoland/rev/292b3f9194c0c216e82130d7568951af18ad89c0

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=285594499&repo=autoland&lineNumber=643

[task 2020-01-20T07:47:23.930Z] mfbt/tests/TestCasting.o
[task 2020-01-20T07:47:24.594Z] In file included from /builds/worker/workspace/build/src/js/src/jit/arm64/Assembler-arm64.h:10:0,
[task 2020-01-20T07:47:24.594Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/MacroAssembler-arm64.h:10,
[task 2020-01-20T07:47:24.594Z] from /builds/worker/workspace/build/src/js/src/jit/MacroAssembler.h:23,
[task 2020-01-20T07:47:24.594Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/SharedICRegisters-arm64.h:10,
[task 2020-01-20T07:47:24.594Z] from /builds/worker/workspace/build/src/js/src/jit/SharedICRegisters.h:17,
[task 2020-01-20T07:47:24.594Z] from /builds/worker/workspace/build/src/js/src/jit/BaselineIC.h:18,
[task 2020-01-20T07:47:24.594Z] from /builds/worker/workspace/build/src/js/src/jit/JitScript.h:13,
[task 2020-01-20T07:47:24.594Z] from /builds/worker/workspace/build/src/js/src/vm/TypeInference-inl.h:23,
[task 2020-01-20T07:47:24.595Z] from /builds/worker/workspace/build/src/js/src/vm/ObjectOperations-inl.h:36,
[task 2020-01-20T07:47:24.595Z] from /builds/worker/workspace/build/src/js/src/vm/JSObject-inl.h:20,
[task 2020-01-20T07:47:24.595Z] from /builds/worker/workspace/build/src/js/src/vm/EnvironmentObject-inl.h:12,
[task 2020-01-20T07:47:24.595Z] from /builds/worker/workspace/build/src/js/src/builtin/RegExp.cpp:24:
[task 2020-01-20T07:47:24.595Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h: In constructor 'constexpr vixl::VRegister::VRegister(js::jit::FloatRegister)':
[task 2020-01-20T07:47:24.595Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h:305:31: error: call to non-constexpr function 'js::jit::FloatRegister::Encoding js::jit::FloatRegister::encoding() const'
[task 2020-01-20T07:47:24.595Z] : CPURegister(r.encoding(), r.size() * 8, kVRegister), lanes_(1) {
[task 2020-01-20T07:47:24.595Z] ^
[task 2020-01-20T07:47:24.595Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h: In constructor 'constexpr vixl::VRegister::VRegister(js::jit::FloatRegister, unsigned int)':
[task 2020-01-20T07:47:24.595Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h:308:31: error: call to non-constexpr function 'js::jit::FloatRegister::Encoding js::jit::FloatRegister::encoding() const'
[task 2020-01-20T07:47:24.595Z] : CPURegister(r.encoding(), size, kVRegister), lanes_(1) {
[task 2020-01-20T07:47:24.595Z] ^
[task 2020-01-20T07:47:24.647Z] In file included from /builds/worker/workspace/build/src/mfbt/tests/TestBufferList.cpp:9:0:
[task 2020-01-20T07:47:24.647Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/BufferList.h: In member function 'mozilla::BufferList<AllocPolicy> mozilla::BufferList<AllocPolicy>::Extract(mozilla::BufferList<AllocPolicy>::IterImpl&, size_t, bool*) [with AllocPolicy = InfallibleAllocPolicy]':
[task 2020-01-20T07:47:24.647Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/BufferList.h:408:17: warning: 'lastSegmentSize' may be used uninitialized in this function [-Wmaybe-uninitialized]
[task 2020-01-20T07:47:24.647Z] while (copied < aSize) {
[task 2020-01-20T07:47:24.647Z] ^
[task 2020-01-20T07:47:24.647Z] /builds/worker/workspace/build/src/obj-spider/dist/include/mozilla/BufferList.h:542:17: note: 'lastSegmentSize' was declared here
[task 2020-01-20T07:47:24.647Z] Maybe<size_t> lastSegmentSize;
[task 2020-01-20T07:47:24.647Z] ^~~~~~~~~~~~~~~
[task 2020-01-20T07:47:24.665Z] Compiling lazy_static v1.4.0
[task 2020-01-20T07:47:24.665Z] Running CARGO_PKG_VERSION_MINOR=4 CARGO_PKG_AUTHORS='Marvin Löbel <loebel.marvin@gmail.com>' CARGO_PKG_VERSION=1.4.0 CARGO=/builds/worker/fetches/rustc/bin/cargo LD_LIBRARY_PATH='/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/deps:/builds/worker/fetches/rustc/lib:/builds/worker/workspace/build/src/obj-spider/dist/bin:/builds/worker/fetches/gcc/lib64' CARGO_PKG_NAME=lazy_static CARGO_PKG_VERSION_MAJOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_MANIFEST_DIR=/builds/worker/workspace/build/src/third_party/rust/lazy_static CARGO_PKG_DESCRIPTION='A macro for declaring lazily evaluated statics in Rust.' CARGO_PKG_HOMEPAGE= CARGO_PKG_VERSION_PRE= CARGO_PKG_REPOSITORY='https://github.com/rust-lang-nursery/lazy-static.rs' /builds/worker/fetches/rustc/bin/rustc --crate-name lazy_static /builds/worker/workspace/build/src/third_party/rust/lazy_static/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=1 -C panic=abort -C debuginfo=2 -C debug-assertions=on -C metadata=3794392dc2077794 -C extra-filename=-3794392dc2077794 --out-dir /builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./x86_64-unknown-linux-gnu/debug/deps --target x86_64-unknown-linux-gnu -C linker=/builds/worker/workspace/build/src/build/cargo-linker -L dependency=/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./x86_64-unknown-linux-gnu/debug/deps -L dependency=/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/deps --cap-lints warn -C opt-level=2 -C debuginfo=2 -C force-frame-pointers=yes -Dwarnings
[task 2020-01-20T07:47:24.737Z] Compiling libc v0.2.59
[task 2020-01-20T07:47:24.738Z] Running CARGO_PKG_VERSION_MINOR=2 CARGO_PKG_AUTHORS='The Rust Project Developers' CARGO_PKG_VERSION=0.2.59 CARGO=/builds/worker/fetches/rustc/bin/cargo LD_LIBRARY_PATH='/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/deps:/builds/worker/fetches/rustc/lib:/builds/worker/workspace/build/src/obj-spider/dist/bin:/builds/worker/fetches/gcc/lib64' CARGO_PKG_NAME=libc CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_PATCH=59 CARGO_MANIFEST_DIR=/builds/worker/workspace/build/src/third_party/rust/libc CARGO_PKG_DESCRIPTION='Raw FFI bindings to platform libraries like libc. [task 2020-01-20T07:47:24.738Z] ' CARGO_PKG_HOMEPAGE='https://github.com/rust-lang/libc' CARGO_PKG_VERSION_PRE= CARGO_PKG_REPOSITORY='https://github.com/rust-lang/libc' /builds/worker/fetches/rustc/bin/rustc --crate-name build_script_build /builds/worker/workspace/build/src/third_party/rust/libc/build.rs --color never --crate-type bin --emit=dep-info,link -C opt-level=1 -C debuginfo=2 -C debug-assertions=on --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=32b4c970150ec062 -C extra-filename=-32b4c970150ec062 --out-dir /builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/build/libc-32b4c970150ec062 -C linker=/builds/worker/workspace/build/src/build/cargo-linker -L dependency=/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/deps --cap-lints warn
[task 2020-01-20T07:47:24.779Z] Compiling proc-macro2 v1.0.5
[task 2020-01-20T07:47:24.779Z] Running CARGO_PKG_NAME=proc-macro2 CARGO=/builds/worker/fetches/rustc/bin/cargo CARGO_PKG_VERSION_MAJOR=1 CARGO_PKG_VERSION_MINOR=0 CARGO_PKG_VERSION_PATCH=5 CARGO_PKG_VERSION=1.0.5 CARGO_MANIFEST_DIR=/builds/worker/workspace/build/src/third_party/rust/proc-macro2 CARGO_PKG_REPOSITORY='https://github.com/alexcrichton/proc-macro2' CARGO_PKG_DESCRIPTION='A stable implementation of the upcoming newproc_macroAPI. Comes with an [task 2020-01-20T07:47:24.779Z] option, off by default, to also reimplement itself in terms of the upstream [task 2020-01-20T07:47:24.779Z] unstable API. [task 2020-01-20T07:47:24.779Z] ' CARGO_PKG_VERSION_PRE= LD_LIBRARY_PATH='/builds/worker/workspace/build/src/obj-spider/debug/deps:/builds/worker/fetches/rustc/lib:/builds/worker/workspace/build/src/obj-spider/dist/bin:/builds/worker/fetches/gcc/lib64' CARGO_PKG_AUTHORS='Alex Crichton <alex@alexcrichton.com>' CARGO_PKG_HOMEPAGE='https://github.com/alexcrichton/proc-macro2' /builds/worker/fetches/rustc/bin/rustc --edition=2018 --crate-name build_script_build /builds/worker/workspace/build/src/third_party/rust/proc-macro2/build.rs --color never --crate-type bin --emit=dep-info,link -C opt-level=1 -C debuginfo=2 -C debug-assertions=on --cfg 'feature="default"' --cfg 'feature="proc-macro"' -C metadata=0f53207182d1075f -C extra-filename=-0f53207182d1075f --out-dir /builds/worker/workspace/build/src/obj-spider/debug/build/proc-macro2-0f53207182d1075f -C linker=/builds/worker/workspace/build/src/build/cargo-linker -L dependency=/builds/worker/workspace/build/src/obj-spider/debug/deps --cap-lints warn
[task 2020-01-20T07:47:24.815Z] In file included from /builds/worker/workspace/build/src/js/src/jit/arm64/Assembler-arm64.h:10:0,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/MacroAssembler-arm64.h:10,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/MacroAssembler.h:23,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/SharedICRegisters-arm64.h:10,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/SharedICRegisters.h:17,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/BaselineIC.h:18,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/JitScript.h:13,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/vm/TypeInference-inl.h:23,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/vm/ObjectOperations-inl.h:36,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/vm/JSObject-inl.h:20,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/shell/OSObject.cpp:40,
[task 2020-01-20T07:47:24.815Z] from Unified_cpp_js_src_shell0.cpp:2:
[task 2020-01-20T07:47:24.815Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h: In constructor 'constexpr vixl::VRegister::VRegister(js::jit::FloatRegister)':
[task 2020-01-20T07:47:24.815Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h:305:31: error: call to non-constexpr function 'js::jit::FloatRegister::Encoding js::jit::FloatRegister::encoding() const'
[task 2020-01-20T07:47:24.815Z] : CPURegister(r.encoding(), r.size() * 8, kVRegister), lanes_(1) {
[task 2020-01-20T07:47:24.815Z] ^
[task 2020-01-20T07:47:24.665Z] Compiling lazy_static v1.4.0
[task 2020-01-20T07:47:24.665Z] Running CARGO_PKG_VERSION_MINOR=4 CARGO_PKG_AUTHORS='Marvin Löbel <loebel.marvin@gmail.com>' CARGO_PKG_VERSION=1.4.0 CARGO=/builds/worker/fetches/rustc/bin/cargo LD_LIBRARY_PATH='/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/deps:/builds/worker/fetches/rustc/lib:/builds/worker/workspace/build/src/obj-spider/dist/bin:/builds/worker/fetches/gcc/lib64' CARGO_PKG_NAME=lazy_static CARGO_PKG_VERSION_MAJOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_MANIFEST_DIR=/builds/worker/workspace/build/src/third_party/rust/lazy_static CARGO_PKG_DESCRIPTION='A macro for declaring lazily evaluated statics in Rust.' CARGO_PKG_HOMEPAGE= CARGO_PKG_VERSION_PRE= CARGO_PKG_REPOSITORY='https://github.com/rust-lang-nursery/lazy-static.rs' /builds/worker/fetches/rustc/bin/rustc --crate-name lazy_static /builds/worker/workspace/build/src/third_party/rust/lazy_static/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=1 -C panic=abort -C debuginfo=2 -C debug-assertions=on -C metadata=3794392dc2077794 -C extra-filename=-3794392dc2077794 --out-dir /builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./x86_64-unknown-linux-gnu/debug/deps --target x86_64-unknown-linux-gnu -C linker=/builds/worker/workspace/build/src/build/cargo-linker -L dependency=/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./x86_64-unknown-linux-gnu/debug/deps -L dependency=/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/deps --cap-lints warn -C opt-level=2 -C debuginfo=2 -C force-frame-pointers=yes -Dwarnings
[task 2020-01-20T07:47:24.737Z] Compiling libc v0.2.59
[task 2020-01-20T07:47:24.738Z] Running CARGO_PKG_VERSION_MINOR=2 CARGO_PKG_AUTHORS='The Rust Project Developers' CARGO_PKG_VERSION=0.2.59 CARGO=/builds/worker/fetches/rustc/bin/cargo LD_LIBRARY_PATH='/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/deps:/builds/worker/fetches/rustc/lib:/builds/worker/workspace/build/src/obj-spider/dist/bin:/builds/worker/fetches/gcc/lib64' CARGO_PKG_NAME=libc CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_PATCH=59 CARGO_MANIFEST_DIR=/builds/worker/workspace/build/src/third_party/rust/libc CARGO_PKG_DESCRIPTION='Raw FFI bindings to platform libraries like libc. [task 2020-01-20T07:47:24.738Z] ' CARGO_PKG_HOMEPAGE='https://github.com/rust-lang/libc' CARGO_PKG_VERSION_PRE= CARGO_PKG_REPOSITORY='https://github.com/rust-lang/libc' /builds/worker/fetches/rustc/bin/rustc --crate-name build_script_build /builds/worker/workspace/build/src/third_party/rust/libc/build.rs --color never --crate-type bin --emit=dep-info,link -C opt-level=1 -C debuginfo=2 -C debug-assertions=on --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=32b4c970150ec062 -C extra-filename=-32b4c970150ec062 --out-dir /builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/build/libc-32b4c970150ec062 -C linker=/builds/worker/workspace/build/src/build/cargo-linker -L dependency=/builds/worker/workspace/build/src/obj-spider/js/src/frontend/binast/./debug/deps --cap-lints warn
[task 2020-01-20T07:47:24.779Z] Compiling proc-macro2 v1.0.5
[task 2020-01-20T07:47:24.779Z] Running CARGO_PKG_NAME=proc-macro2 CARGO=/builds/worker/fetches/rustc/bin/cargo CARGO_PKG_VERSION_MAJOR=1 CARGO_PKG_VERSION_MINOR=0 CARGO_PKG_VERSION_PATCH=5 CARGO_PKG_VERSION=1.0.5 CARGO_MANIFEST_DIR=/builds/worker/workspace/build/src/third_party/rust/proc-macro2 CARGO_PKG_REPOSITORY='https://github.com/alexcrichton/proc-macro2' CARGO_PKG_DESCRIPTION='A stable implementation of the upcoming newproc_macroAPI. Comes with an [task 2020-01-20T07:47:24.779Z] option, off by default, to also reimplement itself in terms of the upstream [task 2020-01-20T07:47:24.779Z] unstable API. [task 2020-01-20T07:47:24.779Z] ' CARGO_PKG_VERSION_PRE= LD_LIBRARY_PATH='/builds/worker/workspace/build/src/obj-spider/debug/deps:/builds/worker/fetches/rustc/lib:/builds/worker/workspace/build/src/obj-spider/dist/bin:/builds/worker/fetches/gcc/lib64' CARGO_PKG_AUTHORS='Alex Crichton <alex@alexcrichton.com>' CARGO_PKG_HOMEPAGE='https://github.com/alexcrichton/proc-macro2' /builds/worker/fetches/rustc/bin/rustc --edition=2018 --crate-name build_script_build /builds/worker/workspace/build/src/third_party/rust/proc-macro2/build.rs --color never --crate-type bin --emit=dep-info,link -C opt-level=1 -C debuginfo=2 -C debug-assertions=on --cfg 'feature="default"' --cfg 'feature="proc-macro"' -C metadata=0f53207182d1075f -C extra-filename=-0f53207182d1075f --out-dir /builds/worker/workspace/build/src/obj-spider/debug/build/proc-macro2-0f53207182d1075f -C linker=/builds/worker/workspace/build/src/build/cargo-linker -L dependency=/builds/worker/workspace/build/src/obj-spider/debug/deps --cap-lints warn
[task 2020-01-20T07:47:24.815Z] In file included from /builds/worker/workspace/build/src/js/src/jit/arm64/Assembler-arm64.h:10:0,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/MacroAssembler-arm64.h:10,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/MacroAssembler.h:23,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/arm64/SharedICRegisters-arm64.h:10,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/SharedICRegisters.h:17,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/BaselineIC.h:18,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/jit/JitScript.h:13,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/vm/TypeInference-inl.h:23,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/vm/ObjectOperations-inl.h:36,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/vm/JSObject-inl.h:20,
[task 2020-01-20T07:47:24.815Z] from /builds/worker/workspace/build/src/js/src/shell/OSObject.cpp:40,
[task 2020-01-20T07:47:24.815Z] from Unified_cpp_js_src_shell0.cpp:2:
[task 2020-01-20T07:47:24.815Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h: In constructor 'constexpr vixl::VRegister::VRegister(js::jit::FloatRegister)':
[task 2020-01-20T07:47:24.815Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h:305:31: error: call to non-constexpr function 'js::jit::FloatRegister::Encoding js::jit::FloatRegister::encoding() const'
[task 2020-01-20T07:47:24.815Z] : CPURegister(r.encoding(), r.size() * 8, kVRegister), lanes_(1) {
[task 2020-01-20T07:47:24.815Z] ^
[task 2020-01-20T07:47:24.815Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h: In constructor 'constexpr vixl::VRegister::VRegister(js::jit::FloatRegister, unsigned int)':
[task 2020-01-20T07:47:24.815Z] /builds/worker/workspace/build/src/js/src/jit/arm64/vixl/Assembler-vixl.h:308:31: error: call to non-constexpr function 'js::jit::FloatRegister::Encoding js::jit::FloatRegister::encoding() const'
[task 2020-01-20T07:47:24.815Z] : CPURegister(r.encoding(), size, kVRegister), lanes_(1) {
[task 2020-01-20T07:47:24.815Z] ^
[task 2020-01-20T07:47:24.946Z] /builds/worker/fetches/gcc/bin/g++ -std=gnu++17 -o TestCasting.o -c -I/builds/worker/workspace/build/src/obj-spider/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DDEBUG=1 -DIMPL_MFBT -I/builds/worker/workspace/build/src/mfbt/tests -I/builds/worker/workspace/build/src/obj-spider/mfbt/tests -I/builds/worker/workspace/build/src/obj-spider/dist/include -I/builds/worker/workspace/build/src/obj-spider/dist/include/testing -I/builds/worker/workspace/build/src/obj-spider/dist/include/nspr -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-spider/js/src/js-confdefs.h -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -Wno-noexcept-type -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fno-omit-frame-pointer -funwind-tables -Werror -Wno-error=shadow -MD -MP -MF .deps/TestCasting.o.pp /builds/worker/workspace/build/src/mfbt/tests/TestCasting.cpp
[task 2020-01-20T07:47:24.946Z] mfbt/tests/TestCeilingFloor.o
....

Another failure for WasmBaselineCompile.cpp: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=285594554&repo=autoland&lineNumber=4686

[task 2020-01-20T07:55:27.753Z] In file included from Unified_cpp_js_src_wasm0.cpp:11:0:
[task 2020-01-20T07:55:27.753Z] /builds/worker/workspace/build/src/js/src/wasm/WasmBaselineCompile.cpp: In member function 'bool js::wasm::RegF32::isValid() const':
[task 2020-01-20T07:55:27.753Z] /builds/worker/workspace/build/src/js/src/wasm/WasmBaselineCompile.cpp:335:34: error: 'isInvalid' was not declared in this scope
[task 2020-01-20T07:55:27.754Z] bool isValid() const { return !isInvalid(); }
[task 2020-01-20T07:55:27.754Z] ^~~~~~~~~
[task 2020-01-20T07:55:27.757Z] /builds/worker/workspace/build/src/js/src/wasm/WasmBaselineCompile.cpp:335:34: note: suggested alternative: 'Invalid'
[task 2020-01-20T07:55:27.757Z] bool isValid() const { return !isInvalid(); }
[task 2020-01-20T07:55:27.757Z] ^~~~~~~~~
[task 2020-01-20T07:55:27.757Z] Invalid
[task 2020-01-20T07:55:27.758Z] /builds/worker/workspace/build/src/js/src/wasm/WasmBaselineCompile.cpp: In member function 'bool js::wasm::RegF64::isValid() const':
[task 2020-01-20T07:55:27.758Z] /builds/worker/workspace/build/src/js/src/wasm/WasmBaselineCompile.cpp:344:34: error: 'isInvalid' was not declared in this scope
[task 2020-01-20T07:55:27.758Z] bool isValid() const { return !isInvalid(); }
[task 2020-01-20T07:55:27.758Z] ^~~~~~~~~
[task 2020-01-20T07:55:27.761Z] /builds/worker/workspace/build/src/js/src/wasm/WasmBaselineCompile.cpp:344:34: note: suggested alternative: 'Invalid'
[task 2020-01-20T07:55:27.761Z] bool isValid() const { return !isInvalid(); }
[task 2020-01-20T07:55:27.761Z] ^~~~~~~~~
[task 2020-01-20T07:55:27.761Z] Invalid
[task 2020-01-20T07:55:28.310Z] /builds/worker/fetches/gcc/bin/g++ -std=gnu++17 -o Unified_cpp_js_src_frontend5.o -c -I/builds/worker/workspace/build/src/obj-spider/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DJS_CACHEIR_SPEW -DJS_STRUCTURED_SPEW -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/workspace/build/src/js/src/frontend -I/builds/worker/workspace/build/src/obj-spider/js/src/frontend -I/builds/worker/workspace/build/src/obj-spider/js/src -I/builds/worker/workspace/build/src/js/src -I/builds/worker/workspace/build/src/obj-spider/dist/include -I/builds/worker/workspace/build/src/obj-spider/dist/include/nspr -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-spider/js/src/js-confdefs.h -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -Wno-noexcept-type -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fno-omit-frame-pointer -funwind-tables -Werror -fno-strict-aliasing -Werror=format -Wno-shadow -Wno-attributes -MD -MP -MF .deps/Unified_cpp_js_src_frontend5.o.pp Unified_cpp_js_src_frontend5.cpp
[task 2020-01-20T07:55:28.787Z] Compiling regex v1.3.1
[task 2020-01-20T07:55:28.787Z] Running CARGO_MANIFEST_DIR=/builds/worker/workspace/build/src/third_party/rust/regex CARGO_PKG_VERSION_MINOR=3 CARGO_PKG_VERSION_MAJOR=1 CARGO_PKG_VERSION_PRE= CARGO_PKG_NAME=regex LD_LIBRARY_PATH='/builds/worker/workspace/build/src/obj-spider/release/deps:/builds/worker/fetches/rustc/lib:/builds/worker/workspace/build/src/obj-spider/dist/bin:/builds/worker/fetches/gcc/lib64' CARGO_PKG_DESCRIPTION='An implementation of regular expressions for Rust. This implementation uses [task 2020-01-20T07:55:28.787Z] finite automata and guarantees linear time matching on all inputs. [task 2020-01-20T07:55:28.787Z] ' CARGO_PKG_HOMEPAGE='https://github.com/rust-lang/regex' CARGO_PKG_AUTHORS='The Rust Project Developers' CARGO_PKG_VERSION_PATCH=1 CARGO=/builds/worker/fetches/rustc/bin/cargo CARGO_PKG_REPOSITORY='https://github.com/rust-lang/regex' CARGO_PKG_VERSION=1.3.1 /builds/worker/fetches/rustc/bin/rustc --crate-name regex /builds/worker/workspace/build/src/third_party/rust/regex/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C codegen-units=1 --cfg 'feature="aho-corasick"' --cfg 'feature="default"' --cfg 'feature="memchr"' --cfg 'feature="perf"' --cfg 'feature="perf-cache"' --cfg 'feature="perf-dfa"' --cfg 'feature="perf-inline"' --cfg 'feature="perf-literal"' --cfg 'feature="std"' --cfg 'feature="thread_local"' --cfg 'feature="unicode"' --cfg 'feature="unicode-age"' --cfg 'feature="unicode-bool"' --cfg 'feature="unicode-case"' --cfg 'feature="unicode-gencat"' --cfg 'feature="unicode-perl"' --cfg 'feature="unicode-script"' --cfg 'feature="unicode-segment"' -C metadata=54bcb8048586e257 -C extra-filename=-54bcb8048586e257 --out-dir /builds/worker/workspace/build/src/obj-spider/release/deps -C linker=/builds/worker/workspace/build/src/build/cargo-linker -L dependency=/builds/worker/workspace/build/src/obj-spider/release/deps --extern aho_corasick=/builds/worker/workspace/build/src/obj-spider/release/deps/libaho_corasick-daf088e745b56d3a.rmeta --extern memchr=/builds/worker/workspace/build/src/obj-spider/release/deps/libmemchr-2b6437bfc7deb441.rmeta --extern regex_syntax=/builds/worker/workspace/build/src/obj-spider/release/deps/libregex_syntax-1c127b3176dd2dba.rmeta --extern thread_local=/builds/worker/workspace/build/src/obj-spider/release/deps/libthread_local-a2d99d939d9f5de6.rmeta --cap-lints warn
[task 2020-01-20T07:55:30.021Z] /builds/worker/fetches/gcc/bin/g++ -std=gnu++17 -o Unified_cpp_js_src_jit10.o -c -I/builds/worker/workspace/build/src/obj-spider/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DJS_CACHEIR_SPEW -DJS_STRUCTURED_SPEW -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/workspace/build/src/js/src/jit -I/builds/worker/workspace/build/src/obj-spider/js/src/jit -I/builds/worker/workspace/build/src/obj-spider/js/src -I/builds/worker/workspace/build/src/js/src -I/builds/worker/workspace/build/src/obj-spider/dist/include -I/builds/worker/workspace/build/src/obj-spider/dist/include/nspr -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-spider/js/src/js-confdefs.h -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -Wno-noexcept-type -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fno-omit-frame-pointer -funwind-tables -Werror -fno-strict-aliasing -Werror=format -Wno-shadow -Wno-attributes -MD -MP -MF .deps/Unified_cpp_js_src_jit10.o.pp Unified_cpp_js_src_jit10.cpp
[task 2020-01-20T07:55:30.022Z] js/src/jit/Unified_cpp_js_src_jit11.o
[task 2020-01-20T07:55:30.365Z] /builds/worker/workspace/build/src/config/rules.mk:744: recipe for target 'Unified_cpp_js_src_wasm0.o' failed
[task 2020-01-20T07:55:30.365Z] make[3]: *** [Unified_cpp_js_src_wasm0.o] Error 1
[task 2020-01-20T07:55:30.365Z] make[3]: Leaving directory '/builds/worker/workspace/build/src/obj-spider/js/src/wasm'
[task 2020-01-20T07:55:30.365Z] /builds/worker/workspace/build/src/config/recurse.mk:74: recipe for target 'js/src/wasm/target-objects' failed
[task 2020-01-20T07:55:30.365Z] make[2]: *** [js/src/wasm/target-objects] Error 2
[task 2020-01-20T07:55:30.365Z] make[2]: *** Waiting for unfinished jobs....
[task 2020-01-20T07:55:30.365Z] /builds/worker/fetches/gcc/bin/g++ -std=gnu++17 -o Unified_cpp_js_src26.o -c -I/builds/worker/workspace/build/src/obj-spider/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DJS_CACHEIR_SPEW -DJS_STRUCTURED_SPEW -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/builds/worker/workspace/build/src/js/src -I/builds/worker/workspace/build/src/obj-spider/js/src -I/builds/worker/workspace/build/src/obj-spider/dist/include -I/builds/worker/workspace/build/src/obj-spider/dist/include/nspr -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-spider/js/src/js-confdefs.h -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -Wno-noexcept-type -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fno-omit-frame-pointer -funwind-tables -Werror -fno-strict-aliasing -Werror=format -Wno-shadow -Wno-attributes -MD -MP -MF .deps/Unified_cpp_js_src26.o.pp Unified_cpp_js_src26.cpp
[task 2020-01-20T07:55:30.366Z] js/src/Unified_cpp_js_src27.o

Flags: needinfo?(lhansen)
Pushed by lhansen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8c7371a02fd7
Clean up float registers on arm64. r=rhunt
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla74
See Also: → 1610328
Flags: needinfo?(lhansen)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: