home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.arch      Apparently more than just beeps & boops      131,241 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 130,414 of 131,241   
   Thomas Koenig to Anton Ertl   
   Re: Multi-precision addition and archite   
   30 Nov 25 15:47:03   
   
   From: tkoenig@netcologne.de   
      
   Anton Ertl  schrieb:   
   > Thomas Koenig  writes:   
   >>Anton Ertl  schrieb:   
   >>Both our guesses were wrong, and Scott (I think) was on the right   
   >>track - this is a signed / unsigned issue.  A reduced test case is   
   >>   
   >>void bar(unsigned long, long);   
   >>   
   >>void foo(unsigned long u1)   
   >>{   
   >>  long u3;   
   >>  u1 = u1 / 10;   
   >>  u3 = u1 % 10;   
   >>  bar(u1,u3);   
   >>}   
   >   
   > Assigning to u1 changed the meaning, as Andrew Pinski noted;   
      
   An example which could be tested at run-time to verify correct   
   operation was not provided, so I had to do without.   
      
   In reducing compiler bugs, automated tools such as delta or   
   (much better) cvise are essential.  Your test case was so   
   large that cvise failed, so a lot of manual work was required.   
      
   cvise uses a user-supplied "interestingness script" which returns   
   0 if the feature in question is there, or non-zero if it is   
   not there.   For relatively simple cases like an ICE, it   
   can have two steps: a) check that compilation fails, and b)   
   check that the error messages is output.   
      
   Looking for a missed optimization is more difficult, especially   
   in the absence of a run-time test.  It is then necessary to   
      
   a) check the source code that the interesting code is still there   
      
   b) compile the code (exiting if this fails)   
      
   c) verify the generated assembly that it still does the same   
      
   a) and c) are very easy to get wrong, and there were numerous   
   false reductions where cvise came up with something that the   
   scripts didn't catch.   
      
      
   >so the   
   > jury is still out on what the actual problem is.   
   >   
   >>This is now https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122911 .   
   >   
   > and a revised one at   
   >   
   >   
   > (The announced attachment is not there yet.)   
   >   
   > The latter case is interesting, because real_ca and spc became global,   
   > and symbols[] is still local, and no assignment to real_ca happens   
   > inside foo().   
      
   That is what cvise does.  It sometimes reduces code more than a   
   human would.   
   --   
   This USENET posting was made without artificial intelligence,   
   artificial impertinence, artificial arrogance, artificial stupidity,   
   artificial flavorings or artificial colorants.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca