summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
diff options
context:
space:
mode:
authorWhitney Tsang <whitney.uwaterloo@gmail.com>2019-06-05 14:34:12 +0000
committerWhitney Tsang <whitney.uwaterloo@gmail.com>2019-06-05 14:34:12 +0000
commitd34797dfc26c61cea19f45669a13ea572172ba34 (patch)
treed5f8f27dabc24f264becfb2199794b9f50ec7977 /llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
parentda59652c1ba15ee780cf38186933dcd135e36ed4 (diff)
downloadbcm5719-llvm-d34797dfc26c61cea19f45669a13ea572172ba34.tar.gz
bcm5719-llvm-d34797dfc26c61cea19f45669a13ea572172ba34.zip
Title: [LOOPINFO] Extend Loop object to add utilities to get the loop
bounds, step, and loop induction variable. Summary: This PR extends the loop object with more utilities to get loop bounds, step, and loop induction variable. There already exists passes which try to obtain the loop induction variable in their own pass, e.g. loop interchange. It would be useful to have a common area to get these information. /// Example: /// for (int i = lb; i < ub; i+=step) /// <loop body> /// --- pseudo LLVMIR --- /// beforeloop: /// guardcmp = (lb < ub) /// if (guardcmp) goto preheader; else goto afterloop /// preheader: /// loop: /// i1 = phi[{lb, preheader}, {i2, latch}] /// <loop body> /// i2 = i1 + step /// latch: /// cmp = (i2 < ub) /// if (cmp) goto loop /// exit: /// afterloop: /// /// getBounds /// getInitialIVValue --> lb /// getStepInst --> i2 = i1 + step /// getStepValue --> step /// getFinalIVValue --> ub /// getCanonicalPredicate --> '<' /// getDirection --> Increasing /// getInductionVariable --> i1 /// getAuxiliaryInductionVariable --> {i1} /// isCanonical --> false Reviewers: kbarton, hfinkel, dmgreen, Meinersbur, jdoerfert, syzaara, fhahn Reviewed By: kbarton Subscribers: tvvikram, bmahjour, etiotto, fhahn, jsji, hiraditya, llvm-commits Tag: LLVM Differential Revision: https://reviews.llvm.org/D60565 llvm-svn: 362609
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud