mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-16 14:31:59 +00:00
Don't bother doing an exhaustive recursive walk if we are at the limit of what
we need to know anyway. This reduces the 2002-07-08-HugePerformanceProblem.llx down to 3.210u:0.010s, which is back in the acceptable range again git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8323 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
11e405061b
commit
de73193f3e
@ -372,7 +372,7 @@ PointerType::PointerType(const Type *E) : SequentialType(PointerTyID, E) {
|
||||
}
|
||||
|
||||
OpaqueType::OpaqueType() : DerivedType(OpaqueTyID) {
|
||||
Recursive = false;
|
||||
setRecursive(false);
|
||||
setAbstract(true);
|
||||
#ifdef DEBUG_MERGE_TYPES
|
||||
std::cerr << "Derived new type: " << getDescription() << "\n";
|
||||
@ -413,8 +413,10 @@ static void getTypeProps(const Type *Ty, std::vector<const Type *> &TypeStack,
|
||||
TypeStack.push_back(Ty); // Add us to the stack..
|
||||
|
||||
for (Type::subtype_iterator I = Ty->subtype_begin(), E = Ty->subtype_end();
|
||||
I != E; ++I)
|
||||
I != E; ++I) {
|
||||
getTypeProps(*I, TypeStack, isAbstract, isRecursive);
|
||||
if (isAbstract && isRecursive) break;
|
||||
}
|
||||
|
||||
TypeStack.pop_back(); // Remove self from stack...
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user