| /llvm-project-15.0.7/flang/test/Fir/ |
| H A D | target-rewrite-boxchar.fir | 6 // Test that we rewrite the signatures and bodies of functions that take boxchar 12 func.func @boxcharparams(%arg0 : !fir.boxchar<1>, %arg1 : !fir.boxchar<1>) -> i64 { 21 %1:2 = fir.unboxchar %arg0 : (!fir.boxchar<1>) -> (!fir.ref<!fir.char<1>>, i64) 28 // boxchar. 33 func.func @boxcharsret(%arg0 : !fir.boxchar<1> {llvm.sret}, %arg1 : !fir.boxchar<1>) { 63 func.func @boxcharmultiple(%arg0 : !fir.boxchar<1> {llvm.sret}, %arg1 : !fir.boxchar<1>, %arg2 : !f… 67 // Test that we rewrite calls to functions that take boxchar arguments. 70 func.func private @boxcharcallee(%x : !fir.boxchar<1>) 79 // INT32: [[U:%[0-9A-Za-z]+]]:2 = fir.unboxchar [[B]] : (!fir.boxchar<1>) -> 87 fir.call @boxcharcallee(%4) : (!fir.boxchar<1>) -> () [all …]
|
| H A D | target-rewrite-char-proc.fir | 9 func.func private @takes_char(!fir.boxchar<1>) 10 func.func private @char_proc(!fir.ref<!fir.char<1,7>>, index) -> !fir.boxchar<1> 13 %0 = fir.address_of(@char_proc) : (!fir.ref<!fir.char<1,7>>, index) -> !fir.boxchar<1> 15 %1 = fir.convert %0 : ((!fir.ref<!fir.char<1,7>>, index) -> !fir.boxchar<1>) -> (() -> ()) 30 %0 = fir.address_of(@char_proc) : (!fir.ref<!fir.char<1,7>>, index) -> !fir.boxchar<1> 56 %1:2 = fir.unboxchar %arg1 : (!fir.boxchar<1>) -> (!fir.ref<!fir.char<1,?>>, index) 58 %2 = fir.emboxchar %1#0, %c5 : (!fir.ref<!fir.char<1,?>>, index) -> !fir.boxchar<1> 62 ….convert %3 : (() -> ()) -> ((!fir.ref<!fir.char<1,7>>, index, !fir.boxchar<1>) -> !fir.boxchar<1>) 63 …%7 = fir.call %6(%0, %4, %2) : (!fir.ref<!fir.char<1,7>>, index, !fir.boxchar<1>) -> !fir.boxchar<… 65 %9 = fir.emboxchar %8, %4 : (!fir.ref<!fir.char<1,?>>, index) -> !fir.boxchar<1> [all …]
|
| H A D | convert-to-llvm-target.fir | 39 func.func @unboxchar_i8(%arg0 : !fir.boxchar<1>) -> () { 57 func.func @unboxchar_i32(%arg0 : !fir.boxchar<4>) -> () { 58 fir.unboxchar %arg0 : (!fir.boxchar<4>) -> (!fir.ref<!fir.char<4>>, i64) 79 func.func @boxchar_len_i8_i32(%arg0 : !fir.boxchar<1>) -> () { 80 fir.boxchar_len %arg0 : (!fir.boxchar<1>) -> i32 97 func.func @boxchar_len_i8_i64(%arg0 : !fir.boxchar<1>) -> () { 98 fir.boxchar_len %arg0 : (!fir.boxchar<1>) -> i64 115 func.func @boxchar_len_i32_i32(%arg0 : !fir.boxchar<4>) -> () { 116 fir.boxchar_len %arg0 : (!fir.boxchar<4>) -> i32 133 func.func @boxchar_len_i32_i64(%arg0 : !fir.boxchar<4>) -> (i64) { [all …]
|
| H A D | boxchar.fir | 4 // Test of building and passing boxchar. 6 func.func private @callee(%x : !fir.boxchar<1>) 13 %4 = fir.emboxchar %3, %2 : (!fir.ref<!fir.char<1,?>>, i64) -> !fir.boxchar<1> 15 fir.call @callee(%4) : (!fir.boxchar<1>) -> ()
|
| H A D | boxproc.fir | 161 %2 = fir.alloca tuple<!fir.boxchar<1>> 162 …= fir.coordinate_of %2, %c0_i32 : (!fir.ref<tuple<!fir.boxchar<1>>>, i32) -> !fir.ref<!fir.boxchar… 165 fir.store %5 to %3 : !fir.ref<!fir.boxchar<1>> 188 …_message) : (!fir.ref<!fir.char<1,10>>, index, !fir.ref<tuple<!fir.boxchar<1>>>) -> !fir.boxchar<1> 189 …<!fir.char<1,10>>, index, !fir.ref<tuple<!fir.boxchar<1>>>) -> !fir.boxchar<1>, !fir.ref<tuple<!fi… 202 …har<1,10>>, %arg1: index, %arg2: !fir.ref<tuple<!fir.boxchar<1>>> {fir.host_assoc}) -> !fir.boxcha… 209 …ir.coordinate_of %arg2, %c0_i32 : (!fir.ref<tuple<!fir.boxchar<1>>>, i32) -> !fir.ref<!fir.boxchar… 210 %1 = fir.load %0 : !fir.ref<!fir.boxchar<1>> 235 return %19 : !fir.boxchar<1> 253 %9 = fir.call %7(%6, %8) : (!fir.ref<!fir.char<1,?>>, index) -> !fir.boxchar<1> [all …]
|
| H A D | target.fir | 100 func.func @char1lensum(%arg0 : !fir.boxchar<1>, %arg1 : !fir.boxchar<1>) -> i64 { 105 %1:2 = fir.unboxchar %arg0 : (!fir.boxchar<1>) -> (!fir.ref<!fir.char<1>>, i64) 106 %2:2 = fir.unboxchar %arg1 : (!fir.boxchar<1>) -> (!fir.ref<!fir.char<1>>, i64) 118 func.func @char1copy(%arg0 : !fir.boxchar<1> {llvm.sret}, %arg1 : !fir.boxchar<1>) { 127 %1:2 = fir.unboxchar %arg0 : (!fir.boxchar<1>) -> (!fir.ref<!fir.array<?x!fir.char<1>>>, i64) 128 %2:2 = fir.unboxchar %arg1 : (!fir.boxchar<1>) -> (!fir.ref<!fir.array<?x!fir.char<1>>>, i64)
|
| H A D | optional.fir | 39 func.func @foo3(%arg0: !fir.boxchar<1>) -> i1 { 43 %0 = fir.is_present %arg0 : (!fir.boxchar<1>) -> i1 49 %0 = fir.absent !fir.boxchar<1> 51 %1 = fir.call @foo3(%0) : (!fir.boxchar<1>) -> i1
|
| H A D | fir-ops.fir | 6 // CHECK: func private @box1() -> !fir.boxchar<2> 10 func.func private @box1() -> !fir.boxchar<2> 61 %ba3 = fir.undefined !fir.boxchar<1> 62 // CHECK: %{{.*}} = fir.box_addr %{{.*}} : (!fir.boxchar<1>) -> !fir.ref<!fir.char<1>> 63 %ba4 = fir.box_addr %ba3 : (!fir.boxchar<1>) -> !fir.ref<!fir.char<1>> 85 // CHECK: [[VAL_17:%.*]] = fir.call @box1() : () -> !fir.boxchar<2> 86 // CHECK: [[VAL_18:%.*]] = fir.boxchar_len [[VAL_17]] : (!fir.boxchar<2>) -> i32 90 %15 = fir.call @box1() : () -> !fir.boxchar<2> 91 %16 = fir.boxchar_len %15 : (!fir.boxchar<2>) -> i32 180 %4 = fir.emboxchar %d3, %c8 : (!fir.ref<!fir.char<1>>, i32) -> !fir.boxchar<1> [all …]
|
| H A D | fir-types.fir | 69 // CHECK-LABEL: func private @box2() -> !fir.boxchar<2> 74 func.func private @box2() -> !fir.boxchar<2>
|
| H A D | invalid-types.fir | 21 func.func private @box2() -> !fir.boxchar<>
|
| H A D | types-to-llvm.fir | 358 // Test `!fir.boxchar<n>` conversion 360 func.func private @foo0(%arg0: !fir.boxchar<1>) 364 func.func private @foo1(%arg0: !fir.boxchar<2>)
|
| /llvm-project-15.0.7/flang/lib/Optimizer/CodeGen/ |
| H A D | TypeConverter.h | 58 addConversion([&](BoxCharType boxchar) { in LLVMTypeConverter() 59 LLVM_DEBUG(llvm::dbgs() << "type convert: " << boxchar << '\n'); in LLVMTypeConverter() 60 return convertType(specifics->boxcharMemoryType(boxchar.getEleTy())); in LLVMTypeConverter()
|
| /llvm-project-15.0.7/flang/include/flang/Optimizer/Dialect/ |
| H A D | FIRTypes.td | 30 def fir_BoxCharType : FIR_Type<"BoxChar", "boxchar"> { 47 // a !fir.boxchar<k> always wraps a !fir.char<k, ?> 412 // a !fir.boxchar<k> always wraps a !fir.char<k, ?>
|
| H A D | FIROps.td | 913 let summary = "unbox a boxchar value into a pair value"; 916 Unboxes a value of `boxchar` type into a pair consisting of a memory 920 %45 = ... : !fir.boxchar<1> 921 %46:2 = fir.unboxchar %45 : (!fir.boxchar<1>) -> (!fir.ref<!fir.char<1>>, i32) 925 let arguments = (ins fir_BoxCharType:$boxchar); 955 `boxchar`, and `boxproc`. The result for each of these 961 %52 = fir.box_addr %boxchar : (!fir.boxchar<1>) -> !fir.ref<!fir.char<1>> 974 let summary = "return the LEN type parameter from a boxchar value"; 977 Extracts the LEN type parameter from a `boxchar` value. 980 %45 = ... : !boxchar<1> // CHARACTER(20) [all …]
|
| /llvm-project-15.0.7/flang/lib/Lower/ |
| H A D | HostAssociations.cpp | 207 mlir::Value boxchar = fir::factory::CharacterExprHelper(builder, args.loc) in instantiateHostTuple() local 209 builder.create<fir::StoreOp>(args.loc, boxchar, args.addrInTuple); in instantiateHostTuple()
|
| H A D | ConvertExpr.cpp | 1340 [&](const fir::CharBoxValue &boxchar) -> ExtValue { in genval() argument 1348 mlir::Value bufferSize = boxchar.getLen(); in genval() 1350 mlir::Value boxCharAddr = boxchar.getAddr(); in genval() 1376 boxchar.getLen(), dest); in genval() 1377 return fir::CharBoxValue{dest, boxchar.getLen()}; in genval()
|