5 ms·
My experience is that while LLVM is very modular, it also has a pretty high amount of change in the boundaries, both in where they're drawn and in the interface
by codebje 10mo ago
My experience is that while LLVM is very modular, it also has a pretty high amount of change in the boundaries, both in where they're drawn and in the interfaces between them. Maintaining a fork of LLVM with a new back-end is very hard.
- jjmarr 10mo agoI know my company (AMD) maintains an llvm fork for ROCm. YMMV.
- codebje 10mo agoI should have qualified: it's hard to do for an individual or very small team as a passion side-project. It's pretty time consuming to keep up with the rate of change in LLVM.
- ahartmetz 10mo agoDo you know why it's a fork? Als, from this https://github.com/ROCm/llvm-project/commits/amd-staging/ https://github.com/ROCm/llvm-project/commits/amd-staging/ it looks like it might be more appropriately called a staging branch than a fork.
- jjmarr 10mo agoVarious reasons, like embargoes on information, stuff we didn't want to wait for review on before shipping, or features that don't make sense for upstream like `hipcc` which is an `nvcc` wrapper. Our goal is to get most modifications not in the third category into upstream at some point which makes the maintenance load bearable.