From: Chris Lattner Date: Sun, 21 Oct 2001 23:02:41 +0000 (+0000) Subject: Two changes: X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c9a21b51a11d84443cb3f03787fd08a69fdd73cd;p=oota-llvm.git Two changes: 1. Delete type handle regardless of whether a collision occured 2. Remove a MAJOR pessimization of runtime performance (thought be be an optimization at the time). This second one was causing a 105k llvm file (from gcc) to parse in 58 seconds... without the 'optimization' it now parses in 3.64 seconds. I suck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@933 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 28562ac0b1e..e49ffa3a3df 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -463,21 +463,6 @@ static void ResolveTypes(vector > &LateResolveTypes) { } -// ResolveSomeTypes - This goes through the forward referenced type table and -// completes references that are now done. This is so that types are -// immediately resolved to be as concrete as possible. This does not cause -// thrown exceptions if not everything is resolved. -// -static void ResolveSomeTypes(vector > &LateResolveTypes) { - for (unsigned i = 0; i < LateResolveTypes.size(); ) { - if (ResolveType(LateResolveTypes[i])) - ++i; // Type didn't resolve - else - LateResolveTypes.erase(LateResolveTypes.begin()+i); // Type resolved! - } -} - - // setValueName - Set the specified value to the name given. The name may be // null potentially, in which case this is a noop. The string passed in is // assumed to be a malloc'd string buffer, and is freed by this function. @@ -1041,11 +1026,9 @@ ConstPool : ConstPool OptAssign CONST ConstVal { InsertType($4->get(), inMethodScope() ? CurMeth.Types : CurModule.Types); } - delete $4; - - ResolveSomeTypes(inMethodScope() ? CurMeth.LateResolveTypes : - CurModule.LateResolveTypes); } + + delete $4; } | ConstPool MethodProto { // Method prototypes can be in const pool }