summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-07-07 08:36:30 +0000
committerChris Lattner <sabre@nondot.org>2001-07-07 08:36:30 +0000
commitf0d0e9c262b668cf362fbaa8111bb6cc15268909 (patch)
tree21bbd3d877f28bdbe0b422f474d7ada241bdcad4 /lib
parent3fa0bc4408486327411da7fff2c5c55d8c0a3dd4 (diff)
downloadllvm-f0d0e9c262b668cf362fbaa8111bb6cc15268909.tar.gz
llvm-f0d0e9c262b668cf362fbaa8111bb6cc15268909.tar.bz2
llvm-f0d0e9c262b668cf362fbaa8111bb6cc15268909.tar.xz
Changed memory reference instructions to store the result as the implicit
type of the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/AsmParser/ParserInternals.h8
-rw-r--r--lib/AsmParser/llvmAsmParser.cpp36
-rw-r--r--lib/AsmParser/llvmAsmParser.y26
3 files changed, 29 insertions, 41 deletions
diff --git a/lib/AsmParser/ParserInternals.h b/lib/AsmParser/ParserInternals.h
index 2856c9b08c..3aa0e7c144 100644
--- a/lib/AsmParser/ParserInternals.h
+++ b/lib/AsmParser/ParserInternals.h
@@ -118,15 +118,7 @@ struct InstPlaceHolderHelper : public Instruction {
InstPlaceHolderHelper(const Type *Ty) : Instruction(Ty, UserOp1, "") {}
virtual Instruction *clone() const { abort(); }
-
- inline virtual void dropAllReferences() {}
virtual string getOpcode() const { return "placeholder"; }
-
- // No "operands"...
- virtual Value *getOperand(unsigned i) { return 0; }
- virtual const Value *getOperand(unsigned i) const { return 0; }
- virtual bool setOperand(unsigned i, Value *Val) { return false; }
- virtual unsigned getNumOperands() const { return 0; }
};
struct BBPlaceHolderHelper : public BasicBlock {
diff --git a/lib/AsmParser/llvmAsmParser.cpp b/lib/AsmParser/llvmAsmParser.cpp
index 9f18db0f88..19c22ddfa1 100644
--- a/lib/AsmParser/llvmAsmParser.cpp
+++ b/lib/AsmParser/llvmAsmParser.cpp
@@ -548,7 +548,7 @@ static const short yyrline[] = { 0,
741, 744, 749, 753, 758, 762, 771, 776, 785, 789,
793, 796, 799, 802, 807, 818, 826, 836, 844, 849,
856, 860, 866, 866, 868, 873, 878, 889, 926, 930,
- 935, 945, 950, 960
+ 935, 944, 949, 958
};
#endif
@@ -1955,9 +1955,9 @@ case 119:
case 120:
#line 930 "llvmAsmParser.y"
{
- ConstPoolVal *TyVal = new ConstPoolType(PointerType::getPointerType(yyvsp[0].TypeVal));
- TyVal = addConstValToConstantPool(TyVal);
- yyval.InstVal = new MallocInst((ConstPoolType*)TyVal);
+ const Type *Ty = PointerType::getPointerType(yyvsp[0].TypeVal);
+ addConstValToConstantPool(new ConstPoolType(Ty));
+ yyval.InstVal = new MallocInst(Ty);
;
break;}
case 121:
@@ -1966,36 +1966,34 @@ case 121:
if (!yyvsp[-3].TypeVal->isArrayType() || ((const ArrayType*)yyvsp[-3].TypeVal)->isSized())
ThrowException("Trying to allocate " + yyvsp[-3].TypeVal->getName() +
" as unsized array!");
-
+ const Type *Ty = PointerType::getPointerType(yyvsp[-3].TypeVal);
+ addConstValToConstantPool(new ConstPoolType(Ty));
Value *ArrSize = getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal);
- ConstPoolVal *TyVal = new ConstPoolType(PointerType::getPointerType(yyvsp[-3].TypeVal));
- TyVal = addConstValToConstantPool(TyVal);
- yyval.InstVal = new MallocInst((ConstPoolType*)TyVal, ArrSize);
+ yyval.InstVal = new MallocInst(Ty, ArrSize);
;
break;}
case 122:
-#line 945 "llvmAsmParser.y"
+#line 944 "llvmAsmParser.y"
{
- ConstPoolVal *TyVal = new ConstPoolType(PointerType::getPointerType(yyvsp[0].TypeVal));
- TyVal = addConstValToConstantPool(TyVal);
- yyval.InstVal = new AllocaInst((ConstPoolType*)TyVal);
+ const Type *Ty = PointerType::getPointerType(yyvsp[0].TypeVal);
+ addConstValToConstantPool(new ConstPoolType(Ty));
+ yyval.InstVal = new AllocaInst(Ty);
;
break;}
case 123:
-#line 950 "llvmAsmParser.y"
+#line 949 "llvmAsmParser.y"
{
if (!yyvsp[-3].TypeVal->isArrayType() || ((const ArrayType*)yyvsp[-3].TypeVal)->isSized())
ThrowException("Trying to allocate " + yyvsp[-3].TypeVal->getName() +
" as unsized array!");
-
+ const Type *Ty = PointerType::getPointerType(yyvsp[-3].TypeVal);
+ addConstValToConstantPool(new ConstPoolType(Ty));
Value *ArrSize = getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal);
- ConstPoolVal *TyVal = new ConstPoolType(PointerType::getPointerType(yyvsp[-3].TypeVal));
- TyVal = addConstValToConstantPool(TyVal);
- yyval.InstVal = new AllocaInst((ConstPoolType*)TyVal, ArrSize);
+ yyval.InstVal = new AllocaInst(Ty, ArrSize);
;
break;}
case 124:
-#line 960 "llvmAsmParser.y"
+#line 958 "llvmAsmParser.y"
{
if (!yyvsp[-1].TypeVal->isPointerType())
ThrowException("Trying to free nonpointer type " + yyvsp[-1].TypeVal->getName() + "!");
@@ -2224,7 +2222,7 @@ yyerrhandle:
}
return 1;
}
-#line 966 "llvmAsmParser.y"
+#line 964 "llvmAsmParser.y"
int yyerror(char *ErrorMsg) {
ThrowException(string("Parse error: ") + ErrorMsg);
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 6fa817fbfa..ffd8c663d3 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -928,34 +928,32 @@ InstVal : BinaryOps Types ValueRef ',' ValueRef {
}
MemoryInst : MALLOC Types {
- ConstPoolVal *TyVal = new ConstPoolType(PointerType::getPointerType($2));
- TyVal = addConstValToConstantPool(TyVal);
- $$ = new MallocInst((ConstPoolType*)TyVal);
+ const Type *Ty = PointerType::getPointerType($2);
+ addConstValToConstantPool(new ConstPoolType(Ty));
+ $$ = new MallocInst(Ty);
}
| MALLOC Types ',' UINT ValueRef {
if (!$2->isArrayType() || ((const ArrayType*)$2)->isSized())
ThrowException("Trying to allocate " + $2->getName() +
" as unsized array!");
-
+ const Type *Ty = PointerType::getPointerType($2);
+ addConstValToConstantPool(new ConstPoolType(Ty));
Value *ArrSize = getVal($4, $5);
- ConstPoolVal *TyVal = new ConstPoolType(PointerType::getPointerType($2));
- TyVal = addConstValToConstantPool(TyVal);
- $$ = new MallocInst((ConstPoolType*)TyVal, ArrSize);
+ $$ = new MallocInst(Ty, ArrSize);
}
| ALLOCA Types {
- ConstPoolVal *TyVal = new ConstPoolType(PointerType::getPointerType($2));
- TyVal = addConstValToConstantPool(TyVal);
- $$ = new AllocaInst((ConstPoolType*)TyVal);
+ const Type *Ty = PointerType::getPointerType($2);
+ addConstValToConstantPool(new ConstPoolType(Ty));
+ $$ = new AllocaInst(Ty);
}
| ALLOCA Types ',' UINT ValueRef {
if (!$2->isArrayType() || ((const ArrayType*)$2)->isSized())
ThrowException("Trying to allocate " + $2->getName() +
" as unsized array!");
-
+ const Type *Ty = PointerType::getPointerType($2);
+ addConstValToConstantPool(new ConstPoolType(Ty));
Value *ArrSize = getVal($4, $5);
- ConstPoolVal *TyVal = new ConstPoolType(PointerType::getPointerType($2));
- TyVal = addConstValToConstantPool(TyVal);
- $$ = new AllocaInst((ConstPoolType*)TyVal, ArrSize);
+ $$ = new AllocaInst(Ty, ArrSize);
}
| FREE Types ValueRef {
if (!$2->isPointerType())