FAQ for the SUIF inline pass by Tim Callahan. Direct new questions to timothyc@cs.berkeley.edu. ------------------------------------------------------------------ Q1. When a procedure is inlined, a lot of variable copies are added around the code. This seems very inefficient. Can't you get rid of them? A1. You can get rid of excess copies by running porky after you run the inlining pass. You would want to run it again anyway, because inlining usually results in many new optimization opportunities. In fact, you probably want to run porky more than once, since "-iterate" doesn't actually iterate over all potential optimizations. I use PORKY_FLAGS = -fold -ucf-opt -forward-prop -const-prop \ -control-simp -dead-code -copy-prop -iterate ------------------------------------------------------------------ Q2. SUIF's linksuif pass seems really broken!? I can't compile any real large benchmarks using it. What should I do? A2. Get and apply Chris Colohan's patch: http://www.cs.cmu.edu/~colohan/suif_patch.html ------------------------------------------------------------------ Q3. The inlining procedure produces bad SUIF --- there can be jumps out of FOR loops! A3. Run "porky -fixbad" afterwards...or just add "-fixbad" to the porky flags listed in A1.