Jump to page: 1 2
Thread overview
Re: Cross compilers; GDC/LDC
Mar 03, 2013
Iain Buclaw
Mar 03, 2013
Manu
Mar 03, 2013
Iain Buclaw
Mar 03, 2013
Manu
Mar 03, 2013
Iain Buclaw
Mar 04, 2013
Manu
Mar 04, 2013
Manu
Mar 04, 2013
Johannes Pfau
Mar 04, 2013
Manu
Mar 06, 2013
Johannes Pfau
Mar 04, 2013
Iain Buclaw
March 03, 2013
On Mar 3, 2013 1:58 PM, "Manu" <turkeyman@gmail.com> wrote:
>
> Hi people.
>
> So I've been AWOL a while, and I'll still be intermittent for some weeks
yet, but I'm trying to work on std.simd and also my dconf talks in any gaps I can.
> However, in order to do a thorough job, I'm missing some tools. I wonder
if anyone can help me out...?
>
> I need to do some rather strenuous testing of SIMD code gen in D, to make
sure I don't make mistakes and/or lie.
>
> This requires testing against as many compilers+architectures as I can. I have barely any internet access to speak of, I don't really know how,
and I also don't run linux, so I can't practically build myself a suite of toolchains to work with >_<
>
> Ideally, I would really like all these toolchains:
>  GDC: x86, x64, ARM, PPC, MIPS, SH4 <- common toolchains

Do you actually have boxes for these architectures?

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


March 03, 2013
Yes, all of them (and more, bonus points for PS3's Cell PPE/SPU
toolchains!) :)
But I don't really need to run it... I just tend to compile with -S. I know
what the resulting code should look like from years of experience.
I can easily verify the proper opcodes are emitted, register assignment is
sensible and function arguments are passed correctly just by looking at the
assembly.


March 03, 2013
I could probably get you a bare bones compiler (no library) - it *will* be Linux though...  I can give you a login to a server if you like to play with it.  Otherwise I could give cygwin a try...

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
On Mar 3, 2013 2:58 PM, "Manu" <turkeyman@gmail.com> wrote:

> Yes, all of them (and more, bonus points for PS3's Cell PPE/SPU
> toolchains!) :)
> But I don't really need to run it... I just tend to compile with -S. I
> know what the resulting code should look like from years of experience.
> I can easily verify the proper opcodes are emitted, register assignment is
> sensible and function arguments are passed correctly just by looking at the
> assembly.
>


March 03, 2013
How does Dan build the MinGW toolchains?
No library is fine for my purposes.
I don't have access to a linux machine atm, but I should do in a week or 2.
If that's the only option, then I can wait till then... just leaves me with
a bit less time.


On 4 March 2013 02:57, Iain Buclaw <ibuclaw@ubuntu.com> wrote:

> I could probably get you a bare bones compiler (no library) - it *will* be Linux though...  I can give you a login to a server if you like to play with it.  Otherwise I could give cygwin a try...
>
> Regards
> --
> Iain Buclaw
>
> *(p < e ? p++ : p) = (c & 0x0f) + '0';
> On Mar 3, 2013 2:58 PM, "Manu" <turkeyman@gmail.com> wrote:
>
>> Yes, all of them (and more, bonus points for PS3's Cell PPE/SPU
>> toolchains!) :)
>> But I don't really need to run it... I just tend to compile with -S. I
>> know what the resulting code should look like from years of experience.
>> I can easily verify the proper opcodes are emitted, register assignment
>> is sensible and function arguments are passed correctly just by looking at
>> the assembly.
>>
>


March 03, 2013
On Mar 3, 2013 10:48 PM, "Manu" <turkeyman@gmail.com> wrote:
>
> How does Dan build the MinGW toolchains?
> No library is fine for my purposes.
> I don't have access to a linux machine atm, but I should do in a week or
2. If that's the only option, then I can wait till then... just leaves me with a bit less time.
>
>
> On 4 March 2013 02:57, Iain Buclaw <ibuclaw@ubuntu.com> wrote:
>>
>> I could probably get you a bare bones compiler (no library) - it *will*
be Linux though...  I can give you a login to a server if you like to play with it.  Otherwise I could give cygwin a try...
>>
>> Regards
>> --
>> Iain Buclaw
>>
>> *(p < e ? p++ : p) = (c & 0x0f) + '0';
>>
>> On Mar 3, 2013 2:58 PM, "Manu" <turkeyman@gmail.com> wrote:
>>>
>>> Yes, all of them (and more, bonus points for PS3's Cell PPE/SPU
toolchains!) :)
>>> But I don't really need to run it... I just tend to compile with -S. I
know what the resulting code should look like from years of experience.
>>> I can easily verify the proper opcodes are emitted, register assignment
is sensible and function arguments are passed correctly just by looking at the assembly.
>
>

