Skip to content
  1. May 01, 2013
  2. Apr 30, 2013
  3. Apr 29, 2013
    • Arnold Schwaighofer's avatar
      SimplifyCFG: If convert single conditional stores · 474df6d3
      Arnold Schwaighofer authored
      This resurrects r179957, but adds code that makes sure we don't touch
      atomic/volatile stores:
      
      This transformation will transform a conditional store with a preceeding
      uncondtional store to the same location:
      
       a[i] =
       may-alias with a[i] load
       if (cond)
         a[i] = Y
      
      into an unconditional store.
      
       a[i] = X
       may-alias with a[i] load
       tmp = cond ? Y : X;
       a[i] = tmp
      
      We assume that on average the cost of a mispredicted branch is going to be
      higher than the cost of a second store to the same location, and that the
      secondary benefits of creating a bigger basic block for other optimizations to
      work on outway the potential case where the branch would be correctly predicted
      and the cost of the executing the second store would be noticably reflected in
      performance.
      
      hmmer's execution time improves by 30% on an imac12,2 on ref data sets. With
      this change we are on par with gcc's performance (gcc also performs this
      transformation). There was a 1.2 % performance improvement on a ARM swift chip.
      Other tests in the test-suite+external seem to be mostly uninfluenced in my
      experiments:
      This optimization was triggered on 41 tests such that the executable was
      different before/after the patch. Only 1 out of the 40 tests (dealII) was
      reproducable below 100% (by about .4%). Given that hmmer benefits so much I
      believe this to be a fair trade off.
      
      llvm-svn: 180731
      474df6d3
    • Rafael Espindola's avatar
      Update the documentation. · b39478e8
      Rafael Espindola authored
      llvm-svn: 180725
      b39478e8
    • Rafael Espindola's avatar
      Use a RelocationRef instead of a relocation_iterator. · 37008942
      Rafael Espindola authored
      No functionality change.
      
      llvm-svn: 180723
      37008942
    • Reid Kleckner's avatar
      Revert "revert r179735, it has no testcases, and doesn't really make sense." · e02c622b
      Reid Kleckner authored
      This un-reverts r179735 and reverts commit r180574.
      
      This fixes assertion failures for me locally and should fix the failures
      on Windows reported widely on llvm-dev.  We should check if the bots
      caught this and if so why not.
      
      llvm-svn: 180722
      e02c622b
    • Andrew Kaylor's avatar
      Exposing MCJIT through C API · 31be5eff
      Andrew Kaylor authored
      Re-submitting with fix for OCaml dependency problems (removing dependency on SectionMemoryManager when it isn't used).
      
      Patch by Fili Pizlo
      
      llvm-svn: 180720
      31be5eff
    • Rafael Espindola's avatar
      Propagate relocation info to resolveRelocation. · f1f1c626
      Rafael Espindola authored
      This gets most of the MCJITs tests passing with MachO.
      
      llvm-svn: 180716
      f1f1c626
Loading