Commit Graph

787 Commits

Author SHA1 Message Date
Zachary Snow 0a7b0250e7 fix 1364-2001 and 1364-2001-noconfig keywords mixup
- swap 1364-2001 and 1364-2001-noconfig
- fix existing begin_keywords test
- add keyword test suite for all keywords
2023-05-15 22:21:23 -04:00
Zachary Snow 2aff725ea2 drop tf block edge case
- The deleted chunk in TFBlock has been unreachable since 57ef23ef. The
  RemoveComments change would make it reachable by dropping the leading
  Null in a task or function body.
- The optimization in TFBlock was unsound because the nested block could
  shadow identifiers used (but not defined) in the tail of the outer
  block.
- The optimization is not clearly necessary, so I'm dropping it for now.
- Expand tf_block test coverage.
2023-05-14 23:18:58 -04:00
Zachary Snow 6c4ee8f4bc keep explicitly unconnected port bindings
These are now kept while still supporting optional trailing commas and
without introducing pass-through inconsistencies.
2023-05-10 08:48:15 -04:00
Zachary Snow 83f2dbde6b clean up interface check decl type 2023-05-08 23:55:58 -04:00
Zachary Snow 11a5d0479d support for sequence and property declarations 2023-05-07 16:45:06 -04:00
Zachary Snow 1b8aace145 check for module or interface names used as type names 2023-05-07 13:45:56 -04:00
Zachary Snow b7738a3238 don't use positional error message on extra named bindings 2023-04-26 09:07:18 -04:00
Zachary Snow e4c47363bb ignore port connection attributions 2023-04-21 08:29:27 -04:00
Zachary Snow eca8714de7 skip start of block before looking for its end 2023-03-07 23:54:56 -05:00
Zachary Snow 4ce177c074 multipack conversion visits exprs within types 2023-02-22 00:15:39 -05:00
Zachary Snow 9bab0448e3 drop explicit string type from parameters 2023-01-07 18:27:25 -07:00
Zachary Snow c840bcd623 prefer larger base when concatenating numbers 2022-12-24 09:56:27 -07:00
Zachary Snow 96a108ded7 constant folding extensions
- fold string literal comparisons
- fold non-decimal bit shifts
- fold non-decimal integer comparisons
- fold decimal bitwise AND and OR
- simplify cast expressions before elaboration
- remove duplicate cast expression traversal
- flatten concatenated numbers in a single pass
2022-12-24 01:12:50 -07:00
Zachary Snow e09aea48e0 type inference for localparams performed lazily
The implicit type of a localparam is not always needed. This improves
performance when complex localparam expressions are processed.
2022-12-24 01:01:38 -07:00
Zachary Snow 9de4d44305 simplify handles shadowing via vars and genvars 2022-12-24 00:51:05 -07:00
Zachary Snow 72ab639699 forbid non-void return inside void functions 2022-12-23 19:55:44 -07:00
Zachary Snow c49fad1dba drop unneeded module-scoped references 2022-10-29 13:22:53 -04:00
Zachary Snow 086eb78688 elaborate accesses to fields of struct constants 2022-10-23 11:52:22 -07:00
Zachary Snow 4533e4fffb don't inline module-level constants into static prefixes 2022-10-22 18:02:54 -07:00
Zachary Snow e00582de8f check for conflicts with unused declarations 2022-07-18 21:05:21 -04:00
Zachary Snow a9f00cce2a avoid name conflicts when elaborating packages 2022-07-17 22:02:15 -04:00
Zachary Snow a54be8dae6 instances supply names during reordering 2022-07-17 20:58:36 -04:00
Zachary Snow 59b416f9b4 isolate interface name resolution checks 2022-07-17 20:32:56 -04:00
Zachary Snow 6e8659a537 support hierarchical calls to functions with no inputs 2022-07-10 22:43:33 -04:00
Zachary Snow 5dcbce5f45 fix conversion of casts to structs containing multidimensional fields 2022-06-19 21:55:19 -04:00
Zachary Snow e7fc1e6147 remove legacy tagging logic in array flattening conversion 2022-06-19 19:27:17 -04:00
Zachary Snow 336812ff21 fix conversion of signed struct fields accessed directly 2022-06-19 16:13:56 -04:00
Zachary Snow effeded6d1 support procedural continuous assignments 2022-05-10 12:11:32 -04:00
Zachary Snow e778a671e1 generate explicit sensitivity lists when necessary 2022-05-10 11:29:33 -04:00
Zachary Snow 9eceb55673 defer elaboration of void functions 2022-05-02 14:45:10 -06:00
Zachary Snow b7a2327668 simple for loop elaboration applies in more cases 2022-04-30 20:19:02 -06:00
Zachary Snow f68bf187af refactor event control internals
- event expressions use Expr over LHS
- stricter AST representation of event controls
- property specs use event expressions directly
2022-04-11 17:44:47 -06:00
Zachary Snow f868f06e88 write adjacent overwrites existing files 2022-03-16 15:34:29 +01:00
Zachary Snow ed09fe88cf support assignments within expressions 2022-03-12 23:57:17 +01:00
Zachary Snow 4ced649a87 convert do while loops 2022-03-11 11:32:54 +01:00
Zachary Snow 1315bed81c support cycle delay range in sequence expressions 2022-03-09 18:38:30 +01:00
Zachary Snow e6e96b622b support for edge event 2022-02-16 12:01:58 +01:00
Zachary Snow 3db72c4c2d logic conversion ignores LHSs in procedural assignment senses 2022-02-15 17:49:50 +01:00
Zachary Snow bcc404b8ae bump license year 2022-02-12 14:23:42 +01:00
Zachary Snow 96cfe18ca7 pass through support for functions with output ports 2022-02-07 23:38:11 +01:00
Zachary Snow eb42042c1c pass through support for DPI imports and exports 2022-01-25 20:52:14 -07:00
Zachary Snow 2e43dfeeaa fix failed indirection of unassigned function results 2022-01-23 22:40:43 -07:00
Zachary Snow 4c3dcf5219 support for enumerated type ranges 2021-12-10 13:16:34 -07:00
Zachary Snow 03a913ad65 fix illegal removal of width-extending `+ 0` and `* 1` 2021-11-15 21:26:08 +01:00
Zachary Snow 5105ccbb39 use scoped errors in struct conversion 2021-10-17 21:40:12 -06:00
Zachary Snow c843efd504 add UnbasedUnsized to --exclude help message 2021-10-13 20:18:15 -06:00
Zachary Snow 150b7f2af1 enum item conflict raises scoped error 2021-10-10 22:04:51 -06:00
Zachary Snow fd64d4e3f2 remove two unreachable LHS conversion errors 2021-10-09 21:18:44 -06:00
Zachary Snow d1d81eb8d6 use scoped errors in interface conversion 2021-10-07 21:06:45 -06:00
Zachary Snow 84edbae503 preliminary scoped errors with approximate source location
- scoped traversals can now raise errors which contain the path of the
  current scope and an approximate source location based on preceding
  trace comments, if available
- initially, this new error messaging has only been added for the
  illegal size cast checks in the TypeOf and Cast conversions
- error suite tests can provide a verbose mode expected source location
2021-10-06 22:17:41 -06:00