vectorize-slp-region ( insns uses -- insns' )


Vocabulary
compiler.cfg.slp

Inputs
insnsan object
usesan object


Outputs
insns'an object


Definition


:: vectorize-slp-region ( insns uses -- insns' )
insns uses find-slp-tree [| tree |
tree slp-tree-nodes [ opcode>> >boolean ] filter
:> operations operations [ pair>> ] map
concat :> removed tree pair>> second :> last-root tree
emit-slp :> replacement "packs" slp-statistics get
inc-at
operations length "vector-operations" slp-statistics get
[ 0 or + ] change-at insns [| insn |
insn defs-vregs removed intersects? [
insn defs-vregs last-root swap member?
[ replacement ] [ { } ] if
] [ insn 1array ] if
] map concat
] [ insns ] if* ;