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