[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!

Sincerely,
Shulin

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