You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.
Did you provide a code example showing the problem?
Did you describe your environment?
Did you specify relevant external information?
What is the current behavior?
Deduplicating two modules where one has InlineAnnotation causes both modules to be inlined. I think this is a pretty well known issue with "sticky annotations". I opened a similar issue for the CIRCT FIRRTL compiler here: llvm/circt#2790
circuit Top:
module Foo:
input i : UInt<8>
output o : UInt<8>
wire f : UInt<8>
f <= i
o <= f
module Bar:
input i : UInt<8>
output o : UInt<8>
wire b : UInt<8>
b <= i
o <= b
module Top:
input i : UInt<8>
output o : UInt<8>
inst foo of Foo
foo.i <= i
inst bar of Bar
bar.i <= i
o <= xor(foo.o, bar.o)
Checklist
What is the current behavior?
Deduplicating two modules where one has
InlineAnnotation
causes both modules to be inlined. I think this is a pretty well known issue with "sticky annotations". I opened a similar issue for the CIRCT FIRRTL compiler here: llvm/circt#2790~/wsp/firrtl/utils/bin/firrtl --inline Top.Bar -i inline.fir -o inline
Creates:
Running with
--log-level=trace
you can see dedup does not create a non-local annotation:Disabling Dedup with
--no-dedup
works wellWhat is the expected behavior?
I would expect only some instances to be inlined.
Steps to Reproduce
Your environment
External Information
The text was updated successfully, but these errors were encountered: