]> git.nickg.me.uk Git - nvc.git/log
nvc.git
15 months agoNew relocations systems aotgen
Nick Gasson [Fri, 6 Jan 2023 22:26:50 +0000 (22:26 +0000)]
New relocations systems

15 months agoWIP add AOT descriptors
Nick Gasson [Thu, 5 Jan 2023 21:02:39 +0000 (21:02 +0000)]
WIP add AOT descriptors

15 months agoWIP aotgen
Nick Gasson [Fri, 16 Dec 2022 20:55:34 +0000 (20:55 +0000)]
WIP aotgen

15 months agoImprove work queue scalability
Nick Gasson [Fri, 6 Jan 2023 19:43:20 +0000 (19:43 +0000)]
Improve work queue scalability

16 months agoMake DWARF debug info optional in LLVM JIT backend
Nick Gasson [Mon, 2 Jan 2023 21:54:20 +0000 (21:54 +0000)]
Make DWARF debug info optional in LLVM JIT backend

16 months agoUse new LLVM pass manager API with LLVM 13.0 and later
Nick Gasson [Mon, 2 Jan 2023 21:25:13 +0000 (21:25 +0000)]
Use new LLVM pass manager API with LLVM 13.0 and later

16 months agoImplement more floating point operations in the X86 backend
Nick Gasson [Sun, 1 Jan 2023 20:58:12 +0000 (20:58 +0000)]
Implement more floating point operations in the X86 backend

16 months agoImplement FADD and FMUL in x86 backend
Nick Gasson [Sun, 1 Jan 2023 15:41:29 +0000 (15:41 +0000)]
Implement FADD and FMUL in x86 backend

16 months agoStore variable names with offsets
Nick Gasson [Sun, 1 Jan 2023 11:40:27 +0000 (11:40 +0000)]
Store variable names with offsets

16 months agoUse all available memory in the code cache
Nick Gasson [Sun, 1 Jan 2023 10:21:48 +0000 (10:21 +0000)]
Use all available memory in the code cache

16 months agoOptimise $EXP to $SHL for powers-of-2
Nick Gasson [Sun, 1 Jan 2023 10:15:46 +0000 (10:15 +0000)]
Optimise $EXP to $SHL for powers-of-2

16 months agoElaboration support for case generate. Issue #585
Nick Gasson [Sat, 31 Dec 2022 20:33:35 +0000 (20:33 +0000)]
Elaboration support for case generate. Issue #585

16 months agoAllocate from TLAB in x86 JIT
Nick Gasson [Sat, 31 Dec 2022 18:20:28 +0000 (18:20 +0000)]
Allocate from TLAB in x86 JIT

16 months agoUse $CASE opcode to implement process jump table
Nick Gasson [Sat, 31 Dec 2022 17:31:32 +0000 (17:31 +0000)]
Use $CASE opcode to implement process jump table

16 months agoImplement $EXP opcode in x86 backend
Nick Gasson [Sat, 31 Dec 2022 16:20:20 +0000 (16:20 +0000)]
Implement $EXP opcode in x86 backend

16 months agoEmit x86 epilogue code only once
Nick Gasson [Sat, 31 Dec 2022 15:01:29 +0000 (15:01 +0000)]
Emit x86 epilogue code only once

16 months agoImplement $CASE opcode in x86 backend
Nick Gasson [Sat, 31 Dec 2022 14:52:28 +0000 (14:52 +0000)]
Implement $CASE opcode in x86 backend

16 months agoProper allocator for JIT code buffers
Nick Gasson [Sat, 31 Dec 2022 12:18:06 +0000 (12:18 +0000)]
Proper allocator for JIT code buffers

16 months agoStore result of $GETPRIV macro
Nick Gasson [Sat, 31 Dec 2022 10:50:26 +0000 (10:50 +0000)]
Store result of $GETPRIV macro

16 months agoFix broken stack trace when multiple threads crash at once
Nick Gasson [Fri, 30 Dec 2022 10:21:22 +0000 (10:21 +0000)]
Fix broken stack trace when multiple threads crash at once

