- Mar 02, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 126805
-
Jakob Stoklund Olesen authored
This method could probably be used by LiveIntervalAnalysis::shrinkToUses, and now it can use extendIntervalEndTo() which coalesces ranges. llvm-svn: 126803
-
Jakob Stoklund Olesen authored
llvm-svn: 126801
-
Jakob Stoklund Olesen authored
The value map is currently not used, all values are 'complex mapped' and LiveIntervalMap::mapValue is used to dig them out. This is the first step in a series changes leading to the removal of LiveIntervalMap. Its data structures can be shared among all the live intervals created by a split, so it is wasteful to create a copy for each. llvm-svn: 126800
-
Jakob Stoklund Olesen authored
Local live range splitting is better driven by interference. This code was just guessing. llvm-svn: 126799
-
Jakob Stoklund Olesen authored
This is a waste of time since we already know how to evict all interferences which is a better approach anyway. llvm-svn: 126798
-
- Mar 01, 2011
-
-
Devang Patel authored
llvm-svn: 126794
-
Jakob Stoklund Olesen authored
This effectively disables the 'turbo' functionality of the greedy register allocator where all new live ranges created by splitting would be reconsidered as if they were originals. There are two reasons for doing this, 1. It guarantees that the algorithm terminates. Early versions were prone to infinite looping in certain corner cases. 2. It is a 2x speedup. We can skip a lot of unnecessary interference checks that won't lead to good splitting anyway. The problem is that region splitting only gets one shot, so it should probably be changed to target multiple physical registers at once. Local live range splitting is still 'turbo' enabled. It only accounts for a small fraction of compile time, so it is probably not necessary to do anything about that. llvm-svn: 126781
-
Duncan Sands authored
in alphabetical order. llvm-svn: 126745
-
Jim Grosbach authored
llvm-svn: 126733
-
Jim Grosbach authored
llvm-svn: 126731
-
- Feb 28, 2011
-
-
Owen Anderson authored
llvm-svn: 126684
-
Owen Anderson authored
llvm-svn: 126683
-
Dan Gohman authored
llvm-svn: 126671
-
Stuart Hastings authored
patch to the front-end. Radar 7662569. llvm-svn: 126655
-
- Feb 27, 2011
-
-
Duncan Sands authored
llvm-svn: 126574
-
Nadav Rotem authored
llvm-svn: 126565
-
Tobias Grosser authored
This follows the interface of getNodeAttributes. llvm-svn: 126562
-
- Feb 26, 2011
-
-
Benjamin Kramer authored
Add some DAGCombines for (adde 0, 0, glue), which are useful to optimize legalized code for large integer arithmetic. 1. Inform users of ADDEs with two 0 operands that it never sets carry 2. Fold other ADDs or ADDCs into the ADDE if possible It would be neat if we could do the same thing for SETCC+ADD eventually, but we can't do that in target independent code. llvm-svn: 126557
-
- Feb 25, 2011
-
-
Jim Grosbach authored
llvm-svn: 126526
-
Owen Anderson authored
llvm-svn: 126518
-
Cameron Zwarich authored
llvm-svn: 126488
-
Jim Grosbach authored
llvm-svn: 126471
-
Cameron Zwarich authored
is possible to do better if the high bit is set in either KnownZero/KnownOne, but in practice NumSignBits is always 1 when we are zero extending because nothing is known about that register. llvm-svn: 126465
-
Cameron Zwarich authored
actually larger. llvm-svn: 126464
-
Jakob Stoklund Olesen authored
llvm-svn: 126463
-
Jakob Stoklund Olesen authored
New live ranges are assigned in long -> short order, but live ranges that have been evicted at least once are deferred and assigned in short -> long order. Also disable splitting and spilling for live ranges seen for the first time. The intention is to create a realistic interference pattern from the heavy live ranges before starting splitting and spilling around it. llvm-svn: 126451
-
Nick Lewycky authored
llvm-svn: 126450
-
- Feb 24, 2011
-
-
Devang Patel authored
Patch by Nathan Jeffords! llvm-svn: 126425
-
Nadav Rotem authored
Limit the folding of any_ext and sext into the load operation to scalars. Limit the active-bits trunc optimization to scalars. Document vector trunc and vector sext in LangRef. Similar to commit 126080 (for enabling zext). llvm-svn: 126424
-
Rafael Espindola authored
The problem was codegen guessing the wrong values and printing .section .eh_frame,"aMS",@progbits,4 It is not clear at all if Codegen should try to guess, MC is the one that should know the default flags. llvm-svn: 126421
-
Devang Patel authored
llvm-svn: 126397
-
Cameron Zwarich authored
registers at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. llvm-svn: 126380
-
Cameron Zwarich authored
llvm-svn: 126379
-
Cameron Zwarich authored
a block is visited before all of its predecessors. llvm-svn: 126378
-
Cameron Zwarich authored
llvm-svn: 126377
-
Cameron Zwarich authored
and make the actual map private. llvm-svn: 126376
-
Cameron Zwarich authored
allows for the information propagated across basic blocks to be merged at phis. llvm-svn: 126375
-
Jakob Stoklund Olesen authored
register. This avoids some silly stack slot shuffling when both sides of a copy get spilled. llvm-svn: 126353
-
- Feb 23, 2011
-
-
Devang Patel authored
Use DW_FORM_data2 for DW_AT_language and let users use DW_LANG_lo_user=0x8000 to DW_LANG_hi_user=0xffff range. llvm-svn: 126339
-