[LLVMdev] Help: Instruction Pattern Matching question

Anton Korobeynikov anton at korobeynikov.info
Tue Jul 14 01:33:10 PDT 2009


>     (outs ptr_rc: $dest), (ins: $ptr_rc:$ptr1, Int32RC:$src)
>     "myadd1 $dst, $ptr1, $src1",
>     [(set $ptr_rc:$dst,(add $ptr_rc:ptr1, Int32RC:$src))]>;
>
> it is giving me error like impossible to select.
> Could anybody help me resolve this issue. Any example would be highly appreciated.
I assume that both ptr_rc and Int32RC are register classes of type
i32. There are no register classes at isel time => it's not possible
to distinguish operation within 'normal' i32 register class Int32RC
and pointer register class.

That's why tablegen asserts - it's seeing two identically operations.
Surely the second one is impossible to select.

-- 
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University




More information about the llvm-dev mailing list