[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
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.
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev