Update the generated .cvs files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53943 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2008-07-23 00:54:54 +00:00
parent fc74abfba5
commit 1a570244f0
3 changed files with 345 additions and 307 deletions

File diff suppressed because it is too large Load Diff

View File

@ -354,7 +354,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 967 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
#line 967 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
{
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;

View File

@ -2704,7 +2704,20 @@ BBTerminatorInst :
RET ReturnedVal { // Return with a result...
ValueList &VL = *$2;
assert(!VL.empty() && "Invalid ret operands!");
$$ = ReturnInst::Create(&VL[0], VL.size());
const Type *ReturnType = CurFun.CurrentFunction->getReturnType();
if (VL.size() > 1 ||
(isa<StructType>(ReturnType) &&
(VL.empty() || VL[0]->getType() != ReturnType))) {
Value *RV = UndefValue::get(ReturnType);
for (unsigned i = 0, e = VL.size(); i != e; ++i) {
Instruction *I = InsertValueInst::Create(RV, VL[i], i, "mrv");
($<BasicBlockVal>-1)->getInstList().push_back(I);
RV = I;
}
$$ = ReturnInst::Create(RV);
} else {
$$ = ReturnInst::Create(VL[0]);
}
delete $2;
CHECK_FOR_ERROR
}
@ -3309,12 +3322,18 @@ MemoryInst : MALLOC Types OptCAlign {
delete $5;
}
| GETRESULT Types ValueRef ',' EUINT64VAL {
Value *TmpVal = getVal($2->get(), $3);
if (!GetResultInst::isValidOperands(TmpVal, $5))
GEN_ERROR("Invalid getresult operands");
$$ = new GetResultInst(TmpVal, $5);
delete $2;
if (!UpRefs.empty())
GEN_ERROR("Invalid upreference in type: " + (*$2)->getDescription());
if (!isa<StructType>($2->get()) && !isa<ArrayType>($2->get()))
GEN_ERROR("getresult insn requires an aggregate operand");
if (!ExtractValueInst::getIndexedType(*$2, $5))
GEN_ERROR("Invalid getresult index for type '" +
(*$2)->getDescription()+ "'");
Value *tmpVal = getVal(*$2, $3);
CHECK_FOR_ERROR
$$ = ExtractValueInst::Create(tmpVal, $5);
delete $2;
}
| GETELEMENTPTR Types ValueRef IndexList {
if (!UpRefs.empty())