diff options
author | wanglei <wanglei@loongson.cn> | 2022-11-10 19:56:36 +0800 |
---|---|---|
committer | wanglei <wanglei@loongson.cn> | 2022-11-10 20:12:18 +0800 |
commit | 7d5c8cb023515efd1d80a9120f27ed5cdb1d1404 (patch) | |
tree | a10178ef866e66d237fe4b2717a81bb0a6c9455a /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | de4364f1ecaa6a5d631cff036b8f31e02841e73d (diff) | |
download | llvm-7d5c8cb023515efd1d80a9120f27ed5cdb1d1404.zip llvm-7d5c8cb023515efd1d80a9120f27ed5cdb1d1404.tar.gz llvm-7d5c8cb023515efd1d80a9120f27ed5cdb1d1404.tar.bz2 |
[LoongArch] Added spill/reload/copy support for CFRs
1, spill/reload
When a function call is made immediately after a floating point
comparison, the result of the comparison needs to be spilled before
function call and reloaded after the function returns.
2, copy
Support `GPR` to `CFR` and `CFR` to `GRP` copys. Therefore, the correct
register class can be used in the pattern template, and the hard-coding
of mutual coping of `CFR` and `GRP` is eliminated, reducing redundant
comparison instructions.
Note: Since the `COPY` instruction between CFRs is not provided in
LoongArch, we only use `$fcc0` in the register allocation.
Reviewed By: SixWeining
Differential Revision: https://reviews.llvm.org/D137004
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions