- Mar 30, 2011
-
-
Jakob Stoklund Olesen authored
Rehash but don't grow when full of tombstones. Patch by José Fonseca! llvm-svn: 128565
-
Jakob Stoklund Olesen authored
The rewriter can keep track of multiple stack slots in the same register if they happen to have the same value. When an instruction modifies a stack slot by defining a register that is mapped to a stack slot, other stack slots in that register are no longer valid. This is a very rare problem, and I don't have a simple test case. I get the impression that VirtRegRewriter knows it is about to be deleted, inventing a last opaque problem. <rdar://problem/9204040> llvm-svn: 128562
-
Jakob Stoklund Olesen authored
llvm-svn: 128561
-
Benjamin Kramer authored
Avoid turning a floating point division with a constant power of two into a denormal multiplication. Some platforms may treat denormals as zero, on other platforms multiplication with a subnormal is slower than dividing by a normal. llvm-svn: 128555
-
Benjamin Kramer authored
Fixes PR9587. llvm-svn: 128546
-
Benjamin Kramer authored
The idea is, that if an ieee 754 float is divided by a power of two, we can turn the division into a cheaper multiplication. This function sees if we can get an exact multiplicative inverse for a divisor and returns it if possible. This is the hard part of PR9587. I tested many inputs against llvm-gcc's frotend implementation of this optimization and didn't find any difference. However, floating point is the land of weird edge cases, so any review would be appreciated. llvm-svn: 128545
-
Jay Foad authored
PHINode::Create() giving the (known or expected) number of operands. llvm-svn: 128537
-
Jay Foad authored
llvm-svn: 128535
-
Jakob Stoklund Olesen authored
When DCE clones a live range because it separates into connected components, make sure that the clones enter the same register allocator stage as the register they were cloned from. For instance, clones may be split even when they where created during spilling. Other registers created during spilling are not candidates for splitting or even (re-)spilling. llvm-svn: 128524
-
Bill Wendling authored
llvm-svn: 128519
-
Bill Wendling authored
llvm-svn: 128507
-
Bill Wendling authored
llvm-svn: 128506
-
Jim Grosbach authored
llvm-svn: 128504
-
Evan Cheng authored
was lowering them to sext / uxt + mul instructions. Unfortunately the optimization passes may hoist the extensions out of the loop and separate them. When that happens, the long multiplication instructions can be broken into several scalar instructions, causing significant performance issue. Note the vmla and vmls intrinsics are not added back. Frontend will codegen them as intrinsics vmull* + add / sub. Also note the isel optimizations for catching mul + sext / zext are not changed either. First part of rdar://8832507, rdar://9203134 llvm-svn: 128502
-
Bill Wendling authored
llvm-svn: 128501
-
Benjamin Kramer authored
On x86 we now compile "if (a < 0 && b < 0)" into testl %edi, %esi js IF.THEN llvm-svn: 128496
-
- Mar 29, 2011
-
-
Cameron Zwarich authored
<rdar://problem/8875309> and <rdar://problem/9057191>. llvm-svn: 128492
-
Jakob Stoklund Olesen authored
The spill weight is not recomputed for an unspillable register - it stays infinite. llvm-svn: 128490
-
Kevin Enderby authored
and Nans with the same strings as GAS supports. rdar://8673024 llvm-svn: 128488
-
Jim Grosbach authored
llvm-svn: 128485
-
Benjamin Kramer authored
Fixes PR9569 and will hopefully make selfhost on ASLR-enabled systems more deterministic. llvm-svn: 128482
-
Owen Anderson authored
Check early if this is an unsupported opcode, so that we can avoid needlessly instantiating the base register in some cases. llvm-svn: 128481
-
Johnny Chen authored
The STC_OPTION and STC2_OPTION instructions should have their coprocessor option enclosed in {}. rdar://problem/9200661 llvm-svn: 128478
-
Jakob Stoklund Olesen authored
llvm-svn: 128469
-
Jakob Stoklund Olesen authored
This may eliminate some uses of the spilled registers, and we don't want to insert reloads for that. llvm-svn: 128468
-
Owen Anderson authored
llvm-svn: 128467
-
Bill Wendling authored
llvm-svn: 128465
-
Owen Anderson authored
llvm-svn: 128461
-
Bill Wendling authored
the FailBB dominator is correctly calculated. Believe it or not, there isn't a functionality change here. llvm-svn: 128455
-
Cameron Zwarich authored
vector types. This helps a lot with inlined functions when using the ARM soft float ABI. Fixes <rdar://problem/9184212>. llvm-svn: 128453
-
Bill Wendling authored
dominator information. llvm-svn: 128452
-
Bill Wendling authored
llvm-svn: 128451
-
Jakob Stoklund Olesen authored
llvm-svn: 128450
-
Jakob Stoklund Olesen authored
The instruction to be rematerialized may not be the one defining the register that is being spilled. The traceSiblingValue() function sees through sibling copies to find the remat candidate. llvm-svn: 128449
-
Evan Cheng authored
Optimizing (zext A + zext B) * C, to (VMULL A, C) + (VMULL B, C) during isel lowering to fold the zero-extend's and take advantage of no-stall back to back vmul + vmla: vmull q0, d4, d6 vmlal q0, d5, d6 is faster than vaddl q0, d4, d5 vmovl q1, d6 vmul q0, q0, q1 This allows us to vmull + vmlal for: f = vmull_u8( vget_high_u8(s), c); f = vmlal_u8(f, vget_low_u8(s), c); rdar://9197392 llvm-svn: 128444
-
Francois Pichet authored
llvm-svn: 128441
-
Bill Wendling authored
becomes reachable when before it wasn't). Check to make sure that it's not null before trying to use it. llvm-svn: 128434
-
Daniel Dunbar authored
integrated-as. llvm-svn: 128431
-
Daniel Dunbar authored
on Darwin. llvm-svn: 128430
-
- Mar 28, 2011
-
-
Ted Kremenek authored
llvm-svn: 128426
-