[LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation

Chad Rosier chad.rosier at gmail.com
Tue Aug 6 07:46:19 PDT 2013


All,
I have some code that looks like the following:

{
  double a, b, c;
  for (...) {
    ...
    a = lots of FP math;
    b = lots of FP math;
    c = lots of FP math;
    if (cond) {
      a = 0.0;
      b = 0.1;
      c = 0.2;
    }
   ...
  }
}

Could we not convert the hammock into a diamond and move the initial
computation of a, b, and c into the else block.  Something like this:

{
  double a, b, c;
  for (...) {
    ...
    if (cond) {
      a = 0.0;
      b = 0.1;
      c = 0.2;
    } else {
      a = lots of FP math;
      b = lots of FP math;
      c = lots of FP math;
    }
   ...
  }
}

Does a similar optimization exist?  If not, would the SimplifyCFG pass be
an appropriate home for such an optimization?

 Chad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130806/68c360f0/attachment.html>


More information about the llvm-dev mailing list