diff options
author | Matthias Braun <matze@braunis.de> | 2022-08-17 10:54:12 -0700 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2022-08-22 09:28:26 -0700 |
commit | b2542c40b924acba8bf9708e938c184b77918ae4 (patch) | |
tree | b1bc68a45d3092adde62966026195d5f1142f43b /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 3affbae5300dcdf753c954a65ab6a96fcf65c483 (diff) | |
download | llvm-b2542c40b924acba8bf9708e938c184b77918ae4.zip llvm-b2542c40b924acba8bf9708e938c184b77918ae4.tar.gz llvm-b2542c40b924acba8bf9708e938c184b77918ae4.tar.bz2 |
RegisterClassInfo: Fix CSR cache invalidation
`RegisterClassInfo` caches information like allocation orders and reuses
it for multiple machine functions where possible. However the `MCPhysReg
*CalleeSavedRegs` field used to test whether the set of callee saved
registers changed did not work: After D28566
`MachineRegisterInfo::getCalleeSavedRegs()` can return dynamically
computed CSR sets that are only valid while the `MachineRegisterInfo`
object of the current function exists.
This changes the code to make a copy of the CSR list instead of keeping
a possibly invalid pointer around.
Differential Revision: https://reviews.llvm.org/D132080
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions