<div dir="auto">I second this question. I never undersrood this in LLVM IR. LangRef fails to explain this.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 10, 2021, 4:46 PM 周书林 via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, <div><br></div><div>Thank you for your suggestions. </div><div>I have learnt the basic IR structures in simple programs, but not all the objects could be generated. As I mentioned, about the Operators and ConstantExprs. I only got GEPOperator objects from .bc of MySQL. So is there any reference to learn about the relationship between those classes in IR? </div><div><br></div><div>Sincerely,</div><div>Shulin</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">rahul utkoor <<a href="mailto:rahulutkoor4887@gmail.com" target="_blank" rel="noreferrer">rahulutkoor4887@gmail.com</a>> 于2021年6月10日周四 下午5:25写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>Hello,<div dir="auto">Since you are starting to learn IR, I recommend you to start with one simple program, compile the program, genreate CFG and understand the hierarchy of types/operands/instructions.</div><div dir="auto">It helped me to understand the compilation pipeline in a quick way.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto">Rahul Utkoor</div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 10 Jun, 2021, 2:08 pm 周书林 via llvm-dev, <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello everyone,<div><br></div><div>I am learning the IR in LLVM and trying to do some analysis. Now I am doing a dataflow analysis via the def-use chain provided by Users.</div><div><br></div><div>In my opinion, the Users of a Value should be an instruction. However, when I iterate the User of a Value, sometimes I get an Operator, like GEPOperator, or an ConstantExpr.</div><div>I am quite confused about these situations. My question is, what is Operator in IR? and what is the difference between Operator and Instruction? Why can I get a GEPOperator as an Operand in a instruction rather than two instruction( a gep instruction and the next User instruction) ?</div><div><br></div><div>Best regards,</div><div>Shulin</div></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" rel="noreferrer noreferrer" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div></div>
</blockquote></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>