[PATCH] D43353: [X86] Add phony registers for high halves of E[A-D]X, E[SD]I, E[BS]P and EIP

Krzysztof Parzyszek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 15 14:18:03 PST 2018


kparzysz created this revision.
kparzysz added reviewers: craig.topper, qcolombet, MatzeB.

The intent for this is to model the upper halves of EAX et al as individual entities (although not addressable).  The motivation comes from the fact that modifying AX does not modify the upper half of EAX, whereas currently AX and EAX share the exact same set of register units.  The same register units for both imply that writing AX overwrites EAX, which lead to issues in using RDF with the X86 backend.

This introduces a concept of "artificial" registers, which take part in register aliasing analysis, but do not cause any changes to register pressure sets/limits, etc.  No additional register classes are created due to the existence of these registers or the associated subregister indexes.


Repository:
  rL LLVM

https://reviews.llvm.org/D43353

Files:
  include/llvm/Target/Target.td
  lib/Target/X86/X86RegisterInfo.td
  utils/TableGen/CodeGenRegisters.cpp
  utils/TableGen/CodeGenRegisters.h
  utils/TableGen/RegisterInfoEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43353.134507.patch
Type: text/x-patch
Size: 15067 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180215/32cae5c8/attachment.bin>


More information about the llvm-commits mailing list