|
CCTLib
Calling-context and data-object attribution library for Intel Pin
|
#include <rbtree.h>
Public Member Functions | |
| RBTree () | |
| TNKV * | InsertBST (TNKV *newNode) |
| TNKV * | FindSumGreaterEqual (K key, S *sum) |
| TNKV * | FindSumGreaterThan (K key, S *sum) |
| void | UpdateSum (TNKV *node) |
| COLOR | GetColor (TNKV *const node) |
| void | SetColor (TNKV *node, COLOR color) |
| COLOR | GetColorUnconditional (TNKV *const node) |
| void | SetColorUnconditional (TNKV *node, COLOR color) |
| void | RotateLeft (TNKV *p) |
| void | RotateRightThenLeft (TNKV *x) |
| void | RotateRight (TNKV *p) |
| void | RotateLeftThenRight (TNKV *x) |
| void | BalanceInsertion (TNKV *x) |
| void | Insert (TNKV *newNode) |
| void | BalanceDeletion (TNKV *node) |
| TNKV * | DeleteHelper (TNKV *node) |
| TNKV * | WhichNodeToDelete (TNKV *node) |
| TNKV * | Delete (TNKV *node) |
| bool | IsBSTHelper (TNKV *node) |
| bool | IsBST () |
| bool | IsSumCorrectHeler (TNKV *node, V &curSum) |
| bool | IsSumCorrect () |
| bool | IsTreeCorrectHeler (TNKV *node) |
| bool | IsTreeCorrect () |
| bool | IsReachableHelper (TNKV *root, TNKV *target) |
| bool | IsReachable (TNKV *target) |
| S | GetTotalSum () |
| TNKV * | FindNodeAtRankFromRight (S capacity) |
Private Types | |
| using | TNKV = TreeNode< K, V, S > |
Private Attributes | |
| TreeNode< K, V, S > * | root |
|
inline |
Definition at line 431 of file rbtree.h.
References BLACK, TreeNode< K, V, S >::color, RBTree< K, V, S >::GetColor(), RBTree< K, V, S >::GetColorUnconditional(), TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, RED, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, RBTree< K, V, S >::RotateLeft(), RBTree< K, V, S >::RotateLeftThenRight(), RBTree< K, V, S >::RotateRight(), RBTree< K, V, S >::RotateRightThenLeft(), RBTree< K, V, S >::SetColor(), and RBTree< K, V, S >::SetColorUnconditional().
Referenced by RBTree< K, V, S >::Delete().
Definition at line 346 of file rbtree.h.
References BLACK, TreeNode< K, V, S >::color, g(), TreeNode< K, V, S >::parent, RED, RBTree< K, V, S >::RotateLeft(), RBTree< K, V, S >::RotateLeftThenRight(), RBTree< K, V, S >::RotateRight(), RBTree< K, V, S >::RotateRightThenLeft(), and RBTree< K, V, S >::SetColorUnconditional().
Referenced by RBTree< K, V, S >::Insert().
Definition at line 625 of file rbtree.h.
References RBTree< K, V, S >::BalanceDeletion(), TreeNode< K, V, S >::parent, RBTree< K, V, S >::root, TreeNode< K, V, S >::value, and RBTree< K, V, S >::WhichNodeToDelete().
Referenced by AnalyzeInsLevelReuse(), ComputeBlockReuseDistance(), ComputeInsReuseDistance(), and anonymous_namespace{rbtree_test.cpp}::TEST().
Definition at line 526 of file rbtree.h.
References TreeNode< K, V, S >::key, TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, TreeNode< K, V, S >::payload, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, and TreeNode< K, V, S >::value.
|
inline |
Definition at line 786 of file rbtree.h.
References TreeNode< K, V, S >::left, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, TreeNode< K, V, S >::sum, and TreeNode< K, V, S >::value.
Referenced by AnalyzeInsLevelReuse(), and CheckEvictions().
|
inline |
Definition at line 78 of file rbtree.h.
References TreeNode< K, V, S >::key, TreeNode< K, V, S >::left, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, TreeNode< K, V, S >::sum, and TreeNode< K, V, S >::value.
Referenced by anonymous_namespace{rbtree_test.cpp}::TEST().
|
inline |
Definition at line 101 of file rbtree.h.
References TreeNode< K, V, S >::key, TreeNode< K, V, S >::left, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, TreeNode< K, V, S >::sum, and TreeNode< K, V, S >::value.
Referenced by AnalyzeInsLevelReuse(), ComputeBlockReuseDistance(), and ComputeInsReuseDistance().
Definition at line 128 of file rbtree.h.
References BLACK, and TreeNode< K, V, S >::color.
Referenced by RBTree< K, V, S >::BalanceDeletion().
|
inline |
Definition at line 141 of file rbtree.h.
References TreeNode< K, V, S >::color.
Referenced by RBTree< K, V, S >::BalanceDeletion().
|
inline |
Definition at line 777 of file rbtree.h.
References RBTree< K, V, S >::root.
Referenced by CheckEvictions().
Definition at line 426 of file rbtree.h.
References RBTree< K, V, S >::BalanceInsertion(), and RBTree< K, V, S >::InsertBST().
Referenced by AnalyzeInsLevelReuse(), ComputeBlockReuseDistance(), ComputeInsReuseDistance(), and anonymous_namespace{rbtree_test.cpp}::TEST().
Definition at line 42 of file rbtree.h.
References TreeNode< K, V, S >::color, TreeNode< K, V, S >::key, TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, RED, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, TreeNode< K, V, S >::sum, and TreeNode< K, V, S >::value.
Referenced by RBTree< K, V, S >::Insert().
|
inline |
Definition at line 688 of file rbtree.h.
References RBTree< K, V, S >::IsBSTHelper(), and RBTree< K, V, S >::root.
Referenced by anonymous_namespace{rbtree_test.cpp}::TEST().
Definition at line 671 of file rbtree.h.
References TreeNode< K, V, S >::key, TreeNode< K, V, S >::left, and TreeNode< K, V, S >::right.
Referenced by RBTree< K, V, S >::IsBST().
Definition at line 773 of file rbtree.h.
References RBTree< K, V, S >::IsReachableHelper(), and RBTree< K, V, S >::root.
|
inline |
Definition at line 757 of file rbtree.h.
References RBTree< K, V, S >::root.
Referenced by RBTree< K, V, S >::IsReachable().
|
inline |
Definition at line 719 of file rbtree.h.
References RBTree< K, V, S >::IsSumCorrectHeler(), and RBTree< K, V, S >::root.
Referenced by anonymous_namespace{rbtree_test.cpp}::TEST().
|
inline |
Definition at line 695 of file rbtree.h.
References TreeNode< K, V, S >::left, TreeNode< K, V, S >::right, TreeNode< K, V, S >::sum, and TreeNode< K, V, S >::value.
Referenced by RBTree< K, V, S >::IsSumCorrect().
|
inline |
Definition at line 750 of file rbtree.h.
References RBTree< K, V, S >::IsTreeCorrectHeler(), and RBTree< K, V, S >::root.
Referenced by anonymous_namespace{rbtree_test.cpp}::TEST().
|
inline |
Definition at line 727 of file rbtree.h.
References TreeNode< K, V, S >::color, TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, RED, and TreeNode< K, V, S >::right.
Referenced by RBTree< K, V, S >::IsTreeCorrect().
Definition at line 166 of file rbtree.h.
References g(), TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, and RBTree< K, V, S >::UpdateSum().
Referenced by RBTree< K, V, S >::BalanceDeletion(), and RBTree< K, V, S >::BalanceInsertion().
|
inline |
Definition at line 308 of file rbtree.h.
References g(), TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, and RBTree< K, V, S >::UpdateSum().
Referenced by RBTree< K, V, S >::BalanceDeletion(), and RBTree< K, V, S >::BalanceInsertion().
Definition at line 263 of file rbtree.h.
References g(), TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, and RBTree< K, V, S >::UpdateSum().
Referenced by RBTree< K, V, S >::BalanceDeletion(), and RBTree< K, V, S >::BalanceInsertion().
|
inline |
Definition at line 210 of file rbtree.h.
References g(), TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, TreeNode< K, V, S >::right, RBTree< K, V, S >::root, and RBTree< K, V, S >::UpdateSum().
Referenced by RBTree< K, V, S >::BalanceDeletion(), and RBTree< K, V, S >::BalanceInsertion().
|
inline |
Definition at line 135 of file rbtree.h.
References TreeNode< K, V, S >::color.
Referenced by RBTree< K, V, S >::BalanceDeletion().
|
inline |
Definition at line 146 of file rbtree.h.
References TreeNode< K, V, S >::color.
Referenced by RBTree< K, V, S >::BalanceDeletion(), and RBTree< K, V, S >::BalanceInsertion().
Definition at line 124 of file rbtree.h.
References TreeNode< K, V, S >::left, TreeNode< K, V, S >::right, TreeNode< K, V, S >::sum, and TreeNode< K, V, S >::value.
Referenced by RBTree< K, V, S >::RotateLeft(), RBTree< K, V, S >::RotateLeftThenRight(), RBTree< K, V, S >::RotateRight(), and RBTree< K, V, S >::RotateRightThenLeft().
|
inline |
Definition at line 583 of file rbtree.h.
References TreeNode< K, V, S >::key, TreeNode< K, V, S >::left, TreeNode< K, V, S >::parent, TreeNode< K, V, S >::payload, TreeNode< K, V, S >::right, TreeNode< K, V, S >::sum, and TreeNode< K, V, S >::value.
Referenced by RBTree< K, V, S >::Delete().
Definition at line 35 of file rbtree.h.
Referenced by RBTree< K, V, S >::BalanceDeletion(), RBTree< K, V, S >::Delete(), RBTree< K, V, S >::DeleteHelper(), RBTree< K, V, S >::FindNodeAtRankFromRight(), RBTree< K, V, S >::FindSumGreaterEqual(), RBTree< K, V, S >::FindSumGreaterThan(), RBTree< K, V, S >::GetTotalSum(), RBTree< K, V, S >::InsertBST(), RBTree< K, V, S >::IsBST(), RBTree< K, V, S >::IsReachable(), RBTree< K, V, S >::IsReachableHelper(), RBTree< K, V, S >::IsSumCorrect(), RBTree< K, V, S >::IsTreeCorrect(), RBTree< K, V, S >::RotateLeft(), RBTree< K, V, S >::RotateLeftThenRight(), RBTree< K, V, S >::RotateRight(), and RBTree< K, V, S >::RotateRightThenLeft().