llvm-project/llvm/docs/vplan-early-exit.dot
Florian Hahn 5fae408d3a
[VPlan] Dispatch to multiple exit blocks via middle blocks. (#112138)
A more lightweight variant of
https://github.com/llvm/llvm-project/pull/109193,
which dispatches to multiple exit blocks via the middle blocks.

The patch also introduces a bit of required scaffolding to enable
early-exit vectorization, including an option. At the moment, early-exit
vectorization doesn't come with legality checks, and is only used if the
option is provided and the loop has metadata forcing vectorization. This
is only intended to be used for testing during bring-up, with @david-arm
enabling auto early-exit vectorization plugging in the changes from
https://github.com/llvm/llvm-project/pull/88385.

PR: https://github.com/llvm/llvm-project/pull/112138
2024-12-11 21:11:05 +00:00

42 lines
725 B
Plaintext

digraph VPlan {
graph [labelloc=t, fontsize=30; label=""]
node [shape=rect, fontname=Courier, fontsize=30]
edge [fontname=Courier, fontsize=30]
compound=true
N1 [label =
"vector.ph"
]
N1 -> N2 [ label="" lhead=cluster_N3]
subgraph cluster_N3 {
fontname=Courier
label="\<x1\> vector loop"
N2 [label =
"vector.body"
]
}
N2 -> N4 [ label="" ltail=cluster_N3]
N4 [label =
"middle.split"
]
N4 -> N5 [ label=""]
N4 -> N6 [ label=""]
N5 [label =
"early.exit"
]
N6 [label =
"middle.block"
]
N6 -> N9 [ label=""]
N6 -> N7 [ label=""]
N7 [label =
"scalar.ph"
]
N7 -> N8 [ label=""]
N8 [label =
"loop.header"
]
N9 [label =
"latch.exit"
]
}