Use forked upstream code
This is to prepare for the update to LLVM 16 and aligns with how
rocm-device-libs package works.
To align better with LLVM releases, I'm forking upstream code to work
better with upstream llvm releases. See README for more details.