[PATCH] D45154: [x86] Model the direction flag (DF) separately from the rest of EFLAGS.

Chandler Carruth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 1 16:20:43 PDT 2018


chandlerc created this revision.
chandlerc added reviewers: craig.topper, rnk.
Herald added subscribers: hiraditya, mcrosier, sanjoy.

This cleans up a number of operations that only claimed te use EFLAGS
due to using DF. But no instructions which we think of us setting EFLAGS
actually modify DF (other than things like popf) and so this needlessly
creates uses of EFLAGS that aren't really there.

In fact, DF is so restrictive it is pretty easy to model. Only STD, CLD,
and the whole-flags writes (WRFLAGS and POPF) need to model this.

Sadly, this runs into issues because some part of the x86 backend
I can't find is marking uses of EFLAGS prior to a def as 'undef' very
helpfully. I need that to happen for DF as well. So far, no joy. If
anyone has suggestions, that'd be awesome and then we could land this
patch.


Repository:
  rL LLVM

https://reviews.llvm.org/D45154

Files:
  llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
  llvm/lib/Target/X86/X86InstrCompiler.td
  llvm/lib/Target/X86/X86InstrInfo.cpp
  llvm/lib/Target/X86/X86InstrInfo.td
  llvm/lib/Target/X86/X86InstrSystem.td
  llvm/lib/Target/X86/X86RegisterInfo.td
  llvm/test/CodeGen/X86/ipra-reg-usage.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45154.140601.patch
Type: text/x-patch
Size: 16819 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180401/7e14853f/attachment.bin>


More information about the llvm-commits mailing list