Scheduler: Set maximal constant term
If larger coefficients appear as part of the input dependences, the schedule calculation can take a very long time. We observed that the main overhead in this calculation is due to optimizing the constant coefficients. They are misused to increase locality by merging several unrelated dimensions into a single dimension. This unwanted optimization increases the complexity of the generated code and furthermore slows it down. We use a new isl scheduler option to bound the values in the constant dimension by a user defined value (20 in our case). If the right value is choosen, costly overoptimization is prevented. This solution works, but requires a specific (here almost randomly choosen) value by which the constants are bound. For the moment, this is our best solution, but we hope to to find a more generic one later on. After these patch the extremly long compile time for simple kernels like 2mm or 3mm is reduced to a reasonable amount of time (Not more than a couple of seconds even in debug mode). llvm-svn: 146556
Loading
Please register or sign in to comment