Skip to content
  1. Nov 18, 2013
  2. Nov 17, 2013
    • Michael Gottesman's avatar
      [block-freq] Add BlockFrequency::scale that returns a remainder from the... · 4d078a3d
      Michael Gottesman authored
      [block-freq] Add BlockFrequency::scale that returns a remainder from the division and make the private scale in BlockFrequency more performant.
      
      This change is the first in a series of changes improving LLVM's Block
      Frequency propogation implementation to not lose probability mass in
      branchy code when propogating block frequency information from a basic
      block to its successors. This patch is a simple infrastructure
      improvement that does not actually modify the block frequency
      algorithm. The specific changes are:
      
      1. Changes the division algorithm used when scaling block frequencies by
      branch probabilities to a short division algorithm. This gives us the
      remainder for free as well as provides a nice speed boost. When I
      benched the old routine and the new routine on a Sandy Bridge iMac with
      disabled turbo mode performing 8192 iterations on an array of length
      32768, I saw ~600% increase in speed in mean/median performance.
      
      2. Exposes a scale method that returns a remainder. This is important so
      we can ensure that when we scale a block frequency by some branch
      probability BP = N/D, the remainder from the division by D can be
      retrieved and propagated to other children to ensure no probability mass
      is lost (more to come on this).
      
      llvm-svn: 194950
      4d078a3d
  3. Nov 16, 2013
  4. Nov 15, 2013
  5. Nov 14, 2013
  6. Nov 13, 2013
  7. Nov 06, 2013
  8. Nov 04, 2013
  9. Nov 03, 2013
  10. Oct 31, 2013
  11. Oct 30, 2013
  12. Oct 28, 2013
  13. Oct 25, 2013
  14. Oct 24, 2013
  15. Oct 22, 2013
  16. Oct 19, 2013
  17. Oct 18, 2013
  18. Oct 17, 2013
    • Filip Pizlo's avatar
      Expose install_fatal_error_handler() through the C API. · a535b141
      Filip Pizlo authored
      I expose the API with some caveats:
      
      - The C++ API involves a traditional void* opaque pointer for the fatal 
      error callback.  The C API doesn’t do this.  I don’t think that the void* 
      opaque pointer makes any sense since this is a global callback - there will 
      only be one of them.  So if you need to pass some data to your callback, 
      just put it in a global variable.
      
      - The bindings will ignore the gen_crash_diag boolean.  I ignore it because 
      (1) I don’t know what it does, (2) it’s not documented AFAIK, and (3) I 
      couldn’t imagine any use for it.  I made the gut call that it probably 
      wasn’t important enough to expose through the C API.
      
      llvm-svn: 192864
      a535b141
  19. Oct 16, 2013
  20. Oct 14, 2013
  21. Oct 13, 2013
    • David Majnemer's avatar
      Windows: Use GetModuleHandleEx instead of LoadLibrary · a5732844
      David Majnemer authored
      We were using an anti-pattern of:
       - LoadLibrary
       - GetProcAddress
       - FreeLibrary
      
      This is problematic because of several reasons:
       - We are holding on to pointers into a library we just unloaded.
       - Calling LoadLibrary results in an increase in the reference count of
         the library in question and any libraries that it depends on and
         so-on and so-forth.  This is none too quick.
      
      Instead, use GetModuleHandleEx with GET_MODULE_HANDLE_EX_FLAG_PIN.  This
      is done because because we didn't bring the reference for the library
      into existence and therefor shouldn't count on it being around later.
      
      llvm-svn: 192550
      a5732844
  22. Oct 12, 2013
  23. Oct 08, 2013
    • Rafael Espindola's avatar
      Fix build on Solaris 11. · 9ab9fe91
      Rafael Espindola authored
      Patch by Vladimir Voskresensky. The erros were:
      
      Path.inc:274:3: error: ‘Dl_info’ was not declared in this scope
      ...
      
      and
      
      usr/include/spawn.h:52:14: error: expected ‘,’ or ‘...’ before ‘argv’
      
      llvm-svn: 192185
      9ab9fe91
Loading