Skip to content
  1. Dec 05, 2011
  2. Dec 04, 2011
  3. Dec 03, 2011
    • Venkatraman Govindaraju's avatar
      Sparc CodeGen: Fix AnalyzeBranch for PR 10282. Removing addSuccessor() since · 6dae604f
      Venkatraman Govindaraju authored
      AnalyzeBranch doesn't change the successor, just the order.
      
      llvm-svn: 145779
      6dae604f
    • Howard Hinnant's avatar
      Version #next on the hash functions for scalars. This builds on Dave's work,... · 9b0cd149
      Howard Hinnant authored
      Version #next on the hash functions for scalars.  This builds on Dave's work, extends it to T*, and changes the way double and long double are handled (no longer convert to float on 32 bit).  I also picked up a minor bug with uninitialized bits on the upper end of size_t when sizeof(size_t) > sizeof(T), e.g. in hash<float>.  Most of the functionality has been put in one place:  __scalar_hash in <memory>.  Unfortunately I could not reuse __scalar_hash for hash<long double> on x86 because of the padding bits which need to be zeroed.  I didn't want to add this zeroing step to the more general __scalar_hash when it isn't needed (in the absence of padding bits).  I'm not ignoring the hash<string> issue (possibly changing that to a better hash).  I just haven't gotten there yet.
      
      llvm-svn: 145778
      9b0cd149
    • Greg Clayton's avatar
      Added the ability for clients to grab a set of symbol table indexes and then · 1075acaf
      Greg Clayton authored
      add them to a fast lookup map. lldb_private::Symtab now export the following
      public typedefs:
      
      namespace lldb_private {
      
      	class Symtab {
      		typedef std::vector<uint32_t> IndexCollection;
      		typedef UniqueCStringMap<uint32_t> NameToIndexMap;
      	};
      }
      
      Clients can then find symbols by name and or type and end up with a 
      Symtab::IndexCollection that is filled with indexes. These indexes can then
      be put into a name to index lookup map and control if the mangled and 
      demangled names get added to the map:
      
      bool add_demangled = true;
      bool add_mangled = true;
      Symtab::NameToIndexMap name_to_index;
      symtab->AppendSymbolNamesToMap (indexes, add_demangled, add_mangled, name_to_index).
      
      This can be repeated as many times as needed to get a lookup table that
      you are happy with, and then this can be sorted:
      
      name_to_index.Sort();
      
      Now name lookups can be done using a subset of the symbols you extracted from
      the symbol table. This is currently being used to extract objective C types
      from object files when there is no debug info in SymbolFileSymtab.
      
      Cleaned up how the objective C types were being vended to be more efficient
      and fixed some errors in the regular expression that was being used.
      
      llvm-svn: 145777
      1075acaf
    • Douglas Gregor's avatar
      Fix mangling substitutions for address-space-qualified class · fb9968d6
      Douglas Gregor authored
      types. Patch from Dmitri Rubinstein!
      
      llvm-svn: 145776
      fb9968d6
    • Douglas Gregor's avatar
      Implement support for the __is_final type trait, to determine whether · dca70af2
      Douglas Gregor authored
      a class is marked 'final', from Alberto Ganesh Barbati! Fixes
      PR11462.
      
      llvm-svn: 145775
      dca70af2
    • Fariborz Jahanian's avatar
      If block literal return type is not specified, return type of the block is · dd5eb9df
      Fariborz Jahanian authored
      inferred from return types. All the return statements have to agree about the type.
      // rdar://10466373
      
      llvm-svn: 145774
      dd5eb9df
    • Benjamin Kramer's avatar
      Simplify code. No functionality change. · 71ba18c1
      Benjamin Kramer authored
      -3% on ARMDissasembler.cpp.
      
      llvm-svn: 145773
      71ba18c1
    • Francois Pichet's avatar
      In Microsoft mode, don't perform typo correction in a template member function... · 9c39113f
      Francois Pichet authored
      In Microsoft mode, don't perform typo correction in a template member function dependent context because it interferes with the "lookup into dependent bases of class templates" feature.
      
      Basically typo correction will try to offer a correction instead of looking into type dependent base classes.
      
      I found this problem while parsing Microsoft ATL code with clang.
      
      llvm-svn: 145772
      9c39113f
    • Benjamin Kramer's avatar
      Clear the new cache. · bbf3c607
      Benjamin Kramer authored
      llvm-svn: 145771
      bbf3c607
    • Benjamin Kramer's avatar
      Add a "seen blocks" cache to LVI to avoid a linear scan over the whole cache... · 36647083
      Benjamin Kramer authored
      Add a "seen blocks" cache to LVI to avoid a linear scan over the whole cache just to remove no blocks from the maps.
      
      -15% on ARMDisassembler.cpp (Release build).  It's not that great to add another
      layer of caching to the caching-heavy LVI but I don't see a better way.
      
      llvm-svn: 145770
      36647083
    • Sebastian Redl's avatar
    • Sanjoy Das's avatar
      Check for stack space more intelligently. · 006e43bc
      Sanjoy Das authored
      libgcc sets the stack limit field in TCB to 256 bytes above the actual
      allocated stack limit.  This means if the function's stack frame needs
      less than 256 bytes, we can just compare the stack pointer with the
      stack limit.  This should result in lesser calls to __morestack.
      
      llvm-svn: 145766
      006e43bc
    • Sanjoy Das's avatar
      Fix a bug in the x86-32 code generated for segmented stacks. · 165ca1d4
      Sanjoy Das authored
      Currently LLVM pads the call to __morestack with a add and sub of 8
      bytes to esp.  This isn't correct since __morestack expects the call
      to be followed directly by a ret.
      
      This commit also adjusts the relevant test-case.
      
      llvm-svn: 145765
      165ca1d4
    • Greg Clayton's avatar
      Added code to make sure we don't recursively try to find an objective C · 901c5ca1
      Greg Clayton authored
      class. The thing with Objective C classes is the debug info might have a
      definition that isn't just a forward decl, but it is incomplete. So we need to
      look and see if we can find the complete definition and avoid recursing a lot
      due to the fact that our accelerator tables will have many versions of the 
      type, but only one complete one. We might not also have the complete type
      and we need to deal with this correctly.
      
      llvm-svn: 145759
      901c5ca1
Loading