You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The errors you were seeing about legalization failure probably indicate that the lowering from HW/Comb to LLVM is missing a conversion pattern for the unpacked types. If you take a look at the ArcToLLVM lowering pass (used in the pipeline of arcilator.cpp), there is probably support for hw.array types, but not hw.uarray. Having lowering support for unpacked stuff would be fantastic!
Currently, CIRCT's MooreToCore pass converts unpacked arrays to packed arrays (hw::ArrayType),
losing the unpacked semantics.
When we've attempted to preserve unpacked arrays by emitting hw::UnpackedArrayType,
MLIR raises "failed to legalize operation" errors.
Minimal Reproduction
When running
circt-opt
on the following input,we get the following result:
as you can clearly see, the
uarray
is converted to aarray
.The text was updated successfully, but these errors were encountered: