@@ -596,11 +596,6 @@ having this ability would help that work.
596596Proposing Major Changes (RFCs)
597597------------------------------
598598
599- LLVM is a large community with many stakeholders, and before landing any major
600- change, it is important to discuss the design of a change publicly with the
601- community. This is done by posting a Request For Comments (RFC) on the `LLVM
602- Discourse forums `_.
603-
604599The design of LLVM is carefully controlled to ensure that all the pieces fit
605600together well and are as consistent as possible. If you plan to make a major
606601change to the way LLVM works or want to add a major new extension, it is a good
@@ -609,45 +604,13 @@ significant effort in an implementation. Prototype implementations, however, can
609604often be helpful in making design discussions more concrete by demonstrating
610605what is possible.
611606
612- These are some suggestions for how to get a major change accepted:
613-
614- * Make it targeted, and avoid touching components irrelevant to the task.
615-
616- * Explain how the change improves LLVM for other stakeholders rather than
617- focusing on your specific use case.
618-
619- * As discussion evolves, periodically summarize the current state of the
620- discussion and clearly separate points where consensus seems to emerge from
621- those where further discussion is necessary.
622-
623- * Compilers are foundational infrastructure, so there is a high quality bar,
624- and the burden of proof is on the proposer. If reviewers repeatedly ask for
625- an unreasonable amount of evidence or data, proposal authors can escalate to
626- the area team to resolve disagreements.
627-
628- After posting a major proposal, it is common to receive lots of conflicting
629- feedback from different parties, or no feedback at all, leaving authors without
630- clear next steps. As a community, we are aiming for `"rough consensus"
631- <https://en.wikipedia.org/wiki/Rough_consensus> `_, similar in spirit to what is
632- described in `IETF RFC7282 <https://datatracker.ietf.org/doc/html/rfc7282 >`_.
633- This requires considering and addressing all of the objections to the RFC, and
634- confirming that we can all live with the tradeoffs embodied in the proposal.
635-
636- The LLVM Area Teams (defined in `LP0004
637- <https://github.com/llvm/llvm-www/blob/main/proposals/LP0004-project-governance.md> `_)
638- are responsible for facilitating project decision making. In cases where there
639- isn't obvious agreement, area teams should step in to restate their perceived
640- consensus. In cases of deeper disagreement, area teams should try to identify
641- the next steps for the proposal, such as gathering more data, changing the
642- proposal, or rejecting it outright. They can also act as moderators by
643- scheduling calls for participants to speak directly to resolve disagreements,
644- subject to normal :ref: `Code of Conduct <LLVM Community Code of Conduct >`
645- guidelines.
646-
647- Once the design of the new feature is finalized, the work itself should be done
648- as a series of `incremental changes `_, not as a long-term development branch.
607+ LLVM is a large community with many stakeholders, and before landing any major
608+ change, it is important to discuss the design of a change publicly with the
609+ community. This is done by posting a Request For Comments (RFC) on the `LLVM
610+ Discourse forums `_. See the :doc: `RFC process <RFCProcess >` documentation for
611+ more details.
649612
650- .. _incremental changes :
613+ .. _incremental- changes :
651614
652615Incremental Development
653616-----------------------
@@ -877,6 +840,7 @@ will only be done through the following process:
877840 library features LLVM should use; avoid miscompiles in particular compiler
878841 versions, etc).
879842 - Detail downsides on important platforms (e.g. Ubuntu LTS status).
843+ - See the :doc: `RFC process <RFCProcess >` documentation for more details.
880844
881845 * Once the RFC reaches consensus, update the CMake toolchain version checks as
882846 well as the :doc: `getting started<GettingStarted> ` guide. This provides a
@@ -1065,7 +1029,8 @@ Those wishing to add a new target to LLVM must follow the procedure below:
10651029 your target and how it follows all the requirements and what work has been
10661030 done and will need to be done to accommodate the official target requirements.
10671031 Make sure to expose any and all controversial issues, changes needed in the
1068- base code, table gen, etc.
1032+ base code, table gen, etc. See the :doc: `RFC process <RFCProcess >`
1033+ documentation for more details.
106910343. Once the response is positive, the LLVM community can start reviewing the
10701035 actual patches (but they can be prepared before, to support the RFC). Create
10711036 a sequence of N patches, numbered '1/N' to 'N/N' (make sure N is an actual
@@ -1116,7 +1081,8 @@ components to a high bar similar to "official targets", they:
11161081 clear path to resolving them.
11171082 * Must be proposed through the LLVM RFC process, and have its addition approved
11181083 by the LLVM community - this ultimately mediates the resolution of the
1119- "should" concerns above.
1084+ "should" concerns above. See the :doc: `RFC process <RFCProcess >`
1085+ documentation for more details.
11201086
11211087If you have a project that you think would make sense to add to the LLVM
11221088monorepo, please start an RFC topic on the `LLVM Discourse forums `_ to kick off
@@ -1160,7 +1126,8 @@ criteria:
11601126 suggested wording below).
11611127 * Must be proposed through the LLVM RFC process, and have its addition
11621128 approved by the LLVM community - this ultimately mediates the resolution of
1163- the "should" concerns above.
1129+ the "should" concerns above. See the :doc: `RFC process <RFCProcess >`
1130+ documentation for more details.
11641131
11651132That said, the project need not have any code to get started, and need not have
11661133an established community at all! Furthermore, incubating projects may pass
0 commit comments