]> granicus.if.org Git - llvm/commit
[ModuloSchedule] Introduce PeelingModuloScheduleExpander
authorJames Molloy <jmolloy@google.com>
Wed, 4 Sep 2019 12:54:24 +0000 (12:54 +0000)
committerJames Molloy <jmolloy@google.com>
Wed, 4 Sep 2019 12:54:24 +0000 (12:54 +0000)
commitdb3db2fda03af13bbf636a76a98b89311be54105
treee02e31aa5ca6f3d8324da7df29df1f6541274bac
parent43264f371c5fe5875c0c6ecd8dea3934052fdb4d
[ModuloSchedule] Introduce PeelingModuloScheduleExpander

This is the beginnings of a reimplementation of ModuloScheduleExpander. It works
by generating a single-block correct pipelined kernel and then peeling out the
prolog and epilogs.

This patch implements kernel generation as well as a validator that will
confirm the number of phis added is the same as the ModuloScheduleExpander.

Prolog and epilog peeling will come in a different patch.

Differential Revision: https://reviews.llvm.org/D67081

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370893 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/ModuloSchedule.h
lib/CodeGen/MachinePipeliner.cpp
lib/CodeGen/ModuloSchedule.cpp