Start with cloning the llvm-project
$ git clone https://github.com/llvm/llvm-project.git -b llvmorg-8.0.0
Replace the RISCV target backend with our fork
$ cd llvm-project/llvm/lib/Target
$ rm -rf RISCV
$ git clone this-repo
Update the updated data layout string to "e-m:e-p:32:32-p:64:32-i64:64-n32-S128" in clang to match the backend here
Build LLVM with Clang, till version 8.x RISCV was an experimental target!
$ cd llvm-project
$ mkdir build & cd build
$ cmake -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="RISCV" -DLLVM_USE_LINKER=gold -DLLVM_ENABLE_Z3_SOLVER=OFF ../llvm
$ make