aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-07-13 08:39:15 +0000
committerChris Lattner <sabre@nondot.org>2004-07-13 08:39:15 +0000
commit22ae232d98c301752955f29a4a521bf07e56a757 (patch)
tree42650d6c2f7a941447fdd62f144da1032f86c9ca
parentbc721ed100e5b662790ddfc014a1bb497386a947 (diff)
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
-rw-r--r--lib/AsmParser/llvmAsmParser.y23
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 65ba280fd5..2c4d2a71b7 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<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...