diff options
| author | Quentin Colombet <qcolombet@apple.com> | 2016-10-13 00:11:55 +0000 |
|---|---|---|
| committer | Quentin Colombet <qcolombet@apple.com> | 2016-10-13 00:11:55 +0000 |
| commit | 27b40356f79eae0d677f2d830ff24d4e871562a2 (patch) | |
| tree | cf797ac175a474c8c76d07302ccb764b17fe2c75 /llvm/lib | |
| parent | 3245ee7e579b03f3fdde903006358d43f9f6319c (diff) | |
| download | bcm5719-llvm-27b40356f79eae0d677f2d830ff24d4e871562a2.tar.gz bcm5719-llvm-27b40356f79eae0d677f2d830ff24d4e871562a2.zip | |
[AArch64][RegisterBankInfo] Provide more realistic copy costs.
llvm-svn: 284086
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp b/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp index 12b8db7d3e9..5b2c2318d67 100644 --- a/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp @@ -181,7 +181,16 @@ unsigned AArch64RegisterBankInfo::copyCost(const RegisterBank &A, // Will introduce other hooks for different size: // * extract cost. // * build_sequence cost. - // TODO: Add more accurate cost for FPR to/from GPR. + + // Copy from (resp. to) GPR to (resp. from) FPR involves FMOV. + // FIXME: This should be deduced from the scheduling model. + if (&A == &AArch64::GPRRegBank && &B == &AArch64::FPRRegBank) + // FMOVXDr or FMOVWSr. + return 5; + if (&A == &AArch64::FPRRegBank && &B == &AArch64::GPRRegBank) + // FMOVDXr or FMOVSWr. + return 4; + return RegisterBankInfo::copyCost(A, B, Size); } |

