Age | Commit message (Collapse) | Author | Files | Lines |
|
This change is the result of running clang-tidy and clang-format on jit
sources.
|
|
|
|
Most of the changes involve checking varTypeIsStruct instead of TYP_STRUCT in
cases where the SIMD types are treated like other structs, and then adding
a few special cases for SIMD types. The UNIX ABI implementation currently requires
that struct handles be preserved through code generation, so this required some
additional changes. Finally, the code that "homes" incoming arguments required changes
to handle incoming SIMD register args that need to be reassembled into their assigned
registers. That method was slightly refactored, primarily because it had cases that
should have been ifdef'd out for 64 bits. It needs further refactoring, but that is
left for future work. This fixes half of issue #983.
A previous version of this PR exposed issues with JIT/SIMD tests being inconsistently
compiled wrt optimization. This change modifies those tests to always
compile both with and without optimization.
|
|
The code in simd.cpp that recognizes the constructor for fixed-size vectors (the InitN intrinsic) was incorrectly reordering the operands. Constructing the vector in reverse order is more efficient, but that can be done in codegen without change execution order.
This change results in numerous diffs, with more regressions than improvements. The diffs are due to somewhat different register pressure, due to the ordering change, and different cases of constant reuse.
Fix #1212
[tfs-changeset: 1500923]
|
|
[tfs-changeset: 1407945]
|