- Feb 23, 2011
-
-
Jakob Stoklund Olesen authored
When a large live range is evicted, it will usually be split when it comes around again. By deferring evicted live ranges, the splitting happens at a time when the interference pattern is more realistic. This prevents repeated splitting and evictions. llvm-svn: 126282
-
Jakob Stoklund Olesen authored
llvm-svn: 126277
-
Jakob Stoklund Olesen authored
Use interval sizes instead of spill weights to determine if it is legal to evict interference. A smaller interval can evict interference if all interfering live ranges are larger. Allow multiple interferences to be evicted as along as they are all larger than the live range being allocated. Spill weights are still used to select the preferred eviction candidate. llvm-svn: 126276
-
David Greene authored
[AVX] General VUNPCKL codegen support. llvm-svn: 126264
-
Jakob Stoklund Olesen authored
This is based on the observation that long live ranges are more difficult to allocate, so there is a better chance of solving the puzzle by handling the big pieces first. The allocator will evict and split long alive ranges when they get in the way. RABasic is still using spill weights for its priority queue, so the interface to the queue has been virtualized. llvm-svn: 126259
-
Jakob Stoklund Olesen authored
llvm-svn: 126258
-
- Feb 22, 2011
-
-
Cameron Zwarich authored
values from all of the loop's exiting blocks are equal. Patch by Andrew Clinton. llvm-svn: 126253
-
Joerg Sonnenberger authored
llvm-svn: 126244
-
Evan Cheng authored
llvm-svn: 126238
-
Devang Patel authored
clang uses DBuilder, so it requries corresponding change. llvm-svn: 126231
-
Roman Divacky authored
llvm-svn: 126226
-
Joerg Sonnenberger authored
parser. llvm-svn: 126225
-
Cameron Zwarich authored
share entries. Add a DenseSet to MachineConstantPool for the MachineCPVs that it owns. This will hopefully fix the MC/ARM/elf-reloc-01.ll failure on the leaks bots. llvm-svn: 126218
-
Evan Cheng authored
llvm-svn: 126192
-
-
Andrew Trick authored
Apparently it's ok for multiple operands to "kill" the same register. Fixes PR9237. llvm-svn: 126190
-
Cameron Zwarich authored
llvm-svn: 126185
-
Eric Christopher authored
up by the dynamic linker, but it's better to use the correct instruction to begin with. Fixes rdar://9011034 llvm-svn: 126176
-
Cameron Zwarich authored
at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. llvm-svn: 126170
-
Cameron Zwarich authored
allows for the information propagated across basic blocks to be merged at phis. llvm-svn: 126169
-
Joerg Sonnenberger authored
From Dimitry Andric. llvm-svn: 126168
-
Rafael Espindola authored
Patch by Jai Menon. llvm-svn: 126165
-
Eric Christopher authored
llvm-svn: 126163
-
Evan Cheng authored
Skipping over debugvalue instructions to determine whether the split spot is in a IT block. rdar://9030770 llvm-svn: 126159
-
Evan Cheng authored
llvm-svn: 126158
-
Joerg Sonnenberger authored
llvm-svn: 126157
-
Devang Patel authored
In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body. This requires some coordination with debugger to get this working. - The debugger needs to be aware of prolog_end attribute attached with line table entries. - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+) llvm-svn: 126155
-
Jakob Stoklund Olesen authored
An original endpoint is an instruction that killed or defined the original live range before any live ranges were split. When splitting global live ranges, avoid creating local live ranges without any original endpoints. We may still create global live ranges without original endpoints, but such a range won't be split again, and live range splitting still terminates. llvm-svn: 126151
-
- Feb 21, 2011
-
-
Sean Callanan authored
X86 instruction decode structure was being interpreted as being in units of bits, although it is actually stored in units of bytes. llvm-svn: 126147
-
Stuart Hastings authored
llvm-svn: 126141
-
Richard Osborne authored
llvm-svn: 126132
-
Duncan Sands authored
llvm-svn: 126130
-
Duncan Sands authored
itself without going via a phi node then we could return false here in spite of making a change. Also, tweak the comment because this method can (and always could) return true without deleting the original phi node. For example, if the phi node was used by a read-only invoke instruction which is used by another phi node phi2 which is only used by and only uses the invoke, then phi2 would be deleted but not the invoke instruction and not the original phi node. llvm-svn: 126129
-
Stuart Hastings authored
Radar 9012638. llvm-svn: 126127
-
Chris Lattner authored
but which is responsible for us doing really bad things to 256.bzip2. llvm-svn: 126126
-
Chris Lattner authored
llvm-svn: 126125
-
Duncan Sands authored
should be that if the phi is used by a side-effect free instruction with no uses then the phi and the instruction now get zapped (checked by the unittest). llvm-svn: 126124
-
NAKAMURA Takumi authored
"dllimport" function must not be GlobalVariable, but Function. It is enough to check with GlobalValue. test/CodeGen/X86/dll-linkage.ll is updated to check llc -O0. llvm-svn: 126110
-
Venkatraman Govindaraju authored
llvm-svn: 126108
-
Chris Lattner authored
llvm-svn: 126103
-