[llvm-dev] What is relationship between Operator and Instruction?

周书林 via llvm-dev llvm-dev at lists.llvm.org
Thu Jun 10 18:01:47 PDT 2021

Hi Rahul,

Thank you very much!


rahul utkoor <rahulutkoor4887 at gmail.com> 于2021年6月10日周四 下午9:21写道:

> Hi,
> LLVM modularity provides developers a unique opportunity to come up with
> better design decisions on individual components. Your questions related to
> "*Operators and ConstantExprs*", I suggest you spend some time, and
> understand the passes that are responsible for generating those
> instructions.
> As the code base is really huge and many smart people from different parts
> of the world are contributing to this project, there might be some things
> that can get missed in LangRef. In such a case, many times I used gdb/lldb
> debugger tools for understanding the pipeline.
> Use debugging tools and identify the logic that is responsible for
> generating instructions(*Operators and ConstantExprs*). I am giving you
> directions to get started with understanding LLVM internals.
> Thanks,
> Rahul Utkoor
> On Thu, Jun 10, 2021 at 4:59 PM jeniffer lesley <jenifferlesley7 at gmail.com>
> wrote:
>> I second this question. I never undersrood this in LLVM IR. LangRef fails
>> to explain this.
>> On Thu, Jun 10, 2021, 4:46 PM 周书林 via llvm-dev <llvm-dev at lists.llvm.org>
>> wrote:
>>> Hi,
>>> Thank you for your suggestions.
>>> 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?
>>> Sincerely,
>>> Shulin
>>> rahul utkoor <rahulutkoor4887 at gmail.com> 于2021年6月10日周四 下午5:25写道:
>>>> Hello,
>>>> 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.
>>>> It helped me to understand the compilation pipeline in a quick way.
>>>> Thanks,
>>>> Rahul Utkoor
>>>> On Thu, 10 Jun, 2021, 2:08 pm 周书林 via llvm-dev, <
>>>> llvm-dev at lists.llvm.org> wrote:
>>>>> Hello everyone,
>>>>> 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.
>>>>> 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.
>>>>> 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) ?
>>>>> Best regards,
>>>>> Shulin
>>>>> _______________________________________________
>>>>> LLVM Developers mailing list
>>>>> llvm-dev at lists.llvm.org
>>>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210611/eae0ec46/attachment.html>

More information about the llvm-dev mailing list