When I implemented these conversions, I didn't consider what the results would be if someone attempted to build 32-bit applications on targets that have direct moves. This just disables the problematic conversions when 32-bit registers are used.
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/PowerPC/PPCISelLowering.cpp | ||
---|---|---|
560 | The definition of use64BitRegs is confusing to me. |
lib/Target/PowerPC/PPCISelLowering.cpp | ||
---|---|---|
560 | I only used this because it most closely encapsulates the conditions under which we aren't able to perform these actions. However, I think the simplest thing would indeed be to use Subtarget.isPPC64() (or even the local isPPC64) instead. I'll change it and test it prior to committing. I'll change it to: if (Subtarget.hasDirectMove() && isPPC64) |
The definition of use64BitRegs is confusing to me.
Could you use Subtarget.isPPC64() instead? We basically only want to do this when we are in 64-bit mode, as I understand it.