From 25c0293f20be1a6da4ff9bdf42cd86757789839a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 10 Feb 2007 04:57:36 +0000 Subject: [PATCH] simplify and speed up recursive type processing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34126 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Bytecode/Writer/SlotCalculator.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/Bytecode/Writer/SlotCalculator.cpp b/lib/Bytecode/Writer/SlotCalculator.cpp index 3122f13cb7e..00f7cbc5aea 100644 --- a/lib/Bytecode/Writer/SlotCalculator.cpp +++ b/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;