forked from OSchip/llvm-project
parent
bac7498f8e
commit
d10089a5b4
|
@ -31,6 +31,7 @@
|
|||
#include "llvm/Support/CallSite.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/GetElementPtrTypeIterator.h"
|
||||
#include "llvm/Target/TargetOptions.h"
|
||||
using namespace llvm;
|
||||
|
||||
namespace {
|
||||
|
@ -1243,6 +1244,11 @@ bool X86FastISel::X86SelectCall(Instruction *I) {
|
|||
CC != CallingConv::X86_FastCall)
|
||||
return false;
|
||||
|
||||
// fastcc with -tailcallopt is intended to provide a guaranteed
|
||||
// tail call optimization. Fastisel doesn't know how to do that.
|
||||
if (CC == CallingConv::Fast && PerformTailCallOpt)
|
||||
return false;
|
||||
|
||||
// Let SDISel handle vararg functions.
|
||||
const PointerType *PT = cast<PointerType>(CS.getCalledValue()->getType());
|
||||
const FunctionType *FTy = cast<FunctionType>(PT->getElementType());
|
||||
|
|
Loading…
Reference in New Issue