#include "llvm/IR/ValueHandle.h"
#include "llvm/Pass.h"
#include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include <algorithm>
#include <cassert>
namespace {
// StratifiedInfo Attribute things.
typedef unsigned StratifiedAttr;
-constexpr unsigned MaxStratifiedAttrIndex = NumStratifiedAttrs;
-constexpr unsigned AttrAllIndex = 0;
-constexpr unsigned AttrGlobalIndex = 1;
-constexpr unsigned AttrFirstArgIndex = 2;
-constexpr unsigned AttrLastArgIndex = MaxStratifiedAttrIndex;
-constexpr unsigned AttrMaxNumArgs = AttrLastArgIndex - AttrFirstArgIndex;
+LLVM_CONSTEXPR unsigned MaxStratifiedAttrIndex = NumStratifiedAttrs;
+LLVM_CONSTEXPR unsigned AttrAllIndex = 0;
+LLVM_CONSTEXPR unsigned AttrGlobalIndex = 1;
+LLVM_CONSTEXPR unsigned AttrFirstArgIndex = 2;
+LLVM_CONSTEXPR unsigned AttrLastArgIndex = MaxStratifiedAttrIndex;
+LLVM_CONSTEXPR unsigned AttrMaxNumArgs = AttrLastArgIndex - AttrFirstArgIndex;
-constexpr StratifiedAttr AttrNone = 0;
-constexpr StratifiedAttr AttrAll = ~AttrNone;
+LLVM_CONSTEXPR StratifiedAttr AttrNone = 0;
+LLVM_CONSTEXPR StratifiedAttr AttrAll = ~AttrNone;
// \brief StratifiedSets call for knowledge of "direction", so this is how we
// represent that locally.
tryInterproceduralAnalysis(const SmallVectorImpl<Function *> &Fns,
Value *FuncValue,
const iterator_range<User::op_iterator> &Args) {
- constexpr unsigned ExpectedMaxArgs = 8;
- constexpr unsigned MaxSupportedArgs = 50;
+ LLVM_CONSTEXPR unsigned ExpectedMaxArgs = 8;
+ LLVM_CONSTEXPR unsigned MaxSupportedArgs = 50;
assert(Fns.size() > 0);
// I put this here to give us an upper bound on time taken by IPA. Is it
typedef std::size_t Node;
private:
- constexpr static Node StartNode = Node(0);
+ LLVM_CONSTEXPR static Node StartNode = Node(0);
struct Edge {
EdgeTypeT Weight;
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
#include <bitset>
#include <cassert>
#include <cmath>
// The number of attributes that StratifiedAttrs should contain. Attributes are
// described below, and 32 was an arbitrary choice because it fits nicely in 32
// bits (because we use a bitset for StratifiedAttrs).
-static constexpr unsigned NumStratifiedAttrs = 32;
+static LLVM_CONSTEXPR unsigned NumStratifiedAttrs = 32;
// These are attributes that the users of StratifiedSets/StratifiedSetBuilders
// may use for various purposes. These also have the special property of that
// Optional<StratifiedIndex> because Optional<StratifiedIndex> would
// eat up a considerable amount of extra memory, after struct
// padding/alignment is taken into account.
- static constexpr auto SetSentinel =
+ static LLVM_CONSTEXPR auto SetSentinel =
std::numeric_limits<StratifiedIndex>::max();
// \brief The index for the set "above" current