class PredicateWithEdge
Declaration
class PredicateWithEdge : public PredicateWithCondition { /* full declaration omitted */ };
Description
An intrusive list node. A base class to enable membership in intrusive lists, including \a simple_ilist, \a iplist, and \a ilist. The first template parameter is the\a value_type for the list. An ilist node can be configured with compile-time options to change behaviour and/or add API. By default, an \a ilist_node knows whether it is the list sentinel (an instance of \a ilist_sentinel) if and only if LLVM_ENABLE_ABI_BREAKING_CHECKS. The function \a isKnownSentinel() always returns \c false tracking is off. Sentinel tracking steals a bit from the "prev" link, which adds a mask operation when decrementing an iterator, but enables bug-finding assertions in \a ilist_iterator. To turn sentinel tracking on all the time, pass in the ilist_sentinel_tracking <true > template parameter. This also enables the \a isSentinel() function. The same option must be passed to the intrusive list. (ilist_sentinel_tracking <false > turns sentinel tracking off all the time.) A type can inherit from ilist_node multiple times by passing in different\a ilist_tag options. This allows a single instance to be inserted into multiple lists simultaneously, where each list is given the same tag. struct A {}; struct B {}; struct N : ilist_node <N , ilist_tag <A >>, ilist_node <N , ilist_tag <B >> {}; void foo() { simple_ilist <N , ilist_tag <A >> ListA; simple_ilist <N , ilist_tag <B >> ListB; N N1; ListA.push_back(N1); ListB.push_back(N1); }\endexample See \a is_valid_option for steps on adding a new option.
Declared at: llvm/include/llvm/Transforms/Utils/PredicateInfo.h:146
Inherits from: PredicateWithCondition
Member Variables
- public llvm::BasicBlock* From
- public llvm::BasicBlock* To
Inherited from PredicateWithCondition:
Inherited from PredicateBase:
Method Overview
- public PredicateWithEdge()
- protected PredicateWithEdge(llvm::PredicateType PType, llvm::Value * Op, llvm::BasicBlock * From, llvm::BasicBlock * To, llvm::Value * Cond)
- public static bool classof(const llvm::PredicateBase * PB)
Inherited from PredicateWithCondition:
Inherited from PredicateBase:
Methods
¶PredicateWithEdge()
PredicateWithEdge()
Declared at: llvm/include/llvm/Transforms/Utils/PredicateInfo.h:150
¶PredicateWithEdge(llvm::PredicateType PType,
llvm::Value* Op,
llvm::BasicBlock* From,
llvm::BasicBlock* To,
llvm::Value* Cond)
PredicateWithEdge(llvm::PredicateType PType,
llvm::Value* Op,
llvm::BasicBlock* From,
llvm::BasicBlock* To,
llvm::Value* Cond)
Declared at: llvm/include/llvm/Transforms/Utils/PredicateInfo.h:156
Parameters
- llvm::PredicateType PType
- llvm::Value* Op
- llvm::BasicBlock* From
- llvm::BasicBlock* To
- llvm::Value* Cond
¶static bool classof(const llvm::PredicateBase* PB)
static bool classof(const llvm::PredicateBase* PB)
Declared at: llvm/include/llvm/Transforms/Utils/PredicateInfo.h:151
Parameters
- const llvm::PredicateBase* PB