- Mar 03, 2011
-
-
Jakob Stoklund Olesen authored
This is much faster than using a pointer to a ManagedStatic object accessed with a function call. The greedy register allocator is 5% faster overall just from the SlotIndex default constructor savings. llvm-svn: 126925
-
Jakob Stoklund Olesen authored
The SlotIndex created by the default construction does not represent a position in the function, and it doesn't make sense to compare it to other indexes. llvm-svn: 126924
-
Jakob Stoklund Olesen authored
llvm-svn: 126922
-
Jakob Stoklund Olesen authored
This speeds up the greedy register allocator by 15%. DenseMap is not as fast as one might hope. llvm-svn: 126921
-
Bob Wilson authored
Patch by Jyun-Yan You, with some minor adjustments and a testcase from me. llvm-svn: 126915
-
Jakob Stoklund Olesen authored
llvm-svn: 126912
-
Jakob Stoklund Olesen authored
When only a single value has been seen, new PHIDefs are never needed. llvm-svn: 126911
-
Jakob Stoklund Olesen authored
We need to wait until we meet a PHIDef in its defining block before resurrecting PHIKills in the predecessors. This should unbreak the llvm-gcc-build-x86_64-darwin10-x-mingw32-x-armeabi bot. llvm-svn: 126905
-
Bob Wilson authored
David Greene changed CannotYetSelect() to print the full DAG including multiple copies of operands reached through different paths in the DAG. Unfortunately this blows up exponentially in some cases. The depth limit of 100 is way too high to prevent this -- I'm seeing a message string of 150MB with a depth of only 40 in one particularly bad case, even though the DAG has less than 200 nodes. Part of the problem is that the printing code is following chain operands, so if you fail to select an operation with a chain, the printer will follow all the chained operations back to the entry node. llvm-svn: 126899
-
Jakob Stoklund Olesen authored
No functional change. llvm-svn: 126898
-
Kevin Enderby authored
Patch by Ted Kremenek! llvm-svn: 126895
-
Jakob Stoklund Olesen authored
Values that map to a single new value in a new interval after splitting don't need new PHIDefs, and if the parent value was never rematerialized the live range will be the same. llvm-svn: 126894
-
Jakob Stoklund Olesen authored
llvm-svn: 126893
-
- Mar 02, 2011
-
-
Renato Golin authored
llvm-svn: 126882
-
Duncan Sands authored
llvm-svn: 126871
-
Stuart Hastings authored
Radar 9056407. llvm-svn: 126864
-
Tilmann Scheller authored
llvm-svn: 126862
-
David Greene authored
missing patterns for them. Add a SIMD test subdirectory to hold tests for SIMD instruction selection correctness and quality. ' llvm-svn: 126845
-
Che-Liang Chiou authored
llvm-svn: 126838
-
Che-Liang Chiou authored
- Add '64bit' sub-target option. - Select 32-bit/64-bit loads/stores based on '64bit' option. - Fix function parameter order. Patch by Justin Holewinski llvm-svn: 126837
-
Rafael Espindola authored
uses. The result produced by the streamer is used to give the linker more accurate information and to add to llvm.compiler.used. The second improvement removes the need for the user to add __attribute__((used)) to functions only used in inline asm. The first one lets us build firefox with LTO on Darwin :-) llvm-svn: 126830
-
Cameron Zwarich authored
llvm-svn: 126829
-
Cameron Zwarich authored
llvm-svn: 126826
-
Cameron Zwarich authored
llvm-svn: 126825
-
Che-Liang Chiou authored
- Allow i16, i32, i64, float, and double types, using the native .u16, .u32, .u64, .f32, and .f64 PTX types. - Allow loading/storing of all primitive types. - Allow primitive types to be passed as parameters. - Allow selection of PTX Version and Shader Model as sub-target attributes. - Merge integer/floating-point test cases for load/store. - Use .u32 instead of .s32 to conform to output from NVidia nvcc compiler. Patch by Justin Holewinski llvm-svn: 126824
-
Jakob Stoklund Olesen authored
Extract the updateSSA() method from the too long extendRange(). LiveOutCache can be shared among all the new intervals since there is at most one of the new ranges live out from each basic block. llvm-svn: 126818
-
Nick Lewycky authored
llvm-svn: 126815
-
Dan Gohman authored
This fixes PR9259. llvm-svn: 126812
-
-
Jakob Stoklund Olesen authored
Simplify the signature - The return value and ParentVNI are no longer needed. llvm-svn: 126809
-
Jakob Stoklund Olesen authored
llvm-svn: 126806
-
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
-
Oscar Fuentes authored
Patch by Erik Olofsson! llvm-svn: 126796
-
- Mar 01, 2011
-
-
Devang Patel authored
llvm-svn: 126794
-
Devang Patel authored
Today, the language front ends produces llvm.dbg.* intrinsics, used to encode arguments' debug info, in order any way, most of the times. However, if a front end mix-n-matches llvm.dbg.declare and llvm.dbg.value intrinsics to encode debug info for arguments then code generator needs a way to find argument order. Use 8 bits from line number field to keep track of argument ordering while encoding debug info for an argument. That leaves 24 bit for line no, DebugLoc also allocates 24 bit for line numbers. If a function has more than 255 arguments then rest of the arguments will be ordered by llvm.dbg.* intrinsics' ordering in IR. llvm-svn: 126793
-