In general you can use Value::mutateType to change the type of a value. You
can't change the types arbitrarily though, I think that the operands to
"add" still need to have the same type.
--
Krzysztof Parzyszek kparzysz at quicinc.com<mailto:kparzysz at
quicinc.com> AI tools development
From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Celine
via llvm-dev
Sent: Tuesday, October 15, 2019 5:25 AM
To: llvm-dev <llvm-dev at lists.llvm.org>
Subject: [EXT] [llvm-dev] How to change IR type?
hello,
I want to change the following IR:
%2 = tail call i16 @llvm.nvvm.read.ptx.sreg.tid.x() #2
%add = add i16 %mul6, %2
to
%2 = tail call i16v @llvm.nvvm.read.ptx.sreg.tid.x() #2
(i16v)%add = add i16 %mul6, (i16v)%2 //Here keep %mul6 i16 as it is.
I'm not familar with LLVM IR API, it's not easy to get the type and
change it right away. Seems need to create a new IR and replace the old one?
But it's also hard to CreateCall() or CreateAdd(), hard to get the original
IR's info to fill in those CreateXXX parameter.
Any ideas or reference code?
How to learn LLVM IR API quickly?
--
Best Regards
Celine
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20191015/96997961/attachment.html>