Home
last modified time | relevance | path

Searched refs:boxchar (Results 1 – 16 of 16) sorted by relevance

/llvm-project-15.0.7/flang/test/Fir/
H A Dtarget-rewrite-boxchar.fir6 // 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 Dtarget-rewrite-char-proc.fir9 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 Dconvert-to-llvm-target.fir39 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 Dboxchar.fir4 // 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 Dboxproc.fir161 %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 Dtarget.fir100 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 Doptional.fir39 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 Dfir-ops.fir6 // 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 Dfir-types.fir69 // CHECK-LABEL: func private @box2() -> !fir.boxchar<2>
74 func.func private @box2() -> !fir.boxchar<2>
H A Dinvalid-types.fir21 func.func private @box2() -> !fir.boxchar<>
H A Dtypes-to-llvm.fir358 // 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 DTypeConverter.h58 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 DFIRTypes.td30 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 DFIROps.td913 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 DHostAssociations.cpp207 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 DConvertExpr.cpp1340 [&](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()