- Nov 19, 2010
-
-
Jakob Stoklund Olesen authored
This is a sorted interval map data structure for small keys and values with automatic coalescing and bidirectional iteration over coalesced intervals. Except for coalescing intervals, it provides similar functionality to std::map. It is however much more compact for small keys and values, and hopefully faster too. The container object itself can hold the first few intervals without any allocations, then it switches to a cache conscious B+-tree representation. A recycling allocator can be shared between many containers, even between containers holding different types. The IntervalMap is initially intended to be used with SlotIndex intervals for: - Backing store for LiveIntervalUnion that is smaller and faster than std::set. - Backing store for LiveInterval with less overhead than std::vector for typical intervals and O(N log N) merging of large intervals. 99% of virtual registers need 4 entries or less and would benefit from the small object optimization. - Backing store for LiveDebugVariable which doesn't exist yet, but will track debug variables during register allocation. This is a work in progress. Missing items are: - Performance metrics. - erase(). - insert() shrinkage. - clear(). - More performance metrics. - Simplification and detemplatization. llvm-svn: 119772
-
Greg Clayton authored
conventions. llvm-svn: 119771
-
Dale Johannesen authored
were not hashing to the same value. Analysis and patch by Frits van Bommel! llvm-svn: 119770
-
Bill Wendling authored
llvm-svn: 119769
-
Owen Anderson authored
llvm-svn: 119768
-
Jim Grosbach authored
llvm-svn: 119767
-
Argyrios Kyrtzidis authored
Anyone wanting to use it should probably use DiagnosticClient's getNumErrors() instead. llvm-svn: 119766
-
Argyrios Kyrtzidis authored
llvm-svn: 119765
-
Argyrios Kyrtzidis authored
llvm-svn: 119764
-
Argyrios Kyrtzidis authored
Move ErrorTrap from clang/Sema to clang/Basic as DiagnosticErrorTrap and use it in Scope. llvm-svn: 119763
-
Bill Wendling authored
llvm-svn: 119762
-
Bill Wendling authored
llvm-svn: 119761
-
Jason W Kim authored
Fix .o emission of ARM movt/movw. MCSymbolRefExpr::VK_ARM_(HI||LO)16 for the .o path now works for ARM. Note: lo16AllZero remains in ARMInstrInfo.td - It can be factored out when Thumb movt is repaired. Existing tests cover this update. llvm-svn: 119760
-
Bill Wendling authored
llvm-svn: 119759
-
Johnny Chen authored
llvm-svn: 119758
-
Greg Clayton authored
changing it to use it. There was an extra parameter added to the static accessor global user settings controllers that wasn't needed. A bool was being used as a parameter to the accessor just so it could be used to clean up the global user settings controller which is now fixed by splitting up the initialization into the "static void Class::Initialize()", access into the "static UserSettingsControllerSP & Class::GetSettingsController()", and cleanup into "static void Class::Terminate()". Also added initialize and terminate calls to the logging code to avoid issues when LLDB is shutting down. There were cases after the logging was switched over to use shared pointers where we could crash if the global destructor chain was being run and it causes the log to be destroyed and any any logging occurred. llvm-svn: 119757
-
Owen Anderson authored
llvm-svn: 119756
-
Owen Anderson authored
llvm-svn: 119755
-
Anton Korobeynikov authored
llvm-svn: 119754
-
Jim Grosbach authored
llvm-svn: 119753
-
- Nov 18, 2010
-
-
Fariborz Jahanian authored
types was not being generated for objc pointers. // rdar://8681766. llvm-svn: 119751
-
Sean Callanan authored
externally-defined variables to match up with the code in ClangASTSource that produces them. llvm-svn: 119750
-
Tanya Lattner authored
Fix bug in DAGCombiner for ARM that was trying to do a ShiftCombine on illegal types (vector should be split first). Added test case. llvm-svn: 119749
-
Bob Wilson authored
Neon shifts allow a mix of positive and negative shift amounts to shift left or right, respectively, so the shift amount vector should always be signed. PR8482 (Radar 8603521). llvm-svn: 119748
-
Bill Wendling authored
should delete what when the object gets copied around. It's also making valgrind upset. llvm-svn: 119747
-
Argyrios Kyrtzidis authored
llvm-svn: 119746
-
Argyrios Kyrtzidis authored
llvm-svn: 119745
-
Owen Anderson authored
llvm-svn: 119744
-
Jim Grosbach authored
llvm-svn: 119743
-
Bob Wilson authored
This makes it symmetric with the 'u' modifier that forces an unsigned type. This is needed for unsigned vector shifts, where the shift amount still needs to be signed. PR8482 (Radar 8603521). llvm-svn: 119742
-
Benjamin Kramer authored
llvm-svn: 119741
-
Anton Korobeynikov authored
llvm-svn: 119740
-
Duncan Sands authored
not anyext(select). Spotted by Frits van Bommel. llvm-svn: 119739
-
Bob Wilson authored
This function was being called from two different places for completely unrelated reasons. During type legalization, it was called to expand 64-bit shift operations. During operation legalization, it was called to handle Neon vector shifts. The vector shift code was not written to check for illegal types, since it was assumed to be only called after type legalization. Fixed this by splitting off the 64-bit shift expansion into a separate function. I don't have a particular testcase for this; I just noticed it by inspection. llvm-svn: 119738
-
Owen Anderson authored
llvm-svn: 119737
-
Argyrios Kyrtzidis authored
and just check the number of errors from the DiagnosticClient. llvm-svn: 119736
-
Argyrios Kyrtzidis authored
llvm-svn: 119735
-
Johnny Chen authored
llvm-svn: 119734
-
Owen Anderson authored
llvm-svn: 119733
-
Johnny Chen authored
llvm-svn: 119732
-