16 months agoFix race in jit_fill_irbuf
Nick Gasson [Fri, 30 Dec 2022 10:08:55 +0000 (10:08 +0000)]
Fix race in jit_fill_irbuf

16 months agoChecking and simplification for case generate. Issue #585
Nick Gasson [Wed, 28 Dec 2022 18:47:48 +0000 (18:47 +0000)]
Checking and simplification for case generate. Issue #585

16 months agoFix crash in steal_task
Nick Gasson [Wed, 28 Dec 2022 17:58:44 +0000 (17:58 +0000)]
Fix crash in steal_task

16 months agoRefactor representation of case statement alternatives
Nick Gasson [Wed, 28 Dec 2022 14:03:11 +0000 (14:03 +0000)]
Refactor representation of case statement alternatives

16 months agoFix x86 load from constant pool
Nick Gasson [Tue, 27 Dec 2022 21:28:50 +0000 (21:28 +0000)]
Fix x86 load from constant pool

16 months agoImplement $GALLOC in x86 backend
Nick Gasson [Tue, 27 Dec 2022 17:54:12 +0000 (17:54 +0000)]
Implement $GALLOC in x86 backend

16 months agoAsynchronous JIT code generation
Nick Gasson [Tue, 27 Dec 2022 14:47:58 +0000 (14:47 +0000)]
Asynchronous JIT code generation

16 months agoImplement $FFICALL in x86 backend
Nick Gasson [Tue, 27 Dec 2022 12:08:23 +0000 (12:08 +0000)]
Implement $FFICALL in x86 backend

16 months agoImplement $PUTPRIV and fix branch distance calculation
Nick Gasson [Tue, 27 Dec 2022 11:57:51 +0000 (11:57 +0000)]
Implement $PUTPRIV and fix branch distance calculation

16 months agoImplement CLAMP and CNEG in x86 backend
Nick Gasson [Tue, 27 Dec 2022 11:43:46 +0000 (11:43 +0000)]
Implement CLAMP and CNEG in x86 backend

16 months agoDelete NOPs after JIT optimisation
Nick Gasson [Tue, 27 Dec 2022 10:56:54 +0000 (10:56 +0000)]
Delete NOPs after JIT optimisation

16 months agoAdd a very simple dead code elimination pass
Nick Gasson [Tue, 27 Dec 2022 10:40:50 +0000 (10:40 +0000)]
Add a very simple dead code elimination pass

16 months agoSimple copy propagation optimisation
Nick Gasson [Tue, 27 Dec 2022 10:26:48 +0000 (10:26 +0000)]
Simple copy propagation optimisation

16 months agoAdd AVX2 Adler32 checksum implementation
Nick Gasson [Sun, 21 Aug 2022 09:07:40 +0000 (10:07 +0100)]
Add AVX2 Adler32 checksum implementation

16 months agoNew mechanism to serialise JIT bytecode
Nick Gasson [Sat, 24 Dec 2022 16:32:48 +0000 (16:32 +0000)]
New mechanism to serialise JIT bytecode

16 months agoImplement AND/OR/NOT opcodes in x86 backend
Nick Gasson [Sun, 25 Dec 2022 17:52:09 +0000 (17:52 +0000)]
Implement AND/OR/NOT opcodes in x86 backend

16 months agoImplement $LALLOC in x86 backend
Nick Gasson [Sat, 24 Dec 2022 22:16:05 +0000 (22:16 +0000)]
Implement $LALLOC in x86 backend

16 months agoFix outgoing stack alignment
Nick Gasson [Sat, 24 Dec 2022 20:05:44 +0000 (20:05 +0000)]
Fix outgoing stack alignment

16 months agoImplement CSEL and LEA in x86 backend
Nick Gasson [Sat, 24 Dec 2022 18:17:41 +0000 (18:17 +0000)]
Implement CSEL and LEA in x86 backend

16 months agoFix LLVM verification errors without opaque pointers
Nick Gasson [Sat, 24 Dec 2022 13:56:20 +0000 (13:56 +0000)]
Fix LLVM verification errors without opaque pointers

16 months agoImplement get_exe_path on FreeBSD
Nick Gasson [Sat, 24 Dec 2022 12:27:26 +0000 (12:27 +0000)]
Implement get_exe_path on FreeBSD

