Lines Matching refs:llvm

23 #include "llvm/ADT/StringExtras.h"
24 #include "llvm/IR/CallSite.h"
25 #include "llvm/IR/DataLayout.h"
26 #include "llvm/IR/InlineAsm.h"
27 #include "llvm/IR/Intrinsics.h"
100 llvm::BasicBlock *incoming = Builder.GetInsertBlock();
105 llvm::BasicBlock *outgoing = Builder.GetInsertBlock();
228 llvm::Value* CodeGenFunction::EmitCompoundStmt(const CompoundStmt &S, bool GetLast,
239 llvm::Value*
248 llvm::Value *RetAlloca = nullptr;
279 void CodeGenFunction::SimplifyForwardingBlocks(llvm::BasicBlock *BB) {
280 llvm::BranchInst *BI = dyn_cast<llvm::BranchInst>(BB->getTerminator());
301 void CodeGenFunction::EmitBlock(llvm::BasicBlock *BB, bool IsFinished) {
302 llvm::BasicBlock *CurBB = Builder.GetInsertBlock();
321 void CodeGenFunction::EmitBranch(llvm::BasicBlock *Target) {
325 llvm::BasicBlock *CurBB = Builder.GetInsertBlock();
338 void CodeGenFunction::EmitBlockAfterUses(llvm::BasicBlock *block) {
340 for (llvm::User *u : block->users()) {
341 if (llvm::Instruction *insn = dyn_cast<llvm::Instruction>(u)) {
460 llvm::Value *V = Builder.CreateBitCast(EmitScalarExpr(S.getTarget()),
462 llvm::BasicBlock *CurBB = Builder.GetInsertBlock();
465 llvm::BasicBlock *IndGotoBB = GetIndirectGotoBlock();
469 cast<llvm::PHINode>(IndGotoBB->begin())->addIncoming(V, CurBB);
508 llvm::BasicBlock *ThenBlock = createBasicBlock("if.then");
509 llvm::BasicBlock *ContBlock = createBasicBlock("if.end");
510 llvm::BasicBlock *ElseBlock = ContBlock;
529 Builder.SetCurrentDebugLocation(llvm::DebugLoc());
537 Builder.SetCurrentDebugLocation(llvm::DebugLoc());
545 void CodeGenFunction::EmitCondBrHints(llvm::LLVMContext &Context,
546 llvm::BranchInst *CondBr,
553 SmallVector<llvm::Value *, 2> Metadata(1);
568 MetadataName = "llvm.loop.vectorize.width";
572 MetadataName = "llvm.loop.vectorize.unroll";
575 MetadataName = "llvm.loop.unroll.enable";
578 MetadataName = "llvm.loop.unroll.count";
582 llvm::Value *Value;
583 llvm::MDString *Name;
590 Name = llvm::MDString::get(Context, "llvm.loop.vectorize.enable");
599 Name = llvm::MDString::get(Context, MetadataName);
600 Value = llvm::ConstantInt::get(Int32Ty, ValueInt);
603 Name = llvm::MDString::get(Context, MetadataName);
607 Name = llvm::MDString::get(Context, MetadataName);
608 Value = llvm::ConstantInt::get(Int32Ty, ValueInt);
612 SmallVector<llvm::Value *, 2> OpValues;
617 Metadata.push_back(llvm::MDNode::get(Context, OpValues));
621 // Add llvm.loop MDNode to CondBr.
622 llvm::MDNode *LoopID = llvm::MDNode::get(Context, Metadata);
625 CondBr->setMetadata("llvm.loop", LoopID);
662 llvm::Value *BoolCondVal = EvaluateExprAsBool(S.getCond());
667 if (llvm::ConstantInt *C = dyn_cast<llvm::ConstantInt>(BoolCondVal))
672 llvm::BasicBlock *LoopBody = createBasicBlock("while.body");
674 llvm::BasicBlock *ExitBlock = LoopExit.getBlock();
677 llvm::BranchInst *CondBr =
729 llvm::BasicBlock *LoopBody = createBasicBlock("do.body");
747 llvm::Value *BoolCondVal = EvaluateExprAsBool(S.getCond());
754 if (llvm::ConstantInt *C = dyn_cast<llvm::ConstantInt>(BoolCondVal))
760 llvm::BranchInst *CondBr =
799 llvm::BasicBlock *CondBlock = Continue.getBlock();
824 llvm::BasicBlock *ExitBlock = LoopExit.getBlock();
831 llvm::BasicBlock *ForBody = createBasicBlock("for.body");
835 llvm::Value *BoolCondVal = EvaluateExprAsBool(S.getCond());
836 llvm::BranchInst *CondBr =
904 llvm::BasicBlock *CondBlock = createBasicBlock("for.cond");
911 llvm::BasicBlock *ExitBlock = LoopExit.getBlock();
916 llvm::BasicBlock *ForBody = createBasicBlock("for.body");
920 llvm::Value *BoolCondVal = EvaluateExprAsBool(S.getCond());
921 llvm::BranchInst *CondBr = Builder.CreateCondBr(
1008 if (llvm::Value *NRVOFlag = NRVOFlags[S.getNRVOCandidate()])
1092 llvm::APSInt LHS = S.getLHS()->EvaluateKnownConstInt(getContext());
1093 llvm::APSInt RHS = S.getRHS()->EvaluateKnownConstInt(getContext());
1100 llvm::BasicBlock *CaseDest = createBasicBlock("sw.bb");
1108 llvm::APInt Range = RHS - LHS;
1110 if (Range.ult(llvm::APInt(Range.getBitWidth(), 64))) {
1132 llvm::BasicBlock *RestoreBB = Builder.GetInsertBlock();
1137 llvm::BasicBlock *FalseDest = CaseRangeBlock;
1144 llvm::Value *Diff =
1146 llvm::Value *Cond =
1149 llvm::MDNode *Weights = nullptr;
1187 llvm::ConstantInt *CaseVal =
1214 llvm::BasicBlock *CaseDest = createBasicBlock("sw.bb");
1235 llvm::ConstantInt *CaseVal =
1255 llvm::BasicBlock *DefaultBlock = SwitchInsn->getDefaultDest();
1416 const llvm::APSInt &ConstantCondValue,
1470 llvm::SwitchInst *SavedSwitchInsn = SwitchInsn;
1472 llvm::BasicBlock *SavedCRBlock = CaseRangeBlock;
1476 llvm::APSInt ConstantCondValue;
1518 llvm::Value *CondV = EmitScalarExpr(S.getCond());
1524 llvm::BasicBlock *DefaultBlock = createBasicBlock("sw.default");
1591 SwitchInsn->setMetadata(llvm::LLVMContext::MD_prof,
1635 Result += llvm::utostr(Index);
1680 llvm::Value*
1685 llvm::Value *Arg;
1690 llvm::Type *Ty = ConvertType(InputType);
1692 if (Size <= 64 && llvm::isPowerOf2_64(Size)) {
1693 Ty = llvm::IntegerType::get(getLLVMContext(), Size);
1694 Ty = llvm::PointerType::getUnqual(Ty);
1711 llvm::Value* CodeGenFunction::EmitAsmInput(
1729 static llvm::MDNode *getAsmSrcLocInfo(const StringLiteral *Str,
1731 SmallVector<llvm::Value *, 8> Locs;
1733 Locs.push_back(llvm::ConstantInt::get(CGF.Int32Ty,
1746 Locs.push_back(llvm::ConstantInt::get(CGF.Int32Ty,
1751 return llvm::MDNode::get(CGF.getLLVMContext(), Locs);
1788 std::vector<llvm::Type *> ResultRegTypes;
1789 std::vector<llvm::Type *> ResultTruncRegTypes;
1790 std::vector<llvm::Type *> ArgTypes;
1791 std::vector<llvm::Value*> Args;
1795 std::vector<llvm::Value*> InOutArgs;
1796 std::vector<llvm::Type*> InOutArgTypes;
1846 if (llvm::Type* AdjTy =
1866 llvm::Value *Arg = EmitAsmInputLValue(Info, Dest, InputExpr->getType(),
1870 if (llvm::Type* AdjTy =
1876 InOutConstraints += llvm::utostr(i);
1905 llvm::Value *Arg = EmitAsmInput(Info, InputExpr, Constraints);
1920 if (isa<llvm::PointerType>(Arg->getType()))
1922 llvm::Type *OutputTy = ConvertType(OutputType);
1923 if (isa<llvm::IntegerType>(OutputTy))
1925 else if (isa<llvm::PointerType>(OutputTy))
1933 if (llvm::Type* AdjTy =
1976 llvm::Type *ResultType;
1982 ResultType = llvm::StructType::get(getLLVMContext(), ResultRegTypes);
1984 llvm::FunctionType *FTy =
1985 llvm::FunctionType::get(ResultType, ArgTypes, false);
1988 llvm::InlineAsm::AsmDialect AsmDialect = isa<MSAsmStmt>(&S) ?
1989 llvm::InlineAsm::AD_Intel : llvm::InlineAsm::AD_ATT;
1990 llvm::InlineAsm *IA =
1991 llvm::InlineAsm::get(FTy, AsmString, Constraints, HasSideEffect,
1993 llvm::CallInst *Result = Builder.CreateCall(IA, Args);
1994 Result->addAttribute(llvm::AttributeSet::FunctionIndex,
1995 llvm::Attribute::NoUnwind);
2004 std::vector<llvm::Value*> RegResults;
2009 llvm::Value *Tmp = Builder.CreateExtractValue(Result, i, "asmresult");
2015 llvm::Value *Tmp = RegResults[i];
2020 llvm::Type *TruncTy = ResultTruncRegTypes[i];
2029 llvm::IntegerType::get(getLLVMContext(), (unsigned)ResSize));
2034 llvm::IntegerType::get(getLLVMContext(), (unsigned)TmpSize));
2084 llvm::Function *
2091 llvm::Function *F = CGF.GenerateCapturedStmtFunction(S);
2100 llvm::Value *
2107 llvm::Function *
2126 llvm::FunctionType *FuncLLVMTy = CGM.getTypes().GetFunctionType(FuncInfo);
2128 llvm::Function *F =
2129 llvm::Function::Create(FuncLLVMTy, llvm::GlobalValue::InternalLinkage,
2138 llvm::Value *DeclPtr = LocalDeclMap[CD->getContextParam()];