They've been deprecated in favor of UADDO/ADDCARRY or USUBO/SUBCARRY for a while.
Target that uses these opcodes are changed in order to ensure their behavior doesn't change.
Paths
| Differential D47422
Set ADDE/ADDC/SUBE/SUBC to expand by default ClosedPublic Authored by deadalnix on May 27 2018, 5:44 AM.
Details Summary They've been deprecated in favor of UADDO/ADDCARRY or USUBO/SUBCARRY for a while. Target that uses these opcodes are changed in order to ensure their behavior doesn't change.
Diff Detail
Event TimelineHerald added subscribers: atanasyan, mgrang, edward-jones and 18 others. · View Herald TranscriptMay 27 2018, 5:44 AM Comment Actions This could be potentially nasty for someone maintaining an out-of-tree backend; needs to be noted in the release notes and announced on llvmdev. I'm not sure it's fair to say ADDC/ADDE are deprecated; I mean, yes, x86 has used ADDCARRY for a long time, but most in-tree backends don't, and the lack of glue makes lowering more complicated. But I think this makes sense anyway; operations which aren't consistently available across most targets, like this, shouldn't default to Legal. Comment Actions There are numerous problem with ADDC/ADDE and the sub equivalent, specifically because they are glues :) In addition, it doesn't really simplify much because there is still UADDO and friend to support, regardless. Comment Actions That being said, you are correct, I should mention this in the release note and warn on the ML. This revision is now accepted and ready to land.May 30 2018, 12:44 PM Closed by commit rL333748: Set ADDE/ADDC/SUBE/SUBC to expand by default (authored by deadalnix). · Explain WhyJun 1 2018, 6:25 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 148750 lib/CodeGen/TargetLoweringBase.cpp
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
lib/Target/AMDGPU/SIISelLowering.cpp
lib/Target/BPF/BPFISelLowering.cpp
lib/Target/Hexagon/HexagonISelLowering.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/NVPTX/NVPTXISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/RISCV/RISCVISelLowering.cpp
lib/Target/Sparc/SparcISelLowering.cpp
lib/Target/XCore/XCoreISelLowering.cpp
|