diff options
| author | 2016-04-22 12:16:29 +0100 | |
|---|---|---|
| committer | 2016-04-22 15:39:46 +0100 | |
| commit | 1f2ce44db2613a1e60a66c3c454834b72e994f57 (patch) | |
| tree | 72d4f3a908b97ed9b3ce4d52f3e30703f7367fe5 /compiler/utils/arm/assembler_thumb2.h | |
| parent | 1bfc7e5ebf22aac51019937849499f3d7f389db0 (diff) | |
Thumb2: Reduce memory used for fixup dependencies.
Mark fixups for far backward branches as 32-bit from the
beginning and ignore their dependencies since they cannot
be expanded anymore. This reduces the memory used by the
fixup_dependents_ when compiling methods with a lot of
slow paths.
Bug: 28256882
Change-Id: I0b7155ed8970b69703fa9c4666d9c4961e425721
Diffstat (limited to 'compiler/utils/arm/assembler_thumb2.h')
| -rw-r--r-- | compiler/utils/arm/assembler_thumb2.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/compiler/utils/arm/assembler_thumb2.h b/compiler/utils/arm/assembler_thumb2.h index 111a6b09d7..bc5b708e88 100644 --- a/compiler/utils/arm/assembler_thumb2.h +++ b/compiler/utils/arm/assembler_thumb2.h @@ -538,6 +538,20 @@ class Thumb2Assembler FINAL : public ArmAssembler { return GetType() >= kLoadLiteralNarrow; } + // Returns whether the Fixup can expand from the original size. + bool CanExpand() const { + switch (GetOriginalSize()) { + case kBranch32Bit: + case kCbxz48Bit: + case kLiteralFar: + case kLiteralAddrFar: + case kLongOrFPLiteralFar: + return false; + default: + return true; + } + } + Size GetOriginalSize() const { return original_size_; } |