Input Needed: Teams for Pull Request Subscriptions

@tstellar could we imagine a bot that check for any pending request and auto-approve?

@mehdi_amini That might work if there is an event generated for that.

Blocking reviews are a repo wide setting, so we can’t only enable it for libc++. I think the solution to this would be to add a github workflow that checks if someone from the libc++ team has approved a PR before allowing it to be merged.

The RISCV and SPARC backends don’t have teams yet. Possibly other backends too, but I don’t care about those.

@pr-subscribers-llvm-ir

llvm/lib/IR/**
llvm/include/llvm/IR/**
llvm/docs/LangRef.rst

@pr-subscribers-llvm-analysis

llvm/lib/Analysis/**
llvm/include/llvm/Analysis/**

@pr-subscribers-llvm-transforms

llvm/lib/Transforms/**
llvm/include/llvm/Transforms/**

analysis=>Analysis and transforms=>Transforms

Perhaps @dexonsmith can suggest Bitcode directories.

I would take MSP430 for sure:

pr-subscribers-msp430 llvm/lib/Target/MSP430 clang/lib/Basic/Targets/MSP430*

@pr-subscribers-llvm-adt

llvm/include/llvm/ADT/**
llvm/unittests/ADT/**

@pr-subscribers-llvm-support

llvm/include/llvm/Support/**
llvm/lib/Support/**
llvm/unittests/Support/**

include dirs too

A couple of teams I’d like that it doesn’t look like we have yet. If the patterns don’t make the initial PR that’s fine but I think an admin needs to create the teams:

  • @pr-subscribers-selectiondag (I suggested patterns for this in the PR)
llvm/include/llvm/CodeGen/DAGCombine.h
llvm/include/llvm/CodeGen/SelectionDAG*.h
llvm/include/llvm/CodeGen/SDNodeProperties.td
llvm/include/llvm/Target/TargetSelectionDAG.td
llvm/lib/CodeGen/SelectionDAG/
llvm/utils/TableGen/CodeGenDAG*
llvm/utils/TableGen/DAGISel*
  • @pr-subcribers-hlsl - this one’s a little scattered, unfortunately
clang/test/ParserHLSL
clang/test/SemaHLSL
clang/test/AST/HLSL
clang/test/CodeGenHLSL
clang/cmake/caches/HLSL.cmake
clang/include/clang/Basic/HLSL*.h
clang/include/clang/Sema/HLSL*.h
clang/docs/HLSL
clang/lib/Driver/ToolChains/HLSL*
clang/lib/Parse/ParseHLSL.cpp
clang/lib/Sema/HLSLExternalSemaSource.cpp
clang/lib/Sema/SemaHLSL.cpp
clang/lib/CodeGen/CGHLSLRuntime.*
llvm/include/llvm/Frontend/HLSL
llvm/lib/Frontend/HLSL
  • @pr-subscribers-directx - backend
llvm/include/llvm/IR/IntrinsicsDirectX.td
llvm/lib/Target/DirectX/
llvm/test/CodeGen/DirectX/
llvm/tools/dxil-dis
llvm/test/tools/dxil-dix
clang/lib/Basic/Targets/DirectX*

Apologies if this has already been answered, but how do I subscribe to a PR team?

It’s managed at the organization level and not the repo level, so you need to navigate up one level to LLVM · GitHub where the “Teams” tab appears.

From there you click on a team and then you can request joining, for example Sign in to GitHub · GitHub

Thank you for leading this effort! How about this?

pr-subscribers-llvm-inliner

llvm/lib/Analysis/InlineAdvisor.cpp
llvm/lib/Analysis/InlineCost.cpp
llvm/lib/Analysis/InlineOrder.cpp
llvm/lib/Analysis/InlineSizeEstimatorAnalysis.cpp
llvm/lib/Transforms/IPO/Inliner.cpp
llvm/lib/Transforms/Utils/InlineFunction.cpp
llvm/include/llvm/Analysis/InlineAdvisor.h
llvm/include/llvm/Analysis/InlineCost.h
llvm/include/llvm/Analysis/InlineModelFeatureMaps.h
llvm/include/llvm/Analysis/InlineOrder.h
llvm/include/llvm/Analysis/InlineSizeEstimatorAnalysis.h
llvm/include/llvm/Transforms/IPO/Inliner.h

https://github.com/orgs/llvm/teams/pr-subscribers-pr-subscribers-github-workflow probably should be renamed.

https://github.com/orgs/llvm/teams/pr-subscribers-riskv should be deleted in favor of pr-subscribers-riscv

pr-subscribers-regalloc

./llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
./llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.h
./llvm/lib/CodeGen/RegAllocPriorityAdvisor.h
./llvm/lib/CodeGen/RegAllocBase.h
./llvm/lib/CodeGen/RegAllocEvictionAdvisor.cpp
./llvm/lib/CodeGen/RegAllocGreedy.cpp
./llvm/lib/CodeGen/RegAllocBasic.cpp
./llvm/lib/CodeGen/RegAllocBase.cpp
./llvm/lib/CodeGen/RegAllocScore.h
./llvm/lib/CodeGen/RegAllocPriorityAdvisor.cpp
./llvm/lib/CodeGen/RegAllocGreedy.h
./llvm/lib/CodeGen/RegAllocEvictionAdvisor.h
./llvm/lib/CodeGen/RegAllocPBQP.cpp
./llvm/lib/CodeGen/RegAllocScore.cpp
./llvm/lib/CodeGen/RegAllocFast.cpp
./llvm/include/llvm/CodeGen/RegAllocPBQP.h
./llvm/include/llvm/CodeGen/RegAllocCommon.h
./llvm/include/llvm/CodeGen/RegAllocRegistry.h
./llvm/lib/CodeGen/LiveIntervalCalc.cpp
./llvm/lib/CodeGen/LiveRangeCalc.cpp
./llvm/lib/CodeGen/LiveVariables.cpp
./llvm/lib/CodeGen/LiveDebugVariables.cpp
./llvm/lib/CodeGen/LiveIntervals.cpp
./llvm/lib/CodeGen/LiveRegUnits.cpp
./llvm/lib/CodeGen/LiveRegMatrix.cpp
./llvm/lib/CodeGen/LiveIntervalUnion.cpp
./llvm/lib/CodeGen/LiveRangeShrink.cpp
./llvm/lib/CodeGen/LiveInterval.cpp
./llvm/lib/CodeGen/LiveRangeUtils.h
./llvm/include/llvm/CodeGen/LiveIntervalUnion.h
./llvm/include/llvm/CodeGen/LivePhysRegs.h
./llvm/include/llvm/CodeGen/LiveInterval.h
./llvm/include/llvm/CodeGen/LiveRangeCalc.h
./llvm/include/llvm/CodeGen/LiveRegUnits.h
./llvm/include/llvm/CodeGen/LiveVariables.h
./llvm/include/llvm/CodeGen/LiveIntervals.h
./llvm/include/llvm/CodeGen/LiveIntervalCalc.h
./llvm/include/llvm/CodeGen/LiveRangeEdit.h
llvm/lib/CodeGen/RegisterCoalescer.cpp llvm/lib/CodeGen/RegisterCoalescer.h
llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
llvm/lib/CodeGen/PHIElimination.cpp llvm/lib/CodeGen/PHIEliminationUtils.cpp llvm/lib/CodeGen/PHIEliminationUtils.h
llvm/lib/CodeGen/RenameIndependentSubregs.cpp
llvm/lib/CodeGen/MachineCopyPropagation.cpp

Probably missed some

@kazutakahirata @arsenm Can you submit pull requests for these.

The per-architecture teams seem pretty lacking in coverage. RISC-V has:

/llvm/include/llvm/IR/IntrinsicsRISCV.td @llvm/pr-subscribers-riscv
/llvm/lib/Target/RISCV/ @llvm/pr-subscribers-riscv
/llvm/test/CodeGen/RISCV/ @llvm/pr-subscribers-riscv
/clang/lib/Basic/Targets/RISCV* @llvm/pr-subscribers-riscv
/clang/lib/Driver/ToolChains/Arch/RISCV.* @llvm/pr-subscribers-riscv
/clang/lib/CodeGen/Targets/RISCV.cpp @llvm/pr-subscribers-riscv
/clang/include/clang/Basic/BuiltinsRISCV* @llvm/pr-subscribers-riscv

But that neglects, for example, llvm/test/MC/RISCV and lld/ELF/Arch/RISCV.cpp. I count 30 directories in an old checkout that match *RISCV*, many of which are llvm/test/Transforms/*/RISCV.

Feel free to send a PR. I would encourage catch-all patterns in general, they seem more robust to the evolution of the codebase **/*RISCV for example (or more conservatively llvm/**/*RISCV, …)

Input Needed: Teams for Pull Request Subscriptions - #55 by jh7370 is related.

I think there are two different goals. One is to list just “core” backend files, which our current .github/CODEOWNERS patterns cover. The other is to enumerate nearly everything related to a target.

For example, a developer interested in AArch64 may not want to know changes to llvm/test/tools/llvm-objdump/ELF/AArch64/, bolt/lib/Target/AArch64/, lldb/source/Plugins/Architecture/AArch64/, libc/config/linux/aarch64/, and flang/test/Driver/emit-asm-aarch64.f90.

Indeed. I would like to be able to subscribe to all **/*riscv*/**/*RISCV* changes (as I did on Phabricator, and ditto for a couple of other targets), but others are only interested in the compiler parts. Whether that means one team per top-level project or a select few of them (LLVM, Clang, LLD, maybe BOLT and libc) plus a catch-all, I don’t know, but either way I’m currently not able to subscribe to RISC-V-related changes outside of LLVM+Clang.