| Age | Commit message (Collapse) | Author |
|
Fixes #527
|
|
This resulted in parent modules sometimes being constant proppagated
before a child module. If the child module has a constant driving one of
its outputs, the parent module would thus not see the constant. This
resulted in strange unstable constant propagation behavior where
sometimes constant outputs would not propagate.
Also add test illustrating why this occurs with uses of InstanceGraph
|
|
|
|
Fixes #708
|
|
This transform replaces all wires with nodes in a legal, flow-forward
order
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Defined as the range from ' ' to '~' [0x20, 0x7e]
|
|
This prevents collisions for one prefix (including temp) from
incrementing the suffix for other prefixes. Makes names more stable.
|
|
Refactor StringLit to use String instead of Array[Byte]
|
|
Adds programArgs to commonOptions
programArgs is all arguments on command line with out leading -/+
or are not bound to a flag.
Create simple test
|
|
Since InstanceGraph now has all modules in its graph, test ConstProp on all modules as a default behaviour.
- Need to think about how to target ConstProp only for a specific module?
Close #644
|
|
|
|
* Reorder port and wire assignments in Verilog
* Fixed up syntax
|
|
|
|
instantiated multiple times (#634)
|
|
|
|
* initial implementation of InlineDeepTransformation
* rewrote transformation to not have any side effects in terms on inlining that was not annotated to be inlined
* minor rewrites
* renamed transformations to Flatten
* fixes according to review
* added more comments and fixed formating/style
* fixed spacing, minor style fixes
|
|
|
|
Fixes issue in https://github.com/freechipsproject/rocket-chip/pull/848
|
|
|
|
* Fixed inability to disable combo loop check
Moved checking of dontCheckComboLoops into loadAnnotations so
that it works in cases where Driver.execute is not used.
* Fix test for annotations, modifications to loadAnnotations
made 2 more annotations visible.
* Remove debug println from DriverSpec
|
|
|
|
|
|
Names that do not start with '_' are "better" than those that do
|
|
Constant Propagation will not optimize across components marked
dontTouch
|
|
|
|
This makes it more concise to write tests
|
|
Gives all transform specs access to useful utilities (like dontTouch).
Deletes some duplicate code. Parsing mode UseInfo is fine for
everything, only matters if the test actually uses info.
|
|
Fixes bug where the Verilog emitter could pull the next value for a
register that feeds a second register, removing the first register from
the second register's update.
|
|
This requires a quick second pass to back propagate constant wires but
the QoR win is substantial. We also only need to count back propagations
in determining whether to run ConstProp again which shaves off an
iteration in the common case.
|
|
|
|
Also add tests for what should happen to 'is invalid' in ExpandWhens
Fixes #606
|
|
|
|
Resolves #600
|
|
|
|
|
|
* Update dependencies and JavaConverters for Scala 2.12
* Bump Scala (and library) version(s).
* replace "error" with "Utils.error"; bump Scala version to 2.11.11
|
|
* Upgrade Logging facility
Make thread-safe
Make logging by package name work
Use caching of class names to level for performance
Make some tests to show this working
* quick fix for dynamic logging variable
* A number of changes based on Adam's suggestions
Default LoggerState
But there is an invoke method now to handle threading issues. This should be propagated to other
projects Driver.execute methods
* Add built-in support for string capture of Logging
* Usability fixes for logging stuff. Settings made to the logger prior to execute/invoke will be passed along if possible.
* A couple style fixes
Comment and privatize Logger state
* Name and save string buffers used for logging
* Fix default logging state setting
Fix logging test, did not have change to command argument
* comment out logging in InlineInstanceTests
* Changed invoke to makeScope
Nested makeScopes share same state object
Removed earlier named string buffer implementation
* Better name for captor get data
* Add trace tests to make sure it works too
* Fix call into logger settings
|
|
Fixes #589
|
|
|
|
Performs DCE by constructing a global dependency graph starting with top-level
outputs, external module ports, and simulation constructs as circuit sinks.
External modules can optionally be eligible for DCE via the
OptimizableExtModuleAnnotation.
Dead code is eliminated across module boundaries. Wires, ports, registers, and
memories are all eligible for removal. Components marked with a
DontTouchAnnotation will be treated as a circuit sink and thus anything that
drives such a marked component will NOT be removed.
This transform preserves deduplication. All instances of a given DefModule are
treated as the same individual module. Thus, while certain instances may have
dead code due to the circumstances of their instantiation in their parent
module, they will still not be removed. To remove such modules, use the
NoDedupAnnotation to prevent deduplication.
|
|
* Added pass name to debug logger
* Addresses #459. Rewords transform annotations API.
Now, any annotation not propagated by a transform is considered deleted.
A new DeletedAnnotation is added in place of it.
* Added more stylized debugging style
* WIP: make pass transform
* WIP: All tests pass, need to pull master
* Cleaned up PR
* Added rename updates to all core transforms
* Added more rename tests, and bugfixes
* Renaming tracks non-leaf subfields
E.g. given:
wire x: {a: UInt<1>, b: UInt<1>[2]}
Annotating x.b will eventually annotate x_b_0 and x_b_1
* Bugfix instance rename lowering broken
* Address review comments
* Remove check for seqTransform, UnknownForm too restrictive check
|