aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/LockFileManager.cpp
diff options
context:
space:
mode:
authorSergei Barannikov <barannikov88@gmail.com>2024-11-20 16:07:05 +0300
committerGitHub <noreply@github.com>2024-11-20 16:07:05 +0300
commit8c56dd3040f295874e3d5742b5dfc109adf1f728 (patch)
treed3c46369878ebf300396d786797cf950d9b793e7 /llvm/lib/Support/LockFileManager.cpp
parent1ca853b2ee1b68daaec6fdc23a085755146d102d (diff)
downloadllvm-8c56dd3040f295874e3d5742b5dfc109adf1f728.zip
llvm-8c56dd3040f295874e3d5742b5dfc109adf1f728.tar.gz
llvm-8c56dd3040f295874e3d5742b5dfc109adf1f728.tar.bz2
[ARM] Stop gluing FP comparisons to FMSTAT (#116676)
Following #116547, this changes the result of `ARMISD::CMPFP*` and the operand of `ARMISD::FMSTAT` from a special `Glue` type to a normal type. This change allows comparisons to be CSEd and scheduled around as can be seen in the test changes. Note that `ARMISD::FMSTAT` is still glued to its consumer nodes; this is going to be changed in a separate patch. This patch also sets `CopyCost` of `cl_FPSCR_NZCV` register class to a negative value. The reason is the same as for CCR register class: it makes DAG scheduler and InstrEmitter try to avoid copies of `FPCSR_NZCV` register to / from virtual registers. Previously, this was not necessary, since no attempt was made to create copies in the first place. There might be a case when a copy can't be avoided (although not found in existing tests). If a copy is necessary, the virtual register will be created with `cl_FPSCR_NZCV` register class. If this register class is inappropriate, `TRI::getCrossCopyRegClass` should be modified to return the correct class. Pull Request: https://github.com/llvm/llvm-project/pull/116676
Diffstat (limited to 'llvm/lib/Support/LockFileManager.cpp')
0 files changed, 0 insertions, 0 deletions