diff options
| author | Jessica Paquette <jpaquette@apple.com> | 2020-09-23 11:28:10 -0700 |
|---|---|---|
| committer | Jessica Paquette <jpaquette@apple.com> | 2020-09-28 10:37:09 -0700 |
| commit | 9d7ec46f5740d7626171c2b8198f825176991e0a (patch) | |
| tree | 44b0ad60cebf64555f78e115b9155cbcc52fd700 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | 745abbbb852e3c0006f22b7beade820ac978252c (diff) | |
[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
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
