1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
Go to file
Jessica Paquette 2dcd508332 [AArch64][GlobalISel] Infer whether G_PHI is going to be a FPR in regbankselect
Some instructions (G_LOAD, G_SELECT, G_UNMERGE_VALUES) check if their uses
will define/use FPRs (using `onlyUsesFP` and `onlyDefinesFP`).

The register bank of a use isn't necessarily known when an instruction asks for
this.

Teach `hasFPConstraints` to look at the instructions feeding into a G_PHI when
its destination bank is unknown. If any of them are FPR, assume the entire
G_PHI will also be assigned a FPR.

Since a phi can have many inputs, and those inputs can in turn be phis,
restrict the search depth to a very low number.

Also improve the docs for `hasFPConstraints` and friends a little.

This is a 0.3% code size improvement on CTMark/Bullet at -O3, and a 0.2% code
size improvement at CTMark/pairlocalalign at -O3.

Differential Revision: https://reviews.llvm.org/D88177
2020-09-28 10:37:09 -07:00
benchmarks
bindings [bindings/go] Fix TestAttributes after D88241 2020-09-25 20:31:45 -07:00
cmake [CMake] Make sure _cmake_system_name has a default 2020-09-25 11:33:12 -04:00
docs [TableGen] Add/edit Doxygen comments to match "TableGen Backend Developer's Guide." 2020-09-26 09:09:22 -04:00
examples Update Kaleidoscope: Change headers 2020-09-27 05:40:50 +00:00
include [CostModel] move early exit for free intrinsics 2020-09-28 13:30:55 -04:00
lib [AArch64][GlobalISel] Infer whether G_PHI is going to be a FPR in regbankselect 2020-09-28 10:37:09 -07:00
projects
resources
runtimes [AIX] Try to not use LLVM tools while building runtimes 2020-09-25 10:55:24 -04:00
test [AArch64][GlobalISel] Infer whether G_PHI is going to be a FPR in regbankselect 2020-09-28 10:37:09 -07:00
tools [llvm-readobj/elf] - Fix the PREL31 relocation computation used for dumping arm32 unwind info (-u). 2020-09-28 16:22:56 +03:00
unittests [unittests] Preserve LD_LIBRARY_PATH in crash recovery test 2020-09-28 17:46:03 +01:00
utils [TableGen] Improved messages in PseudoLoweringEmitter. 2020-09-28 10:18:22 -04:00
.clang-format
.clang-tidy
.gitattributes
.gitignore [clangd] Store index in '.cache/clangd/index' instead of '.clangd/index' 2020-07-07 14:53:45 +02:00
CMakeLists.txt [cmake] Centralize LLVM_ENABLE_WARNINGS option 2020-09-21 10:23:17 -07:00
CODE_OWNERS.TXT Update PowerPC backend ownership in CODE_OWNERS.TXT 2020-09-14 15:45:57 -05:00
configure
CREDITS.TXT Update my email address. 2020-08-21 10:15:26 -07:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Test commit. 2020-03-14 18:08:26 -07:00
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.