diff options
author | Manman Ren <mren@apple.com> | 2013-04-22 23:00:44 +0000 |
---|---|---|
committer | Manman Ren <mren@apple.com> | 2013-04-22 23:00:44 +0000 |
commit | 4a4970ec6a6f3cd56433905f7c8b5d20be52bd40 (patch) | |
tree | af9a6e57b24277f384b576613b9d5eaa3cae01fc /llvm/lib/IR/Metadata.cpp | |
parent | 19f0e8c16307affd13dd93914c414a66deb5051c (diff) | |
download | bcm5719-llvm-4a4970ec6a6f3cd56433905f7c8b5d20be52bd40.tar.gz bcm5719-llvm-4a4970ec6a6f3cd56433905f7c8b5d20be52bd40.zip |
Struct-path aware TBAA: update getMostGenericTBAA
The tag is of type TBAANode when flag EnableStructPathTBAA is off.
Move implementation of MDNode::getMostGenericTBAA to TypeBasedAliasAnalysis.cpp
since it depends on how to interprete the MDNodes for scalar TBAA and
struct-path aware TBAA.
llvm-svn: 180068
Diffstat (limited to 'llvm/lib/IR/Metadata.cpp')
-rw-r--r-- | llvm/lib/IR/Metadata.cpp | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/llvm/lib/IR/Metadata.cpp b/llvm/lib/IR/Metadata.cpp index 0228aeb31f5..6a6b7af5cb9 100644 --- a/llvm/lib/IR/Metadata.cpp +++ b/llvm/lib/IR/Metadata.cpp @@ -403,42 +403,6 @@ void MDNode::replaceOperand(MDNodeOperand *Op, Value *To) { } } -MDNode *MDNode::getMostGenericTBAA(MDNode *A, MDNode *B) { - if (!A || !B) - return NULL; - - if (A == B) - return A; - - SmallVector<MDNode *, 4> PathA; - MDNode *T = A; - while (T) { - PathA.push_back(T); - T = T->getNumOperands() >= 2 ? cast_or_null<MDNode>(T->getOperand(1)) : 0; - } - - SmallVector<MDNode *, 4> PathB; - T = B; - while (T) { - PathB.push_back(T); - T = T->getNumOperands() >= 2 ? cast_or_null<MDNode>(T->getOperand(1)) : 0; - } - - int IA = PathA.size() - 1; - int IB = PathB.size() - 1; - - MDNode *Ret = 0; - while (IA >= 0 && IB >=0) { - if (PathA[IA] == PathB[IB]) - Ret = PathA[IA]; - else - break; - --IA; - --IB; - } - return Ret; -} - MDNode *MDNode::getMostGenericFPMath(MDNode *A, MDNode *B) { if (!A || !B) return NULL; |