[PATCH] D37984: [Polly][ForwardOpTree] Allow out-of-quota in examination part of forwardTree.

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 18 10:57:54 PDT 2017


Meinersbur created this revision.
Meinersbur added a project: Polly.
Herald added a reviewer: bollu.

Computing the reaching definition in forwardTree() can take a long time if the coefficients are large. When the forwarding is carried-out (doIt==true), forwardTree() must execute entirely or not at all to get a consistent output, which means we cannot just allow out-of-quota errors to happen in the middle of the processing.

We introduce the class IslQuotaScope which allows to opt-in code that is conformant and has been tested with out-of-quota events. In case of ForwardOpTree, out-of-quota is allowed during the operand tree examination, but not during the transformation. The same forwardTree() recursion is used for examination and execution, meaning that the reaching definition has already been computed in the examination tree walk and cached for reuse in the transformation tree walk.

This should fix the time-out of grtestutils.ll of the asop buildbot. If the compilation still takes too long, we can reduce the max-operations allows for -polly-optree.


https://reviews.llvm.org/D37984

Files:
  include/polly/Support/GICHelper.h
  lib/Transform/ForwardOpTree.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37984.115678.patch
Type: text/x-patch
Size: 8758 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170918/4d531f68/attachment.bin>


More information about the llvm-commits mailing list