diff options
Diffstat (limited to 'compiler/optimizing/locations.h')
| -rw-r--r-- | compiler/optimizing/locations.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/optimizing/locations.h b/compiler/optimizing/locations.h index d1555d4e11..e1c8e8ed6e 100644 --- a/compiler/optimizing/locations.h +++ b/compiler/optimizing/locations.h @@ -391,6 +391,10 @@ class RegisterSet : public ValueObject { return (register_set & (1 << reg)) != 0; } + size_t GetNumberOfRegisters() const { + return __builtin_popcount(core_registers_) + __builtin_popcount(floating_point_registers_); + } + private: uint32_t core_registers_; uint32_t floating_point_registers_; @@ -503,6 +507,10 @@ class LocationSummary : public ArenaObject<kArenaAllocMisc> { return &live_registers_; } + size_t GetNumberOfLiveRegisters() const { + return live_registers_.GetNumberOfRegisters(); + } + bool InputOverlapsWithOutputOrTemp(uint32_t input_index, bool is_environment) const { if (is_environment) return true; if ((input_index == 0) |