diff options
author | Luo, Yuanke <yuanke.luo@intel.com> | 2020-09-06 10:17:22 +0800 |
---|---|---|
committer | Luo, Yuanke <yuanke.luo@intel.com> | 2020-12-10 17:01:54 +0800 |
commit | f80b29878b0448efb306b9c93c49e5deb9ba2738 (patch) | |
tree | 0cc5cc9ff35b92a8c63a980de704cd071703fd45 /llvm/lib/CodeGen/VirtRegMap.cpp | |
parent | 09f717b929ae040ae1bf9e9ec56f6dd4a5dba2f8 (diff) | |
download | llvm-f80b29878b0448efb306b9c93c49e5deb9ba2738.zip llvm-f80b29878b0448efb306b9c93c49e5deb9ba2738.tar.gz llvm-f80b29878b0448efb306b9c93c49e5deb9ba2738.tar.bz2 |
[X86] AMX programming model.
This patch implements amx programming model that discussed in llvm-dev
(http://lists.llvm.org/pipermail/llvm-dev/2020-August/144302.html).
Thank Hal for the good suggestion in the RA. The fast RA is not in the patch yet.
This patch implemeted 7 components.
1. The c interface to end user.
2. The AMX intrinsics in LLVM IR.
3. Transform load/store <256 x i32> to AMX intrinsics or split the
type into two <128 x i32>.
4. The Lowering from AMX intrinsics to AMX pseudo instruction.
5. Insert psuedo ldtilecfg and build the def-use between ldtilecfg to amx
intruction.
6. The register allocation for tile register.
7. Morph AMX pseudo instruction to AMX real instruction.
Change-Id: I935e1080916ffcb72af54c2c83faa8b2e97d5cb0
Differential Revision: https://reviews.llvm.org/D87981
Diffstat (limited to 'llvm/lib/CodeGen/VirtRegMap.cpp')
-rw-r--r-- | llvm/lib/CodeGen/VirtRegMap.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/VirtRegMap.cpp b/llvm/lib/CodeGen/VirtRegMap.cpp index f1401b3..5e0ff9d 100644 --- a/llvm/lib/CodeGen/VirtRegMap.cpp +++ b/llvm/lib/CodeGen/VirtRegMap.cpp @@ -68,6 +68,7 @@ bool VirtRegMap::runOnMachineFunction(MachineFunction &mf) { Virt2PhysMap.clear(); Virt2StackSlotMap.clear(); Virt2SplitMap.clear(); + Virt2ShapeMap.clear(); grow(); return false; |