Lines Matching defs:builder
24 mlir::OpBuilder builder(&context);
25 auto loc = builder.getUnknownLoc();
29 moduleOp = builder.create<mlir::ModuleOp>(loc);
30 builder.setInsertionPointToStart(moduleOp->getBody());
31 mlir::func::FuncOp func = builder.create<mlir::func::FuncOp>(
32 loc, "func1", builder.getFunctionType(std::nullopt, std::nullopt));
34 builder.setInsertionPointToStart(entryBlock);
36 firBuilder = std::make_unique<fir::FirOpBuilder>(builder, kindMap);
46 static arith::CmpIOp createCondition(fir::FirOpBuilder &builder) {
47 auto loc = builder.getUnknownLoc();
48 auto zero1 = builder.createIntegerConstant(loc, builder.getIndexType(), 0);
49 auto zero2 = builder.createIntegerConstant(loc, builder.getIndexType(), 0);
50 return builder.create<arith::CmpIOp>(
67 auto builder = getBuilder();
68 auto loc = builder.getUnknownLoc();
69 auto cdt = createCondition(builder);
70 auto ifBuilder = builder.genIfThen(loc, cdt);
76 auto builder = getBuilder();
77 auto loc = builder.getUnknownLoc();
78 auto cdt = createCondition(builder);
79 auto ifBuilder = builder.genIfThenElse(loc, cdt);
85 auto builder = getBuilder();
86 auto loc = builder.getUnknownLoc();
87 auto cdt = createCondition(builder);
88 auto ifBuilder = builder.genIfOp(loc, {}, cdt, false);
94 auto builder = getBuilder();
95 auto loc = builder.getUnknownLoc();
96 auto cdt = createCondition(builder);
97 auto ifBuilder = builder.genIfOp(loc, {}, cdt, true);
107 auto builder = getBuilder();
108 auto loc = builder.getUnknownLoc();
110 builder.createIntegerConstant(loc, builder.getIndexType(), 0);
111 auto res = builder.genIsNotNullAddr(loc, dummyValue);
118 auto builder = getBuilder();
119 auto loc = builder.getUnknownLoc();
121 builder.createIntegerConstant(loc, builder.getIndexType(), 0);
122 auto res = builder.genIsNullAddr(loc, dummyValue);
129 auto builder = getBuilder();
130 auto loc = builder.getUnknownLoc();
132 auto cst = builder.createNullConstant(loc);
135 EXPECT_EQ(fir::ReferenceType::get(builder.getNoneType()),
137 auto idxTy = builder.getIndexType();
139 cst = builder.createNullConstant(loc, idxTy);
142 EXPECT_EQ(builder.getIndexType(), zeroOp.getResult().getType());
146 auto builder = getBuilder();
147 auto ctx = builder.getContext();
148 auto loc = builder.getUnknownLoc();
150 auto cst = builder.createRealZeroConstant(loc, realTy);
159 auto builder = getBuilder();
160 auto loc = builder.getUnknownLoc();
161 auto b = builder.createBool(loc, false);
162 checkIntegerConstant(b, builder.getIntegerType(1), 0);
166 auto builder = getBuilder();
167 auto ty = builder.getVarLenSeqTy(builder.getI64Type());
175 auto builder = getBuilder();
176 auto func2 = builder.getNamedFunction("func2");
178 auto loc = builder.getUnknownLoc();
179 func2 = builder.createFunction(
180 loc, "func2", builder.getFunctionType(std::nullopt, std::nullopt));
181 auto func2query = builder.getNamedFunction("func2");
186 auto builder = getBuilder();
187 auto loc = builder.getUnknownLoc();
188 auto i64Type = IntegerType::get(builder.getContext(), 64);
189 auto global = builder.createGlobal(
190 loc, i64Type, "global1", builder.createInternalLinkage(), {}, true);
197 builder.createInternalLinkage().getValue(), global.getLinkName().value());
200 auto g1 = builder.getNamedGlobal("global1");
202 auto g2 = builder.getNamedGlobal("global7");
204 auto g3 = builder.getNamedGlobal("");
209 auto builder = getBuilder();
210 auto loc = builder.getUnknownLoc();
211 auto i32Type = IntegerType::get(builder.getContext(), 32);
212 auto attr = builder.getIntegerAttr(i32Type, 16);
213 auto global = builder.createGlobal(
214 loc, i32Type, "global2", builder.createLinkOnceLinkage(), attr, false);
225 builder.createLinkOnceLinkage().getValue(), global.getLinkName().value());
244 auto builder = getBuilder();
245 auto loc = mlir::FileLineColLoc::get(builder.getStringAttr("file1"), 10, 5);
247 fir::factory::locationToLineNo(builder, loc, builder.getI64Type());
248 checkIntegerConstant(line, builder.getI64Type(), 10);
250 builder, builder.getUnknownLoc(), builder.getI64Type());
251 checkIntegerConstant(line, builder.getI64Type(), 0);
255 auto builder = getBuilder();
256 auto type = fir::CharacterType::get(builder.getContext(), 1, 16);
259 auto seqTy = builder.getVarLenSeqTy(builder.getI64Type(), 10);
261 EXPECT_FALSE(fir::hasDynamicSize(builder.getI64Type()));
265 auto builder = getBuilder();
267 mlir::FileLineColLoc::get(builder.getStringAttr("file1.f90"), 10, 5);
268 mlir::Value locToFile = fir::factory::locationToFilename(builder, loc);
271 auto global = builder.getNamedGlobal(symbol);
288 auto builder = getBuilder();
290 auto loc = builder.getUnknownLoc();
291 auto op = builder.createStringLitOp(loc, data);
298 auto builder = getBuilder();
299 auto loc = builder.getUnknownLoc();
301 auto strLit = fir::factory::createStringLiteral(builder, loc, strValue);
306 checkIntegerConstant(charBox->getLen(), builder.getCharacterLengthType(), 16);
308 checkIntegerConstant(generalGetLen, builder.getCharacterLengthType(), 16);
313 auto global = builder.getNamedGlobal(symbol);
315 builder.createLinkOnceLinkage().getValue(), global.getLinkName().value());
316 EXPECT_EQ(fir::CharacterType::get(builder.getContext(), 1, strValue.size()),
331 auto builder = getBuilder();
332 auto loc = builder.getUnknownLoc();
334 auto var = builder.allocateLocal(
335 loc, builder.getI64Type(), "", varName, {}, {}, false);
338 EXPECT_EQ(builder.getI64Type(), allocaOp.getInType());
358 auto builder = getBuilder();
359 auto loc = builder.getUnknownLoc();
360 auto c10 = builder.createIntegerConstant(loc, builder.getI64Type(), 10);
361 auto c100 = builder.createIntegerConstant(loc, builder.getI64Type(), 100);
363 auto shape = builder.genShape(loc, extents);
368 auto builder = getBuilder();
369 auto loc = builder.getUnknownLoc();
370 auto c10 = builder.createIntegerConstant(loc, builder.getI64Type(), 10);
371 auto c100 = builder.createIntegerConstant(loc, builder.getI64Type(), 100);
372 auto c1 = builder.createIntegerConstant(loc, builder.getI64Type(), 100);
375 auto shape = builder.genShape(loc, shifts, extents);
385 auto builder = getBuilder();
386 auto loc = builder.getUnknownLoc();
387 auto c10 = builder.createIntegerConstant(loc, builder.getI64Type(), 10);
388 auto c100 = builder.createIntegerConstant(loc, builder.getI64Type(), 100);
392 auto shape = builder.genShape(loc, aab);
397 auto builder = getBuilder();
398 auto loc = builder.getUnknownLoc();
400 auto strLit = fir::factory::createStringLiteral(builder, loc, strValue);
401 auto len = fir::factory::readCharLen(builder, loc, strLit);
406 auto builder = getBuilder();
407 auto loc = builder.getUnknownLoc();
409 auto strLit = fir::factory::createStringLiteral(builder, loc, strValue);
410 auto ext = fir::factory::getExtents(loc, builder, strLit);
412 auto c10 = builder.createIntegerConstant(loc, builder.getI64Type(), 10);
413 auto c100 = builder.createIntegerConstant(loc, builder.getI64Type(), 100);
416 auto arrayTy = fir::SequenceType::get(shape, builder.getI64Type());
417 mlir::Value array = builder.create<fir::UndefOp>(loc, arrayTy);
420 auto readExtents = fir::factory::getExtents(loc, builder, ex);
425 auto builder = getBuilder();
426 auto loc = builder.getUnknownLoc();
428 mlir::Type i64Ty = mlir::IntegerType::get(builder.getContext(), 64);
429 mlir::Value zeroInt = fir::factory::createZeroValue(builder, loc, i64Ty);
437 mlir::Type f32Ty = mlir::Float32Type::get(builder.getContext());
438 mlir::Value zeroFloat = fir::factory::createZeroValue(builder, loc, f32Ty);
446 mlir::Type boolTy = mlir::IntegerType::get(builder.getContext(), 1);
447 mlir::Value flaseBool = fir::factory::createZeroValue(builder, loc, boolTy);
457 auto builder = getBuilder();
458 auto loc = builder.getUnknownLoc();
472 auto ptrValArray = builder.create<fir::UndefOp>(loc, ptrTyArray);
473 auto ptrValScalar = builder.create<fir::UndefOp>(loc, ptrTyScalar);
474 auto boxRefValArray = builder.create<fir::UndefOp>(loc, boxRefTyArray);
475 auto boxRefValScalar = builder.create<fir::UndefOp>(loc, boxRefTyScalar);
476 auto boxValArray = builder.create<fir::UndefOp>(loc, boxTyArray);
477 auto boxValScalar = builder.create<fir::UndefOp>(loc, boxTyScalar);
486 auto extent = builder.create<fir::UndefOp>(loc, builder.getIndexType());
497 auto f32Ty = mlir::Float32Type::get(builder.getContext());
498 mlir::Type f32SeqTy = builder.getVarLenSeqTy(f32Ty);
512 fir::RecordType::get(builder.getContext(), "derived_test");
516 parameters.emplace_back("p1", builder.getI64Type());
520 builder.getVarLenSeqTy(derivedWithLengthTy);
536 auto builder = getBuilder();
537 auto ctx = builder.getContext();
538 auto loc = builder.getUnknownLoc();
541 auto arg = builder.create<fir::UndefOp>(loc, realTy);
544 mlir::Operation *op1 = builder.create<mlir::arith::AddFOp>(loc, arg, arg);
551 // Test that the builder is copied properly.
552 fir::FirOpBuilder builder_copy(builder);
556 builder.setFastMathFlags(FMF1);
561 // Modifying FastMathFlags for the copy must not affect the original builder.
562 mlir::Operation *op2 = builder.create<mlir::arith::AddFOp>(loc, arg, arg);
569 // Modifying FastMathFlags for the original builder must not affect the copy.
578 // Test that the builder copy inherits FastMathFlags from the original.
579 fir::FirOpBuilder builder_copy2(builder);
591 auto builder = getBuilder();
592 auto ctx = builder.getContext();
593 auto loc = builder.getUnknownLoc();
596 auto arg = builder.create<fir::UndefOp>(loc, intTy);
599 mlir::Operation *op1 = builder.create<mlir::arith::AddIOp>(loc, arg, arg);
607 // Test that the builder is copied properly.
608 fir::FirOpBuilder builder_copy(builder);
611 builder.setIntegerOverflowFlags(nsw);
616 // builder.
617 mlir::Operation *op2 = builder.create<mlir::arith::AddIOp>(loc, arg, arg);
625 // Modifying IntegerOverflowFlags for the original builder must not affect the
636 // Test that the builder copy inherits IntegerOverflowFlags from the original.
637 fir::FirOpBuilder builder_copy2(builder);