]> git.nickg.me.uk Git - nvc.git/log
nvc.git
17 months agoRefactor mtstress
Nick Gasson [Thu, 15 Dec 2022 19:14:03 +0000 (19:14 +0000)]
Refactor mtstress

17 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

17 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

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

17 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

17 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

17 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

17 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

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

17 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

17 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

17 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

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

17 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

17 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

17 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

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

17 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

17 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

17 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

17 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

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

17 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

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

17 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

17 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

17 months agoFix crash analysing OSVVM MemoryGenericPkg. Issue #577
Nick Gasson [Wed, 30 Nov 2022 22:22:21 +0000 (22:22 +0000)]
Fix crash analysing OSVVM MemoryGenericPkg. Issue #577

17 months agoUse sigsetjmp for portable signal mask handling
Nick Gasson [Wed, 30 Nov 2022 22:38:54 +0000 (22:38 +0000)]
Use sigsetjmp for portable signal mask handling

17 months agoImprove error message for qualified expression type check
Nick Gasson [Wed, 30 Nov 2022 22:02:12 +0000 (22:02 +0000)]
Improve error message for qualified expression type check

17 months agoFix stack traces with non-FreeBSD libdwarf
Nick Gasson [Wed, 30 Nov 2022 21:45:22 +0000 (21:45 +0000)]
Fix stack traces with non-FreeBSD libdwarf

17 months agoMan page tidying and editing
Nick Gasson [Wed, 30 Nov 2022 21:28:23 +0000 (21:28 +0000)]
Man page tidying and editing

17 months agoGenerate debug info in LLVM JIT backend
Nick Gasson [Mon, 28 Nov 2022 20:47:53 +0000 (20:47 +0000)]
Generate debug info in LLVM JIT backend

17 months agoPass FFI spec to jit_register
Nick Gasson [Sun, 27 Nov 2022 16:52:22 +0000 (16:52 +0000)]
Pass FFI spec to jit_register

17 months agoUse two separate constructors for AOT initialisation
Nick Gasson [Sun, 27 Nov 2022 15:52:58 +0000 (15:52 +0000)]
Use two separate constructors for AOT initialisation

17 months agoMake ident_t operations thread-safe
Nick Gasson [Sat, 26 Nov 2022 17:25:55 +0000 (17:25 +0000)]
Make ident_t operations thread-safe

17 months agoRemove get_fmt_buf function
Nick Gasson [Sat, 26 Nov 2022 11:23:29 +0000 (11:23 +0000)]
Remove get_fmt_buf function

17 months agoUse a hash table to store interned strings
Nick Gasson [Sat, 26 Nov 2022 10:36:18 +0000 (10:36 +0000)]
Use a hash table to store interned strings

17 months agoFlatten list of pending events
Nick Gasson [Thu, 24 Nov 2022 22:00:34 +0000 (22:00 +0000)]
Flatten list of pending events

