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 403
    • Issues 403
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • sac-group
  • sac2csac2c
  • Issues
  • #1040
Closed
Open
Created Jun 17, 2009 by Robert Bernecky@rbeDeveloper

CSE misses cases on LACFNS in apex/mconvout

Bugzilla Link 511
Created on Jun 17, 2009 23:41
Version 1.00beta
OS Linux
Architecture PC

Extended Description

The following is a fragment of code generated by the apex/mconvout/mconvout.sac benchmark. I see several problems with this code:
1. CSE (I think) fails to note that _flat_134 and _flat_137 are
identical, as are the sel() operations that follow them.
I would expect, as a first step, to move the common code out of
the conditional and into the code that dominates it.
2. As a second step, the indexing operation should be totally
   lifted out of Cond_3 and into the calling environment.
   This would eliminate the need for k, and i, 
   to be passed into Cond_3.
I am not sure how much this might affect run-time performance, but I stumbled
across this while searching for your basic factor-of-4 slowdown. 
This isn't it, sadly enough, because it appears in both my fast and slow
cases.
-----------------------------------------------------------------------------
int _MAIN::_dup_13852______rotrIDD__Cond_3( int[100] k {  } , int i {  } , int j {  } , bool _flat_129 {  } )
/*
 *  _dup_13852______rotrIDD__Cond_3 ::  ---
 */
{
  int _pinl_10860__flat_95 {  } ;
  int _pinl_10861__flat_69 {  } ;
  int _pinl_10862__flat_68 {  } ;
  int _pinl_10855__flat_95 {  } ;
  int _pinl_10856__flat_69 {  } ;
  int _hce_1__SSA0_2 {  } ;
  int[1] _flat_134 {  } ;
  int[1] _flat_137 {  } ;
  if (_flat_129)
  {
    _flat_134 = [ i ];
    _pinl_10855__flat_95 = _sel_VxA_( _flat_134, k);
    _pinl_10856__flat_69 = _add_SxS_( j, _pinl_10855__flat_95);
  }
  else
  {
    _flat_137 = [ i ];
    _pinl_10860__flat_95 = _sel_VxA_( _flat_137, k);
    _pinl_10861__flat_69 = _add_SxS_( j, _pinl_10860__flat_95);
    _pinl_10862__flat_68 = _sub_SxS_( _pinl_10861__flat_69, 350099);
  }
  _hce_1__SSA0_2 = ( _flat_129 ? _pinl_10856__flat_69 : _pinl_10862__flat_68 );
  return( _hce_1__SSA0_2);
}
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking