From d090c6beedd8c36d3b9d31523beb2a6001c57e74 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 10 Feb 2007 04:57:36 +0000 Subject: simplify and speed up recursive type processing. llvm-svn: 34126 --- llvm/lib/Bytecode/Writer/SlotCalculator.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'llvm/lib/Bytecode') diff --git a/llvm/lib/Bytecode/Writer/SlotCalculator.cpp b/llvm/lib/Bytecode/Writer/SlotCalculator.cpp index 3122f13cb7e..00f7cbc5aea 100644 --- a/llvm/lib/Bytecode/Writer/SlotCalculator.cpp +++ b/llvm/lib/Bytecode/Writer/SlotCalculator.cpp @@ -362,16 +362,14 @@ unsigned SlotCalculator::getOrCreateTypeSlot(const Type *Ty) { // global { \2 * } { { \2 }* null } // unsigned ResultSlot = doInsertType(Ty); - SC_DEBUG(" Inserted type: " << Ty->getDescription() << " slot=" << - ResultSlot << "\n"); // Loop over any contained types in the definition... in post // order. for (po_iterator I = po_begin(Ty), E = po_end(Ty); I != E; ++I) { - if (*I != Ty) { + if (*I != Ty && !TypeMap.count(*I)) { // If we haven't seen this sub type before, add it to our type table! - getOrCreateTypeSlot(*I); + doInsertType(*I); } } return ResultSlot; -- cgit v1.2.3