]> git.nickg.me.uk Git - nvc.git/log
nvc.git
16 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

16 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

16 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

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

16 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

17 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

17 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

17 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

17 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

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

17 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

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

17 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

17 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

17 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

17 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

17 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

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

17 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

17 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

17 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

17 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

17 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

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

17 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

17 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

17 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

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

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

17 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

17 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

17 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

17 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

17 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+

17 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

17 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

17 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

17 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>
18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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

18 months 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>
18 months agoIncorrect copying of record initial value. Fixes #549
Nick Gasson [Tue, 18 Oct 2022 21:29:16 +0000 (22:29 +0100)]
Incorrect copying of record initial value. Fixes #549

18 months agoUse TCL script to compile OSVVM. Issue #546
Nick Gasson [Tue, 18 Oct 2022 20:00:51 +0000 (21:00 +0100)]
Use TCL script to compile OSVVM. Issue #546

Co-authored-by: Adam Barnes <ambarnes@gmail.com>
18 months agoAvoid use of non-standard GCC extension in win32_ctrl_c_handler
Nick Gasson [Mon, 17 Oct 2022 21:05:24 +0000 (22:05 +0100)]
Avoid use of non-standard GCC extension in win32_ctrl_c_handler

18 months agoFix name of GitHub Actions artifacts
Nick Gasson [Sun, 16 Oct 2022 21:06:45 +0000 (22:06 +0100)]
Fix name of GitHub Actions artifacts

18 months agoUse paths relative to executable on Windows
Nick Gasson [Sun, 16 Oct 2022 16:00:29 +0000 (17:00 +0100)]
Use paths relative to executable on Windows

18 months agoAllow non-static signal parameters in relaxed mode
Nick Gasson [Sun, 16 Oct 2022 14:50:39 +0000 (15:50 +0100)]
Allow non-static signal parameters in relaxed mode

18 months agoFix bugs in handling of 'SUBTYPE attribute. Issue #539
Nick Gasson [Sun, 16 Oct 2022 14:26:24 +0000 (15:26 +0100)]
Fix bugs in handling of 'SUBTYPE attribute. Issue #539

18 months agoSync NEWS.md from 1.7 branch
Nick Gasson [Sun, 16 Oct 2022 11:25:09 +0000 (12:25 +0100)]
Sync NEWS.md from 1.7 branch

18 months agoFix dumping of signals whose bounds are unknown
Nick Gasson [Sun, 16 Oct 2022 11:05:59 +0000 (12:05 +0100)]
Fix dumping of signals whose bounds are unknown

18 months agoJIT IR generation for procedure call suspend/resume
Nick Gasson [Sun, 16 Oct 2022 09:32:00 +0000 (10:32 +0100)]
JIT IR generation for procedure call suspend/resume

18 months agoAdd a PKGBUILD file for MSYS2
Nick Gasson [Sat, 15 Oct 2022 19:41:25 +0000 (20:41 +0100)]
Add a PKGBUILD file for MSYS2

Co-authored-by: Adam Barnes <ambarnes@gmail.com>
18 months agoNew FFI interface based on libffi
Nick Gasson [Thu, 13 Oct 2022 09:33:13 +0000 (10:33 +0100)]
New FFI interface based on libffi

18 months agoFix crash with signal declared in a generic package
Nick Gasson [Fri, 14 Oct 2022 08:53:15 +0000 (09:53 +0100)]
Fix crash with signal declared in a generic package

18 months agoTidy up elab_ctx_t usage
Nick Gasson [Fri, 14 Oct 2022 08:38:33 +0000 (09:38 +0100)]
Tidy up elab_ctx_t usage

18 months agoAdd support for relative external names. Fixes #553
Nick Gasson [Thu, 13 Oct 2022 22:27:36 +0000 (23:27 +0100)]
Add support for relative external names. Fixes #553

18 months agoSimplify handling of lvalue/rvalue expressions
Nick Gasson [Thu, 13 Oct 2022 19:23:32 +0000 (20:23 +0100)]
Simplify handling of lvalue/rvalue expressions

18 months agoRefactor how pedantic errors are generated
Nick Gasson [Thu, 13 Oct 2022 17:08:10 +0000 (18:08 +0100)]
Refactor how pedantic errors are generated