Lines Matching refs:isl

250   static isl::schedule
251 optimizeSchedule(isl::schedule Schedule,
267 static isl::schedule_node
268 optimizeScheduleNode(isl::schedule_node Node,
277 static bool isProfitableSchedule(polly::Scop &S, isl::schedule NewSchedule);
287 static isl::schedule_node isolateFullPartialTiles(isl::schedule_node Node,
297 static bool isTileableBandNode(isl::schedule_node Node);
330 static isl::schedule_node prevectSchedBand(isl::schedule_node Node,
355 static isl::schedule_node applyTileBandOpt(isl::schedule_node Node);
360 static isl::schedule_node applyPrevectBandOpt(isl::schedule_node Node);
363 isl::schedule_node
364 ScheduleTreeOptimizer::isolateFullPartialTiles(isl::schedule_node Node, in isolateFullPartialTiles()
368 isl::union_map SchedRelUMap = Node.get_prefix_schedule_relation(); in isolateFullPartialTiles()
369 isl::union_set ScheduleRangeUSet = SchedRelUMap.range(); in isolateFullPartialTiles()
370 isl::set ScheduleRange{ScheduleRangeUSet}; in isolateFullPartialTiles()
371 isl::set IsolateDomain = getPartialTilePrefixes(ScheduleRange, VectorWidth); in isolateFullPartialTiles()
373 isl::union_set IsolateOption = getIsolateOptions(IsolateDomain, 1); in isolateFullPartialTiles()
375 isl::union_set Options = IsolateOption.unite(AtomicOption); in isolateFullPartialTiles()
376 isl::schedule_node_band Result = in isolateFullPartialTiles()
377 Node.as<isl::schedule_node_band>().set_ast_build_options(Options); in isolateFullPartialTiles()
382 isl::schedule_node visitBand(isl::schedule_node_band Band) { in visitBand()
383 isl::schedule_node Node = visitChildren(Band); in visitBand()
386 if (!Node.first_child().isa<isl::schedule_node_leaf>()) in visitBand()
389 isl::id LoopMarker = isl::id::alloc(Band.ctx(), "SIMD", nullptr); in visitBand()
394 isl::schedule_node ScheduleTreeOptimizer::prevectSchedBand( in prevectSchedBand()
395 isl::schedule_node Node, unsigned DimToVectorize, int VectorWidth) { in prevectSchedBand()
398 auto Space = isl::manage(isl_schedule_node_band_get_space(Node.get())); in prevectSchedBand()
399 unsigned ScheduleDimensions = unsignedFromIslSize(Space.dim(isl::dim::set)); in prevectSchedBand()
403 Node = isl::manage( in prevectSchedBand()
408 Node = isl::manage(isl_schedule_node_band_split(Node.release(), 1)); in prevectSchedBand()
409 Space = isl::manage(isl_schedule_node_band_get_space(Node.get())); in prevectSchedBand()
410 auto Sizes = isl::multi_val::zero(Space); in prevectSchedBand()
411 Sizes = Sizes.set_val(0, isl::val(Node.ctx(), VectorWidth)); in prevectSchedBand()
413 isl::manage(isl_schedule_node_band_tile(Node.release(), Sizes.release())); in prevectSchedBand()
418 Node = Node.as<isl::schedule_node_band>().set_ast_build_options( in prevectSchedBand()
419 isl::union_set(Node.ctx(), "{ unroll[x]: 1 = 0 }")); in prevectSchedBand()
423 Node = isl::manage(isl_schedule_node_band_sink(Node.release())); in prevectSchedBand()
433 static bool isSimpleInnermostBand(const isl::schedule_node &Node) { in isSimpleInnermostBand()
459 bool ScheduleTreeOptimizer::isTileableBandNode(isl::schedule_node Node) { in isTileableBandNode()
469 auto Space = isl::manage(isl_schedule_node_band_get_space(Node.get())); in isTileableBandNode()
471 if (unsignedFromIslSize(Space.dim(isl::dim::set)) <= 1u) in isTileableBandNode()
477 __isl_give isl::schedule_node
478 ScheduleTreeOptimizer::applyTileBandOpt(isl::schedule_node Node) { in applyTileBandOpt()
500 isl::schedule_node
501 ScheduleTreeOptimizer::applyPrevectBandOpt(isl::schedule_node Node) { in applyPrevectBandOpt()
502 auto Space = isl::manage(isl_schedule_node_band_get_space(Node.get())); in applyPrevectBandOpt()
503 int Dims = unsignedFromIslSize(Space.dim(isl::dim::set)); in applyPrevectBandOpt()
506 if (Node.as<isl::schedule_node_band>().member_get_coincident(i)) { in applyPrevectBandOpt()
521 isl::schedule_node Node = isl::manage(NodeArg); in optimizeBand()
526 isl::schedule_node PatternOptimizedSchedule = in optimizeBand()
547 isl::schedule
548 ScheduleTreeOptimizer::optimizeSchedule(isl::schedule Schedule, in optimizeSchedule()
555 isl::schedule_node ScheduleTreeOptimizer::optimizeScheduleNode( in optimizeScheduleNode()
556 isl::schedule_node Node, const OptimizerAdditionalInfoTy *OAI) { in optimizeScheduleNode()
557 Node = isl::manage(isl_schedule_node_map_descendant_bottom_up( in optimizeScheduleNode()
564 isl::schedule NewSchedule) { in isProfitableSchedule()
609 isl::schedule LastSchedule;
615 static void printSchedule(llvm::raw_ostream &OS, const isl::schedule &Schedule, in printSchedule()
617 isl::ctx Ctx = Schedule.ctx(); in printSchedule()
637 static void walkScheduleTreeForStatistics(isl::schedule Schedule, int Version) { in walkScheduleTreeForStatistics()
645 isl::schedule_node Node = isl::manage_copy(nodeptr); in walkScheduleTreeForStatistics()
658 if (Node.as<isl::schedule_node_band>().member_get_coincident(i)) in walkScheduleTreeForStatistics()
685 isl::schedule &LastSchedule, bool &DepsChanged) { in runIslScheduleOptimizer()
701 isl::schedule Schedule = S.getScheduleTree(); in runIslScheduleOptimizer()
707 isl::schedule ManuallyTransformed = applyManualTransformations( in runIslScheduleOptimizer()
771 isl::union_set Domain = S.getDomains(); in runIslScheduleOptimizer()
776 isl::union_map Validity = D.getDependences(ValidityKinds); in runIslScheduleOptimizer()
777 isl::union_map Proximity = D.getDependences(ProximityKinds); in runIslScheduleOptimizer()
836 auto SC = isl::schedule_constraints::on_domain(Domain); in runIslScheduleOptimizer()
855 isl::union_map Validity = D.getDependences( in runIslScheduleOptimizer()
919 isl::schedule LastSchedule) { in runScheduleOptimizerPrinter()
981 isl::schedule LastSchedule; in runIslScheduleOptimizerUsingNPM()