blob: a0115a0eec36c174342c7eeaed75e0258087c746 [file] [log] [blame]
Florian Hahn8af01572017-09-28 11:09:22 +00001//===- ValueLattice.cpp - Value constraint analysis -------------*- C++ -*-===//
2//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// 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
Florian Hahn8af01572017-09-28 11:09:22 +00006//
7//===----------------------------------------------------------------------===//
8
9#include "llvm/Analysis/ValueLattice.h"
10
11namespace llvm {
12raw_ostream &operator<<(raw_ostream &OS, const ValueLatticeElement &Val) {
13 if (Val.isUndefined())
14 return OS << "undefined";
15 if (Val.isOverdefined())
16 return OS << "overdefined";
17
18 if (Val.isNotConstant())
19 return OS << "notconstant<" << *Val.getNotConstant() << ">";
20 if (Val.isConstantRange())
21 return OS << "constantrange<" << Val.getConstantRange().getLower() << ", "
22 << Val.getConstantRange().getUpper() << ">";
23 return OS << "constant<" << *Val.getConstant() << ">";
24}
25} // end namespace llvm