[PATCH] D15679: [FIX] Schedule generation PR25879

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 20 09:17:00 PST 2015


jdoerfert created this revision.
jdoerfert added reviewers: grosser, Meinersbur.
jdoerfert added a subscriber: Polly.

  For schedule generation we assumed that the reverse post order
  traversal used by the domain generation is sufficient, however it is
  not. Once a loop is discovered we have to completely traverse it
  before we can generate the schedule for any block/region that is only
  reachable through a loop exiting block.

  To this end, we add a "loop stack" that will keep track of loops we
  discovered during the traversal but have not yet traversed completely.
  We will never visit a basic block (or region) outside the most recent
  (thus smallest) loop in the loop stack but instead queue such blocks
  (or regions) in a waiting list. If the waiting list is not empty and
  (might) contain blocks from the most recent loop in the loop stack the
  next block/region to visit is drawn from there, otherwise from the
  reverse post order iterator.

http://reviews.llvm.org/D15679

Files:
  include/polly/ScopInfo.h
  lib/Analysis/ScopInfo.cpp
  test/ScopInfo/wrong_schedule.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15679.43332.patch
Type: text/x-patch
Size: 6070 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151220/43a44f58/attachment.bin>


More information about the llvm-commits mailing list