Compiling with dynamatic and FPGA20 buffering leads to smart buffer placement failing:
dynamatic> set-src test28.c
dynamatic> compile --buffer-algorithm fpga20
[INFO] Copied C source
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:7:48: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
7 | test28(uint16_t var4, int16_t var5, int32_t, int16_t, float, int32_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:7:57: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
7 | test28(uint16_t var4, int16_t var5, int32_t, int16_t, float, int32_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:7:64: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
7 | test28(uint16_t var4, int16_t var5, int32_t, int16_t, float, int32_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:7:73: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
7 | test28(uint16_t var4, int16_t var5, int32_t, int16_t, float, int32_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:19: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:28: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:38: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:47: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:56: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:66: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:75: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:19: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:28: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:37: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:44: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:55: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:10:18: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
10 | double[2]) {
| ^
17 warnings generated.
[INFO] Disabled short-circuiting
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:7:48: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
7 | test28(uint16_t var4, int16_t var5, int32_t, int16_t, float, int32_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:7:57: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
7 | test28(uint16_t var4, int16_t var5, int32_t, int16_t, float, int32_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:7:64: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
7 | test28(uint16_t var4, int16_t var5, int32_t, int16_t, float, int32_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:7:73: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
7 | test28(uint16_t var4, int16_t var5, int32_t, int16_t, float, int32_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:19: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:28: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:38: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:47: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:56: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:66: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:8:75: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
8 | uint8_t, int32_t, uint32_t, int32_t, int16_t, uint16_t, int16_t,
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:19: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:28: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:37: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:44: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:9:55: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
9 | int32_t, int16_t, int16_t, float[6], double[8], uint32_t var6[6],
| ^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/test28.c:10:18: warning: omitting the parameter name in a function definition is a C23 extension [-Wc23-extensions]
10 | double[2]) {
| ^
17 warnings generated.
[INFO] Compiled to LLVM IR
[INFO] Optimized LLVM IR
[INFO] Applied memory dependency analysis to LLVM IR
[INFO] Converted to std dialect
[INFO] Applied CF transformations
[INFO] Marked memory accesses with the corresponding interfaces in cf
[INFO] Compiled cf to handshake
[INFO] Applied transformations to handshake
[INFO] Built kernel for profiling
[INFO] Ran kernel for profiling
[INFO] Profiled cf-level
[INFO] Set to use "gurobi" to solve buffer placement MILP!
[INFO] Running smart buffer placement with CP = 4.000 and algorithm = 'fpga20'
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:4:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg20 {handshake.name = "sink0"} : <>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:4:5: note: see current operation: handshake.sink %arg20 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink0"} : <>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:5:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg18 {handshake.name = "sink1"} : <>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:5:5: note: see current operation: handshake.sink %arg18 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink1"} : <>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:6:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg17 {handshake.name = "sink2"} : <>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:6:5: note: see current operation: handshake.sink %arg17 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink2"} : <>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:7:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg15 {handshake.name = "sink3"} : <i16>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:7:5: note: see current operation: handshake.sink %arg15 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink3"} : <i16>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:8:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg14 {handshake.name = "sink4"} : <i16>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:8:5: note: see current operation: handshake.sink %arg14 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink4"} : <i16>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:9:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg13 {handshake.name = "sink5"} : <i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:9:5: note: see current operation: handshake.sink %arg13 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink5"} : <i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:10:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg12 {handshake.name = "sink6"} : <i16>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:10:5: note: see current operation: handshake.sink %arg12 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink6"} : <i16>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:11:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg11 {handshake.name = "sink7"} : <i16>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:11:5: note: see current operation: handshake.sink %arg11 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink7"} : <i16>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:12:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg10 {handshake.name = "sink8"} : <i16>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:12:5: note: see current operation: handshake.sink %arg10 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink8"} : <i16>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:13:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg9 {handshake.name = "sink9"} : <i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:13:5: note: see current operation: handshake.sink %arg9 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink9"} : <i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:14:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg8 {handshake.name = "sink10"} : <i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:14:5: note: see current operation: handshake.sink %arg8 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink10"} : <i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:15:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg7 {handshake.name = "sink11"} : <i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:15:5: note: see current operation: handshake.sink %arg7 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink11"} : <i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:16:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg6 {handshake.name = "sink12"} : <i8>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:16:5: note: see current operation: handshake.sink %arg6 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink12"} : <i8>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:17:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg5 {handshake.name = "sink13"} : <i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:17:5: note: see current operation: handshake.sink %arg5 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink13"} : <i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:18:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg4 {handshake.name = "sink14"} : <f32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:18:5: note: see current operation: handshake.sink %arg4 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink14"} : <f32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:19:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg3 {handshake.name = "sink15"} : <i16>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:19:5: note: see current operation: handshake.sink %arg3 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink15"} : <i16>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:20:5: warning: TimingDatabase::getLatency: no timing model for op
sink %arg2 {handshake.name = "sink16"} : <i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:20:5: note: see current operation: handshake.sink %arg2 {handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "sink16"} : <i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:21:10: warning: TimingDatabase::getLatency: no timing model for op
%1 = trunci %arg0 {handshake.bb = 0 : ui32, handshake.name = "trunci0"} : <i16> to <i3>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:21:10: note: see current operation: %1 = handshake.trunci %arg0 {handshake.bb = 0 : ui32, handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "trunci0"} : <i16> to <i3>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:22:10: warning: TimingDatabase::getLatency: no timing model for op
%2 = constant %4 {handshake.bb = 0 : ui32, handshake.name = "constant4", value = -3 : i3} : <>, <i3>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:22:10: note: see current operation: %2 = handshake.constant %4 {handshake.bb = 0 : ui32, handshake.name = "constant4", value = -3 : i3} : <>, <i3>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:23:25: warning: TimingDatabase::getLatency: no timing model for op
%outputs, %memEnd = mem_controller[%arg16 : memref<6xi32>] %arg19 (%3, %addressResult, %addressResult_0, %dataResult_1) %0#1 {connectedBlocks = [0 : i32], handshake.name = "mem_controller0"} : (!handshake.channel<i32>, !handshake.channel<i3>, !handshake.channel<i3>, !handshake.channel<i32>) -> !handshake.channel<i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:23:25: note: see current operation: %outputs, %memEnd = handshake.mem_controller[%arg16 : memref<6xi32>] %arg19 (%3, %addressResult, %addressResult_0, %dataResult_1) %0#1 {connectedBlocks = [0 : i32], handshake.bufProps = #handshake<bufProps{"0": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00, "1": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00, "2": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00, "3": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00, "4": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00, "5": [0,0], [0,0], 0, 0.000000e+00, 0.000000e+00, 0.000000e+00}>, handshake.name = "mem_controller0"} : (!handshake.channel<i32>, !handshake.channel<i3>, !handshake.channel<i3>, !handshake.channel<i32>) -> !handshake.channel<i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:24:10: warning: TimingDatabase::getLatency: no timing model for op
%3 = constant %0#2 {handshake.bb = 0 : ui32, handshake.name = "constant3", value = 1 : i32} : <>, <i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:24:10: note: see current operation: %3 = handshake.constant %0#2 {handshake.bb = 0 : ui32, handshake.name = "constant3", value = 1 : i32} : <>, <i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:25:10: warning: TimingDatabase::getLatency: no timing model for op
%4 = source {handshake.bb = 0 : ui32, handshake.name = "source0"} : <>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:25:10: note: see current operation: %4 = handshake.source {handshake.bb = 0 : ui32, handshake.name = "source0"} : <>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:26:10: warning: TimingDatabase::getLatency: no timing model for op
%5 = source {handshake.bb = 0 : ui32, handshake.name = "source1"} : <>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:26:10: note: see current operation: %5 = handshake.source {handshake.bb = 0 : ui32, handshake.name = "source1"} : <>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:27:10: warning: TimingDatabase::getLatency: no timing model for op
%6 = constant %5 {handshake.bb = 0 : ui32, handshake.name = "constant1", value = 0 : i32} : <>, <i32>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:27:10: note: see current operation: %6 = handshake.constant %5 {handshake.bb = 0 : ui32, handshake.name = "constant1", value = 0 : i32} : <>, <i32>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:29:10: warning: TimingDatabase::getLatency: no timing model for op
%8 = extui %7 {handshake.bb = 0 : ui32, handshake.name = "extui1"} : <i3> to <i16>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:29:10: note: see current operation: %8 = handshake.extui %7 {handshake.bb = 0 : ui32, handshake.name = "extui1"} : <i3> to <i16>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:31:11: warning: TimingDatabase::getLatency: no timing model for op
%10 = trunci %9 {handshake.bb = 0 : ui32, handshake.name = "trunci1"} : <i16> to <i3>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:31:11: note: see current operation: %10 = handshake.trunci %9 {handshake.bb = 0 : ui32, handshake.name = "trunci1"} : <i16> to <i3>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:33:11: warning: TimingDatabase::getLatency: no timing model for op
%11 = constant %0#0 {handshake.bb = 0 : ui32, handshake.name = "constant5", value = 0 : i3} : <>, <i3>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:33:11: note: see current operation: %11 = handshake.constant %0#0 {handshake.bb = 0 : ui32, handshake.name = "constant5", value = 0 : i3} : <>, <i3>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:35:11: warning: TimingDatabase::getLatency: no timing model for op
%12 = source {handshake.bb = 0 : ui32, handshake.name = "source2"} : <>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:35:11: note: see current operation: %12 = handshake.source {handshake.bb = 0 : ui32, handshake.name = "source2"} : <>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:36:11: warning: TimingDatabase::getLatency: no timing model for op
%13 = source {handshake.bb = 0 : ui32, handshake.name = "source3"} : <>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:36:11: note: see current operation: %13 = handshake.source {handshake.bb = 0 : ui32, handshake.name = "source3"} : <>
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:37:11: warning: TimingDatabase::getLatency: no timing model for op
%14 = source {handshake.bb = 0 : ui32, handshake.name = "source4"} : <>
^
/home/mboeck/dynamatic/build/bin/bug155/out/comp/handshake_transformed.mlir:37:11: note: see current operation: %14 = handshake.source {handshake.bb = 0 : ui32, handshake.name = "source4"} : <>
The model is infeasible!
[FATAL] Failed to place smart buffers
Given the following C Code:
Compiling with dynamatic and FPGA20 buffering leads to smart buffer placement failing: