summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore
diff options
context:
space:
mode:
authorGabor Greif <ggreif@gmail.com>2010-03-22 09:11:00 +0000
committerGabor Greif <ggreif@gmail.com>2010-03-22 09:11:00 +0000
commite1517a084f56cd23dd4a64338e0865f53e978d9b (patch)
tree4e12a84b1a2fa11406d3f67c8884647983d532fb /llvm/lib/VMCore
parent7a743e15e31701db08f2092538ed2d5dfabe0cdb (diff)
downloadbcm5719-llvm-e1517a084f56cd23dd4a64338e0865f53e978d9b.tar.gz
bcm5719-llvm-e1517a084f56cd23dd4a64338e0865f53e978d9b.zip
backing out r99170 because it still fails on clang-x86_64-darwin10-fnt
llvm-svn: 99171
Diffstat (limited to 'llvm/lib/VMCore')
-rw-r--r--llvm/lib/VMCore/AsmWriter.cpp7
-rw-r--r--llvm/lib/VMCore/Instructions.cpp17
-rw-r--r--llvm/lib/VMCore/Verifier.cpp2
3 files changed, 9 insertions, 17 deletions
diff --git a/llvm/lib/VMCore/AsmWriter.cpp b/llvm/lib/VMCore/AsmWriter.cpp
index bbe6143a136..0eb9f020dc9 100644
--- a/llvm/lib/VMCore/AsmWriter.cpp
+++ b/llvm/lib/VMCore/AsmWriter.cpp
@@ -1875,7 +1875,6 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
if (PAL.getFnAttributes() != Attribute::None)
Out << ' ' << Attribute::getAsString(PAL.getFnAttributes());
} else if (const InvokeInst *II = dyn_cast<InvokeInst>(&I)) {
- Operand = II->getCalledValue();
const PointerType *PTy = cast<PointerType>(Operand->getType());
const FunctionType *FTy = cast<FunctionType>(PTy->getElementType());
const Type *RetTy = FTy->getReturnType();
@@ -1913,10 +1912,10 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
writeOperand(Operand, true);
}
Out << '(';
- for (unsigned op = 0, Eop = I.getNumOperands() - 3; op < Eop; ++op) {
- if (op)
+ for (unsigned op = 3, Eop = I.getNumOperands(); op < Eop; ++op) {
+ if (op > 3)
Out << ", ";
- writeParamOperand(I.getOperand(op), PAL.getParamAttributes(op + 1));
+ writeParamOperand(I.getOperand(op), PAL.getParamAttributes(op-2));
}
Out << ')';
diff --git a/llvm/lib/VMCore/Instructions.cpp b/llvm/lib/VMCore/Instructions.cpp
index e87f00462c4..8f4763f5a49 100644
--- a/llvm/lib/VMCore/Instructions.cpp
+++ b/llvm/lib/VMCore/Instructions.cpp
@@ -98,13 +98,6 @@ bool CallSite::hasArgument(const Value *Arg) const {
return false;
}
-User::op_iterator CallSite::getCallee() const {
- Instruction *II(getInstruction());
- return isCall()
- ? cast<CallInst>(II)->op_begin()
- : cast<InvokeInst>(II)->op_end() - 3; // Skip BB, BB, Function
-}
-
#undef CALLSITE_DELEGATE_GETTER
#undef CALLSITE_DELEGATE_SETTER
@@ -618,9 +611,10 @@ Instruction* CallInst::CreateFree(Value* Source, BasicBlock *InsertAtEnd) {
void InvokeInst::init(Value *Fn, BasicBlock *IfNormal, BasicBlock *IfException,
Value* const *Args, unsigned NumArgs) {
assert(NumOperands == 3+NumArgs && "NumOperands not set up?");
- Op<-3>() = Fn;
- Op<-2>() = IfNormal;
- Op<-1>() = IfException;
+ Use *OL = OperandList;
+ OL[0] = Fn;
+ OL[1] = IfNormal;
+ OL[2] = IfException;
const FunctionType *FTy =
cast<FunctionType>(cast<PointerType>(Fn->getType())->getElementType());
FTy = FTy; // silence warning.
@@ -629,13 +623,12 @@ void InvokeInst::init(Value *Fn, BasicBlock *IfNormal, BasicBlock *IfException,
(FTy->isVarArg() && NumArgs > FTy->getNumParams())) &&
"Calling a function with bad signature");
- Use *OL = OperandList;
for (unsigned i = 0, e = NumArgs; i != e; i++) {
assert((i >= FTy->getNumParams() ||
FTy->getParamType(i) == Args[i]->getType()) &&
"Invoking a function with a bad signature!");
- OL[i] = Args[i];
+ OL[i+3] = Args[i];
}
}
diff --git a/llvm/lib/VMCore/Verifier.cpp b/llvm/lib/VMCore/Verifier.cpp
index 6c01290ad2e..f1413825697 100644
--- a/llvm/lib/VMCore/Verifier.cpp
+++ b/llvm/lib/VMCore/Verifier.cpp
@@ -1483,7 +1483,7 @@ void Verifier::visitInstruction(Instruction &I) {
"Instruction does not dominate all uses!", Op, &I);
}
} else if (isa<InlineAsm>(I.getOperand(i))) {
- Assert1((i == 0 && isa<CallInst>(I)) || (i + 3 == e && isa<InvokeInst>(I)),
+ Assert1(i == 0 && (isa<CallInst>(I) || isa<InvokeInst>(I)),
"Cannot take the address of an inline asm!", &I);
}
}
OpenPOWER on IntegriCloud