[LLVMdev] clang builds on Sparc/Linux!

Chris Lattner sabre at nondot.org
Mon Aug 6 12:52:43 PDT 2007


On Tue, 24 Jul 2007 wilsonk at cpsc.ucalgary.ca wrote:

Hi Kelly,

Sorry for the delay, I'm way behind in email :(

> I built llvm-2.0 (the svn version) by just typing "./configure;make". I
> then downloaded clang from the svn repository (revision 40382) and changed
> to it's directory under .../llvm/tools/clang. I did a "make" without
> incident for clang, as well. Woohoo.

Nice!

> This worked fine and the code gen looked fine, except for two things:
> func1:
>         save -96, %o6, %o6<---------------change
> main:
>         save -96, %o6, %o6<---------------change

>         .globl x
> .bss <-------------------------------------remove
>         .align 4

> The two problems with this output. "save -96, %o6, %o6" should read
> "save %o6, -96, %o6" at both function entry points, and the ".bss"
> section identifier needs to be removed. THEN GCC CAN ASSEMBLE/LINK THIS
> AND IT RUNS!!!!! Cool, now you have a new OS/arch pair to run LLVM on,
> though I may be the only one running this pair ;)

Very nice!  I assume this is because you're using the sun assembler 
instead of the GNU assembler.  Do you know if the reordered save operands 
work with the GNU assembler?

-Chris

> There are a couple patches attached to fix things for Sparc/Linux/gcc.
>
> Let me know if anyone wants anymore information. I will do some more
> testing and let you know how it goes.
>
> Thanks,
> Kelly Wilson
>
> P.S. Chris already replied on another list to this post.
>
> On Tue, 24 Jul 2007, Chris Lattner wrote:
>
>>> The two problems with this output. "save -96, %o6, %o6" should read
>>> "save %o6, -96, %o6" at both function entry points, and the ".bss"
>>> section identifier needs to be removed. THEN GCC CAN ASSEMBLE/LINK
>>> THIS
>>> AND IT RUNS!!!!! Cool, now you have a new OS/arch pair to run LLVM on,
>>> though I may be the only one running this pair ;)
>
>> Very nice!  I'm not sure how the arguments to save got transposed, it
>> must be a regression somewhere along the way.  We don't have too many
>> people testing sparc :)
>
>
> This isn't actually an error of transposition for Sparc/SunOS when using
> the "cc" compiler. This "save -96, %o6, %o6" (and the .bss section
> identifier) work when using SunOS "cc" but not "gcc" under SunOS.
>
> My patches will assume that everyone is using "cc" under SunOS...because
> we can't check in llc whether someone will use "cc" or "gcc" to assemble
> and link in the future ;)
>
>
>
>
>

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/



More information about the llvm-dev mailing list