On Tue, Feb 17, 2015 at 9:22 AM, Ajit Kumar Agarwal <ajit.kumar.agar...@xilinx.com> wrote: > Hello All: > > I can see the IF-combining (If-merging) pass of optimization on tree-ssa form > of intermediate representation. > The IF-combine or merging takes of merging the IF-THEN-ELSE if the condition > Expr found be congruent or > Similar. > > The IF-combine happens if the two IF-THEN-ELSE are contiguous to each other. > If the IF-THEN-ELSE happens to be not contiguous but are wide apart with > there is code in between. > Does the If-combine takes care of this. This requires to do the > head-duplication and Tail-duplication for the > Code in between If-THEN-ELSE to bring the IF-THEN-ELSE contiguous to each > other. > > After the head and tail duplication of the code in between the IF-THEN-ElSE > sequence becomes contiguous > to each other. Apart from this, Does the tree-ssa-if-combine pass considers > the control flow of the body > of the IF-THEN-ELSE. Is there any limitation on control flow of the body of > the IF-THEN-ELSE. > > Can I know the scope of tree-ssa-ifcombine optimizations pass with respect to > the above points. > > Thoughts Please?
if-combine is a simple CFG + condition pattern matcher. It does not perform head/tail duplication. Also there is no "control flow" in the bodies, control flow is part of the CFG that is matched so I'm not quite getting your last question. if-combine was designed to accompany IL-only patterns that get partly translated into control flow. Like tem1 = name & bit1; tem2 = name & bit2; tem3 = tem1 | tem2; if (tem3) ... vs. tem1 = name & bit1; if (tem1) goto x; else { tem2 = name & bit2; if (tem2) goto x; } x: ... Richard. > Thanks & Regards > Ajit