Page MenuHomePhabricator

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

Repository
rL LLVM

Event Timeline

deadalnix created this revision.May 27 2018, 5:44 AM

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.

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.

That being said, you are correct, I should mention this in the release note and warn on the ML.

deadalnix updated this revision to Diff 149142.May 30 2018, 9:40 AM

Add a mention of the change in the release notes.

This revision is now accepted and ready to land.May 30 2018, 12:44 PM
This revision was automatically updated to reflect the committed changes.