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.

Reply via email to