summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorTobias Grosser <grosser@fim.uni-passau.de>2011-12-14 08:58:39 +0000
committerTobias Grosser <grosser@fim.uni-passau.de>2011-12-14 08:58:39 +0000
commit768140c6e1ac15f478a2896d6a0c1cbd2a481f58 (patch)
treee4d6209f2cd4811830a021d1bd4a753847bbeca1 /clang/lib/Sema/SemaChecking.cpp
parentcae6b39cffd6b57175df8d36c61fd07aeb9610be (diff)
downloadbcm5719-llvm-768140c6e1ac15f478a2896d6a0c1cbd2a481f58.tar.gz
bcm5719-llvm-768140c6e1ac15f478a2896d6a0c1cbd2a481f58.zip
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
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud