pipeline description
roy rosen
roy.1rosen@gmail.com
Thu Nov 4 08:31:00 GMT 2010
Hi,
I am writing now the pipeline description in order to get a parallel code.
My machine has many restrictions regarding which instruction can be
parallelized with another.
I am under the assumption that for each insn only one
define_insn_reservation is matched.
Is that correct? If so then the number of define_insn_reservation is
very high since I have to put here all possible attribute
permutations.
for example if I have 2 attributes - length and block and the resource
definition goes as follows:
(define_automaton "test")
; length
(define_cpu_unit
"slot_1, slot_2, slot3"
"test")
;block
(define_cpu_unit
"blockA, blockB, blockC"
"test")
The define_reservation for length:
(define_reservation "1_slot" "slot_1|slot_2|slot_3")
(define_reservation "2_slot" "slot_1+slot_2|slot_2+slot_3")
(define_reservation "3_slot" "slot_1+slot_2+slot_3")
The define_reservation for blocks:
(define_reservation "bA" "blockA")
(define_reservation "bB" "blockB")
(define_reservation "bC" "blockC")
Now how many define_insn_reservation do I have to add in order to have
all possibilities?
If only one define_insn_reservation is matched for insn then I have to
write 9 (3*3).
If many than I can do it with 6 (3+3) .
This example is simple but what if I have 10 attributes each one with
5 possible values? Then I have to write 5^10 define_insn_reservation.
Which leads me to the assumption that there is another way to do it...
Can someone please help?
Thanks, Roy.
More information about the Gcc
mailing list