llvm / llvm/circt

[Handshake] Use symbols instead of id integer attributes for memories

Open
#4,166 0 comments 1 reaction 0 assignees View on GitHub
good first issue Handshake
Dominant language
C++
Stars
2.2k
Forks
524
Avg merge
3d 2h
Merged PRs (30d)
46

Description

All handshake memories must currently have an `id` integer attribute. To no surprise, this is used to unique each handshake memory.
Issues with this:
1. No logic is implemented to assert that id's are actually unique
2. The `id`s should be replaced with symbols (in other words, memories should be named). This will also help lowerings, which nevertheless are forced to come up with some unique name for the memory (currently based on the id).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the Handshake memory definitions and the lowerings that currently derive names from integer ids. Trace how memory ids are represented and consumed, then determine the affected checks and tests; done means memories use symbols consistently and lowerings no longer need to generate names from ids.

Written by the indexing model from the issue text.

Assessment

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