Comment by codebje

Comment by codebje 3 days ago

4 replies

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 3 days ago

I know my company (AMD) maintains an llvm fork for ROCm. YMMV.

  • ahartmetz 2 days ago

    Do you know why it's a fork? Als, from this 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 2 days ago

      Various 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.

  • codebje 3 days ago

    I 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.