Hello all,
Picochip has communication instructions that allow one array element to
pass data to another. There are 3 such instructions PUT/GET/TSTPORT.
Currently, all three of these use UNSPEC_VOLATILE side-effect
expressions to make sure they don't get reordered. But, i wonder if it
is an overkill to use UNSPEC_VOLATILE for this purpose and whether i
should use UNSPEC instead. The only thing we care here is that they
don't reordered with respect to each other. It is okay for other
instructions to move around the communication instructions (as long as
normal scheduler dependencies are taken care of). There are possibly one
of two things i can do.
1. Introduce an implicit dependency between all communication
instructions by adding a use/clobber of an imaginary register.
2. Introduce explicit dependency between them by using some target hook
to add dependency links. I have not found any appropriate target hook to
do this.
Can you tell me which one i should try? Has anyone tried doing anything
similar? Any pointers/suggestions on this will be greatly appreciated.
Thanks
Hari
- Machine description question Hariharan
-