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]

Support for targets with widths other than 2^x (Power of 2)


Hi,

We here at the Computer Systems Group of the Technische UniversitÃt
Darmstadt, Germany are working on an SoC-Kit called SpartanMC.

We are currently using our own port of GCC to compile for it, but
would be willing to get our target upstream and maintain it.

The SpartanMC architecture poses a few additional difficulties as it
is 18 Bits wide.
Our investigations have shown that GCC is on principle capable of that
(it is working right now, although with several limitations). The main
problems are posed by code optimizations that are only applicable for
2^x values such as

... & (obj_align - 1);
 or
d_int.lshift (BITS_PER_UNIT_LOG)

Until now, every bug or crash we experienced was caused by such
implementations that can very well be rewritten to have correct
results no matter the actual value.
Also, the current codebase does not seem to be unified in this and
already mixes general implementations and ones that only work for
powers of 2.

Our question now is, whether or not compatibility with our 18 bit
architecture and others is something you desire GCC to be capable of
in the long term.
It would make it much easier for us to use GCC and allow third parties
to make much easier use of our work.


Further details on SpartanMC:
=========================
It is an open source SoC-Kit aimed at running on several FPGAs from
various manufacturers with high resource efficiency, which is why it
utilizes the 18 bit wide underlying architecture of most FPGAs. In
contrast to exisiting SoC-Kits it is completely open source and fully
customizable and cross platform instead of targeted only at one
specific brand.


Even more information can be found on our projects website: spartanmc.de

Thanks and regards,
Ramon Wirsch


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