aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/CodegenFactory.cpp
diff options
context:
space:
mode:
authorBen Cheng <bccheng@android.com>2011-04-26 10:00:22 -0700
committerBen Cheng <bccheng@android.com>2011-04-26 10:26:16 -0700
commitde9e2b90c156664a1bdc2b5c9911e4dfa527c148 (patch)
treee954d8defe0190ccbfdbd71f3a74ce63dd4ca305 /vm/compiler/codegen/CodegenFactory.cpp
parent98bfc3b7162417dc1816a75dc566de3572a7e5da (diff)
Bug fixes for ld/st elimination.
1) Only optimize each block once. Strictly speaking this is not a correctness issue however it triggers the subsequent problem. 2) Ignore dead instructions. 1: ldr r2, [r5, #8] 2: ldr r3, [r5, #8](nop) 3: str r3, [r5, #4] 4: movs r3, r2 When using instruction 1 to initiate redundant ld/st eliminations, if instruction 2 (which is already dead) is not ignored, it will be turned into a "mov r3, r2" and that will clobber r3 used by the str. Change-Id: I8eecd13eeb30e4a67ecf1f8fbad925b1e6e91fc8
Diffstat (limited to 'vm/compiler/codegen/CodegenFactory.cpp')
0 files changed, 0 insertions, 0 deletions