1 //===------ FlattenSchedule.h ----------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // Try to reduce the number of scatter dimension. Useful to make isl_union_map 10 // schedules more understandable. This is only intended for debugging and 11 // unittests, not for optimizations themselves. 12 // 13 //===----------------------------------------------------------------------===// 14 15 #ifndef POLLY_FLATTENSCHEDULE_H 16 #define POLLY_FLATTENSCHEDULE_H 17 18 namespace llvm { 19 class PassRegistry; 20 class Pass; 21 class raw_ostream; 22 } // namespace llvm 23 24 namespace polly { 25 llvm::Pass *createFlattenSchedulePass(); 26 llvm::Pass *createFlattenSchedulePrinterLegacyPass(llvm::raw_ostream &OS); 27 } // namespace polly 28 29 namespace llvm { 30 void initializeFlattenSchedulePass(llvm::PassRegistry &); 31 void initializeFlattenSchedulePrinterLegacyPassPass(llvm::PassRegistry &); 32 } // namespace llvm 33 34 #endif /* POLLY_FLATTENSCHEDULE_H */ 35