aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabor Greif <ggreif@gmail.com>2008-05-29 22:58:33 +0000
committerGabor Greif <ggreif@gmail.com>2008-05-29 22:58:33 +0000
commit07252fd463d2378383ae035e45f6ed3c12959efe (patch)
tree19a30defdbaeb86bc4c5c54eb09693ca6b61b9ab
parent6445537c848d99484ead0a10386f8a774147ed06 (diff)
add doxygen comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51712 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/OperandTraits.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/llvm/OperandTraits.h b/include/llvm/OperandTraits.h
index 3811927e57..028d124e46 100644
--- a/include/llvm/OperandTraits.h
+++ b/include/llvm/OperandTraits.h
@@ -23,6 +23,10 @@ namespace llvm {
// FixedNumOperands Trait Class
//===----------------------------------------------------------------------===//
+/// FixedNumOperandTraits - determine the allocation regime of the Use array
+/// when it is a prefix to the User object, and the number of Use objects is
+/// known at compile time.
+
template <unsigned ARITY>
struct FixedNumOperandTraits {
static Use *op_begin(User* U) {
@@ -62,6 +66,10 @@ struct OptionalOperandTraits : FixedNumOperandTraits<ARITY> {
// VariadicOperand Trait Class
//===----------------------------------------------------------------------===//
+/// VariadicOperandTraits - determine the allocation regime of the Use array
+/// when it is a prefix to the User object, and the number of Use objects is
+/// only known at allocation time.
+
template <unsigned MINARITY = 0>
struct VariadicOperandTraits {
static Use *op_begin(User* U) {
@@ -80,6 +88,16 @@ struct VariadicOperandTraits {
// HungoffOperand Trait Class
//===----------------------------------------------------------------------===//
+/// HungoffOperandTraits - determine the allocation regime of the Use array
+/// when it is not a prefix to the User object, but allocated at an unrelated
+/// heap address.
+/// Assumes that the User subclass that is determined by this traits class
+/// has an OperandList member of type User::op_iterator. [Note: this is now
+/// trivially satisfied, because User has that member for historic reasons.]
+///
+/// This is the traits class that is needed when the Use array must be
+/// resizable.
+
template <unsigned MINARITY = 1>
struct HungoffOperandTraits {
static Use *op_begin(User* U) {