This is the mail archive of the gcc-help@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]

autovectorization in gcc


One of the research projects I am working on at the University of
Toronto is the speculative vectorization. Nowadays, many processors
come with vector instructions.

In order to make use of its vectorization capability, one will need
autovectorization compilers (hand written assembly is not scabale).
One of the most difficult part about autovectorization is dependence
test. Very commonly, dependence test will need to rely on alias
analysis. However, alias analysis needs to be very conservative for
weakly typed languages, i.e. C, C++, etc. This could sometimes result
in the inability to fully take advantage of the vector capability of
the processor. Therefore,Say I have a processor that have a set of
speculative vector instructions,? these instructions behave just like
the regular vector instructions in case of no data dependencies, but
act as a NOP in case aliasing is detected when the instructions are
about to be issued to the functional units of the processor. If
aliasing happens, one needs to make the processor fall back to the
scalar approach of doing the computation.

In order to implement this project, I will need a state-of-art
autovectorizing compiler. Considering the open-source compilers in the
field, gcc looks like a good choice.? Unfortunately, while I do have
much experience working llvm, I have no experience with gcc.

Can any of you give me some suggestions on where to start, I think I
need to learn the gcc framework as a whole first, then I need to focus
on the autovectorization pass. Also, any comments on the project idea
are appreciated as well.


Thanks

Xin


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