summaryrefslogtreecommitdiff
path: root/include/llvm/IR
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/IR')
-rw-r--r--include/llvm/IR/Argument.h2
-rw-r--r--include/llvm/IR/BasicBlock.h2
-rw-r--r--include/llvm/IR/Constant.h2
-rw-r--r--include/llvm/IR/Constants.h4
-rw-r--r--include/llvm/IR/DerivedTypes.h16
-rw-r--r--include/llvm/IR/Dominators.h10
-rw-r--r--include/llvm/IR/Function.h2
-rw-r--r--include/llvm/IR/GlobalAlias.h2
-rw-r--r--include/llvm/IR/GlobalIFunc.h2
-rw-r--r--include/llvm/IR/GlobalIndirectSymbol.h2
-rw-r--r--include/llvm/IR/GlobalObject.h2
-rw-r--r--include/llvm/IR/GlobalVariable.h2
-rw-r--r--include/llvm/IR/InlineAsm.h2
-rw-r--r--include/llvm/IR/InstrTypes.h24
-rw-r--r--include/llvm/IR/Instruction.h2
-rw-r--r--include/llvm/IR/Instructions.h176
-rw-r--r--include/llvm/IR/IntrinsicInst.h68
-rw-r--r--include/llvm/IR/IntrinsicsWebAssembly.td4
-rw-r--r--include/llvm/IR/LLVMContext.h13
-rw-r--r--include/llvm/IR/LegacyPassNameParser.h10
-rw-r--r--include/llvm/IR/Metadata.h13
-rw-r--r--include/llvm/IR/ModuleSummaryIndexYAML.h3
-rw-r--r--include/llvm/IR/Operator.h30
-rw-r--r--include/llvm/IR/PatternMatch.h12
-rw-r--r--include/llvm/IR/Statepoint.h12
-rw-r--r--include/llvm/IR/User.h2
26 files changed, 227 insertions, 192 deletions
diff --git a/include/llvm/IR/Argument.h b/include/llvm/IR/Argument.h
index 3efcc637b6ed..497dca44547c 100644
--- a/include/llvm/IR/Argument.h
+++ b/include/llvm/IR/Argument.h
@@ -120,7 +120,7 @@ public:
bool hasAttribute(Attribute::AttrKind Kind) const;
/// Method for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == ArgumentVal;
}
};
diff --git a/include/llvm/IR/BasicBlock.h b/include/llvm/IR/BasicBlock.h
index 7a35afcbafc3..6714f2c97473 100644
--- a/include/llvm/IR/BasicBlock.h
+++ b/include/llvm/IR/BasicBlock.h
@@ -326,7 +326,7 @@ public:
ValueSymbolTable *getValueSymbolTable();
/// \brief Methods for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == Value::BasicBlockVal;
}
diff --git a/include/llvm/IR/Constant.h b/include/llvm/IR/Constant.h
index 82afd9a2691f..9daeac6ad6e7 100644
--- a/include/llvm/IR/Constant.h
+++ b/include/llvm/IR/Constant.h
@@ -116,7 +116,7 @@ public:
void destroyConstant();
//// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() >= ConstantFirstVal &&
V->getValueID() <= ConstantLastVal;
}
diff --git a/include/llvm/IR/Constants.h b/include/llvm/IR/Constants.h
index 003a6d5d075d..8b3a90fa065b 100644
--- a/include/llvm/IR/Constants.h
+++ b/include/llvm/IR/Constants.h
@@ -842,7 +842,7 @@ public:
BasicBlock *getBasicBlock() const { return (BasicBlock*)Op<1>().get(); }
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == BlockAddressVal;
}
};
@@ -1217,7 +1217,7 @@ public:
Instruction *getAsInstruction();
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == ConstantExprVal;
}
diff --git a/include/llvm/IR/DerivedTypes.h b/include/llvm/IR/DerivedTypes.h
index a92321a44511..6e5e085873ab 100644
--- a/include/llvm/IR/DerivedTypes.h
+++ b/include/llvm/IR/DerivedTypes.h
@@ -89,7 +89,7 @@ public:
bool isPowerOf2ByteWidth() const;
/// Methods for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Type *T) {
+ static bool classof(const Type *T) {
return T->getTypeID() == IntegerTyID;
}
};
@@ -139,7 +139,7 @@ public:
unsigned getNumParams() const { return NumContainedTys - 1; }
/// Methods for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Type *T) {
+ static bool classof(const Type *T) {
return T->getTypeID() == FunctionTyID;
}
};
@@ -171,7 +171,7 @@ public:
bool indexValid(unsigned Idx) const;
/// Methods for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Type *T) {
+ static bool classof(const Type *T) {
return T->getTypeID() == ArrayTyID ||
T->getTypeID() == StructTyID ||
T->getTypeID() == VectorTyID;
@@ -317,7 +317,7 @@ public:
}
/// Methods for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Type *T) {
+ static bool classof(const Type *T) {
return T->getTypeID() == StructTyID;
}
};
@@ -360,7 +360,7 @@ public:
Type *getElementType() const { return ContainedType; }
/// Methods for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Type *T) {
+ static bool classof(const Type *T) {
return T->getTypeID() == ArrayTyID || T->getTypeID() == VectorTyID;
}
};
@@ -380,7 +380,7 @@ public:
static bool isValidElementType(Type *ElemTy);
/// Methods for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Type *T) {
+ static bool classof(const Type *T) {
return T->getTypeID() == ArrayTyID;
}
};
@@ -454,7 +454,7 @@ public:
}
/// Methods for support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Type *T) {
+ static bool classof(const Type *T) {
return T->getTypeID() == VectorTyID;
}
};
@@ -495,7 +495,7 @@ public:
inline unsigned getAddressSpace() const { return getSubclassData(); }
/// Implement support type inquiry through isa, cast, and dyn_cast.
- static inline bool classof(const Type *T) {
+ static bool classof(const Type *T) {
return T->getTypeID() == PointerTyID;
}
};
diff --git a/include/llvm/IR/Dominators.h b/include/llvm/IR/Dominators.h
index 9be6acc33591..e10d14c19793 100644
--- a/include/llvm/IR/Dominators.h
+++ b/include/llvm/IR/Dominators.h
@@ -36,12 +36,22 @@ class raw_ostream;
extern template class DomTreeNodeBase<BasicBlock>;
extern template class DominatorTreeBase<BasicBlock>;
+namespace DomTreeBuilder {
extern template void Calculate<Function, BasicBlock *>(
DominatorTreeBaseByGraphTraits<GraphTraits<BasicBlock *>> &DT, Function &F);
+
extern template void Calculate<Function, Inverse<BasicBlock *>>(
DominatorTreeBaseByGraphTraits<GraphTraits<Inverse<BasicBlock *>>> &DT,
Function &F);
+extern template bool Verify<BasicBlock *>(
+ const DominatorTreeBaseByGraphTraits<GraphTraits<BasicBlock *>> &DT);
+
+extern template bool Verify<Inverse<BasicBlock *>>(
+ const DominatorTreeBaseByGraphTraits<GraphTraits<Inverse<BasicBlock *>>>
+ &DT);
+} // namespace DomTreeBuilder
+
using DomTreeNode = DomTreeNodeBase<BasicBlock>;
class BasicBlockEdge {
diff --git a/include/llvm/IR/Function.h b/include/llvm/IR/Function.h
index 3496806d9362..75fccc135dae 100644
--- a/include/llvm/IR/Function.h
+++ b/include/llvm/IR/Function.h
@@ -671,7 +671,7 @@ public:
void viewCFGOnly() const;
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == Value::FunctionVal;
}
diff --git a/include/llvm/IR/GlobalAlias.h b/include/llvm/IR/GlobalAlias.h
index d4bf0d7e1ed4..450583baaa3c 100644
--- a/include/llvm/IR/GlobalAlias.h
+++ b/include/llvm/IR/GlobalAlias.h
@@ -88,7 +88,7 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == Value::GlobalAliasVal;
}
};
diff --git a/include/llvm/IR/GlobalIFunc.h b/include/llvm/IR/GlobalIFunc.h
index d90c7c78ed26..ef51315a6f5d 100644
--- a/include/llvm/IR/GlobalIFunc.h
+++ b/include/llvm/IR/GlobalIFunc.h
@@ -70,7 +70,7 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == Value::GlobalIFuncVal;
}
};
diff --git a/include/llvm/IR/GlobalIndirectSymbol.h b/include/llvm/IR/GlobalIndirectSymbol.h
index 212703af7101..22c00686c549 100644
--- a/include/llvm/IR/GlobalIndirectSymbol.h
+++ b/include/llvm/IR/GlobalIndirectSymbol.h
@@ -75,7 +75,7 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == Value::GlobalAliasVal ||
V->getValueID() == Value::GlobalIFuncVal;
}
diff --git a/include/llvm/IR/GlobalObject.h b/include/llvm/IR/GlobalObject.h
index fc38f698027b..278b193567f1 100644
--- a/include/llvm/IR/GlobalObject.h
+++ b/include/llvm/IR/GlobalObject.h
@@ -155,7 +155,7 @@ protected:
public:
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == Value::FunctionVal ||
V->getValueID() == Value::GlobalVariableVal;
}
diff --git a/include/llvm/IR/GlobalVariable.h b/include/llvm/IR/GlobalVariable.h
index 8255a4f298c0..34ace6f2b4f4 100644
--- a/include/llvm/IR/GlobalVariable.h
+++ b/include/llvm/IR/GlobalVariable.h
@@ -241,7 +241,7 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == Value::GlobalVariableVal;
}
};
diff --git a/include/llvm/IR/InlineAsm.h b/include/llvm/IR/InlineAsm.h
index 7f03fcd19b65..59874b05b0ce 100644
--- a/include/llvm/IR/InlineAsm.h
+++ b/include/llvm/IR/InlineAsm.h
@@ -183,7 +183,7 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() == Value::InlineAsmVal;
}
diff --git a/include/llvm/IR/InstrTypes.h b/include/llvm/IR/InstrTypes.h
index 76524b412456..d749077fd34a 100644
--- a/include/llvm/IR/InstrTypes.h
+++ b/include/llvm/IR/InstrTypes.h
@@ -73,10 +73,10 @@ public:
void setSuccessor(unsigned idx, BasicBlock *B);
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->isTerminator();
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -298,14 +298,14 @@ public:
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Alloca ||
I->getOpcode() == Instruction::Load ||
I->getOpcode() == Instruction::VAArg ||
I->getOpcode() == Instruction::ExtractValue ||
(I->getOpcode() >= CastOpsBegin && I->getOpcode() < CastOpsEnd);
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -532,10 +532,10 @@ public:
bool swapOperands();
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->isBinaryOp();
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -833,10 +833,10 @@ public:
static bool castIsValid(Instruction::CastOps op, Value *S, Type *DstTy);
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->isCast();
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -1062,11 +1062,11 @@ public:
static bool isImpliedFalseByMatchingCmp(Predicate Pred1, Predicate Pred2);
/// @brief Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::ICmp ||
I->getOpcode() == Instruction::FCmp;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -1152,8 +1152,8 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) { return I->isFuncletPad(); }
- static inline bool classof(const Value *V) {
+ static bool classof(const Instruction *I) { return I->isFuncletPad(); }
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
diff --git a/include/llvm/IR/Instruction.h b/include/llvm/IR/Instruction.h
index d8db29e15886..8dc02111b866 100644
--- a/include/llvm/IR/Instruction.h
+++ b/include/llvm/IR/Instruction.h
@@ -556,7 +556,7 @@ public:
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return V->getValueID() >= Value::InstructionVal;
}
diff --git a/include/llvm/IR/Instructions.h b/include/llvm/IR/Instructions.h
index e1620b3e7df5..dc5f37450b48 100644
--- a/include/llvm/IR/Instructions.h
+++ b/include/llvm/IR/Instructions.h
@@ -145,10 +145,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return (I->getOpcode() == Instruction::Alloca);
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -284,10 +284,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Load;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -408,10 +408,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Store;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -483,10 +483,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Fence;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -639,10 +639,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::AtomicCmpXchg;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -788,10 +788,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::AtomicRMW;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -1048,10 +1048,10 @@ public:
bool accumulateConstantOffset(const DataLayout &DL, APInt &Offset) const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return (I->getOpcode() == Instruction::GetElementPtr);
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -1226,10 +1226,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::ICmp;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -1334,10 +1334,10 @@ public:
}
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::FCmp;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -1873,10 +1873,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Call;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -2011,10 +2011,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Select;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -2057,10 +2057,10 @@ public:
static unsigned getPointerOperandIndex() { return 0U; }
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == VAArg;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -2114,10 +2114,10 @@ public:
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::ExtractElement;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -2177,10 +2177,10 @@ public:
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::InsertElement;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -2276,10 +2276,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::ShuffleVector;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -2376,10 +2376,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::ExtractValue;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -2507,10 +2507,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::InsertValue;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -2747,10 +2747,10 @@ public:
bool hasConstantOrUndefValue() const;
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::PHI;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -2856,10 +2856,10 @@ public:
void reserveClauses(unsigned Size) { growOperands(Size); }
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::LandingPad;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -2930,10 +2930,10 @@ public:
unsigned getNumSuccessors() const { return 0; }
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return (I->getOpcode() == Instruction::Ret);
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -3046,10 +3046,10 @@ public:
void swapSuccessors();
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return (I->getOpcode() == Instruction::Br);
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -3403,10 +3403,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Switch;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -3501,10 +3501,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::IndirectBr;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -3977,10 +3977,10 @@ public:
unsigned getNumSuccessors() const { return 2; }
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return (I->getOpcode() == Instruction::Invoke);
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -4072,10 +4072,10 @@ public:
unsigned getNumSuccessors() const { return 0; }
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Resume;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -4260,10 +4260,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::CatchSwitch;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4306,10 +4306,10 @@ public:
}
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::CleanupPad;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4356,10 +4356,10 @@ public:
}
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::CatchPad;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4420,10 +4420,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return (I->getOpcode() == Instruction::CatchRet);
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -4516,10 +4516,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return (I->getOpcode() == Instruction::CleanupRet);
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -4577,10 +4577,10 @@ public:
unsigned getNumSuccessors() const { return 0; }
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Unreachable;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
@@ -4627,10 +4627,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Trunc;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4666,10 +4666,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == ZExt;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4705,10 +4705,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == SExt;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4744,10 +4744,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == FPTrunc;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4783,10 +4783,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == FPExt;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4822,10 +4822,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == UIToFP;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4861,10 +4861,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == SIToFP;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4900,10 +4900,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == FPToUI;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4939,10 +4939,10 @@ public:
);
/// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == FPToSI;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -4982,10 +4982,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == IntToPtr;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -5033,10 +5033,10 @@ public:
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == PtrToInt;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -5072,10 +5072,10 @@ public:
);
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == BitCast;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
};
@@ -5112,10 +5112,10 @@ public:
);
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == AddrSpaceCast;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) && classof(cast<Instruction>(V));
}
diff --git a/include/llvm/IR/IntrinsicInst.h b/include/llvm/IR/IntrinsicInst.h
index e0dd3ca7d01e..944af57a7800 100644
--- a/include/llvm/IR/IntrinsicInst.h
+++ b/include/llvm/IR/IntrinsicInst.h
@@ -53,12 +53,12 @@ namespace llvm {
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const CallInst *I) {
+ static bool classof(const CallInst *I) {
if (const Function *CF = I->getCalledFunction())
return CF->isIntrinsic();
return false;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<CallInst>(V) && classof(cast<CallInst>(V));
}
};
@@ -72,7 +72,7 @@ namespace llvm {
Value *getVariableLocation(bool AllowNullOp = true) const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
switch (I->getIntrinsicID()) {
case Intrinsic::dbg_declare:
case Intrinsic::dbg_value:
@@ -80,7 +80,7 @@ namespace llvm {
default: return false;
}
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -107,10 +107,10 @@ namespace llvm {
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::dbg_declare;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -144,10 +144,10 @@ namespace llvm {
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::dbg_value;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -176,7 +176,7 @@ namespace llvm {
ExceptionBehavior getExceptionBehavior() const;
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
switch (I->getIntrinsicID()) {
case Intrinsic::experimental_constrained_fadd:
case Intrinsic::experimental_constrained_fsub:
@@ -199,7 +199,7 @@ namespace llvm {
default: return false;
}
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -288,10 +288,10 @@ namespace llvm {
setArgOperand(ARG_ELEMENTSIZE, V);
}
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::memcpy_element_unordered_atomic;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -358,7 +358,7 @@ namespace llvm {
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
switch (I->getIntrinsicID()) {
case Intrinsic::memcpy:
case Intrinsic::memmove:
@@ -367,7 +367,7 @@ namespace llvm {
default: return false;
}
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -387,10 +387,10 @@ namespace llvm {
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::memset;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -419,11 +419,11 @@ namespace llvm {
}
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::memcpy ||
I->getIntrinsicID() == Intrinsic::memmove;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -432,10 +432,10 @@ namespace llvm {
class MemCpyInst : public MemTransferInst {
public:
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::memcpy;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -444,10 +444,10 @@ namespace llvm {
class MemMoveInst : public MemTransferInst {
public:
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::memmove;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -455,10 +455,10 @@ namespace llvm {
/// This represents the llvm.va_start intrinsic.
class VAStartInst : public IntrinsicInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::vastart;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
@@ -468,10 +468,10 @@ namespace llvm {
/// This represents the llvm.va_end intrinsic.
class VAEndInst : public IntrinsicInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::vaend;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
@@ -481,10 +481,10 @@ namespace llvm {
/// This represents the llvm.va_copy intrinsic.
class VACopyInst : public IntrinsicInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::vacopy;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
@@ -495,10 +495,10 @@ namespace llvm {
/// This represents the llvm.instrprof_increment intrinsic.
class InstrProfIncrementInst : public IntrinsicInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::instrprof_increment;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
@@ -524,10 +524,10 @@ namespace llvm {
class InstrProfIncrementInstStep : public InstrProfIncrementInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::instrprof_increment_step;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
@@ -535,10 +535,10 @@ namespace llvm {
/// This represents the llvm.instrprof_value_profile intrinsic.
class InstrProfValueProfileInst : public IntrinsicInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::instrprof_value_profile;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
diff --git a/include/llvm/IR/IntrinsicsWebAssembly.td b/include/llvm/IR/IntrinsicsWebAssembly.td
index 3a0957dfa39b..640ef627bc46 100644
--- a/include/llvm/IR/IntrinsicsWebAssembly.td
+++ b/include/llvm/IR/IntrinsicsWebAssembly.td
@@ -19,4 +19,8 @@ let TargetPrefix = "wasm" in { // All intrinsics start with "llvm.wasm.".
def int_wasm_current_memory : Intrinsic<[llvm_anyint_ty], [], [IntrReadMem]>;
def int_wasm_grow_memory : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>], []>;
+// Exception handling intrinsics
+def int_wasm_throw: Intrinsic<[], [llvm_i32_ty, llvm_ptr_ty], [Throws]>;
+def int_wasm_rethrow: Intrinsic<[], [], [Throws]>;
+
}
diff --git a/include/llvm/IR/LLVMContext.h b/include/llvm/IR/LLVMContext.h
index ad011fb72e6a..b27abad618c9 100644
--- a/include/llvm/IR/LLVMContext.h
+++ b/include/llvm/IR/LLVMContext.h
@@ -188,10 +188,19 @@ public:
/// \brief Return if a code hotness metric should be included in optimization
/// diagnostics.
- bool getDiagnosticHotnessRequested() const;
+ bool getDiagnosticsHotnessRequested() const;
/// \brief Set if a code hotness metric should be included in optimization
/// diagnostics.
- void setDiagnosticHotnessRequested(bool Requested);
+ void setDiagnosticsHotnessRequested(bool Requested);
+
+ /// \brief Return the minimum hotness value a diagnostic would need in order
+ /// to be included in optimization diagnostics. If there is no minimum, this
+ /// returns None.
+ uint64_t getDiagnosticsHotnessThreshold() const;
+
+ /// \brief Set the minimum hotness value a diagnostic needs in order to be
+ /// included in optimization diagnostics.
+ void setDiagnosticsHotnessThreshold(uint64_t Threshold);
/// \brief Return the YAML file used by the backend to save optimization
/// diagnostics. If null, diagnostics are not saved in a file but only
diff --git a/include/llvm/IR/LegacyPassNameParser.h b/include/llvm/IR/LegacyPassNameParser.h
index fd9d468b06cb..4cec08196408 100644
--- a/include/llvm/IR/LegacyPassNameParser.h
+++ b/include/llvm/IR/LegacyPassNameParser.h
@@ -81,15 +81,15 @@ public:
// default implementation to sort the table before we print...
void printOptionInfo(const cl::Option &O, size_t GlobalWidth) const override {
PassNameParser *PNP = const_cast<PassNameParser*>(this);
- array_pod_sort(PNP->Values.begin(), PNP->Values.end(), ValLessThan);
+ array_pod_sort(PNP->Values.begin(), PNP->Values.end(), ValCompare);
cl::parser<const PassInfo*>::printOptionInfo(O, GlobalWidth);
}
private:
- // ValLessThan - Provide a sorting comparator for Values elements...
- static int ValLessThan(const PassNameParser::OptionInfo *VT1,
- const PassNameParser::OptionInfo *VT2) {
- return VT1->Name < VT2->Name;
+ // ValCompare - Provide a sorting comparator for Values elements...
+ static int ValCompare(const PassNameParser::OptionInfo *VT1,
+ const PassNameParser::OptionInfo *VT2) {
+ return VT1->Name.compare(VT2->Name);
}
};
diff --git a/include/llvm/IR/Metadata.h b/include/llvm/IR/Metadata.h
index 80ed44be43eb..3462cc02fd27 100644
--- a/include/llvm/IR/Metadata.h
+++ b/include/llvm/IR/Metadata.h
@@ -660,6 +660,19 @@ struct AAMDNodes {
/// \brief The tag specifying the noalias scope.
MDNode *NoAlias;
+
+ /// \brief Given two sets of AAMDNodes that apply to the same pointer,
+ /// give the best AAMDNodes that are compatible with both (i.e. a set of
+ /// nodes whose allowable aliasing conclusions are a subset of those
+ /// allowable by both of the inputs). However, for efficiency
+ /// reasons, do not create any new MDNodes.
+ AAMDNodes intersect(const AAMDNodes &Other) {
+ AAMDNodes Result;
+ Result.TBAA = Other.TBAA == TBAA ? TBAA : nullptr;
+ Result.Scope = Other.Scope == Scope ? Scope : nullptr;
+ Result.NoAlias = Other.NoAlias == NoAlias ? NoAlias : nullptr;
+ return Result;
+ }
};
// Specialize DenseMapInfo for AAMDNodes.
diff --git a/include/llvm/IR/ModuleSummaryIndexYAML.h b/include/llvm/IR/ModuleSummaryIndexYAML.h
index 5d7b8b997d37..7f6cb5bee5a6 100644
--- a/include/llvm/IR/ModuleSummaryIndexYAML.h
+++ b/include/llvm/IR/ModuleSummaryIndexYAML.h
@@ -140,8 +140,6 @@ struct FunctionSummaryYaml {
} // End yaml namespace
} // End llvm namespace
-LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(uint64_t)
-
namespace llvm {
namespace yaml {
@@ -188,7 +186,6 @@ template <> struct MappingTraits<FunctionSummaryYaml> {
LLVM_YAML_IS_STRING_MAP(TypeIdSummary)
LLVM_YAML_IS_SEQUENCE_VECTOR(FunctionSummaryYaml)
-LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(std::string)
namespace llvm {
namespace yaml {
diff --git a/include/llvm/IR/Operator.h b/include/llvm/IR/Operator.h
index c7f4697e93e7..9df6bfc54cd4 100644
--- a/include/llvm/IR/Operator.h
+++ b/include/llvm/IR/Operator.h
@@ -54,9 +54,9 @@ public:
return Instruction::UserOp1;
}
- static inline bool classof(const Instruction *) { return true; }
- static inline bool classof(const ConstantExpr *) { return true; }
- static inline bool classof(const Value *V) {
+ static bool classof(const Instruction *) { return true; }
+ static bool classof(const ConstantExpr *) { return true; }
+ static bool classof(const Value *V) {
return isa<Instruction>(V) || isa<ConstantExpr>(V);
}
};
@@ -97,19 +97,19 @@ public:
return (SubclassOptionalData & NoSignedWrap) != 0;
}
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Instruction::Add ||
I->getOpcode() == Instruction::Sub ||
I->getOpcode() == Instruction::Mul ||
I->getOpcode() == Instruction::Shl;
}
- static inline bool classof(const ConstantExpr *CE) {
+ static bool classof(const ConstantExpr *CE) {
return CE->getOpcode() == Instruction::Add ||
CE->getOpcode() == Instruction::Sub ||
CE->getOpcode() == Instruction::Mul ||
CE->getOpcode() == Instruction::Shl;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return (isa<Instruction>(V) && classof(cast<Instruction>(V))) ||
(isa<ConstantExpr>(V) && classof(cast<ConstantExpr>(V)));
}
@@ -144,13 +144,13 @@ public:
OpC == Instruction::LShr;
}
- static inline bool classof(const ConstantExpr *CE) {
+ static bool classof(const ConstantExpr *CE) {
return isPossiblyExactOpcode(CE->getOpcode());
}
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return isPossiblyExactOpcode(I->getOpcode());
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return (isa<Instruction>(V) && classof(cast<Instruction>(V))) ||
(isa<ConstantExpr>(V) && classof(cast<ConstantExpr>(V)));
}
@@ -324,17 +324,17 @@ public:
/// precision.
float getFPAccuracy() const;
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getType()->isFPOrFPVectorTy() ||
I->getOpcode() == Instruction::FCmp;
}
- static inline bool classof(const ConstantExpr *CE) {
+ static bool classof(const ConstantExpr *CE) {
return CE->getType()->isFPOrFPVectorTy() ||
CE->getOpcode() == Instruction::FCmp;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return (isa<Instruction>(V) && classof(cast<Instruction>(V))) ||
(isa<ConstantExpr>(V) && classof(cast<ConstantExpr>(V)));
}
@@ -344,13 +344,13 @@ public:
template<typename SuperClass, unsigned Opc>
class ConcreteOperator : public SuperClass {
public:
- static inline bool classof(const Instruction *I) {
+ static bool classof(const Instruction *I) {
return I->getOpcode() == Opc;
}
- static inline bool classof(const ConstantExpr *CE) {
+ static bool classof(const ConstantExpr *CE) {
return CE->getOpcode() == Opc;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return (isa<Instruction>(V) && classof(cast<Instruction>(V))) ||
(isa<ConstantExpr>(V) && classof(cast<ConstantExpr>(V)));
}
diff --git a/include/llvm/IR/PatternMatch.h b/include/llvm/IR/PatternMatch.h
index 9e9c8ac75d2a..5b69e7855cc7 100644
--- a/include/llvm/IR/PatternMatch.h
+++ b/include/llvm/IR/PatternMatch.h
@@ -378,7 +378,7 @@ struct bind_const_intval_ty {
template <typename ITy> bool match(ITy *V) {
if (const auto *CV = dyn_cast<ConstantInt>(V))
- if (CV->getBitWidth() <= 64) {
+ if (CV->getValue().ule(UINT64_MAX)) {
VR = CV->getZExtValue();
return true;
}
@@ -399,10 +399,7 @@ struct specific_intval {
if (const auto *C = dyn_cast<Constant>(V))
CI = dyn_cast_or_null<ConstantInt>(C->getSplatValue());
- if (CI && CI->getBitWidth() <= 64)
- return CI->getZExtValue() == Val;
-
- return false;
+ return CI && CI->getValue() == Val;
}
};
@@ -1363,6 +1360,11 @@ m_Intrinsic(const T0 &Op0, const T1 &Op1, const T2 &Op2, const T3 &Op3) {
// Helper intrinsic matching specializations.
template <typename Opnd0>
+inline typename m_Intrinsic_Ty<Opnd0>::Ty m_BitReverse(const Opnd0 &Op0) {
+ return m_Intrinsic<Intrinsic::bitreverse>(Op0);
+}
+
+template <typename Opnd0>
inline typename m_Intrinsic_Ty<Opnd0>::Ty m_BSwap(const Opnd0 &Op0) {
return m_Intrinsic<Intrinsic::bswap>(Op0);
}
diff --git a/include/llvm/IR/Statepoint.h b/include/llvm/IR/Statepoint.h
index 630f30667272..ad9537e9762e 100644
--- a/include/llvm/IR/Statepoint.h
+++ b/include/llvm/IR/Statepoint.h
@@ -329,12 +329,12 @@ public:
/// Currently, the only projections available are gc.result and gc.relocate.
class GCProjectionInst : public IntrinsicInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::experimental_gc_relocate ||
I->getIntrinsicID() == Intrinsic::experimental_gc_result;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
@@ -373,11 +373,11 @@ public:
/// Represents calls to the gc.relocate intrinsic.
class GCRelocateInst : public GCProjectionInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::experimental_gc_relocate;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
@@ -408,11 +408,11 @@ public:
/// Represents calls to the gc.result intrinsic.
class GCResultInst : public GCProjectionInst {
public:
- static inline bool classof(const IntrinsicInst *I) {
+ static bool classof(const IntrinsicInst *I) {
return I->getIntrinsicID() == Intrinsic::experimental_gc_result;
}
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
diff --git a/include/llvm/IR/User.h b/include/llvm/IR/User.h
index 109a3d5e7be8..4dfa19cf241f 100644
--- a/include/llvm/IR/User.h
+++ b/include/llvm/IR/User.h
@@ -288,7 +288,7 @@ public:
void replaceUsesOfWith(Value *From, Value *To);
// Methods for support type inquiry through isa, cast, and dyn_cast:
- static inline bool classof(const Value *V) {
+ static bool classof(const Value *V) {
return isa<Instruction>(V) || isa<Constant>(V);
}
};