[LLVMdev] New LLVM sparc backend
Chris Lattner
sabre at nondot.org
Thu Feb 16 12:58:18 PST 2006
Hi everyone,
I'd like to let everyone know that LLVM has a new native Sparc backend
available. This target is built with the LLVM target independent code
generator, and can generate V8 or V9 binaries [1] using the 32-bit Sparc
ABI.
The code generator is quite stable, compiling virtually all [2] of the
llvm-test testsuite (including all of SPEC2K), and is quite performant
(averaging ~7% faster on SPEC2K than GCC 3.4.5, with a lot of low-hanging
things left). It is about 3700 lines of code for the entire port. A
nightly tester is available here:
http://llvm.cs.uiuc.edu/testresults/SPARC/index.html
To use it, you currently must build the C front-end with 32-bit sparc
support (by passing --host=sparc-sun-solaris2.8 to the configure script,
described here: http://llvm.cs.uiuc.edu/docs/CFEBuildInstrs.html), and
then compile LLVM programs like normal. The new target is triggered by
this difference in target triple: the new target matches
"sparc-sun-solaris*" the old one matches "sparcv9-sun-solaris*".
As many know, LLVM has long had sparc support with the LLVM native
"SparcV9" target. This target was the first code generator built for LLVM
and has served us well for many years. One disadvantage of this port is
that it was built when LLVM was very immature and was lacking a lot of the
code generator infrastructure it now has. As such, the target has not
received the maintenance it has deserved and is not integrated to use the
target independent code generator (though it *has* heavily influenced the
new code generator).
I think that it makes the most sense to ship LLVM 1.7 with both targets,
and (assuming everything is working as it should) move the V9 backend to a
separate CVS repository in the LLVM 1.8 timeframe. This gives us time for
sparc users to try out the new backend and report problems (using the
existing SparcV9 backend if there are any), and keeps the existing sparc
backend available for those who need it afterwards. If desired, we can
add 64-bit ABI support to the new target in 1.8 once the target triple is
available.
If you're working on sparc machines, give it a try!
-Chris
[1] Selectable with the -mcpu=v8/v9 option.
[2] There are 4 failures in the llvm-test testsuite, which I'm working on
when I have time.
--
http://nondot.org/sabre/
http://llvm.org/
More information about the llvm-dev
mailing list