diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 18:49:54 +0900 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 18:49:54 +0900 |
commit | e2810c9a248f4c7fbfae84bb32b6f7e01027458b (patch) | |
tree | ae0b02a8491b969a1cee94ea16ffe42c559143c5 /clang/lib/CodeGen/CodeGenFunction.h | |
parent | fa04eb4af95c1ca7377279728cb004bcd2324d01 (diff) | |
parent | bdcf47e4bcb92889665825654bb80a8bbe30379e (diff) | |
download | llvm-users/chapuni/cov/single/switch.zip llvm-users/chapuni/cov/single/switch.tar.gz llvm-users/chapuni/cov/single/switch.tar.bz2 |
Merge branch 'users/chapuni/cov/single/base' into users/chapuni/cov/single/switchusers/chapuni/cov/single/switch
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 6145c6a..cdeff1e 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -315,7 +315,7 @@ public: SmallVector<const BinaryOperator *, 16> MCDCLogOpStack; /// Stack to track the controlled convergence tokens. - SmallVector<llvm::IntrinsicInst *, 4> ConvergenceTokenStack; + SmallVector<llvm::ConvergenceControlInst *, 4> ConvergenceTokenStack; /// Number of nested loop to be consumed by the last surrounding /// loop-associated directive. @@ -4157,6 +4157,16 @@ public: // but in the future we will implement some sort of IR. } + void EmitOpenACCSetConstruct(const OpenACCSetConstruct &S) { + // TODO OpenACC: Implement this. It is currently implemented as a 'no-op', + // but in the future we will implement some sort of IR. + } + + void EmitOpenACCUpdateConstruct(const OpenACCUpdateConstruct &S) { + // TODO OpenACC: Implement this. It is currently implemented as a 'no-op', + // but in the future we will implement some sort of IR. + } + //===--------------------------------------------------------------------===// // LValue Expression Emission //===--------------------------------------------------------------------===// @@ -4780,6 +4790,7 @@ public: llvm::Value *EmitAMDGPUBuiltinExpr(unsigned BuiltinID, const CallExpr *E); llvm::Value *EmitHLSLBuiltinExpr(unsigned BuiltinID, const CallExpr *E, ReturnValueSlot ReturnValue); + llvm::Value *EmitSPIRVBuiltinExpr(unsigned BuiltinID, const CallExpr *E); llvm::Value *EmitScalarOrConstFoldImmArg(unsigned ICEArguments, unsigned Idx, const CallExpr *E); llvm::Value *EmitSystemZBuiltinExpr(unsigned BuiltinID, const CallExpr *E); @@ -5258,29 +5269,20 @@ public: llvm::Value *emitBoolVecConversion(llvm::Value *SrcVec, unsigned NumElementsDst, const llvm::Twine &Name = ""); - // Adds a convergence_ctrl token to |Input| and emits the required parent - // convergence instructions. - template <typename CallType> - CallType *addControlledConvergenceToken(CallType *Input) { - return cast<CallType>( - addConvergenceControlToken(Input, ConvergenceTokenStack.back())); - } private: // Emits a convergence_loop instruction for the given |BB|, with |ParentToken| // as it's parent convergence instr. - llvm::IntrinsicInst *emitConvergenceLoopToken(llvm::BasicBlock *BB, - llvm::Value *ParentToken); + llvm::ConvergenceControlInst *emitConvergenceLoopToken(llvm::BasicBlock *BB); + // Adds a convergence_ctrl token with |ParentToken| as parent convergence // instr to the call |Input|. - llvm::CallBase *addConvergenceControlToken(llvm::CallBase *Input, - llvm::Value *ParentToken); + llvm::CallBase *addConvergenceControlToken(llvm::CallBase *Input); + // Find the convergence_entry instruction |F|, or emits ones if none exists. // Returns the convergence instruction. - llvm::IntrinsicInst *getOrEmitConvergenceEntryToken(llvm::Function *F); - // Find the convergence_loop instruction for the loop defined by |LI|, or - // emits one if none exists. Returns the convergence instruction. - llvm::IntrinsicInst *getOrEmitConvergenceLoopToken(const LoopInfo *LI); + llvm::ConvergenceControlInst * + getOrEmitConvergenceEntryToken(llvm::Function *F); private: llvm::MDNode *getRangeForLoadFromType(QualType Ty); |