17 months agoToggle coverage improvements (#576)
Blebowski [Thu, 24 Nov 2022 19:03:23 +0000 (20:03 +0100)]
Toggle coverage improvements (#576)

17 months agoAdd a streaming mode to fbuf_t
Nick Gasson [Mon, 21 Nov 2022 18:48:05 +0000 (18:48 +0000)]
Add a streaming mode to fbuf_t

17 months agoAdd object type for representing Verilog AST
Nick Gasson [Sat, 1 Jan 2022 06:21:27 +0000 (14:21 +0800)]
Add object type for representing Verilog AST

17 months agoStore source object with vcode units
Nick Gasson [Sat, 19 Nov 2022 16:41:25 +0000 (16:41 +0000)]
Store source object with vcode units

17 months agoUse binary search in jit_block_for
Nick Gasson [Sun, 20 Nov 2022 09:54:03 +0000 (09:54 +0000)]
Use binary search in jit_block_for

17 months agoFix bug with VHDL-2008 aggregate index direction
Nick Gasson [Sat, 19 Nov 2022 21:34:52 +0000 (21:34 +0000)]
Fix bug with VHDL-2008 aggregate index direction

17 months agoStore pragmas with design units. Issue #572
Nick Gasson [Fri, 18 Nov 2022 20:08:03 +0000 (20:08 +0000)]
Store pragmas with design units. Issue #572

17 months agoRematerialise trees in jit-llvm
Nick Gasson [Sat, 19 Nov 2022 12:05:12 +0000 (12:05 +0000)]
Rematerialise trees in jit-llvm

17 months agoRemove flags argument to eval_new
Nick Gasson [Sat, 19 Nov 2022 10:15:15 +0000 (10:15 +0000)]
Remove flags argument to eval_new

17 months agoCalls to IEEE functions are locally static in -2008. Issue #574
Nick Gasson [Sat, 19 Nov 2022 09:49:40 +0000 (09:49 +0000)]
Calls to IEEE functions are locally static in -2008. Issue #574

17 months agoFix address calculation in irgen_op_memset. Issue #575
Nick Gasson [Fri, 18 Nov 2022 21:05:40 +0000 (21:05 +0000)]
Fix address calculation in irgen_op_memset. Issue #575

18 months agoIncorrect application of implicit condition conversion. Issue #571
Nick Gasson [Thu, 17 Nov 2022 21:47:11 +0000 (21:47 +0000)]
Incorrect application of implicit condition conversion. Issue #571

18 months agoAdd peephole optimisations for SUB opcode
Nick Gasson [Thu, 17 Nov 2022 21:04:27 +0000 (21:04 +0000)]
Add peephole optimisations for SUB opcode

18 months agoAllow selected name in component instantiation statement. Fixes #569
Nick Gasson [Tue, 15 Nov 2022 19:22:02 +0000 (19:22 +0000)]
Allow selected name in component instantiation statement. Fixes #569

18 months agoIncorrect result caused by interpreter iteration limit. Issue #571
Nick Gasson [Mon, 14 Nov 2022 19:36:49 +0000 (19:36 +0000)]
Incorrect result caused by interpreter iteration limit. Issue #571

18 months agoFix crash dumping statement labels
Nick Gasson [Sun, 13 Nov 2022 22:05:34 +0000 (22:05 +0000)]
Fix crash dumping statement labels

18 months agoStore constant pool in LLVM object file
Nick Gasson [Sun, 13 Nov 2022 20:48:02 +0000 (20:48 +0000)]
Store constant pool in LLVM object file

18 months agoSerialise JIT IRs for debugging
Nick Gasson [Sun, 13 Nov 2022 15:01:15 +0000 (15:01 +0000)]
Serialise JIT IRs for debugging

18 months agoFix wrong overload selection with condition conversion. Issue #570
Nick Gasson [Fri, 11 Nov 2022 22:13:04 +0000 (22:13 +0000)]
Fix wrong overload selection with condition conversion. Issue #570

18 months agoFix error with condition conversion ambiguity. Issue #568
Nick Gasson [Thu, 10 Nov 2022 21:46:01 +0000 (21:46 +0000)]
Fix error with condition conversion ambiguity. Issue #568

18 months agoBump heap size to 64m in install-vivado.sh. Fixes #566
Nick Gasson [Wed, 9 Nov 2022 20:17:24 +0000 (20:17 +0000)]
Bump heap size to 64m in install-vivado.sh. Fixes #566

18 months agoRematerialise JIT functions and FFI handles in AOT mode
Nick Gasson [Wed, 9 Nov 2022 19:54:27 +0000 (19:54 +0000)]
Rematerialise JIT functions and FFI handles in AOT mode

18 months agoCall registration function when AOT library is loaded
Nick Gasson [Sun, 6 Nov 2022 20:36:05 +0000 (20:36 +0000)]
Call registration function when AOT library is loaded

18 months agoCode coverage improvements (#535)
Blebowski [Wed, 9 Nov 2022 18:04:39 +0000 (19:04 +0100)]
Code coverage improvements (#535)

18 months agoAdd ahead-of-time mode to LLVM JIT
Nick Gasson [Sat, 5 Nov 2022 21:11:14 +0000 (21:11 +0000)]
Add ahead-of-time mode to LLVM JIT

18 months agoUse transparent huge pages on Linux where possible
Nick Gasson [Sat, 5 Nov 2022 14:49:06 +0000 (14:49 +0000)]
Use transparent huge pages on Linux where possible

18 months agoSkip generating aggregates with null ranges. Fixes #560
Nick Gasson [Sat, 5 Nov 2022 22:00:53 +0000 (22:00 +0000)]
Skip generating aggregates with null ranges. Fixes #560

18 months agoSimplify how worker threads poll work queues
Nick Gasson [Sat, 5 Nov 2022 14:37:52 +0000 (14:37 +0000)]
Simplify how worker threads poll work queues

18 months agoUse relaxed atomic operations for some work queue functions
Nick Gasson [Sat, 5 Nov 2022 14:30:39 +0000 (14:30 +0000)]
Use relaxed atomic operations for some work queue functions

18 months agoRemove statement labelling (#561)
Blebowski [Sat, 5 Nov 2022 21:47:44 +0000 (22:47 +0100)]
Remove statement labelling (#561)

18 months agoAdd a simple local value numbering pass
Nick Gasson [Fri, 4 Nov 2022 22:03:06 +0000 (22:03 +0000)]
Add a simple local value numbering pass

18 months agoAdd some simple peephole optimisations for JIT IR
Nick Gasson [Tue, 1 Nov 2022 17:55:37 +0000 (17:55 +0000)]
Add some simple peephole optimisations for JIT IR

18 months agoAdd option to configure LLVM JIT threshold
Nick Gasson [Tue, 1 Nov 2022 11:47:34 +0000 (11:47 +0000)]
Add option to configure LLVM JIT threshold

18 months agoFix several LLVM verification errors
Nick Gasson [Tue, 1 Nov 2022 10:16:29 +0000 (10:16 +0000)]
Fix several LLVM verification errors

18 months agoDynamically resize CFG edge list
Nick Gasson [Mon, 31 Oct 2022 15:27:51 +0000 (15:27 +0000)]
Dynamically resize CFG edge list

18 months agoFix handling of logical operations in LLVM JIT
Nick Gasson [Mon, 31 Oct 2022 14:49:07 +0000 (14:49 +0000)]
Fix handling of logical operations in LLVM JIT

18 months agoFix LLVM verification errors with non-opaque pointers
Nick Gasson [Sun, 30 Oct 2022 18:28:28 +0000 (18:28 +0000)]
Fix LLVM verification errors with non-opaque pointers

18 months agoAdd LLVM JIT support for floating point types
Nick Gasson [Sun, 30 Oct 2022 17:23:38 +0000 (17:23 +0000)]
Add LLVM JIT support for floating point types

18 months agoSimplify type handling in LLVM JIT
Nick Gasson [Sat, 29 Oct 2022 21:41:54 +0000 (22:41 +0100)]
Simplify type handling in LLVM JIT

18 months agoSupport JIT compilation for LLVM 13+
Nick Gasson [Sat, 29 Oct 2022 17:40:06 +0000 (18:40 +0100)]
Support JIT compilation for LLVM 13+

18 months agoFix bug with live-in set calculation
Nick Gasson [Sat, 29 Oct 2022 18:05:59 +0000 (19:05 +0100)]
Fix bug with live-in set calculation

18 months agoImprove JIT assembler to support labels
Nick Gasson [Sat, 29 Oct 2022 16:50:47 +0000 (17:50 +0100)]
Improve JIT assembler to support labels

18 months agoUpdate to non-deprecated libdwarf interfaces
Nick Gasson [Sat, 29 Oct 2022 12:38:20 +0000 (13:38 +0100)]
Update to non-deprecated libdwarf interfaces

18 months agoDo not rely on behaviour of __builtin_ctz with zero argument
Nick Gasson [Sat, 29 Oct 2022 09:37:26 +0000 (10:37 +0100)]
Do not rely on behaviour of __builtin_ctz with zero argument

18 months agoAdd a simple assembler for JIT IR
Nick Gasson [Fri, 28 Oct 2022 09:57:30 +0000 (10:57 +0100)]
Add a simple assembler for JIT IR

18 months agoAdd LLVM IR generation for and/or/xor
Nick Gasson [Fri, 28 Oct 2022 08:50:24 +0000 (09:50 +0100)]
Add LLVM IR generation for and/or/xor

18 months agoAdd GitHub workflow to test OSVVM
Nick Gasson [Thu, 27 Oct 2022 18:58:23 +0000 (19:58 +0100)]
Add GitHub workflow to test OSVVM

Co-authored-by: Adam Barnes <ambarnes@gmail.com>
18 months agoImprove type coercion in LLVM JIT
Nick Gasson [Thu, 27 Oct 2022 11:05:40 +0000 (12:05 +0100)]
Improve type coercion in LLVM JIT

18 months agoAdd FFI support to LLVM JIT
Nick Gasson [Thu, 27 Oct 2022 10:37:45 +0000 (11:37 +0100)]
Add FFI support to LLVM JIT

18 months agoVarious fixes for LLVM JIT
Nick Gasson [Thu, 27 Oct 2022 08:46:14 +0000 (09:46 +0100)]
Various fixes for LLVM JIT

18 months agoAvoid error with null-range aggregate. Issue #552
Nick Gasson [Wed, 26 Oct 2022 19:25:42 +0000 (20:25 +0100)]
Avoid error with null-range aggregate. Issue #552

18 months agoAdd GitHub Actions workflow to test MSYS2 packages
Nick Gasson [Wed, 26 Oct 2022 18:45:49 +0000 (19:45 +0100)]
Add GitHub Actions workflow to test MSYS2 packages

Co-authored-by: Adam Barnes <ambarnes@gmail.com>