Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • sac2c sac2c
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 394
    • Issues 394
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 17
    • Merge requests 17
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • sac-group
  • sac2csac2c
  • Issues
  • #1073
Closed
Open
Created May 13, 2010 by Robert Bernecky@rbeDeveloper

4.79X post-Loch Ness performance loss in histlp.sac

Bugzilla Link 709
Created on May 13, 2010 20:20
Version svn
OS Linux
Architecture PC
Attachments crud.sac, crud.b11, crud.prelochness, xcrud.prelochness

Extended Description

Created an attachment (id=710)
Dan's pre-Loch Ness -b13 output
This is the most egregious of the remaining performance loss problems
introduced at Loch Ness. apex/histlp/histlp.sac now executes about 5X slower
than pre-Loch Ness.
The Loop_0 functions before and after look nearly identical, except for
these two lines:
  _pinl_3552__wlbsc_2356_sc_e = _idx_sel_( _ivesplit_5497, _isaa_4840_r_2);
  _pinl_3553__wlbsc_2357_sc_bound = [ _pinl_3552__wlbsc_2356_sc_e ];
ivesplit_5497 is 0, but the Loop_0 function header doesn't see that; it
sees it as an AKS int.
Similarly, _isaa_4840_r_2 is a parameter, but it is int[1], and
_pinl_3553__wlbsc_2357_sc_bound becomes that parameter in the recursive call.
So, the two lines are, effectively, a no-op. 
The picture is made a bit murkier by the fact that 
_pinl_3553__wlbsc_2357_sc_bound is also one of the results of
Loop_0.
I can see how LIR might have trouble pulling these lines out of the loop
function. If we can't fancy up LIR enough to do the job, perhaps we
can do an UNWLBSC traversal somewhere around the end of Phase 11.
This, however, would not work in the current code, because _ivesplit_5497
is not AKV.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking