[PATCH] D49196: [llvm-mca][BtVer2] teach how to identify false dependencies on partially written registers.
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 16 08:59:38 PDT 2018
lebedev.ri added inline comments.
================
Comment at: llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td:56
// Reference: www.realworldtech.com/jaguar/4/
def JFpuPRF: RegisterFile<72, [VR64, VR128, VR256], [1, 1, 2]>;
----------------
andreadb wrote:
> lebedev.ri wrote:
> > A bit late, but i'm not sure about the FP registers.
> > ```
> > But the high and low 64 bits of a 128 bit register are treated as independent on
> > Bobcat, and the high and low 128 bits of a 256 bit register are treated as independent on
> > Jaguar.
> > ```
> > Does that mean that it should be `def JFpuPRF: RegisterFile<72, [VR128, VR256], [1, 1, 2]>;` ?
> > Or does that mean `on Bobcat <and later>`?
> Register class VR64 is the class used by x87/mmx registers.
> Those eight registers don't alias with XMM/YMM registers, and they are subject to register renaming.
>
> Bobcat provides native support for 64-bit data types, but not 128-bit data types. So, operations on 128-bit data types are split into 2x64-bit pairs. Internally, the PRF consumes two physical registers to map a single XMM write.
>
> Agner describes this in Section 21.1: `The Bobcat has 64-bit physical registers and uses two such registers to save a 128-bit vector.`
>
> I hope it helps.
> -Andrea
Thank you.
Yes, i think it did.
Basically, i think it confirmed that the FP `RegisterFile` for both the btver2, and znver1 is correct.
So i just need to adjust the integer `RegisterFile` on znver1.
Repository:
rL LLVM
https://reviews.llvm.org/D49196
More information about the llvm-commits
mailing list