16 months agoFix handling of large immediate values
Nick Gasson [Sat, 24 Dec 2022 12:05:48 +0000 (12:05 +0000)]
Fix handling of large immediate values

16 months agoImplement SHL and ASR in x86 backend
Nick Gasson [Fri, 23 Dec 2022 21:32:42 +0000 (21:32 +0000)]
Implement SHL and ASR in x86 backend

16 months agoImplement $COPY and $BZERO in x86 backend
Nick Gasson [Fri, 23 Dec 2022 18:20:06 +0000 (18:20 +0000)]
Implement $COPY and $BZERO in x86 backend

16 months agoImplement LOAD/STORE in x86 backend
Nick Gasson [Fri, 23 Dec 2022 17:35:45 +0000 (17:35 +0000)]
Implement LOAD/STORE in x86 backend

16 months agoFix restoring RBX in return sequence
Nick Gasson [Fri, 23 Dec 2022 16:41:56 +0000 (16:41 +0000)]
Fix restoring RBX in return sequence

16 months agoAvoid clobbering saved RBX with frame anchor
Nick Gasson [Fri, 23 Dec 2022 14:50:19 +0000 (14:50 +0000)]
Avoid clobbering saved RBX with frame anchor

16 months agoTemporary workaround for test failures on Ubuntu 20.04
Nick Gasson [Fri, 23 Dec 2022 11:04:37 +0000 (11:04 +0000)]
Temporary workaround for test failures on Ubuntu 20.04

16 months agoFix bug in LLVM translation of CNEG
Nick Gasson [Thu, 22 Dec 2022 11:07:59 +0000 (11:07 +0000)]
Fix bug in LLVM translation of CNEG

16 months agoBuild frame anchor in X86 JIT backend
Nick Gasson [Thu, 22 Dec 2022 11:02:05 +0000 (11:02 +0000)]
Build frame anchor in X86 JIT backend

16 months agoFix crash in waveform dump with unconstrained record. Issue #586
Nick Gasson [Wed, 21 Dec 2022 22:08:01 +0000 (22:08 +0000)]
Fix crash in waveform dump with unconstrained record. Issue #586

16 months agoFix bug in case generate parsing
Nick Gasson [Wed, 21 Dec 2022 21:28:19 +0000 (21:28 +0000)]
Fix bug in case generate parsing

16 months agoParsing for case generate statement. Issue #585
Nick Gasson [Mon, 19 Dec 2022 21:34:58 +0000 (21:34 +0000)]
Parsing for case generate statement. Issue #585

16 months agoAdd CLAMP and CNEG operations to JIT IR
Nick Gasson [Mon, 19 Dec 2022 19:06:07 +0000 (19:06 +0000)]
Add CLAMP and CNEG operations to JIT IR

16 months agoAvoid redundant comparisons against range direction
Nick Gasson [Mon, 19 Dec 2022 17:51:32 +0000 (17:51 +0000)]
Avoid redundant comparisons against range direction

16 months agoX86 translation for division and multiplication operators
Nick Gasson [Sun, 18 Dec 2022 20:30:13 +0000 (20:30 +0000)]
X86 translation for division and multiplication operators

16 months agoAdd a JIT backend for x86
Nick Gasson [Tue, 6 Dec 2022 16:10:05 +0000 (16:10 +0000)]
Add a JIT backend for x86

16 months agoAdd a benchmark of std_logic_arith
Nick Gasson [Sat, 17 Dec 2022 14:55:38 +0000 (14:55 +0000)]
Add a benchmark of std_logic_arith

16 months agoRename ASL opcode to SHL and fix LLVM generation
Nick Gasson [Sat, 17 Dec 2022 14:37:20 +0000 (14:37 +0000)]
Rename ASL opcode to SHL and fix LLVM generation

16 months agoAvoid generating LLVM phi instruction if block has single dominator
Nick Gasson [Sat, 17 Dec 2022 12:46:05 +0000 (12:46 +0000)]
Avoid generating LLVM phi instruction if block has single dominator

