llvm / llvm/circt

Passes

Open
#5,731 3 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

I am just starting out with CIRCT I wanted to know the procedure on lowering dialects to Verilog. I went through the CIRCT documentation and came upon passes. I want to know if these passes and optimizations are supposed to be done through C++ (importing classes and functions) or command line flags of the compiled executables after compiling CIRCT. If it is the former, do I just import the classes from the repository? Is there a specific directory containing all the passes or do I have to look around?

One more thing. Can the workflow of transformation of a high level language to Verilog using CIRCT can be done with the Python bindings and C++ programming (collectively and/or individually).

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no specific file, test, or entry point. Start by reviewing the CIRCT documentation covering passes, dialect lowering, compiled executables, and Python bindings, then identify the appropriate workflow and where it should be documented. Done means the C++ and Python usage paths, including how passes are invoked, are clearly explained.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
compilers, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.