Thanks.
I saw the header comments but it wasn’t clear to me what the difference between
those concepts is?
My slightly vague understanding is IsDef means that the register specified by
this operand is set by the machine instruction. So I understand that to mean
the MO will override that register?
Also things like early clobber, perhaps there is another document that clarifies
some of these concepts?
In an example .td file that I’m looking at, how would I tell the compiler “this
will use register XX but will damage its contents so it’s value is no longer
available to later instructions”?
> On 11 Mar 2019, at 16:43, Quentin Colombet <qcolombet at apple.com>
wrote:
>
> Hi Carl,
>
> Look at the comments in include/llvm/CodeGen/MachineOperand.h for the
documentation of the various flags.
>
> IsDead means that a definition is never used.
> IsKill means that this is the last use of a given register.
>
> Cheers,
> -Quentin
>
>> On Mar 11, 2019, at 8:54 AM, LLVM Mailing List via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
>>
>> Is there anything that documents what these properties (and the other
similar properties) do on the MachineOperand class?
>>
>> I’m trying to debug an instruction selection issue I think. It’s hard
to find documentation on what the MO properties mean.
>>
>> Thanks,
>> Carl
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>