16 months agoFix incorrect types in LLVM phi instruction
Nick Gasson [Fri, 16 Dec 2022 21:16:33 +0000 (21:16 +0000)]
Fix incorrect types in LLVM phi instruction

16 months agoExpression coverage (#578)
Blebowski [Sun, 18 Dec 2022 11:26:45 +0000 (12:26 +0100)]
Expression coverage (#578)

16 months agoImprove subprogram overload resolution with named arguments. Issue #541
Nick Gasson [Fri, 16 Dec 2022 20:02:31 +0000 (20:02 +0000)]
Improve subprogram overload resolution with named arguments. Issue #541

16 months agoOptimise work queue stealing
Nick Gasson [Thu, 15 Dec 2022 19:14:40 +0000 (19:14 +0000)]
Optimise work queue stealing

16 months agoRefactor mtstress
Nick Gasson [Thu, 15 Dec 2022 19:14:03 +0000 (19:14 +0000)]
Refactor mtstress

16 months agoAdd install script for Lattice iCEcube2
Nick Gasson [Wed, 14 Dec 2022 20:20:14 +0000 (20:20 +0000)]
Add install script for Lattice iCEcube2

16 months agoAdd install script for Xilinx ISE
Nick Gasson [Wed, 14 Dec 2022 19:59:35 +0000 (19:59 +0000)]
Add install script for Xilinx ISE

16 months agoAdd simple jump threading optimisation
Nick Gasson [Tue, 13 Dec 2022 22:00:10 +0000 (22:00 +0000)]
Add simple jump threading optimisation

16 months agoStrength reduction for multiply and divide
Nick Gasson [Tue, 13 Dec 2022 21:09:36 +0000 (21:09 +0000)]
Strength reduction for multiply and divide

16 months agoExtend local value numbering to flags
Nick Gasson [Tue, 13 Dec 2022 19:59:24 +0000 (19:59 +0000)]
Extend local value numbering to flags

16 months agoAdd support for running simple coverage tests to run_regr
Nick Gasson [Sun, 11 Dec 2022 21:52:03 +0000 (21:52 +0000)]
Add support for running simple coverage tests to run_regr

16 months agoFix code coverage with generate statements. Fixes #582
Nick Gasson [Sun, 11 Dec 2022 20:51:44 +0000 (20:51 +0000)]
Fix code coverage with generate statements. Fixes #582

16 months agoFixes for 32-bit systems
Nick Gasson [Sun, 11 Dec 2022 18:37:44 +0000 (18:37 +0000)]
Fixes for 32-bit systems

16 months agoReduce the number of generated LLVM getelementptr instructions
Nick Gasson [Sat, 10 Dec 2022 11:24:20 +0000 (11:24 +0000)]
Reduce the number of generated LLVM getelementptr instructions

16 months agoAdd $CASE macro to JIT IR
Nick Gasson [Sat, 10 Dec 2022 11:03:25 +0000 (11:03 +0000)]
Add $CASE macro to JIT IR

16 months agoAvoid LLVM inttoptr and ptrtoint where possible
Nick Gasson [Fri, 9 Dec 2022 22:28:25 +0000 (22:28 +0000)]
Avoid LLVM inttoptr and ptrtoint where possible

16 months agoDeduplicate JIT constant pool
Nick Gasson [Fri, 9 Dec 2022 19:37:46 +0000 (19:37 +0000)]
Deduplicate JIT constant pool

16 months agoUse vcode memset instead of large constant arrays
Nick Gasson [Fri, 9 Dec 2022 18:48:42 +0000 (18:48 +0000)]
Use vcode memset instead of large constant arrays

16 months agoError when component declaration hides library. Issue #580
Nick Gasson [Tue, 6 Dec 2022 21:54:11 +0000 (21:54 +0000)]
Error when component declaration hides library. Issue #580

16 months agoFix verification errors with LLVM < 15
Nick Gasson [Tue, 6 Dec 2022 16:31:49 +0000 (16:31 +0000)]
Fix verification errors with LLVM < 15

16 months agoOptimise redundant load indirect opcodes
Nick Gasson [Tue, 6 Dec 2022 13:56:26 +0000 (13:56 +0000)]
Optimise redundant load indirect opcodes

16 months agoReduce the number of ptrtoint operations in generated LLVM
Nick Gasson [Tue, 6 Dec 2022 13:43:01 +0000 (13:43 +0000)]
Reduce the number of ptrtoint operations in generated LLVM

16 months agoAdd LLVM function attributes and alignment hints
Nick Gasson [Tue, 6 Dec 2022 12:42:29 +0000 (12:42 +0000)]
Add LLVM function attributes and alignment hints

16 months agoAdd $SALLOC JIT macro for stack allocation
Nick Gasson [Tue, 6 Dec 2022 11:51:29 +0000 (11:51 +0000)]
Add $SALLOC JIT macro for stack allocation

16 months agoFix parsing of array element constraints with "open". Issue #580
Nick Gasson [Mon, 5 Dec 2022 21:09:01 +0000 (21:09 +0000)]
Fix parsing of array element constraints with "open". Issue #580

16 months agoUse PassManagerBuilder for LLVM optimisations
Nick Gasson [Mon, 5 Dec 2022 21:05:18 +0000 (21:05 +0000)]
Use PassManagerBuilder for LLVM optimisations

16 months agoOptimise $GETPRIV implementation in LLVM JIT
Nick Gasson [Mon, 5 Dec 2022 14:40:10 +0000 (14:40 +0000)]
Optimise $GETPRIV implementation in LLVM JIT

16 months agoRefactor mptr_t interface
Nick Gasson [Mon, 5 Dec 2022 14:21:57 +0000 (14:21 +0000)]
Refactor mptr_t interface

16 months agoFix debug symbols for LLVM JIT backend
Nick Gasson [Mon, 5 Dec 2022 10:59:32 +0000 (10:59 +0000)]
Fix debug symbols for LLVM JIT backend

16 months agoImplement TLAB in interpreter and LLVM JIT
Nick Gasson [Sun, 4 Dec 2022 21:45:33 +0000 (21:45 +0000)]
Implement TLAB in interpreter and LLVM JIT

17 months agoAvoid zeroing all arguments in jit_fastcall
Nick Gasson [Sun, 4 Dec 2022 18:54:43 +0000 (18:54 +0000)]
Avoid zeroing all arguments in jit_fastcall

17 months agoMake jit_irgen thread-safe
Nick Gasson [Sun, 4 Dec 2022 15:27:38 +0000 (15:27 +0000)]
Make jit_irgen thread-safe

17 months agoMake jit_lazy_compile and jit_get_func thread-safe
Nick Gasson [Sun, 4 Dec 2022 11:39:59 +0000 (11:39 +0000)]
Make jit_lazy_compile and jit_get_func thread-safe

17 months agoAdd a hash table that supports concurrent access
Nick Gasson [Sun, 4 Dec 2022 10:38:33 +0000 (10:38 +0000)]
Add a hash table that supports concurrent access

17 months agoPort job partitioning scheme to new code generator
Nick Gasson [Sun, 4 Dec 2022 09:46:43 +0000 (09:46 +0000)]
Port job partitioning scheme to new code generator

17 months agoRemove trampoline call from JIT LLVM
Nick Gasson [Sat, 3 Dec 2022 21:06:44 +0000 (21:06 +0000)]
Remove trampoline call from JIT LLVM

17 months agoFix type mismatch with instantiated generic package
Nick Gasson [Fri, 2 Dec 2022 12:42:26 +0000 (12:42 +0000)]
Fix type mismatch with instantiated generic package

17 months agoBump OSVVM version to 2022.10
Nick Gasson [Thu, 1 Dec 2022 21:39:23 +0000 (21:39 +0000)]
Bump OSVVM version to 2022.10

17 months agoFix error analysing OSVVM xMiiPhyRxTransmitter.vhd. Issue #577
Nick Gasson [Thu, 1 Dec 2022 21:38:14 +0000 (21:38 +0000)]
Fix error analysing OSVVM xMiiPhyRxTransmitter.vhd. Issue #577

17 months agoUse setjmp instead of sigsetjmp on Windows
Nick Gasson [Wed, 30 Nov 2022 23:19:31 +0000 (23:19 +0000)]
Use setjmp instead of sigsetjmp on Windows