diff options
author | Chris Lattner <sabre@nondot.org> | 2004-07-13 08:39:15 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-07-13 08:39:15 +0000 |
commit | e84a2ba99fec058f91fb38025fe921ec2bc18e46 (patch) | |
tree | a054841da64f52181ad27ee441165cc586b2f9c3 /llvm | |
parent | d9c9c496e639d4390cf485a3ca8b5d175f948055 (diff) | |
download | bcm5719-llvm-e84a2ba99fec058f91fb38025fe921ec2bc18e46.tar.gz bcm5719-llvm-e84a2ba99fec058f91fb38025fe921ec2bc18e46.zip |
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.
llvm-svn: 14791
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/AsmParser/llvmAsmParser.y | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/llvm/lib/AsmParser/llvmAsmParser.y b/llvm/lib/AsmParser/llvmAsmParser.y index 65ba280fd53..2c4d2a71b74 100644 --- a/llvm/lib/AsmParser/llvmAsmParser.y +++ b/llvm/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<Value*, std::pair<ValID, int> > PlaceHolderInfo; // GlobalRefs - This maintains a mapping between <Type, ValID>'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... |