-
Notifications
You must be signed in to change notification settings - Fork 21
Description
In #151 we removed the methods to calculate schedule length bounds during each step in enumeration in the RP pass. However, there are still artifacts of Schedule Length based calculations elsewhere in the code for the RP pass.
For example, DataDepGraph::SetupForSchdulng
maintains frwrdLwrBounds_
and bkwrdLwrBounds_
which are used exclusively for schedule length bounds calculation. Additionally, it calls CmputAbslutUprBound_
and CmputBasicLwrBounds_
which calculate schedule length bounds -- in the RP pass this is useless work as all schedules will have a length that is the number of instructions. Moreover, in this method we call SchedInstruction->SetupForSchdulng
which again does some unnecessary stuff for the first pass.
Aside from SetupForSchdulng
, there are similar problems in DataDepGraph::UpdateSetupForSchdulng
and SchedRegion::CmputLwrBounds_
(none of the relaxed scheduling stuff is needed in the RP pass). None of this code is very hot (although UpdateSetupForSchdulng
gets called several times during graph trans), but these functions are relatively expensive for not-hot code. By bypassing some of these things in the RP pass, we will likely improve overall compile time for a benchmark suite by a noticeable (albeit likely not huge) amount.