Commits

Xin Tong committed 4ea79fec2bd
There are simply too many locations and too many basic blocks in some functions for dead store elimination to handle. In the worst case, The number of memory behavior or alias queries we need to do is roughly linear to the # BBs x(times) # of locations. Put in some heuristic to trade off accuracy for compilation time. NOTE: we are not disabling DSE for these offending functions. instead we are running a one iteration pessimistic data flow as supposed to the multiple iteration optimistic data flow we've done previously. With this change. I see compilation time on StdlibUnitTest drops significantly. 50%+ drop in time spent in DSE in StdlibUnit with a release compiler. I will update more Instruments data post-commit once i get close to my desktop. I see a slight drop in # of dead stores (DS) elimination in stdlib and stdlibUnit test. stdlib: 203 DS -> 202 DS. (RLE is affected slightly as well. 6313 -> 6295 RL). stdlibunittest : 43 DS -> 42. (RLE is not affected). We are passing all existing dead store tests.