mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-09 11:25:55 +00:00
Minor efficiency gain: do 1 nlogn lookup instead of two
Code cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13875 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -32,12 +32,10 @@ void FindUsedTypes::stub() {}
|
|||||||
// collection of used types.
|
// collection of used types.
|
||||||
//
|
//
|
||||||
void FindUsedTypes::IncorporateType(const Type *Ty) {
|
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.
|
// Make sure to add any types this type references now.
|
||||||
//
|
//
|
||||||
for (Type::subtype_iterator I = Ty->subtype_begin(), E = Ty->subtype_end();
|
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);
|
for (const_inst_iterator II = inst_begin(F), IE = inst_end(F);
|
||||||
II != IE; ++II) {
|
II != IE; ++II) {
|
||||||
const Instruction &I = *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();
|
for (User::const_op_iterator OI = I.op_begin(), OE = I.op_end();
|
||||||
OI != OE; ++OI)
|
OI != OE; ++OI)
|
||||||
IncorporateValue(*OI); // Insert inst operand types as well
|
IncorporateValue(*OI); // Insert inst operand types as well
|
||||||
|
Reference in New Issue
Block a user