summaryrefslogtreecommitdiffstats
path: root/llvm
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
commite84a2ba99fec058f91fb38025fe921ec2bc18e46 (patch)
treea054841da64f52181ad27ee441165cc586b2f9c3 /llvm
parentd9c9c496e639d4390cf485a3ca8b5d175f948055 (diff)
downloadbcm5719-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.y23
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...
OpenPOWER on IntegriCloud