diff options
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
| -rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 25 | 
1 files changed, 18 insertions, 7 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index ab5bbc03db955..cd62d00dfb536 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -3288,11 +3288,15 @@ public:    /// LLVM arguments and the types they were derived from.    RValue EmitCall(const CGFunctionInfo &CallInfo, const CGCallee &Callee,                    ReturnValueSlot ReturnValue, const CallArgList &Args, -                  llvm::Instruction **callOrInvoke = nullptr); - +                  llvm::Instruction **callOrInvoke, SourceLocation Loc); +  RValue EmitCall(const CGFunctionInfo &CallInfo, const CGCallee &Callee, +                  ReturnValueSlot ReturnValue, const CallArgList &Args, +                  llvm::Instruction **callOrInvoke = nullptr) { +    return EmitCall(CallInfo, Callee, ReturnValue, Args, callOrInvoke, +                    SourceLocation()); +  }    RValue EmitCall(QualType FnType, const CGCallee &Callee, const CallExpr *E, -                  ReturnValueSlot ReturnValue, -                  llvm::Value *Chain = nullptr); +                  ReturnValueSlot ReturnValue, llvm::Value *Chain = nullptr);    RValue EmitCallExpr(const CallExpr *E,                        ReturnValueSlot ReturnValue = ReturnValueSlot());    RValue EmitSimpleCallExpr(const CallExpr *E, ReturnValueSlot ReturnValue); @@ -3391,7 +3395,8 @@ public:                                               const llvm::CmpInst::Predicate Fp,                                               const llvm::CmpInst::Predicate Ip,                                               const llvm::Twine &Name = ""); -  llvm::Value *EmitARMBuiltinExpr(unsigned BuiltinID, const CallExpr *E); +  llvm::Value *EmitARMBuiltinExpr(unsigned BuiltinID, const CallExpr *E, +                                  llvm::Triple::ArchType Arch);    llvm::Value *EmitCommonNeonBuiltinExpr(unsigned BuiltinID,                                           unsigned LLVMIntrinsic, @@ -3400,7 +3405,8 @@ public:                                           unsigned Modifier,                                           const CallExpr *E,                                           SmallVectorImpl<llvm::Value *> &Ops, -                                         Address PtrOp0, Address PtrOp1); +                                         Address PtrOp0, Address PtrOp1, +                                         llvm::Triple::ArchType Arch);    llvm::Function *LookupNeonLLVMIntrinsic(unsigned IntrinsicID,                                            unsigned Modifier, llvm::Type *ArgTy,                                            const CallExpr *E); @@ -3414,7 +3420,8 @@ public:    llvm::Value *EmitNeonRShiftImm(llvm::Value *Vec, llvm::Value *Amt,                                   llvm::Type *Ty, bool usgn, const char *name);    llvm::Value *vectorWrapScalar16(llvm::Value *Op); -  llvm::Value *EmitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E); +  llvm::Value *EmitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E, +                                      llvm::Triple::ArchType Arch);    llvm::Value *BuildVector(ArrayRef<llvm::Value*> Ops);    llvm::Value *EmitX86BuiltinExpr(unsigned BuiltinID, const CallExpr *E); @@ -3747,6 +3754,10 @@ public:                              llvm::ConstantInt *TypeId, llvm::Value *Ptr,                              ArrayRef<llvm::Constant *> StaticArgs); +  /// Emit a reached-unreachable diagnostic if \p Loc is valid and runtime +  /// checking is enabled. Otherwise, just emit an unreachable instruction. +  void EmitUnreachable(SourceLocation Loc); +    /// \brief Create a basic block that will call the trap intrinsic, and emit a    /// conditional branch to it, for the -ftrapv checks.    void EmitTrapCheck(llvm::Value *Checked);  | 
