Closed
Bug 565210
Opened 14 years ago
Closed 6 years ago
Poor code generated for skip chain
Categories
(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect)
Tracking
(Not tracked)
RESOLVED
WONTFIX
Future
People
(Reporter: wmaddox, Unassigned)
References
Details
(Whiteboard: PACMAN)
From the -Dverbose=jit output of the catch handler of a method: jt eq16 -> B255 00007686a6 cmp ebx,255 00007686ac je 0x0 00007686b2 mov ebx,-920(ebp) <= restore ld134 RR ebx(ld134) AR 780-1552(vars) 792-800(methodFrame) 888-980(_ef) 892(ebx) 896(esi) 900(edi) 904(4) 908(6381608) 912(env) 916(env_scope) 920(ld134) jt eq17 -> B382 00007686b8 cmp ebx,382 00007686be je 0x0 00007686c4 mov ebx,-920(ebp) <= restore ld134 RR ebx(ld134) AR 780-1552(vars) 792-800(methodFrame) 888-980(_ef) 892(ebx) 896(esi) 900(edi) 904(4) 908(6381608) 912(env) 916(env_scope) 920(ld134) jt eq18 -> B414 00007686ca cmp ebx,414 00007686d0 je 0x0 00007686d6 mov ebx,-920(ebp) <= restore ld134 RR ebx(ld134) AR 780-1552(vars) 792-800(methodFrame) 888-980(_ef) 892(ebx) 896(esi) 900(edi) 904(4) 908(6381608) 912(env) 916(env_scope) 920(ld134) jt eq19 -> B541 00007686dc cmp ebx,541 00007686e2 je 0x0 00007686e8 mov ebx,-920(ebp) <= restore ld134 RR ebx(ld134) AR 780-1552(vars) 792-800(methodFrame) 888-980(_ef) 892(ebx) 896(esi) 900(edi) 904(4) 908(6381608) 912(env) 916(env_scope) jt eq20 -> B573 Why do we keep reloading ebx? It looks as if the code generator may be assuming that the "destination" argument of the CMP instruction is clobbered, but it is not. Example above is from tamarin-redux-argo, but tamarin-redux shows the same issue. Noticed in passing while analyzing Bug 565184.
Comment 1•14 years ago
|
||
Once bug 565184 is done, the skip chain will test plain ordinals [0...n], and a LIR_jtbl would be more compact on CPU's that support it.
Depends on: 565184
Comment 2•6 years ago
|
||
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•