当前位置: 首页>>代码示例>>C++>>正文


C++ IRBuilder::CreateFAdd方法代码示例

本文整理汇总了C++中IRBuilder::CreateFAdd方法的典型用法代码示例。如果您正苦于以下问题:C++ IRBuilder::CreateFAdd方法的具体用法?C++ IRBuilder::CreateFAdd怎么用?C++ IRBuilder::CreateFAdd使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IRBuilder的用法示例。


在下文中一共展示了IRBuilder::CreateFAdd方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: IncrementTimeCounter

static void IncrementTimeCounter(Value* Inc, Value* calle, unsigned Index, GlobalVariable* Counters, IRBuilder<>& Builder, Value* Point)
{
   LLVMContext &Context = Inc->getContext();
   //In order to insert instruction after Point, we use the nextIns function.
   Value* nextIns = getNextIns(Point);
   Builder.SetInsertPoint(dyn_cast<Instruction>(nextIns));

   // Create the getelementptr constant expression
   std::vector<Constant*> Indices(2);
   Indices[0] = Constant::getNullValue(Type::getInt32Ty(Context));
   Indices[1] = ConstantInt::get(Type::getInt32Ty(Context), Index);
   Constant *ElementPtr =
      ConstantExpr::getGetElementPtr(Counters, Indices);

   // Load, increment and store the value back.
   // Use this formula: a = a + end_time - start_time
   ArrayRef<Value*> args;
   CallInst* Inc_end = Builder.CreateCall(calle, args, "");
   Value* OldVal = Builder.CreateLoad(ElementPtr, "OldTimeCounter");
   Value* TmpVal = Builder.CreateFSub(OldVal, Inc, "TmpTimeCounter");
   Value* NewVal = Builder.CreateFAdd(TmpVal, Inc_end, "NewTimeCounter");
   Builder.CreateStore(NewVal, ElementPtr);
}
开发者ID:wzzhang-HIT,项目名称:llvm-prof,代码行数:23,代码来源:TimeProfiling.cpp


注:本文中的IRBuilder::CreateFAdd方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。