Skip to content
  1. Mar 01, 2012
    • Benjamin Kramer's avatar
      BumpPtrAllocator: Make sure threshold cannot be initialized with a value... · f7e02a0c
      Benjamin Kramer authored
      BumpPtrAllocator: Make sure threshold cannot be initialized with a value smaller than the slab size.
      
      This replaces r151834 with a simpler fix.
      
      llvm-svn: 151842
      f7e02a0c
    • Argyrios Kyrtzidis's avatar
      If BumpPtrAllocator is requested to allocate a size that exceeds the slab size, · 16558f4d
      Argyrios Kyrtzidis authored
      increase the slab size.
      
      llvm-svn: 151834
      16558f4d
    • Chandler Carruth's avatar
      Add the source file with trivial definitions in it that was missing from · 34085df4
      Chandler Carruth authored
      r151822, sorry sorry. =[
      
      We need 'git svn nothave' or some such...
      
      llvm-svn: 151824
      34085df4
    • Chandler Carruth's avatar
      Rewrite LLVM's generalized support library for hashing to follow the API · 1d03a3b6
      Chandler Carruth authored
      of the proposed standard hashing interfaces (N3333), and to use
      a modified and tuned version of the CityHash algorithm.
      
      Some of the highlights of this change:
       -- Significantly higher quality hashing algorithm with very well
          distributed results, and extremely few collisions. Should be close to
          a checksum for up to 64-bit keys. Very little clustering or clumping of
          hash codes, to better distribute load on probed hash tables.
       -- Built-in support for reserved values.
       -- Simplified API that composes cleanly with other C++ idioms and APIs.
       -- Better scaling performance as keys grow. This is the fastest
          algorithm I've found and measured for moderately sized keys (such as
          show up in some of the uniquing and folding use cases)
       -- Support for enabling per-execution seeds to prevent table ordering
          or other artifacts of hashing algorithms to impact the output of
          LLVM. The seeding would make each run different and highlight these
          problems during bootstrap.
      
      This implementation was tested extensively using the SMHasher test
      suite, and pased with flying colors, doing better than the original
      CityHash algorithm even.
      
      I've included a unittest, although it is somewhat minimal at the moment.
      I've also added (or refactored into the proper location) type traits
      necessary to implement this, and converted users of GeneralHash over.
      
      My only immediate concerns with this implementation is the performance
      of hashing small keys. I've already started working to improve this, and
      will continue to do so. Currently, the only algorithms faster produce
      lower quality results, but it is likely there is a better compromise
      than the current one.
      
      Many thanks to Jeffrey Yasskin who did most of the work on the N3333
      paper, pair-programmed some of this code, and reviewed much of it. Many
      thanks also go to Geoff Pike Pike and Jyrki Alakuijala, the original
      authors of CityHash on which this is heavily based, and Austin Appleby
      who created MurmurHash and the SMHasher test suite.
      
      Also thanks to Nadav, Tobias, Howard, Jay, Nick, Ahmed, and Duncan for
      all of the review comments! If there are further comments or concerns,
      please let me know and I'll jump on 'em.
      
      llvm-svn: 151822
      1d03a3b6
    • James Molloy's avatar
      Fix a codegen fault in which log2 or exp2 could be dead-code eliminated even... · f6298e92
      James Molloy authored
      Fix a codegen fault in which log2 or exp2 could be dead-code eliminated even though they could have sideeffects.
      
      Only allow log2/exp2 to be converted to an intrinsic if they are declared "readnone".
      
      llvm-svn: 151807
      f6298e92
    • Benjamin Kramer's avatar
      Make TargetRegisterClasses non-virtual by making the only virtual function a function pointer. · e39d7ac3
      Benjamin Kramer authored
      This allows us to make TRC non-polymorphic and value-initializable, eliminating a huge static
      initializer and a ton of cruft from the generated code.
      
      Shrinks ARMBaseRegisterInfo.o by ~100k.
      
      llvm-svn: 151806
      e39d7ac3
    • Benjamin Kramer's avatar
      Emit the "is an intrinsic overloaded" table as a bitfield. · acd78d50
      Benjamin Kramer authored
      llvm-svn: 151792
      acd78d50
    • Akira Hatanaka's avatar
      Pass endian information to constructors. Define separate functions to create · 1ee768db
      Akira Hatanaka authored
      objects for big endian and little endian targets.
      
      Patch by Jack Carter.
      
      llvm-svn: 151788
      1ee768db
    • Jakob Stoklund Olesen's avatar
      Make InlineSpiller bundle-aware. · abe8c09b
      Jakob Stoklund Olesen authored
      Simply treat bundles as instructions. Spill code is inserted between
      bundles, never inside a bundle.  Rewrite all operands in a bundle at
      once.
      
      Don't attempt and memory operand folding inside bundles.
      
      llvm-svn: 151787
      abe8c09b
    • David Meyer's avatar
      [Object] · 2fc34c5f
      David Meyer authored
      * Add begin_dynamic_table() / end_dynamic_table() private interface to ELFObjectFile.
      * Add begin_libraries_needed() / end_libraries_needed() interface to ObjectFile, for grabbing the list of needed libraries for a shared object or dynamic executable.
      * Implement this new interface completely for ELF, leave stubs for COFF and MachO.
      * Add 'llvm-readobj' tool for dumping ObjectFile information.
      
      llvm-svn: 151785
      2fc34c5f
    • Jakob Stoklund Olesen's avatar
      Move getBundleStart() into MachineInstrBundle.h. · d256c216
      Jakob Stoklund Olesen authored
      This allows the function to be inlined, and makes it suitable for use in
      getInstructionIndex().
      
      Also provide a const version. C++ is great for touch typing practice.
      
      llvm-svn: 151782
      d256c216
    • Lang Hames's avatar
      Don't redundantly copy implicit operands when rematerializing. · 76e66c31
      Lang Hames authored
      While we're at it - don't copy vreg implicit operands while rematerializing.
      This fixes PR12138.
      
      llvm-svn: 151779
      76e66c31
    • Sean Callanan's avatar
      Fixed the 32-bit runtime dynamic loader to allocate · 0a5597d3
      Sean Callanan authored
      code sections when needed.  It just had a conditional
      the wrong way around.
      
      llvm-svn: 151777
      0a5597d3
  2. Feb 29, 2012
  3. Feb 28, 2012
Loading