From 22ae232d98c301752955f29a4a521bf07e56a757 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 13 Jul 2004 08:39:15 +0000 Subject: [PATCH] Fix typeo and refactor bb productions to make it possible for us to reuse any forward reference blocks if they have been created (instead of creating a new block, replaceAllUsesOfWith, then nuking the placeholder). This is not yet implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14791 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/llvmAsmParser.y | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 65ba280fd53..2c4d2a71b74 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -71,7 +71,7 @@ static struct PerModuleInfo { /// PlaceHolderInfo - When temporary placeholder objects are created, remember /// how they were referenced and one which line of the input they came from so - /// that we can resolve them alter and print error messages as appropriate. + /// that we can resolve them later and print error messages as appropriate. std::map > PlaceHolderInfo; // GlobalRefs - This maintains a mapping between 's and forward @@ -1639,16 +1639,6 @@ BasicBlock : InstructionList OptAssign BBTerminatorInst { $1->getInstList().push_back($3); InsertValue($1); $$ = $1; - } - | LABELSTR InstructionList OptAssign BBTerminatorInst { - setValueName($4, $3); - InsertValue($4); - - $2->getInstList().push_back($4); - setValueName($2, $1); - - InsertValue($2); - $$ = $2; }; InstructionList : InstructionList Inst { @@ -1656,7 +1646,18 @@ InstructionList : InstructionList Inst { $$ = $1; } | /* empty */ { + // FIXME: Should check to see if there is a forward ref'd basic block that + // we can use and reuse it as appropriate. It doesn't make sense just to + // make forward ref'd blocks then discard them. + $$ = CurBB = new BasicBlock("", CurFun.CurrentFunction); + } + | LABELSTR { + // FIXME: Should check to see if there is a forward ref'd basic block that + // we can use and reuse it as appropriate. It doesn't make sense just to + // make forward ref'd blocks then discard them. $$ = CurBB = new BasicBlock("", CurFun.CurrentFunction); + setValueName($$, $1); + InsertValue($$); }; BBTerminatorInst : RET ResolvedVal { // Return with a result... -- 2.34.1