search for: ispeudo

Displaying 2 results from an estimated 2 matches for "ispeudo".

Did you mean: ispseudo
2015 Oct 22
2
add intrinsic function support for customized backend
Hi, All, I want to add one intrinsic function for my particular backend. Let's say the intrinsic function is named "foo" which takes two i32 inputs and has one i32 output. First, I add this line "def int_foo : Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrReadArgMem]>;" in /include/llvm/IR/Intrinsics.td. Then, in my target/InstrInfo.td, I'm supposed
2015 Oct 22
2
add intrinsic function support for customized backend
...dag-node. The pseudo-instruction definition > should look like this: > > let isPseudo = 1 in { > def FOO : PseudoI<(outs i32mem:$dst), (ins i32mem:$src1, i32mem:$src2, ), > [(set i32mem:$dst, (int_foo i32mem:$src1, i32mem:$src2))]>; > } > > First, you should always set isPeudo to 1 if it is a pseudo-instruction. > Then, if it has some side effect, you should define them. For example, set > Defs = [EFLAGS] if it impacts EFLAGS value. > The tricky part is the pattern matching for dag nodes. I'm not sure it's > correct. I'm used to enable debug pass...