- May 17, 2011
-
-
Stuart Hastings authored
passed as the fifth parameter, insure it's passed correctly (in R9). rdar://problem/6920088 llvm-svn: 131467
-
Jakob Stoklund Olesen authored
The greedy register allocator has live range splitting and register class inflation, so it can actually fully undo this join, including restoring the original register classes. We still don't want to do this for long live ranges, mostly because of the high register pressure of there are many constrained live ranges overlapping. llvm-svn: 131466
-
Jakob Stoklund Olesen authored
When instructions are deleted, they leave tombstone SlotIndex entries. The isZeroLength method should ignore these null indexes. This causes RABasic to sometimes spill a callee-saved register in the abi-isel.ll test, so don't run that test with -regalloc=basic. Prioritizing register allocation according to spill weight can cause more registers to be used. llvm-svn: 131436
-
Dan Gohman authored
llvm-svn: 131430
-
Dan Gohman authored
llvm-svn: 131429
-
Dan Gohman authored
llvm-svn: 131428
-
- May 16, 2011
-
-
Jim Grosbach authored
misses. llvm-svn: 131426
-
Devang Patel authored
Radar 9422775. llvm-svn: 131422
-
Eli Friedman authored
llvm-svn: 131420
-
Eli Friedman authored
llvm-svn: 131419
-
Eli Friedman authored
Basic fast-isel of extractvalue. Not too helpful on its own, given the IR clang generates for cases like this, but it should become more useful soon. llvm-svn: 131417
-
Rafael Espindola authored
corrupted when setjmp returns again. llvm-svn: 131399
-
- May 14, 2011
-
-
Eli Friedman authored
Fix a FIXME by moving the fast-isel implementation of the objectsize intrinsic from the x86 code to the generic code. llvm-svn: 131332
-
- May 13, 2011
-
-
Rafael Espindola authored
to fix PR9900. I will keep it open until sable is able to comment on it. llvm-svn: 131294
-
Stuart Hastings authored
simplified version. <rdar://problem/9298790> llvm-svn: 131274
-
Stuart Hastings authored
rdar://problem/9298790 llvm-svn: 131269
-
Stuart Hastings authored
by non-CMP expressions. The executable test case (129821) would test this as well, if we had an "-O0 -disable-arm-fast-isel" LLVM-GCC tester. Alas, the ARM assembly would be very difficult to check with FileCheck. The thumb2-cbnz.ll test is affected; it generates larger code (tst.w vs. cmp #0), but I believe the new version is correct. rdar://problem/9298790 llvm-svn: 131261
-
Evan Cheng authored
llvm-svn: 131258
-
- May 12, 2011
-
-
Devang Patel authored
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g llvm-svn: 131244
-
Evan Cheng authored
Re-enable branchfolding common code hoisting optimization. Fixed a liveness test bug and also taught it to update liveins. llvm-svn: 131241
-
Devang Patel authored
Let Objective-C front-end identify class extension, in dwarf output, using an attribute DW_AT_APPLE_objc_class_extension. llvm-svn: 131238
-
Evan Cheng authored
llvm-svn: 131235
-
Evan Cheng authored
markers. In some cases a register def is dead on one path, but not on another. This is passing Clang self-hosting. llvm-svn: 131214
-
- May 11, 2011
-
-
Devang Patel authored
Identify end of prologue (and beginning of function body) using DW_LNS_set_prologue_end line table opcode. llvm-svn: 131194
-
Jakob Stoklund Olesen authored
about to be spilled. This can only happen when two extra snippet registers are included in the spill, and there is a copy between them. Hoisting the spill creates problems because the hoist will mark the copy for later dead code elimination, and spilling the second register will turn the copy into a spill. <rdar://problem/9420853> llvm-svn: 131192
-
Nadav Rotem authored
Fixes a bug in the DAGCombiner. LoadSDNodes have two values (data, chain). If there is a store after the load node, then there is a chain, which means that there is another user. Thus, asking hasOneUser would fail. Instead we ask hasNUsesOfValue on the 'data' value. llvm-svn: 131183
-
Rafael Espindola authored
to provide a reduced testcase. llvm-svn: 131176
-
Bill Wendling authored
intrinsic call. This prevents it from being reordered so that it appears *before* the setjmp intrinsic (thus making it completely useless). <rdar://problem/9409683> llvm-svn: 131174
-
Evan Cheng authored
at the start of basic blocks to their common predecessor. It's actually quite common (e.g. about 50 times in JM/lencod) and has shown to be a nice code size benefit. e.g. pushq %rax testl %edi, %edi jne LBB0_2 ## BB#1: xorb %al, %al popq %rdx ret LBB0_2: xorb %al, %al callq _foo popq %rdx ret => pushq %rax xorb %al, %al testl %edi, %edi je LBB0_2 ## BB#1: callq _foo LBB0_2: popq %rdx ret rdar://9145558 llvm-svn: 131172
-
- May 10, 2011
-
-
Rafael Espindola authored
llvm-svn: 131157
-
-
Stuart Hastings authored
test case; I've only seen this on a release branch, and I can't get it to reproduce on trunk. rdar://problem/7662569 llvm-svn: 131152
-
Rafael Espindola authored
llvm-svn: 131151
-
Rafael Espindola authored
DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList. llvm-svn: 131148
-
Rafael Espindola authored
this clang will use .debug_frame in, for example, clang -g -c -m32 test.c This matches gcc's behaviour. It looks like .debug_frame is a bit bigger than .eh_frame, but has the big advantage of not being allocated. llvm-svn: 131140
-
Jakob Stoklund Olesen authored
The previous invalidation missed the alias interference caches. Also add a stats counter for the number of repaired ranges. llvm-svn: 131133
-
Devang Patel authored
llvm-svn: 131106
-
- May 09, 2011
-
-
Eric Christopher authored
Patch by Evan Cheng. llvm-svn: 131093
-
Duncan Sands authored
llvm-svn: 131082
-
- May 08, 2011
-
-
Jakob Stoklund Olesen authored
It can happen that a live debug variable is the last use of a sub-register, and the register allocator will pick a larger register class for the virtual register. If the allocated register doesn't support the sub-register index, just use %noreg for the debug variables instead of asserting. In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD register. The register is split and one part is inflated to GR32 and assigned %ESI because there are no more normal uses of sub_8bit_hi. Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will simply insert a %noreg instead, and the debug variable will be marked unavailable in that range. We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I don't know if DWARF even supports that. llvm-svn: 131073
-