[clang] [llvm] [ThinLTO][SplitModuleCG] Add call-graph based module splitting (1/N) (PR #198702)

via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 12 01:12:19 PDT 2026


mmjjpp wrote:

> build on the existing infrastructure by moving things around in `AMDGPUSplitModule.cpp` and `SplitModule.cpp`

Thanks for the feedback. After thinking through your suggestions more carefully, I put together an initial refactoring prototype with some help from AI. I’m not yet sure whether it matches what you had in mind, and the change feels fairly broad, so I’d like to agree on the direction before refining it further.

The prototype separates the splitting policies from the shared utilities roughly as follows:

     AMDGPU splitting policy ─────────┐
     Call-graph splitting(Ours) ────┼──> shared splitting utilities
     Existing SplitModule ────────────┘                 ├─ graph storage and dependency traversal
                                                        ├─ function cost calculation
                                                        ├─ externalization
                                                        └─ partition materialization

The prototype is available here:  https://github.com/mmjjpp/llvm-project/commit/30d65baba31dc9ec1cf2a8892a4a14e66b98b0b2.

Before I spend more time polishing the implementation, could you let me know whether this is the kind of shared infrastructure you had in mind? If not, could you clarify which parts of AMDGPUSplitModule.cpp and SplitModule.cpp you expect to be moved or shared? That would help me align the next revision with your intent.

https://github.com/llvm/llvm-project/pull/198702


More information about the cfe-commits mailing list