- 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
-
Jakob Stoklund Olesen authored
No code will be inserted after the split point anyway. llvm-svn: 126319
-
Stuart Hastings authored
r124468. Patch by Rafael Avila de Espindola! llvm-svn: 126297
-
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
-
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
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
-
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
-
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
-
Eric Christopher authored
llvm-svn: 126163
-
Evan Cheng authored
llvm-svn: 126158
-
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
-
-
Stuart Hastings authored
Radar 9012638. llvm-svn: 126127
-
- Feb 20, 2011
-
-
Nadav Rotem authored
The DAGCombiner folds the zext into complex load instructions. This patch prevents this optimization on vectors since none of the supported targets knows how to perform load+vector_zext in one instruction. llvm-svn: 126080
-
- Feb 19, 2011
-
-
Devang Patel authored
Do not emit empty DW_TAG_lexical_block DIEs. In one test case, size of debug info reduced by almost 7%. llvm-svn: 126009
-
Jakob Stoklund Olesen authored
llvm-svn: 126005
-
Jakob Stoklund Olesen authored
llvm-svn: 126003
-
Jakob Stoklund Olesen authored
llvm-svn: 126002
-
Jakob Stoklund Olesen authored
llvm-svn: 126001
-
- Feb 18, 2011
-
-
Devang Patel authored
Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. This time with a fix that avoids using invalidated DenseMap iterator. llvm-svn: 125984
-
Jakob Stoklund Olesen authored
All new virtual registers created for spilling or splitting point back to their original. llvm-svn: 125980
-
Oscar Fuentes authored
llvm-svn: 125968
-
Jakob Stoklund Olesen authored
The rewriter works almost identically to -rewriter=trivial, except it also eliminates any identity copies. This makes the new register allocators independent of VirtRegRewriter.cpp which will be going away at the same time as RegAllocLinearScan. llvm-svn: 125967
-
Bill Wendling authored
llvm-svn: 125960
-