llvm / llvm/circt

[HW Parameters] Expand `ParamVerbatimAttr` to allow subexpr attribute substitution

Open
#1,881 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement HW
Dominant language
C++
Stars
2.2k
Forks
524
Avg merge
3d 2h
Merged PRs (30d)
46

Description

`ParamVerbatimAttr` should someday support the same complement of features as `sv.verbatim.expr`, but in the parameter domain. In particular, it should take an optional list of attributes and substitute them into `{{0}}` positions. These should be attributes, allowing the use of `#hw.param.decl.ref` (and other derived expressions) so you can use a macro with arguments in a parameter list.

This is not high priority to me personally, just capturing this as a "nice to have" enhancement in case someone is interested in picking it up.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the ParamVerbatimAttr implementation and the existing sv.verbatim.expr entry point. Compare their supported features and trace how attributes are represented for substitution. Done means ParamVerbatimAttr accepts an optional attribute list, substitutes attributes into {{0}} positions, and supports derived expressions such as #hw.param.decl.ref in parameter lists.

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
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.