Commit Graph

817 Commits

Author SHA1 Message Date
Zachary Snow cd7b53c658 fix multipack conversion type and expr traversal 2023-11-04 20:36:51 -04:00
Zachary Snow fe90c7bbf4 fix inline explicit struct casts 2023-11-04 17:31:11 -04:00
Zachary Snow a4639fa9ef special case typenames when resolving pattern identifiers 2023-11-04 13:31:09 -04:00
Zachary Snow d5b9c1da59 visit function args in empty args conversion 2023-11-04 11:36:08 -04:00
Zachary Snow 18f333524e remove extra task/function name traversals 2023-11-01 23:41:29 -04:00
Zachary Snow 764a11af7f more warnings for empty output scenarios 2023-08-20 13:56:03 -04:00
Zachary Snow aa451b66a2 stronger typename checks 2023-08-13 15:17:21 -04:00
Zachary Snow deed2d9fc5 enable PatternSynonyms and TupleSections everywhere 2023-08-11 22:58:15 -04:00
Zachary Snow ba94920ee0 assign a unique identifier to every genvar 2023-08-11 21:52:03 -04:00
Zachary Snow a209335c30 disambiguate typenames and interface names 2023-08-09 22:45:52 -04:00
Zachary Snow b09fdaf76a simplify shadowing notes non-trivial localparams too 2023-08-08 22:30:36 -04:00
Zachary Snow 5b035613ee constant fold || and && 2023-08-08 22:25:39 -04:00
CORRADI Quentin 619bde4be1
support for attributes in unary, binary, and ternary expressions
Co-authored-by: qcorradi <q.corradi22@imperial.ac.uk>
Co-authored-by: Zachary Snow <zach@zachjs.com>
2023-07-31 22:52:28 -04:00
Zachary Snow 07caba64a5 simplify non-ANSI style port declaration dimensions 2023-07-31 21:31:34 -04:00
Zachary Snow 19b479d893 fix incorrect indentation in PortDecl.hs 2023-07-31 21:27:14 -04:00
Zachary Snow bef9b1a3f0 allow inout task and function ports 2023-07-26 23:42:51 -04:00
Zachary Snow a29564459b remove long-deprecated CLI flag aliases 2023-06-24 13:11:21 -04:00
Zachary Snow 1c74178417 use the tag alone as the version for future releases 2023-06-24 12:51:42 -04:00
Zachary Snow 2d32fe9c2d minor help text updates 2023-06-22 00:05:06 -04:00
Zachary Snow 04d65bb388 added --write directory mode with one file per module 2023-06-21 08:25:42 -04:00
Zachary Snow 911243dac4 add --top for filtering uninstantiated modules 2023-06-18 22:36:43 -04:00
Zachary Snow 3b2a55a69c better error message for indexed atoms 2023-06-18 22:18:20 -04:00
Zachary Snow c103d0cb67 bump license year 2023-06-18 15:02:05 -04:00
Zachary Snow a05659cd06 better unfinished conditional directive error message 2023-06-17 12:56:23 -04:00
Zachary Snow 80095810b9 remove unneeded FlexibleInstances pragma in Type.hs 2023-06-13 23:07:21 -04:00
Zachary Snow 51c90baf5e support for loading from library directories 2023-06-13 22:53:36 -04:00
Zachary Snow aa429204ea minor AlwaysKW coverage improvements 2023-06-10 23:52:17 -04:00
Zachary Snow 2bb9c82c1e drop Eq instance for AlwaysKW Kind 2023-06-06 23:59:29 -04:00
CORRADI Quentin 4756f49750
avoid dangling procedural else
* Remove unneeded begin/end when the loop is a do/while
* Dangling else check passes through statement attributes (bug fix)
* Dangling else check passes through most control flow structures to reduce unneeded begin/end
* Add test case and update changelog

---------

Co-authored-by: qcorradi <q.corradi22@imperial.ac.uk>
Co-authored-by: Zachary Snow <zach@zachjs.com>
2023-06-06 00:08:56 -04:00
qcorradi 485ffffa01 always kw conversion visits items with attributes
* Fixing a bug where always_* are not converted when attributed
* Added tests and updated Changelog for the attributed always_* fix
2023-05-30 23:39:47 -04:00
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