llvm/dragonegg as drop-in replacement to gcc

Hello,

Does anyone know of any effort to create a drop-in replacement to gcc, g++ and gfortran using llvm/dragonegg? From what I understand, the link step is complicated because one needs to use llvm-ld to convert the bitcode to a native binary and not all options to gcc/g++/gfortran can be passed to llvm-ld. I believe I could use llvm-as to compile bitcode to x86 assembly and then link everything together using gcc/g++/gfortran but this approach poses problems when building / using libraries (`.a’ files). [https://github.com/travitch/whole-program-llvm] seems to come close but it works only for gcc and g++ (not gfortran). Clang doesn’t support OpenMP and hence doesn’t look like a viable option at this time. Any other ways of using dragonegg in a transparent way?

Thanks much!
Ashay

Hi Ashay,

Does anyone know of any effort to create a drop-in replacement to gcc, g++ and
gfortran using llvm/dragonegg? From what I understand, the link step is
complicated because one needs to use llvm-ld to convert the bitcode to a native
binary

this is only the case if you use the -flto flag, otherwise native assembler is
produced just like gcc. Is it link-time optimization that you are trying to do
transparently?

Ciao, Duncan.

  and not all options to gcc/g++/gfortran can be passed to llvm-ld. I