Releases: tenstorrent/sfpi
Toolchain update
- Fix a compiler defect where
v_if (x > 0)would crash the compiler (tenstorrent/tt-metal#26919) - Fix a compiler defect where the compiler would crash in
rvtt_combinepass (tenstorrent/tt-metal#26996) - Remove
ckernel_ops.hheader files -- tt_llk project has the versions to use - Change compiler's internal constraints due to gcc-15 requirements. Assembly inserts need adjusting as follows:
x->xrE->xnQ0...Q7->x0...x7M[0-9][0-9][SU]->N[0-9][0-9][SU]
GCC Update
Fixes a code generation bug where a v_elseif could be active on a vector lane even when an earlier clause had done so. This primarily affected conditions containing a <= b or !(a > b)
Compiler fixes
- The workaround for Wormhole's read-after-write hazard was incomplete and could miss cases. The hazard occurs when a wider read follows a narrow write -- the read could occur before the write. In this case an intervening narrow write would cause the workaround to be omitted.
- Synthesis of
sfploadorsfpstoreinstructions with non-immediate addresses on Blackhole would result in incorrect instructions being generated.
Synth instruction fix
Fixes a bad assembly code generation issue, which results in errors such as:
/tmp/ccvUeC4h.s:7322: Error: illegal operands `li 10,1048576'
/tmp/ccvUeC4h.s:7323: Error: illegal operands `xor 10,10,a2'
Synth-renumber optimization fix
Fixes a compiler crash in the synth_renumber optimization pass
Replay Optimization Fix
Fixes an internal compiler error in the replay optimization pass
Compiler Update
- Reimplement non-immediate operand handling. Fixes some code generation bugs and implements some optimizations.
- Various cleanups
RPMs & Replay intrinsic
-
RPM packages are available
-
a new intrinsic for the replay instruction and new header
lltt.h. Uselltt:record<Exec>(uint start, uint length)to record a sequence andlltt::replay(uint start, uint end)to replay it.uint32_t lltt::replay_insn(uint start, uint length)is available to generate the replay instruction, which you might need to place it in the MOP unit.
Use xz compression
Use xz compression, as it is better.
Really remove gs, sigh modules are hard.
Rename target triplet, remove GraySkull
-
Renames the binaries, using
ttas the manufacturer component. This should reduce the possibility of accidentally using the wrong riscv toolchain, should one have several installed. -
GraySkull support has been removed (it is already removed from
tt-metal).