|
|
|||
File indexing completed on 2026-05-10 08:48:20
0001 //===------ FlattenAlgo.h --------------------------------------*- C++ -*-===// 0002 // 0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0004 // See https://llvm.org/LICENSE.txt for license information. 0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0006 // 0007 //===----------------------------------------------------------------------===// 0008 // 0009 // Main algorithm of the FlattenSchedulePass. This is a separate file to avoid 0010 // the unittest for this requiring linking against LLVM. 0011 // 0012 //===----------------------------------------------------------------------===// 0013 0014 #ifndef POLLY_FLATTENALGO_H 0015 #define POLLY_FLATTENALGO_H 0016 0017 #include "isl/isl-noexceptions.h" 0018 0019 namespace polly { 0020 /// Recursively flatten a schedule. 0021 /// 0022 /// Reduce the number of scatter dimensions as much as possible without changing 0023 /// the relative order of instances in a schedule. Ideally, this results in a 0024 /// single scatter dimension, but it may not always be possible to combine 0025 /// dimensions, eg. if a dimension is unbounded. In worst case, the original 0026 /// schedule is returned. 0027 /// 0028 /// Schedules with fewer dimensions may be easier to understand for humans, but 0029 /// it should make no difference to the computer. 0030 /// 0031 /// @param Schedule The input schedule. 0032 /// 0033 /// @return The flattened schedule. 0034 isl::union_map flattenSchedule(isl::union_map Schedule); 0035 } // namespace polly 0036 0037 #endif /* POLLY_FLATTENALGO_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|