nvc.git
15 hours agoFix parsing of array element constraints with "open". Issue #580 master github/master sr.ht/master
Nick Gasson [Mon, 5 Dec 2022 21:09:01 +0000 (21:09 +0000)]
Fix parsing of array element constraints with "open". Issue #580

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

15 hours 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

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

15 hours 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

15 hours 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

42 hours 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

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

2 days 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

2 days 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

2 days 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

2 days 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

4 days 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

4 days 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

4 days 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

5 days 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

5 days 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

5 days 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

5 days 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

5 days 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

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

7 days 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

8 days 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

8 days 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

8 days 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

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

10 days 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

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

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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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

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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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

3 weeks 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

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

3 weeks 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

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

3 weeks 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

3 weeks 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

3 weeks 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

3 weeks 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

3 weeks 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

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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

4 weeks 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

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

4 weeks 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

4 weeks 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

4 weeks 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

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

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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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+

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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

5 weeks 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>
5 weeks 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

5 weeks 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

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

5 weeks 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

5 weeks 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>
5 weeks agoDetect negative overflow with negation operator
Nick Gasson [Tue, 25 Oct 2022 20:26:24 +0000 (21:26 +0100)]
Detect negative overflow with negation operator

5 weeks agoAdd an Alpine builds.sr.ht config
Nick Gasson [Tue, 25 Oct 2022 19:42:39 +0000 (20:42 +0100)]
Add an Alpine builds.sr.ht config

6 weeks agoAdd configure option to enable experimental LLVM JIT compilation
Nick Gasson [Mon, 24 Oct 2022 21:23:48 +0000 (22:23 +0100)]
Add configure option to enable experimental LLVM JIT compilation

6 weeks agoSet up frame anchor in LLVM JIT backend
Nick Gasson [Sun, 23 Oct 2022 18:02:23 +0000 (19:02 +0100)]
Set up frame anchor in LLVM JIT backend

6 weeks agoFix crash with signal containing unconstrained array. Issue #539
Nick Gasson [Sun, 23 Oct 2022 16:56:31 +0000 (17:56 +0100)]
Fix crash with signal containing unconstrained array. Issue #539

6 weeks agonvc --list does not describe contexts. Fixes #559
Nick Gasson [Sun, 23 Oct 2022 16:20:26 +0000 (17:20 +0100)]
nvc --list does not describe contexts. Fixes #559

6 weeks agoEnable regression testing with interpreter only
Nick Gasson [Sun, 23 Oct 2022 14:54:53 +0000 (15:54 +0100)]
Enable regression testing with interpreter only

6 weeks agoAdd JIT support for guarded signals
Nick Gasson [Sun, 23 Oct 2022 13:24:56 +0000 (14:24 +0100)]
Add JIT support for guarded signals

6 weeks agoMove all JIT exits to jit-exits.c
Nick Gasson [Sun, 23 Oct 2022 13:00:42 +0000 (14:00 +0100)]
Move all JIT exits to jit-exits.c

6 weeks agoImprove accuracy of interpreter stack traces
Nick Gasson [Sun, 23 Oct 2022 09:56:43 +0000 (10:56 +0100)]
Improve accuracy of interpreter stack traces

6 weeks agoHandle FFI calls that return unconstrained arrays
Nick Gasson [Sat, 22 Oct 2022 19:58:49 +0000 (20:58 +0100)]
Handle FFI calls that return unconstrained arrays

6 weeks agoFix composite resolution function handling in interpreter
Nick Gasson [Sat, 22 Oct 2022 13:16:12 +0000 (14:16 +0100)]
Fix composite resolution function handling in interpreter

6 weeks agoJIT IR generation for force/release
Nick Gasson [Sat, 22 Oct 2022 08:49:00 +0000 (09:49 +0100)]
JIT IR generation for force/release

6 weeks agoImplement signal disconnection in interpreter
Nick Gasson [Sat, 22 Oct 2022 08:36:39 +0000 (09:36 +0100)]
Implement signal disconnection in interpreter

6 weeks agoDo not hard-code path to bash on Windows
Nick Gasson [Fri, 21 Oct 2022 18:23:45 +0000 (19:23 +0100)]
Do not hard-code path to bash on Windows

6 weeks agoImprove error message when required library not found
Nick Gasson [Fri, 21 Oct 2022 18:26:07 +0000 (19:26 +0100)]
Improve error message when required library not found

6 weeks agoUse static_alloc to allocate signals
Nick Gasson [Fri, 21 Oct 2022 18:32:25 +0000 (19:32 +0100)]
Use static_alloc to allocate signals

6 weeks agoImplement MACRO_EXIT in LLVM JIT backend
Nick Gasson [Fri, 21 Oct 2022 18:27:14 +0000 (19:27 +0100)]
Implement MACRO_EXIT in LLVM JIT backend

6 weeks agoFix bug with nested case/loop statement. Issue #539
Nick Gasson [Thu, 20 Oct 2022 21:14:22 +0000 (22:14 +0100)]
Fix bug with nested case/loop statement. Issue #539

6 weeks agoUpdates for MSYS2 PKGBUILD
Nick Gasson [Thu, 20 Oct 2022 20:13:57 +0000 (21:13 +0100)]
Updates for MSYS2 PKGBUILD

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