Changes in directory llvm/lib/VMCore:

Type.cpp updated: 1.141 -> 1.142
---
Log message:

Moving this function to a permanent home to prevent a dependency cycle created
by the inline heuristic.  Was preventing llvm-gcc4 from building.


---
Diffs of the changes:  (+19 -0)

 Type.cpp |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+)


Index: llvm/lib/VMCore/Type.cpp
diff -u llvm/lib/VMCore/Type.cpp:1.141 llvm/lib/VMCore/Type.cpp:1.142
--- llvm/lib/VMCore/Type.cpp:1.141      Wed Jun 28 16:38:54 2006
+++ llvm/lib/VMCore/Type.cpp    Tue Jul 25 18:22:00 2006
@@ -33,6 +33,25 @@
 
 AbstractTypeUser::~AbstractTypeUser() {}
 
+
+//===----------------------------------------------------------------------===//
+//                         Type PATypeHolder Implementation
+//===----------------------------------------------------------------------===//
+
+// This routine was moved here to resolve a cyclic dependency caused by
+// inline heuristics.
+
+/// get - This implements the forwarding part of the union-find algorithm for
+/// abstract types.  Before every access to the Type*, we check to see if the
+/// type we are pointing to is forwarding to a new type.  If so, we drop our
+/// reference to the type.
+///
+Type* PATypeHolder::get() const {
+  const Type *NewTy = Ty->getForwardedType();
+  if (!NewTy) return const_cast<Type*>(Ty);
+  return *const_cast<PATypeHolder*>(this) = NewTy;
+}
+
 
//===----------------------------------------------------------------------===//
 //                         Type Class Implementation
 
//===----------------------------------------------------------------------===//



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to