Link

Types:

Old type New type Remarks
void none  
time !llhd.time  
iN MLIR signless integer  
nN   enumeration not yet implemented
lN   nine-valued logic not yet implemented
T*   pointers not yet implemented
T$ !llhd.sig<T> only integers for now
Array [N x T] MLIR Vector  
Struct {T0, T1, ...} MLIR Tuple  

Instructions:

Old instruction New instruction Remarks
Values    
const llhd.const, constant not stable, might switch to std dialect constant for integers
alias   removed
Array construction constant stable, look here for the three possible attributes to create a vector, e.g. %vec = constant dense<[1,2,3]> : vector<3xi32>
Struct/Tuple construction, insf, inss, extf   not yet implemented
exts llhd.exts not stable
mux vector.extractelement stable
Bitwise    
not, and, or, xor llhd.not, llhd.and, llhd.or, llhd.xor stable, nine-valued logic will be added later
shl, shr llhd.shl, llhd.shr only integer and signal supported for now
Arithmetic    
neg, add, sub llhd.neg, addi, subi stable
smul, umul muli stable
sdiv, udiv divi_signed, divi_unsigned stable
srem remi_signed stable
urem, umod remi_unsigned stable
smod llhd.smod stable
Comparison    
eq, neq, slt, sle, sgt, sge, ult, ule, ugt, uge cmpi stable, use predicates accordingly, integers only
Control flow    
phi MLIR block argument stable, MLIR uses block arguments instead
br br stable, unconditional variant
br cond_br stable, conditional variant
call, ret, wait, halt call, return, llhd.wait, llhd.halt stable
Memory    
var, ld, st   not yet implemented
Signals    
sig, prb, drv llhd.sig, llhd.prb, llhd.drv stable
Structural    
reg llhd.reg not quite stable
del, con   not yet implemented
inst llhd.inst stable
Units    
func, proc, entity func, llhd.proc, llhd.entity stable