Skip to content

Tags: kalray/llvm-project

Tags

v5.2.0-rc6

Toggle v5.2.0-rc6's commit message
[kvx] Implement scall builtin

Summary:
In the frontend, generate notail call by casting the scall 1st argument to a
pointer of addrspace 259

In the backend, at call lowering, look at the callee type: if it is a pointer
of addrspace 259, assume it is a SCALL.

We create a new ISD node named SCALL to differentiate calls and tailcalls from
system calls.

Add a new file KVXCommon.h to include definitions that are common to the
frontend and the backend. For now, just move the ADDRSPACE enum in there.

Also includes minor refactoring:
- use namespaces in CGBuiltin.cpp to avoid ambiguities between clang::KVX and llvm::KVX namespaces
- factorize list of physical registers defined in CALL/ICALL/SCALL

Test Plan: added frontend and backend CodeGen tests

Reviewers: dsampaio, O81 llvm-coolidge

Reviewed By: dsampaio, O81 llvm-coolidge

Subscribers: piannetta

Differential Revision: https://phab.kalray.eu/D36822

v5.0.0

Toggle v5.0.0's commit message
[kvx] Rename xxor -> xeor, xnxor -> xneor

Summary:
Follow the builtin renaming: xxor -> xeor, xnxor -> xneor

https://kalray.atlassian.net/browse/TOOLCHAIN-181

Test Plan: updated tests

Reviewers: dsampaio, piannetta, O81 llvm-coolidge

Reviewed By: dsampaio, O81 llvm-coolidge

Differential Revision: https://phab.kalray.eu/D34120

v4.13.0-rc5

Toggle v4.13.0-rc5's commit message
clusterOS and KVX Porting toolchain: only support LocalExecTLSModel

Summary:
The clusterOS and KVX Porting toolchain only support
the LocalExecTLSModel, for all modes.

Test Plan: CI

Reviewers: O81 llvm-coolidge!

Differential Revision: https://phab.kalray.eu/D28791

v4.13.0-rc4

Toggle v4.13.0-rc4's commit message
clusterOS and KVX Porting toolchain: only support LocalExecTLSModel

Summary:
The clusterOS and KVX Porting toolchain only support
the LocalExecTLSModel, for all modes.

Test Plan: CI

Reviewers: O81 llvm-coolidge!

Differential Revision: https://phab.kalray.eu/D28791

v4.12.0-rc5

Toggle v4.12.0-rc5's commit message
[kvx] Do not remove KILL and IMPLICIT_DEF during scheduling

Summary:
Instead of removing them, schedule them as normal without considering them
as solo instruction. Then, fix the printer code to handle printing when they
are in a bundle.

This allows to have more correct code with regards to verify-machineinstr, thus
fixing Generic/undef-phi.ll test.

Test Plan: CodeGen files updated

Reviewers: dsampaio, O81 llvm-coolidge

Reviewed By: dsampaio, O81 llvm-coolidge

Maniphest Tasks: T20700

Differential Revision: https://phab.kalray.eu/D26540

v4.11.0

Toggle v4.11.0's commit message
[kvx][NFC] Add i128 test files

Summary: Adds `__int128` test files.

Test Plan: CI

Reviewers: csix, O81 llvm-coolidge

Reviewed By: csix, O81 llvm-coolidge

Maniphest Tasks: T16472

Differential Revision: https://phab.kalray.eu/D23694

v4.10.0

Toggle v4.10.0's commit message
[kvx] Fix a wrong emission of MAKEi43, constant too big

Summary:
The function isSplatBuildVec, used for checking that an integer is a valid
splat build-vector immediate; and in particular checking its size; was
incorrectly assuming the integer to be unsigned.

The MAKE instruction of build_vector assumes the integer is signed.
Hence, we had off-by-one errors in the size of constants given to MAKE,
resulting in too big bundles in unfortunate cases.

Test Plan: update jfctint.ll, all others are unchanged

Reviewers: dsampaio, O81 llvm-coolidge

Reviewed By: dsampaio, O81 llvm-coolidge

Subscribers: hkhallouki

Maniphest Tasks: T19709

Differential Revision: https://phab.kalray.eu/D22358

v4.10.0-rc3

Toggle v4.10.0-rc3's commit message
[kvx] Fix a wrong emission of MAKEi43, constant too big

Summary:
The function isSplatBuildVec, used for checking that an integer is a valid
splat build-vector immediate; and in particular checking its size; was
incorrectly assuming the integer to be unsigned.

The MAKE instruction of build_vector assumes the integer is signed.
Hence, we had off-by-one errors in the size of constants given to MAKE,
resulting in too big bundles in unfortunate cases.

Test Plan: update jfctint.ll, all others are unchanged

Reviewers: dsampaio, O81 llvm-coolidge

Reviewed By: dsampaio, O81 llvm-coolidge

Subscribers: hkhallouki

Maniphest Tasks: T19709

Differential Revision: https://phab.kalray.eu/D22358

v4.10.0-cd2

Toggle v4.10.0-cd2's commit message
Revert "[kvx][loopdo] Enabling hardware loops by default"

This reverts commit 3297363.

v4.9.0

Toggle v4.9.0's commit message
[kvx][TCA] Rename and rework CV1 TCA builtins to line up with GCC

Summary:
- Renamed all TCA builtins and intrinsics to have the 'x' prefix
- Renamed:
  - `lv` -> `xload256`
  - `lv_cond` -> `xloadc256`
  - `sv` -> `xstore256`
  - `sv_cond` -> `xstorec256`
  - `lvc` -> `xload1024q[0123]`
  - `lvc_cond` -> `xloadc1024q[0123]`
  - `swapvo` -> `xswap256`
  - `alignv` -> `xalign512o`
  - `alignov` -> `xaccess512o`
- Reworked `xload1024q` and `xloadc1024q`:
  - Removed the column argument (now explicit in the builtin name)
- xload builtins: check for presence of '.u' modifier (must be given)
- Reworked `xswap256`: signature is now `tca256_t * -> long4 -> long4`
- Reworked `xalign512o`: signature is now `tca512_t -> long -> tca256_t`
- Reworked `xaccess512o`: signature is now `tca512_t -> long -> long4`
- Swapped the two first arguments of `xstore256` and `xstorec256`
- Typo fixes in kvxtcaintrin.h
- ACB 4.8 to 4.9 compatibility layer: added builtins and intrinsics definitions
  to access the 4.8 builtins. These definitions will be removed in ACB 4.10.

- (internal) Swapped the column argument of `xloadc1024q` intrinsic
- (internal) Swapped the two arguments of `xstorec256` intrinsic
- (internal) Change TCA type string qualifier from 't' to 'x'

Test Plan:
- modified and updated CodeGen tests + kvxtca.c and kvx-tca-types.c
- kept the previous versions of TCA CodeGen tests, prefixed with `acb_4_8_`
- Compiler document CI

Reviewers: dsampaio, O81 llvm-coolidge, mqho, echaloin

Reviewed By: dsampaio, O81 llvm-coolidge, mqho

Subscribers: echaloin, jlemaire, jvillette, mkapfer, xraynaud, mqho, bddinechin

Maniphest Tasks: T18645

Differential Revision: https://phab.kalray.eu/D19114