llvm / llvm/circt

[HW][SV] Use FieldID in HW/SV dialects

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

Description

FieldID is very useful feature to specify the subelement in aggregate types(struct, array...). Currently it is supported only in FIRRTL dialect:
https://github.com/llvm/circt/blob/769181bdfd191c4a684301c02e1d43fd7e79bcc6/include/circt/Dialect/FIRRTL/FIRRTLTypes.h#L290-L304

Currently we are using an inefficient implementation to construct an access path from fieldID in ExportVerilog. So we have to replace the implementation once HW/SV dialects support fieldID utilities.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the FieldID utilities in include/circt/Dialect/FIRRTL/FIRRTLTypes.h and inspect the current access-path construction in ExportVerilog. Determine where equivalent FieldID support belongs in the HW and SV dialects, then replace the inefficient ExportVerilog implementation. Done means HW/SV dialects support the needed FieldID utilities and ExportVerilog uses them.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Feature
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.