[llvm-dev] [RFC] Proposal for CIRCT incubator project

Stephen Neuendorffer via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 7 17:33:55 PDT 2020


Sure, I'll summarize with respect to the criterion in the document:

   - Must be generally aligned with the mission of the LLVM project to
   advance compilers, languages, tools, runtimes, etc.

CIRCT is a compiler which is built around LLVM/MLIR.  We anticipate
building code generation for ASIC and FPGA backends along with specialized
accelerators, while leveraging existing LLVM backends for processor targets.

   - Must conform to the license, patent, and code of conduct policies laid
   out in this developer policy document.

Contributions are currently ApacheV2 licensed and we have adopted the
general structure of the LLVM developer policies already, to the extent
that we can as an external project.

   - Must have a documented charter and development plan, e.g. in the form
   of a README file, mission statement, and/or manifesto.

See  https://github.com/circt/circt and
https://github.com/circt/circt/blob/master/docs/Charter.md

   - Should conform to coding standards, incremental development process,
   and other expectations.

The project mostly consists of MLIR dialects and transformations following
the MLIR standalone dialect example implemented using c++14 and FileCheck
for regressions.  We are currently using Github PRs for code review and a
nifty CI system that caches the most recent LLVM build for good performance
using github hosted builds.  See  https://github.com/circt/circt

   - Should have a sense of the community that it hopes to eventually
   foster, and there should be interest from members with different
   affiliations / organizations.

We have weekly meetings with >20 people from Xilinx, Sifive, Microsoft,
PNNL, ETH, EPFL, Cornell, and Stanford.  Meeting minutes are here:
https://docs.google.com/document/d/1fOSRdyZR2w75D87yU2Ma9h2-_lEPL4NxvhJGJd-s5pk/edit#


   - Should have a feasible path to eventually graduate as a dedicated
   top-level or sub-project within the LLVM monorepo
   <https://github.com/llvm/llvm-project>.

I think this is very feasible from the perspective of code structure, but I
would want to get to the point where we have stable APIs and useful
end-to-end toolflows before advocating for that.

   - Should include a notice (e.g. in the project README or web page) that
   the project is in ‘incubation status’ and is not included in LLVM releases
   (see suggested wording below).

We can easily add this if accepted by the community.

   - Must be proposed through the LLVM RFC process, and have its addition
   approved by the LLVM community - this ultimately mediates the resolution of
   the “should” concerns above.

'[RFC]' indicated in the subject line.  I assume that this doesn't yet
qualify as a contentious decision. :)

Steve

On Tue, Jul 7, 2020 at 10:33 AM Chris Lattner <clattner at nondot.org> wrote:

> Thanks Steve!  The incubator process just landed, it would be great to
> outline how CIRCT aligns with the new guidelines set out in that document.
> As you know, I’m personally very much in favor of this project landing, but
> am also have a conflict of interest, so I’d like to know what other
> community members think.
>
> -Chris
>
> On Jul 4, 2020, at 3:29 PM, Stephen Neuendorffer via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>
> For the past several months, members of the ‘CIRCT’ group have been
> working to begin adapting MLIR for hardware design.  We believe that this
> area would benefit from good open source infrastructure enabling research
> and, eventually, the next generation of commercial tools.  We have
> collected several dialects and envision a number of lowering flows using
> these dialects.  We have reached the point where we are ready to share our
> ideas more widely and would like to be considered as an LLVM incubator
> project.
> Our code exists at https://github.com/circt as an out-of-tree MLIR
> project and our group charter can be found at
> https://github.com/circt/circt/blob/master/README.md.   We have weekly
> discussions with a group of about 20 people from Xilinx, SiFive, Microsoft,
> PNNL, ETH Zurich, EPFL, Stanford, and Cornell, and welcome additional
> contributions.  This project is still early and we see many elements as
> highly experimental.  At the same time, we feel that the only way to vet
> these ideas is to build larger systems which will likely take some time and
> community investment. The LLVM incubator process would be a good way to
> help us organize this effort.
>
> Steve Neuendorffer
> Xilinx Research Labs
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200707/4a9ad3b3/attachment.html>


More information about the llvm-dev mailing list