llvm / llvm/circt

[FIRRTL] LowerToHW discards private modules

Open
#8,153 0 comments 0 reactions 0 assignees View on GitHub
FIRRTL
Dominant language
C++
Stars
2.2k
Forks
524
Avg merge
3d 2h
Merged PRs (30d)
46

Description

The `LowerToHW` pass currently discards private modules that are not instantiated. This is problematic if the modules contain contracts that we would like to verify later on. It would be nice if `LowerToHW` would simply lower the existing modules, and if we used SymbolDCE or a similar pass later on to discard unused modules.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the LowerToHW pass and tracing where private, uninstantiated modules are removed. Compare its behavior with SymbolDCE or a similar later pass, using existing LowerToHW tests if present. Done means LowerToHW lowers existing private modules without discarding them, leaving unused-module elimination to a later pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.