【发布时间】:2020-04-14 12:26:53
【问题描述】:
我正在尝试使用 llvm::IRBuilder 创建 Add/Sub/Mul/Div 操作。但是https://llvm.org/doxygen/classllvm_1_1IRBuilder.html#a4ef70bab263e38c5e0b8c1bf95a5d814里面有很多api:
Value * CreateAdd (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false);
Value * CreateNSWAdd (Value *LHS, Value *RHS, const Twine &Name="");
Value * CreateNUWAdd (Value *LHS, Value *RHS, const Twine &Name="");
Value * CreateSub (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false);
Value * CreateNSWSub (Value *LHS, Value *RHS, const Twine &Name="");
Value * CreateNUWSub (Value *LHS, Value *RHS, const Twine &Name="");
Value * CreateMul (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false);
Value * CreateNSWMul (Value *LHS, Value *RHS, const Twine &Name="");
Value * CreateNUWMul (Value *LHS, Value *RHS, const Twine &Name="");
Value * CreateUDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false);
Value * CreateExactUDiv (Value *LHS, Value *RHS, const Twine &Name="");
Value * CreateSDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false);
Value * CreateExactSDiv (Value *LHS, Value *RHS, const Twine &Name="");
当我想生成 Add/Sub/Mul/Div 操作时应该使用哪一个?
【问题讨论】:
标签: c++ llvm llvm-clang