Won't have access to a windows machine until Wednesday.  ;)

As I said, I can give you a login account to a Linux server with these on.   Should be ready Tuesday ish.

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


March 04, 2013
Cool, well that'll definitely help! :)


On 4 March 2013 09:02, Iain Buclaw <ibuclaw@ubuntu.com> wrote:

>
> On Mar 3, 2013 10:48 PM, "Manu" <turkeyman@gmail.com> wrote:
> >
> > How does Dan build the MinGW toolchains?
> > No library is fine for my purposes.
> > I don't have access to a linux machine atm, but I should do in a week or
> 2. If that's the only option, then I can wait till then... just leaves me with a bit less time.
> >
> >
> > On 4 March 2013 02:57, Iain Buclaw <ibuclaw@ubuntu.com> wrote:
> >>
> >> I could probably get you a bare bones compiler (no library) - it *will*
> be Linux though...  I can give you a login to a server if you like to play with it.  Otherwise I could give cygwin a try...
> >>
> >> Regards
> >> --
> >> Iain Buclaw
> >>
> >> *(p < e ? p++ : p) = (c & 0x0f) + '0';
> >>
> >> On Mar 3, 2013 2:58 PM, "Manu" <turkeyman@gmail.com> wrote:
> >>>
> >>> Yes, all of them (and more, bonus points for PS3's Cell PPE/SPU
> toolchains!) :)
> >>> But I don't really need to run it... I just tend to compile with -S. I
> know what the resulting code should look like from years of experience.
> >>> I can easily verify the proper opcodes are emitted, register
> assignment is sensible and function arguments are passed correctly just by looking at the assembly.
> >
> >
>
> Won't have access to a windows machine until Wednesday.  ;)
>
> As I said, I can give you a login account to a Linux server with these on.   Should be ready Tuesday ish.
>
> Regards
> --
> Iain Buclaw
>
> *(p < e ? p++ : p) = (c & 0x0f) + '0';
>


March 04, 2013
...it occurs to me that MIPS doesn't really have a single standardised SIMD instruction set.

There are a few extensions. I've worked on 3 popular MIPS devices; they all
have SIMD, but they are all different.
I'm not sure they are available as options in the standard GCC MIPS arch. I
think they are added via vendor patches.

So don't sorry about MIPS I guess, it sounds like too much effort! I'll hassle the vendors some time in the future...


On 4 March 2013 10:37, Manu <turkeyman@gmail.com> wrote:

> Cool, well that'll definitely help! :)
>
>
> On 4 March 2013 09:02, Iain Buclaw <ibuclaw@ubuntu.com> wrote:
>
>>
>> On Mar 3, 2013 10:48 PM, "Manu" <turkeyman@gmail.com> wrote:
>> >
>> > How does Dan build the MinGW toolchains?
>> > No library is fine for my purposes.
>> > I don't have access to a linux machine atm, but I should do in a week
>> or 2. If that's the only option, then I can wait till then... just leaves me with a bit less time.
>> >
>> >
>> > On 4 March 2013 02:57, Iain Buclaw <ibuclaw@ubuntu.com> wrote:
>> >>
>> >> I could probably get you a bare bones compiler (no library) - it
>> *will* be Linux though...  I can give you a login to a server if you like to play with it.  Otherwise I could give cygwin a try...
>> >>
>> >> Regards
>> >> --
>> >> Iain Buclaw
>> >>
>> >> *(p < e ? p++ : p) = (c & 0x0f) + '0';
>> >>
>> >> On Mar 3, 2013 2:58 PM, "Manu" <turkeyman@gmail.com> wrote:
>> >>>
>> >>> Yes, all of them (and more, bonus points for PS3's Cell PPE/SPU
>> toolchains!) :)
>> >>> But I don't really need to run it... I just tend to compile with -S.
>> I know what the resulting code should look like from years of experience.
>> >>> I can easily verify the proper opcodes are emitted, register
>> assignment is sensible and function arguments are passed correctly just by looking at the assembly.
>> >
>> >
>>
>> Won't have access to a windows machine until Wednesday.  ;)
>>
>> As I said, I can give you a login account to a Linux server with these on.   Should be ready Tuesday ish.
>>
>> Regards
>> --
>> Iain Buclaw
>>
>> *(p < e ? p++ : p) = (c & 0x0f) + '0';
>>
>
>


