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

source code of polly/include/polly/Support/ISLOStream.h