Commit Graph

34 Commits

Author SHA1 Message Date
Zachary Snow a87ee7c11b additional param type conversion bug fixes
- general refactoring throughout
- improved metrics for dropping unneeded modules
- fix re-visiting a converted instance in the same pass
2021-06-15 16:46:53 -04:00
Zachary Snow 003d4dbc4e param type conversion initial cleanup 2021-06-07 23:39:26 -04:00
Zachary Snow 36fcce8934 fix param type default pollution 2021-06-03 20:51:26 -04:00
Zachary Snow e52de9d4a6 remove legacy ordered binding handling in param type conversion 2021-05-31 16:52:57 -04:00
Zachary Snow 13c84e4c7a refactor parameter binding resolution
- fix type/expr ambiguity for interface and class parameters
- check for parameter kind mismatch up front
- centralize key logic in ResolveBindings
2021-05-31 14:13:49 -04:00
Zachary Snow e6263d6caa support function calls within type parameters 2021-04-26 18:13:36 -04:00
Zachary Snow bdc7b5ad69 replace some invariant errors with pattern matching 2021-04-21 19:50:03 -04:00
Zachary Snow 04d6fa6199 fix additional type parameter instantiation issues
- avoid premature conversion of default struct type parameters
- allow use of $clog2, $signed, and $unsigned in type parameters
- more thorough and efficient top reference ident renaming
- precede type param conversion with hier const pass
2021-04-13 22:22:33 -04:00
Zachary Snow 623f0a2d39 fix missing top reference renames in param type instantiation
- renaming applies to nodes within generate blocks
- renaming applies to LHSs
2021-04-13 16:47:00 -04:00
Zachary Snow f84dd70186 fix handling of hierarchical references with type parameters
- wait for hierarchical references within an instance's type parameters
  to be resolved before instantiating the module
- references to a module's top-level named scopes are now correctly
  renamed when creating new type parameter modules
2021-02-21 17:16:20 -05:00
Zachary Snow aea2975d66 remove outdated TODOs 2021-02-19 12:24:56 -05:00
Zachary Snow 378ede9e1a standardize internal representation of unknown types 2021-01-24 09:55:03 -07:00
Zachary Snow e4135bb896 use strict State and Writer monads 2020-08-11 19:14:18 -04:00
Zachary Snow c28bb71ac5 more careful expr and type traversals 2020-07-15 18:44:57 -06:00
Zachary Snow d88c516d33 enhanced handling of number literals
- number literals are parsed rather than stored as strings
- fix array query functions used on non-trivial number literals
- more efficient expression simplification recursion
- expanded constant folding scenarios
2020-07-12 15:06:27 -06:00
Zachary Snow 737c66a6c9 fix default type parameters which depend on other parameters 2020-07-10 17:45:36 -06:00
Zachary Snow 69b2e86aee remove pattern synonyms which introduced excessive overhead 2020-07-09 21:01:18 -06:00
Zachary Snow ff166df59c fix conversion of implicitly-typed type parameters 2020-07-09 21:00:23 -06:00
Zachary Snow 4b5e3232b9 support for localparam type 2020-07-08 19:39:26 -06:00
Zachary Snow 9aa8d5a5d3 remove outdated TODOs 2020-07-08 19:39:26 -06:00
Zachary Snow 671101a30b allow type parameters to depend on other parameters 2020-07-08 18:56:41 -06:00
Zachary Snow 219a57c37b preliminary language support for parameterized class scopes 2020-07-08 17:46:37 -06:00
Zachary Snow 24071d74ac paramtype conversion resolves dimension queries before substitution 2020-06-25 00:09:56 -07:00
Zachary Snow 12be569742 reduce usage of maybe 2020-06-14 15:56:09 -04:00
Zachary Snow b71e0f5346 performance improvements
- removed repetition in dimension query conversion
- removed repetition in package item nesting conversion
- packing item nesting conversion short circuit
- param type conversion doesn't bother renaming non-param type instances
- implement showsPrec for certain expression cases
2020-06-14 09:20:34 -04:00
Zachary Snow ea81d55cdc fix duplicate param type modules 2020-05-31 22:00:57 -04:00
Zachary Snow c262324a36 removed Unique dependency
- made stream conversion pure
- type param conversion uses Set for instance uniqueness
- updated NOTICE and resolutions
2020-04-05 13:09:52 -04:00
Zachary Snow 4cf65dd4e2 support for struct type parameters
- param type conversion properly supports deferred param type resolution
- fixed struct conversion incomplete Subroutine traversal
- struct conversion excludes param types from conversion
- parameters are defaulted to have integer type
2020-02-09 17:31:24 -05:00
Zachary Snow 48f84a9ed4 faster param type conversion 2020-02-09 11:52:33 -05:00
Zachary Snow 7267f94b0b allow signing on net types (closes #40) 2019-09-16 19:50:30 -04:00
Zachary Snow 5d80c83092 support for module attributes (resolves #39) 2019-09-15 23:17:14 -04:00
Zachary Snow 10feedb1af use the Unique package in a few places 2019-09-11 23:01:34 -04:00
Zachary Snow 6271e16b68 functional parameter type conversion 2019-09-11 17:58:03 +02:00
Zachary Snow 4de585ec0f initial parameter type conversion 2019-09-11 09:27:18 +02:00