DianQK wrote:

> I don't believe the undef is the issue - I think the issue is that 
> AArch64InstrInfo::isCopyInstrImpl is saying that a W-reg orr is a copy, even 
> if it is really a zextend because the entire X output register is depended 
> upon.

Thanks for the explanation.

> Can you try and add something to isCopyInstrImpl instead, that says: If the 
> register is virtual then it should not be a subreg, and if the register is 
> physical then there should not be an implicit def of the X reg. Would that 
> solve your issue, and would it cause other problems in AArch64 codegen? Thanks

I'm not sure if I'm misunderstanding anything. But I tried to file the #75184 
PR.

It breaks the original commit 
https://github.com/llvm/llvm-project/commit/53726588f672a915c6f907569356091552500f23.
 It looks like it's because we're generating the mov instruction for the 
ORRWsr. (At this point this is a copy instruction?) I'm not sure exactly what 
is going wrong. Maybe we need to add a new method to TargetRegisterInfo?

Or are you going to fix this issue? I'm not familiar with MIR.
Alternatively, we can add implicit-def to MachineCopyPropagation? But that 
doesn't seem right either.


https://github.com/llvm/llvm-project/pull/74682
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to