[llvm-dev] Missing kill flag on Machine Instruction operands
Quentin Colombet via llvm-dev
llvm-dev at lists.llvm.org
Mon May 9 09:05:03 PDT 2016
Hi Stephen,
The kill flags are conservatively correct and not mandatory; if they are set, they are correct, if they are not, you cannot say anything.
> On May 9, 2016, at 8:37 AM, Stephen Rogers via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Hi all,
>
> I'm writing a MachineFunction pass that relies on the kill flag to be appropriately set on operands of Machine Instructions, but it isn't. My pass runs before register allocation. What I'm seeing when I print an instruction is something like:
>
> %vreg218<def> = FOO %vreg217, %vreg369
>
> but what I need is:
>
> %vreg218<def> = FOO %vreg217<kill>, %vreg369<kill>
>
> On this same instruction, the kill flag is being set on vreg217 and vreg369 in preceding and succeeding passes, but not in my pass. Is there some analysis pass that I need to add as required in my pass's "getAnalysisUsage" to get this flag to be set?
I would recommend to rely on the LiveInterval analysis.
Cheers,
-Quentin
>
> Thanks,
> Stephen
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://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/20160509/6bdc67ad/attachment-0001.html>
More information about the llvm-dev
mailing list