aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
diff options
context:
space:
mode:
authorMichael Platings <michael.platings@arm.com>2023-03-14 19:40:58 +0000
committerMichael Platings <michael.platings@arm.com>2023-03-24 06:58:07 +0000
commitd30bc9e91241d69410fe1a878a66438dd752014f (patch)
treeb38beef38da43206e7a7cc8b8341fc88d484d171 /llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
parent1e4325f30c2494637626a978c54b41c8ca7ec0ff (diff)
downloadllvm-d30bc9e91241d69410fe1a878a66438dd752014f.zip
llvm-d30bc9e91241d69410fe1a878a66438dd752014f.tar.gz
llvm-d30bc9e91241d69410fe1a878a66438dd752014f.tar.bz2
[Driver] Change multilib selection algorithm
The new algorithm is: 1. Find all multilibs with flags that are a subset of the requested flags. 2. If more than one multilib matches, choose the last. In addition a new selection mechanism is permitted via an overload of MultilibSet::select() for which multiple multilibs are returned. This allows layering multilibs on top of each other. Since multilibs are now ordered within a list, they no longer need a Priority field. The new algorithm is different to the old algorithm, but in practise the old algorithm was always used in such a way that the effect is the same. The old algorithm was to find the set intersection of the requested flags (with the first character of each removed) with each multilib's flags (ditto), and for that intersection check whether the first character matched. However, ignoring the first characters, the requested flags were always a superset of all the multilibs flags. Therefore the new algorithm can be used as a drop-in replacement. The exception is Fuchsia, which needs adjusting slightly to set both fexceptions and fno-exceptions flags. Differential Revision: https://reviews.llvm.org/D142905
Diffstat (limited to 'llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions