Re: Segmentation fault when compiling GCC with new RTL pass

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

2012/10/3 Ian Lance Taylor <iant@xxxxxxxxxx>:
>
> I don't know what rto:SI means and I don't know what you are trying to
> do.  If I were trying to insert an insn at a particular point I would
> not define a new RTL code, I would use UNSPEC_VOLATILE.
>

Ok, now I see it was my fault and I was emitting new "rto" instruction
in wrong place.

I have last feature to implement in machine description and RTL pass -
SIMD instruction. As I see implementing SIMDs in GCC is a bit odd and
there's no example. Anyway, I have to implement add instruction called
"radd". As I know SIMD instructions usually operates on operands
packed in registers (like on x86, where we have 128 bit registers for
MMX/SSE). "radd" instructions operates of operands stored in two sets
of registers, were I we have one operand per registers. For me it's
completely new approach and I don't know how to deal with it... What's
more we specify only first set of registers in instruction call,
second registers set is based on first on. Example, when we write:

    radd rD1, rA1, rB1

will result in performing:

   rD1 = rA1 + rB1
   rD2 = rA2 + rB2

Processor implicitly knows where to look for second set of registers
(rD2, rA2, rB2), because there is strong relation between rD1 and rD2:
rD2 is exactly after rD1 (the same apply to [rA1,rA2] and [rB1,rB2]).
Example pseudo asm code showing how it we should use this instruction:

   mov 10, r5
   mov 10, r6
   mov 2, r10
   mov 3, r11
   radd r0, r5, r10

Code above will perform such calculation:

    r0 = r5 + r10
    r1 = r6 + r11

Now I really stuck, I don't know how to deal with vectorization and
how to handle register allocation for this "radd" (if I have to do
that....).


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux