Commit Graph

4 Commits

Author SHA1 Message Date
Guy Blank
3b3a7b4e28 [X86] Fix a bug in handling GRXX subclasses in Domain Reassignment pass
When trying to determine the correct Mask register class corresponding
to a GPR register class, not all register classes were handled.
This caused an assertion to be raised on some scenarios.

Differential Revision:
https://reviews.llvm.org/D40290

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319745 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-05 09:08:24 +00:00
David Blaikie
e3a9b4ce3a Fix a bunch more layering of CodeGen headers that are in Target
All these headers already depend on CodeGen headers so moving them into
CodeGen fixes the layering (since CodeGen depends on Target, not the
other way around).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318490 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-17 01:07:10 +00:00
Haojian Wu
1d7dfd3aad Fix a -Wpedantic warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316315 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-23 09:02:59 +00:00
Guy Blank
5631544a09 [X86] Add a pass to convert instruction chains between domains.
The pass scans the function to find instruction chains that define
registers in the same domain (closures).
It then calculates the cost of converting the closure to another domain.
If found profitable, the instructions are converted to instructions in
the other domain and the register classes are changed accordingly.

This commit adds the pass infrastructure and a simple conversion from
the GPR domain to the Mask domain.

Differential Revision:
https://reviews.llvm.org/D37251

Change-Id: Ic2cf1d76598110401168326d411128ae2580a604

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316288 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-22 11:43:08 +00:00