Changed memory reference instructions to store the result as the implicit
authorChris Lattner <sabre@nondot.org>
Sat, 7 Jul 2001 08:36:30 +0000 (08:36 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 7 Jul 2001 08:36:30 +0000 (08:36 +0000)
type of the instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/ParserInternals.h
lib/AsmParser/llvmAsmParser.cpp
lib/AsmParser/llvmAsmParser.y

index 2856c9b08cdaf8c854cbb62903c5fa354d9186b7..3aa0e7c14422fbe9c416be5c1137d5d0a0ce5617 100644 (file)
@@ -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 {
index 9f18db0f8840714fa8701ffe8b436a965dce8c3c..19c22ddfa103ba002a0cbca80819ce12a67484c6 100644 (file)
@@ -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);
index 6fa817fbfaacbf838a8f8a461021bc0f02014c8f..ffd8c663d3d3a022c7c8e1e7df60340ca265f631 100644 (file)
@@ -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())