| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: Icd7c95d2a7a0cacf15f079eed38c5d1a8f138b3f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't force the optimizing compiler to compile a huge
method by reducing the number of local variables and
instructions in Main.$opt$LargeFrame.
- Prevent the optimizing compiler from "optimizing too much"
(through constant folding and inlining), so as to preserve
a large stack frame in Main.$opt$LargeFrame.
- Keep the original huge method (without the $opt$ marker)
as Main.HugeFrame.
Bug: 20020727
Change-Id: I49bf8f03146020bd94bd392684e605d7bb6daf1e
|
|
|
|
|
|
| |
The compiler will now not compile large methods with no branch.
Change-Id: Iaea284c648f7f3f754cb8ec721ad2ecffbd2f6af
|
|
When accessing a stack frame at a large offset, use an
additional core register (R5 or R6) as a temporary register
whenever IP contains the value to store (and thus cannot be
used by art::Thumb2Assembler::StoreToOffset as a temporary
register to compute the memory address where the value is
to be stored). The previous value of R5 (or R6) is saved
on the stack before the emission of the store instruction
and restored afterwards.
Change-Id: Ic5fd5ab2c09d8327dd1f0f241d40d2c397ce64cd
|