Jaden Angella
5949f4596e
[mlir][EmitC]Expand the MemRefToEmitC pass - Lowering AllocOp (#148257)
This aims to lower `memref.alloc` to `emitc.call_opaque “malloc” ` or
`emitc.call_opaque “aligned_alloc” `
From:
```
module{
func.func @allocating() {
%alloc_5 = memref.alloc() : memref<999xi32>
return
}
}
```
To:
```
module {
emitc.include <"stdlib.h">
func.func @allocating() {
%0 = emitc.call_opaque "sizeof"() {args = [i32]} : () -> !emitc.size_t
%1 = "emitc.constant"() <{value = 999 : index}> : () -> index
%2 = emitc.mul %0, %1 : (!emitc.size_t, index) -> !emitc.size_t
%3 = emitc.call_opaque "malloc"(%2) : (!emitc.size_t) -> !emitc.ptr<!emitc.opaque<"void">>
%4 = emitc.cast %3 : !emitc.ptr<!emitc.opaque<"void">> to !emitc.ptr<i32>
return
}
}
```
Which is then translated as:
```
#include <stdlib.h>
void allocating() {
size_t v1 = sizeof(int32_t);
size_t v2 = 999;
size_t v3 = v1 * v2;
void* v4 = malloc(v3);
int32_t* v5 = (int32_t*) v4;
return;
}
```
2025-07-28 18:48:26 -07:00
..
2025-03-04 11:04:33 +01:00
2025-03-13 14:48:19 +00:00
2022-12-02 13:38:14 -08:00
2025-01-17 21:21:41 +08:00
2024-08-16 12:29:12 +00:00
2023-07-11 07:33:16 +00:00
2025-07-28 18:48:26 -07:00
2025-01-24 14:08:38 +01:00
2025-04-10 10:36:21 +02:00
2023-10-05 13:33:41 +02:00
2025-01-09 10:27:37 -08:00
2025-07-25 16:53:08 +02:00
2025-04-30 16:07:07 +01:00
2025-04-04 15:41:05 -07:00
2025-07-25 09:26:30 +02:00
2025-07-28 11:01:14 -07:00