Releases: sx-aurora-dev/llvm-project
llvm-ve-rv-2.2.0
- Fix
VSC
codegen. - RV+isel support for strided VLD/VST (requires a constant stride).
llvm-ve-rv-2.1.0
Bug fix release
- Fixed
sotoc
clang tool (incorrect dylib linkage).
Otherwise identical to https://github.com/sx-aurora-dev/llvm-project/releases/llvm-ve-rv-v2.0.0
llvm-ve-rv-1.9.0
Tag of hpce/stable branch with important fixes for omp target (both, native and sotoc).
Offloading options with omp target:
VH -> VE (llvm-ve compiled device code)
clang -march=native -fopenmp -fopenmp-targets=ve-linux ...
VH -> VE (ncc compiled device code)
clang -march=native -fopenmp -fopenmp-targets=aurora-nec-veort ...
VE -> VH
clang -target=ve-linux -fopenmp -fopenmp-targets=x86_64-pc-linux-gnu ...
Other news:
RegionVectorizer diagnostics: enable with -Rpass=rv
. This only applies to -target ve-linux
compilations.
The limitations from release 1.8.0 are gone, no need to use -mvepacked
for instrinsics any more, also no need for -fplugin=libRV.so
.
llvm-ve-1.20.0
llvm version is 12.
Change:
- Fix cost of vector store. This may fix the issue that loop unrolling is not worked as expected.
llvm-ve-1.19.0
llvm version is 12.
Changes:
- Add intrinsics for lcr,scr,tscr,fidcr,fence instructions.
llvm-ve-1.18.0
llvm version is 12.0.0.
Change:
- Improve the stability of generated program by
-O3
.
llvm-ve-1.17.0
llvm version is 12.0.0
Changes
- Change to use internal assembler by default
- Change to compile profiler library
- Support stores of the address of a label
- Update intrinsics
- Fix initializer visibility
- Support bcr %sy, 0, dist format in assembly
- Change to rematerialize instructions retrieve consant immediate values.
This allows users to use more vector registeres without spilling. - Optimize generated code using a fold immediate in a peephole optimization
pass. - Support a vector register constraint in inline assembler.
- Support jump tables.
- Optimize prologue/epilogue coeds.
- Fix a problem that vgt intrinsic ignores the value of 3rd immediate value
operand and vsc intrinsic instruction ignores the value of 4th immediate
value operand. - Correct a problem that LVL instruction is not generated correctly after
function calls. - Change the default CPU name to "generic".
- Remove musl support.
- Merge hpce/develop branch.
- Add new vbrv/vldz/vpcnt intrinsics.
llvm-ve-rv-2.0.0
Changes
- Compiler resource paths brought in line with
develop
branch. - [rv] Fixed vectorization of certain loops with irregular loop structure in IR ("
long
" iteration variable bug). - [rv] RV integrated as an LLVM component.
- Added script for setting environment variables. (
llvmvevars.sh
) - LLVM build as a monolithing shared library (
DYLIB
build).
Offloading options with omp target:
VH -> VE (llvm-ve compiled device code)
clang -march=native -fopenmp -fopenmp-targets=ve-linux ...
VH -> VE (ncc compiled device code)
clang -march=native -fopenmp -fopenmp-targets=aurora-nec-veort ...
VE -> VH
clang -target=ve-linux -fopenmp -fopenmp-targets=x86_64-pc-linux-gnu ...
Getting llvm-ve-rv on the command line
To add the binaries of this release to your $PATH
, run:
. /usr/local/ve/llvm-ve-rv-2/bin/llvmvevars.sh
llvm-ve-rv-1.8.0
Merges develop at 'feature/merge-upstream-20201124-3'.
- To use VL intrinsics, run clang/clang++ with the flag
-mvepacked
. - To compile c++ executables, run
clang++ -static
- there are known issues with the shared libc++ on VE. - To run clang/clang++ with the Region Vectorizer pass the option
-fplugin=libRV.so
and make sure thatlibRV.so
is in yourLD_LIBRARY_PATH
.
llvm-ve-1.16.0
- Optimize leaf functions
- Change calling convention to expand all values to 64 bits width in order to follow ABI
- Optimize 1 byte atomic swap instructionsve_vl_pvandlo
- Remove some intrinsics
vel_pvandup
vel_pveqvlo
vel_pveqvup
vel_pvorlo
vel_pvorup
vel_pvslalo
vel_pvslaup
vel_pvslllo
vel_pvsllup
vel_pvsralo
vel_pvsraup
vel_pvsrllo
vel_pvsrlup
vel_pvxorlo
vel_pvxorup