zhoujing
940da111a3
[VENTUS][RISCV][fix] Fix divergent analysis bug for store node
2023-06-12 14:50:55 +08:00
zhoujing
c60810b243
[VENTUS][RISCV][feat] Modify SP stack size calculation
...
Add initial SP stack size calculation support, still remains many issues
2023-06-12 13:27:55 +08:00
zhoujing
a38d49bf2e
[VENTUS][RISCV][readme] Update declaration of developer for Ventus compiler
2023-06-12 10:19:11 +08:00
zhoujing
faf6a0bcd9
[VENTUS][RISCV][fix] Add initial Tp stack size calculation
...
Cause there are two stacks in Ventus, we need to seperate TP stack and SP stack,
this commit just add very initial support for TP stack size calculation
2023-06-11 12:18:39 +08:00
zhoujing
180b3d4429
[VENTUS][RISCV][feat] Add VGPRSpill stack id for ventus
...
There are two stacks in ventus for registers spill, SGPRSpill and VGPRSpill,
SGPRSpill is for global/constant memory related GPR registers spill, VGPRSpill
is for private/shared memory related VGPR registers spill
2023-06-07 11:57:20 +08:00
zhoujing
8a99697480
[VENTUS][RISCV][readme] Update copyright
2023-06-06 09:12:20 +08:00
zhoujing
033505de1d
[VENTUS][RISCV][fix] Modify calling convention
2023-06-05 17:11:25 +08:00
zhoujing
967cb725c8
[VENTUS][RISCV][feat] Set ventus kernel for OpenCL kernel functions
2023-06-05 13:10:35 +08:00
zhoujingya
3fdda4cd8e
[VENTUS][RISCV][feat] Add script which will be used by pocl when using ventus compiler
2023-05-31 13:15:34 +08:00
zhoujing
8e86eb368c
[VENTUS][RISCV][workflow] Modify workflow script
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-05-31 12:03:02 +08:00
zhoujing
7d66e05b28
[VENTUS][RISCV][fix] Fix insert join instructions pass bug
...
After this fix, the vbeq/join instructions codegen are normal now
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-05-31 12:02:27 +08:00
zhoujing
9b3f6791f7
[VENTUS][RISCV][workflow] Update workflow
...
THis update is due to related repositories' update
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-05-31 12:01:50 +08:00
yangkex
4e3ea6bb32
[VENTUS][RISCV][doc] Update README.md
...
add packages needed for other repositories and modify branch for driver-repository.
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-05-31 12:00:45 +08:00
zhoujing
8c7f5a3c28
[VENTUS][RISCV][fix] Fix instructuions which contain 5 bits unsigned immediate asmParser && pattern bug
2023-05-26 17:52:36 +08:00
zhoujing
b22d7bd36f
[VENTUS][RISCV][fix] Fix vlw/vsw instructions' pattern
2023-05-26 11:12:48 +08:00
zhoujing
00354e37b9
[VENTUS][RISCV][NFC] Just modify the build script
2023-05-25 16:41:56 +08:00
zhoujing
a47a105986
[VENTUS][RISCV][doc] Update README.md
2023-05-25 16:41:38 +08:00
zhoujing
a17f01270b
[VENTUS][RISCV][fix] Fix vlw12.v/vsw12.v instructions' codegen pattern
...
Signed-off-by: zhoujing <jing.zhou@terapines.com>
2023-05-25 14:49:48 +08:00
zhoujingya
ad23baaa51
[VENTUS][RISCV][feat] Add more floating point instructions pattern
...
Signed-off-by: zhoujing <jing.zhou@terapines.com>
2023-05-25 14:48:30 +08:00
zhoujing
5d29133ab0
[VENTUS][RISCV][fix] Add isReturn block check before insertation
2023-05-25 14:09:12 +08:00
zhoujingya
2a65cb7c85
[VENTUS][RISCV][workflow] Add spike and driver building process to workflow
...
We need spike && hardware driver to test the functionality of software, Adding
this to workflow is benificial for testing
2023-05-17 09:19:18 +08:00
zhoujingya
c0cdbbc172
[VENTUS][RISCV][style] Formatting && Change function and variable names
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-05-12 17:41:45 +08:00
zhoujingya
961d5a6b42
[VENTUS][RISCV][fix] Uncomment missing assertation
2023-05-12 14:46:27 +08:00
zhoujingya
97a3f99e4c
[VENTUS][RISCV][pass] Add insert join instruction pass for VBranch
...
we follow the following rules to insert join block and join instruction
1: Legalize all the return block
when there are one more return blocks in machine function, there must be
branches, we need to reduce return blocks number down to 1
1.1: If two return blocks have common nearest parent branch, this two blocks
need to be joined, and we add a hasBeenJoined marker for this parent
branch
1.2: after we complete 1.1 process, there maybe one more return blocks, we
need to further add join block, we recursively build dominator tree for
these return blocks, first we find the nearest common dominator branch for
two return blocks, and then get dominator tree path between dominator
and each return block, we need to check this path in which whether any
other branch blocks exists, ideally, the branch block in path should have
been joined and marked, if not, this path is illegal, these two block can
not be joined
2: Insert join instructions
2.1: we scan through the MachineBasic blocks and check what blocks to insert
join instruction, below MBB represents MachineBasic Block
2.2: The MBB must have one more predecessors and its nearest dominator must
be a VBranch
2.3: Then we analyze the the predecessor of MBB, if the predecessor
has single successor, we add a join instruction to the predecessor end,
other wise, we need to insert a join block between predecessor and MBB
2023-05-12 14:01:57 +08:00
zhoujingya
a0a80bfdad
[VENTUS][RISCV][fix] Fix BUILD_TYPE variable setting error
2023-05-09 17:14:38 +08:00
zhoujingya
724033f20a
[VENTUS][RISCV][feat] Add exception handler to stop spike in crt0.s
2023-04-27 10:19:21 +08:00
zhoujingya
5f776bde21
[VENTUS][RISCV][fix] Constraint divergent private load/store instructions can only use tp register
2023-04-27 09:32:25 +08:00
zhoujingya
0e9d5763ed
[VENTUS][RISCV][feat] Add print buffer size and address initialization in crt0.s
2023-04-26 14:39:00 +08:00
zhoujingya
7ef089a734
[VENTUS][RISCV][github action] Add customized action for ventus
2023-04-25 13:15:04 +08:00
zhoujingya
ea75d078fb
[VENTUS][RISCV][feat] Add zfinx support
...
Because there is no `F` extension and float registers in ventus, we need to
support `zfinx` to generate common float instructions
2023-04-23 11:29:09 +08:00
zhoujingya
9d9283fa7b
[VENTUS][RISCV][fix] Fix ventus abi and calling convention
...
Kernel functions use sp as GPRs spill stack slots
Non-kernel functions use tp as VGPRs spill stack slots
2023-04-20 15:27:52 +08:00
yangkex
39f0a4090c
[VENTUS][RISCV][fix] Fix tp initial value bugs
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-04-19 12:38:53 +08:00
zhoujingya
f28e6c5e38
[VENTUS][RISCV][feat] Add vararg backend support in ventus
...
We adjust the stack growing direction early months for OpenCL, in order to be
compatible with current architecture, we need to do some modification to
support vararg
2023-04-18 10:03:53 +08:00
zhoujingya
b01963690d
[VENTUS][RISCV][fix] Fix vsw/vlw encoding bugs and update test cases
...
Fix vlw/vsw instructions' encoding since them have been updated
2023-04-17 18:07:33 +08:00
zhoujingya
8ba248d102
[VENTUS][RISCV] Add vararg support
...
Because ventus riscv is designed specially for OpenCL language, we originally add or remove some language features mainly for serving OpenCL, but we now need to add customized `printf` function which is expected to be written in C, so we need also to add support for C language features in current ventus
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-04-13 15:00:35 +08:00
zhoujingya
0642d65513
Add align to section .tohost && add section _end and _edata
2023-03-31 11:35:31 +08:00
zhoujingya
b6f68623af
Format and typo fixes in README
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-03-30 18:10:24 +08:00
zhoujingya
980634ce54
Update README.md for how to use compiler to generate ELF
2023-03-30 17:43:10 +08:00
zhoujingya
7dc6ac967f
Add customized linker script for ventus * Original linker script is from zcc build-system, we just make some modification
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-03-30 17:42:07 +08:00
zhoujingya
ba03b01b03
Update function comment for get_global_id(x/y/z)
2023-03-30 16:20:19 +08:00
yangkex
513e9eb8d9
set mstatus in crt0.S to enable F extension
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-03-30 14:19:00 +08:00
zhoujingya
569cd01769
Fix get_global_id bug
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-03-30 11:43:28 +08:00
zhoujingya
0616b958b2
Add jump to spike_end instruction in crt0 && Run clean before building libclc
2023-03-30 11:18:29 +08:00
zhoujingya
458808b5d1
Remove FeatureStdExtC in ventus
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-03-30 10:14:52 +08:00
zhoujingya
c459a33bb8
Add vsetvli instruction in crt0 && remove barrier headers in libclc
2023-03-29 21:42:44 +08:00
zhoujingya
ea14d5f074
Update build-ventus.sh for checking ocl-icd is built or not before building pocl
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-03-29 09:20:24 +08:00
zhoujingya
530939a01b
Modify kernel entry since CSR_KNL is ready in spike
2023-03-28 17:05:28 +08:00
zhoujingya
625746818d
Fix vlw12/vsw12 assembly code generation bugs * Before: vsw12.v v1, zero(v0) * After: vsw12.v v1, 0(v0)
...
Signed-off-by: zhoujingya <jing.zhou@terapines.com>
2023-03-28 13:49:47 +08:00
zhoujingya
2b54041ac3
Fix encoding bug for endprg&vmx.v.x&barrier
2023-03-27 17:44:38 +08:00
zhoujingya
80a5b3e868
[Jenkins] Add label
2023-03-24 17:46:11 +08:00