1 //===------ IslOstream.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 // raw_ostream printers for isl C++ objects. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #include "llvm/Support/raw_ostream.h" 14 #include "isl/isl-noexceptions.h" 15 namespace polly { 16 17 #define ADD_OSTREAM_PRINTER(name) \ 18 inline llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, \ 19 const name &Obj) { \ 20 OS << Obj.to_str(); \ 21 return OS; \ 22 } 23 24 ADD_OSTREAM_PRINTER(isl::aff) 25 ADD_OSTREAM_PRINTER(isl::ast_expr) 26 ADD_OSTREAM_PRINTER(isl::ast_node) 27 ADD_OSTREAM_PRINTER(isl::basic_map) 28 ADD_OSTREAM_PRINTER(isl::basic_set) 29 ADD_OSTREAM_PRINTER(isl::map) 30 ADD_OSTREAM_PRINTER(isl::set) 31 ADD_OSTREAM_PRINTER(isl::id) 32 ADD_OSTREAM_PRINTER(isl::multi_aff) 33 ADD_OSTREAM_PRINTER(isl::multi_pw_aff) 34 ADD_OSTREAM_PRINTER(isl::multi_union_pw_aff) 35 ADD_OSTREAM_PRINTER(isl::point) 36 ADD_OSTREAM_PRINTER(isl::pw_aff) 37 ADD_OSTREAM_PRINTER(isl::pw_multi_aff) 38 ADD_OSTREAM_PRINTER(isl::schedule) 39 ADD_OSTREAM_PRINTER(isl::schedule_node) 40 ADD_OSTREAM_PRINTER(isl::space) 41 ADD_OSTREAM_PRINTER(isl::union_access_info) 42 ADD_OSTREAM_PRINTER(isl::union_flow) 43 ADD_OSTREAM_PRINTER(isl::union_set) 44 ADD_OSTREAM_PRINTER(isl::union_map) 45 ADD_OSTREAM_PRINTER(isl::union_pw_aff) 46 ADD_OSTREAM_PRINTER(isl::union_pw_multi_aff) 47 } // namespace polly 48