Minor efficiency gain: do 1 nlogn lookup instead of two

Code cleanup

llvm-svn: 13875
This commit is contained in:
Chris Lattner 2004-05-28 05:36:49 +00:00
parent 75036dce04
commit 37c8081a07

View File

@ -32,12 +32,10 @@ void FindUsedTypes::stub() {}
// collection of used types.
//
void FindUsedTypes::IncorporateType(const Type *Ty) {
if (UsedTypes.count(Ty)) return; // Already contain Ty.
// If ty doesn't already exist in the used types map, add it now, otherwise
// return.
if (!UsedTypes.insert(Ty).second) return; // Already contain Ty.
// If ty doesn't already exist in the used types map, add it now.
//
UsedTypes.insert(Ty);
// Make sure to add any types this type references now.
//
for (Type::subtype_iterator I = Ty->subtype_begin(), E = Ty->subtype_end();
@ -79,9 +77,8 @@ bool FindUsedTypes::run(Module &m) {
for (const_inst_iterator II = inst_begin(F), IE = inst_end(F);
II != IE; ++II) {
const Instruction &I = *II;
const Type *Ty = I.getType();
IncorporateType(Ty); // Incorporate the type of the instruction
IncorporateType(I.getType()); // Incorporate the type of the instruction
for (User::const_op_iterator OI = I.op_begin(), OE = I.op_end();
OI != OE; ++OI)
IncorporateValue(*OI); // Insert inst operand types as well