diff options
author | Jessica Paquette <jpaquette@apple.com> | 2019-05-24 23:08:45 +0000 |
---|---|---|
committer | Jessica Paquette <jpaquette@apple.com> | 2019-05-24 23:08:45 +0000 |
commit | 97d668d70f526f6fc4406053193502b83eec688b (patch) | |
tree | dc9443c3659705d18e2562fe67123bf90f5d17d1 /clang/lib/Analysis/AnalysisDeclContext.cpp | |
parent | 59f959ff333bf42962287957b51d0da285087e41 (diff) | |
download | bcm5719-llvm-97d668d70f526f6fc4406053193502b83eec688b.tar.gz bcm5719-llvm-97d668d70f526f6fc4406053193502b83eec688b.zip |
[GlobalISel][AArch64] Make FP constraint checks consider possible use/def banks
In a few places in getInstrMapping, we check if use/def instructions for the
instruction we're mapping have floating point constraints.
We can improve this check and reduce the number of copies in GISel-compiled code
if we make a couple observations:
- For a def instruction, it only matters if the def instruction must always
output a value stored on a FPR
- For a use instruction, it only matters if the use instruction must always
only take in values stored in FPRs
This adds two new functions:
- onlyUsesFP
- onlyDefinesFP
Then we can use those when we're checking the uses/defs instead.
Without this patch, the load, unmerge, store, and select in the added test
would have unnecessary copies.
Differential Revision: https://reviews.llvm.org/D62426
llvm-svn: 361679
Diffstat (limited to 'clang/lib/Analysis/AnalysisDeclContext.cpp')
0 files changed, 0 insertions, 0 deletions