#ifndef LLVM_TRANSFORMS_SCALAR_GVNEXPRESSION_H
#define LLVM_TRANSFORMS_SCALAR_GVNEXPRESSION_H
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Analysis/MemorySSA.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/ArrayRecycler.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <iterator>
#include <utility>
namespace llvm {
class BasicBlock;
class Type;
namespace GVNExpression {
enum ExpressionType { … };
class Expression { … };
inline raw_ostream &operator<<(raw_ostream &OS, const Expression &E) { … }
class BasicExpression : public Expression { … };
class op_inserter { … };
class MemoryExpression : public BasicExpression { … };
class CallExpression final : public MemoryExpression { … };
class LoadExpression final : public MemoryExpression { … };
class StoreExpression final : public MemoryExpression { … };
class AggregateValueExpression final : public BasicExpression { … };
class int_op_inserter { … };
class PHIExpression final : public BasicExpression { … };
class DeadExpression final : public Expression { … };
class VariableExpression final : public Expression { … };
class ConstantExpression final : public Expression { … };
class UnknownExpression final : public Expression { … };
}
}
#endif