This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to describe function units allocation


Hi,
Thanks. As you know, I am trying to retarget GCC to a somewhat different VLIW backend by beginning from understanding the TMS320C6x port codes. Now I know that I could achieve the functional units allocation in assembler. However, I am still interesting in that if possible to do this by just modifying cc1. Not involve the assembler gas. If possible to achieve that by only coding the .md, .h and .c files?


Regards,
Li Wang
Hi,
For the backend TI DSP TMS320C6x, There are four types of functional
units which are .L unit, .M unit, .S unit and .D unit, and each type
consists of two units named .X1 and .X2 respectively. Namely, there are
total 8 units. Except the .M units surve only for multiply, other units
share many functions. For example, they both enable 32 bits arithmetical
operation. And in the assembly, which functional unit is used to perform
operation must be explicitly indicated. For example, ADD .S1 A0, A1, A2;
ADD .L1 A0, A1, A2; ADD .D1 A0, A1, A2 achieve the same goal by using
different units. Surely, when producing assembly, a functional unit
allocation somewhat like register allocation is needed. I wonder how can
I describe the relationship in the machine description file, and whether
I need write a functional unit allocation algorithm or it is done by a
general purpose allocation algorithm embedded in GCC, like register
allocation, I only need give some architecture descriptions? Thanks in
advance for your kind assistance.

IMHO. the functional units that accompany the assembly instruction are optional. However, for c6x-gcc the reason cc1 doesnt allocate functional units is that the assembler ( as part of the c6x binutils ) does the functional unit allocation on its own. There are some notes about how the assembler does this in Extending the GNU Assembler for Texas Instruments TMS320C6x-DSP.pdf

HTH,
Pranav

Regards,
Li Wang




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]