March 04, 2013
On Mar 4, 2013 12:42 AM, "Manu" <turkeyman@gmail.com> wrote:
>
> ...it occurs to me that MIPS doesn't really have a single standardised
SIMD instruction set.
>
> There are a few extensions. I've worked on 3 popular MIPS devices; they
all have SIMD, but they are all different.
> I'm not sure they are available as options in the standard GCC MIPS arch.
I think they are added via vendor patches.
>
> So don't sorry about MIPS I guess, it sounds like too much effort! I'll
hassle the vendors some time in the future...
>
>

I can check what the difference is in gcc mips backend later this week... but that is your call.

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


March 04, 2013
Am Mon, 4 Mar 2013 10:41:08 +1000
schrieb Manu <turkeyman@gmail.com>:

> ...it occurs to me that MIPS doesn't really have a single standardised SIMD instruction set.
> 
> There are a few extensions. I've worked on 3 popular MIPS devices;
> they all have SIMD, but they are all different.
> I'm not sure they are available as options in the standard GCC MIPS
> arch. I think they are added via vendor patches.
> 
> So don't sorry about MIPS I guess, it sounds like too much effort! I'll hassle the vendors some time in the future...
> 

Is MIPS ASE what you need? Standard gcc supports:

MIPS DSP ASE rev1
MIPS DSP ASE rev2
MIPS SmartMIPS ASE
MIPS Digital Media Extension
MIPS-3D ASE
(optional paired-single floating-point instructions)
http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/MIPS-Options.html

If you have vendor patches for gcc-4.7 I could integrate those. But we need either gcc 4.7 or 4.8 patches for gdc, crosstool-NG+gdc actually only works with 4.7
March 04, 2013
MIPS-3D and DMX are allegedly common, but not in any device I own (although
I'd like to consider them in my work all the same).
Popular MIPS devices are:
  Android
    Ingenic XBurst is in many existing Android devices, and has its own
SIMD unit.
    MIPS64 chips should be appearing in Android devices soon (which should
support MIPS-3D)
    Google has a toolchain build script
  Sony PSP
    Has a custom (and AWESOME!) SIMD unit
    Toolchain with vendor extensions is(/was) easy to build:
https://github.com/pspdev/psptoolchain
  Sony PS2 is a very interesting research device, but it's old and
irrelevant now
    The toolchain is quite hard to build :( (
https://github.com/ps2dev/ps2toolchain)

While I'm digging up the console build scripts, there are some other well
maintained scripts:
  Sony PS3 - https://github.com/ps3dev/ps3toolchain
    Builds PPE (PPC arch) and SPU (dedicated super-fast SIMD coprocessor,
best simd unit on earth!) toolchains
  Nintendo WiiU, Wii, Gamecube - https://github.com/Vithon/devkitppcsh
    PPC system, but with paired single unit instead of standard VMX

On 4 March 2013 20:54, Johannes Pfau <nospam@example.com> wrote:

> Am Mon, 4 Mar 2013 10:41:08 +1000
> schrieb Manu <turkeyman@gmail.com>:
>
> > ...it occurs to me that MIPS doesn't really have a single standardised SIMD instruction set.
> >
> > There are a few extensions. I've worked on 3 popular MIPS devices;
> > they all have SIMD, but they are all different.
> > I'm not sure they are available as options in the standard GCC MIPS
> > arch. I think they are added via vendor patches.
> >
> > So don't sorry about MIPS I guess, it sounds like too much effort! I'll hassle the vendors some time in the future...
> >
>
> Is MIPS ASE what you need? Standard gcc supports:
>
> MIPS DSP ASE rev1
> MIPS DSP ASE rev2
> MIPS SmartMIPS ASE
> MIPS Digital Media Extension
> MIPS-3D ASE
> (optional paired-single floating-point instructions)
> http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/MIPS-Options.html
>
> If you have vendor patches for gcc-4.7 I could integrate those. But we need either gcc 4.7 or 4.8 patches for gdc, crosstool-NG+gdc actually only works with 4.7
>


« First   ‹ Prev
1 2