- Sep 21, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 114459
-
Jakob Stoklund Olesen authored
llvm-svn: 114455
-
Bob Wilson authored
and store intrinsics are represented with MemIntrinsicSDNodes. llvm-svn: 114454
-
Chris Lattner authored
MachinePointerInfo around more. llvm-svn: 114452
-
Chris Lattner authored
llvm-svn: 114450
-
Chris Lattner authored
with an indexed load/store that has an offset in the index. llvm-svn: 114449
-
Jakob Stoklund Olesen authored
instead of calling lower_bound or upper_bound directly. This cleans up the search logic a bit because {lower,upper}_bound compare LR->start by default, and it is usually simpler to search LR->end. Funnelling all searches through one function also makes it possible to replace the search algorithm with something faster than binary search. llvm-svn: 114448
-
Jakob Stoklund Olesen authored
llvm-svn: 114447
-
Chris Lattner authored
SelectionDAG::getExtLoad overload, and eliminate it. llvm-svn: 114446
-
Chris Lattner authored
getLoad overloads. llvm-svn: 114443
-
Chris Lattner authored
with SVOffset computation. llvm-svn: 114442
-
Chris Lattner authored
llvm-svn: 114437
-
Chris Lattner authored
no functionality change (step #1) llvm-svn: 114436
-
Lang Hames authored
llvm-svn: 114431
-
Lang Hames authored
Added an additional PBQP problem builder which adds coalescing costs (both between pairs of virtuals, and between virtuals and physicals). llvm-svn: 114429
-
Gabor Greif authored
into OptimizeCompareInstr. This necessitates the passing of CmpValue around, so widen the virtual functions to accomodate. No functionality changes. llvm-svn: 114428
-
Chris Lattner authored
pass a completely incorrect SrcValue, which would result in a miscompile with combiner-aa. llvm-svn: 114411
-
Chris Lattner authored
llvm-svn: 114409
-
Chris Lattner authored
"getFixedStack" on the MachinePointerInfo class. While this isn't the problem I'm setting out to solve, it is the right way to eliminate PseudoSourceValue, so lets go with it. llvm-svn: 114406
-
Chris Lattner authored
instead of srcvalue/offset pairs. This corrects SV info for mem operations whose size is > 32-bits. llvm-svn: 114401
-
Chris Lattner authored
llvm-svn: 114400
-
Chris Lattner authored
MachinePointerInfo. Among other virtues, this doesn't silently truncate the svoffset to 32-bits. llvm-svn: 114399
-
Chris Lattner authored
llvm-svn: 114397
-
Chris Lattner authored
eliminating some weird "infer a frame address" logic which was dead. llvm-svn: 114396
-
Chris Lattner authored
llvm-svn: 114395
-
Chris Lattner authored
MachinePointerInfo, propagating the type out a level of API. Remove the old MachineFunction::getMachineMemOperand impl. llvm-svn: 114393
-
Chris Lattner authored
to the MachineFunction construction methods. llvm-svn: 114390
-
Chris Lattner authored
MachinePointerInfo struct, no functionality change. This also adds an assert to MachineMemOperand::MachineMemOperand that verifies that the Value* is either null or is an IR pointer type. llvm-svn: 114389
-
Evan Cheng authored
define double @foo(double %x, double %y, i1 %c) nounwind { %a = fdiv double %x, 3.2 %z = select i1 %c, double %a, double %y ret double %z } Was: _foo: divsd LCPI0_0(%rip), %xmm0 testb $1, %dil jne LBB0_2 movaps %xmm1, %xmm0 LBB0_2: ret Now: _foo: testb $1, %dil je LBB0_2 divsd LCPI0_0(%rip), %xmm0 ret LBB0_2: movaps %xmm1, %xmm0 ret This avoids the divsd when early exit is taken. rdar://8454886 llvm-svn: 114372
-
- Sep 20, 2010
-
-
Owen Anderson authored
CombinerAA cannot assume that different FrameIndex's never alias, but can instead use MachineFrameInfo to get the actual offsets of these slots and check for actual aliasing. This fixes CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll and CodeGen/X86/tailcallstack64.ll when CombinerAA is enabled, modulo a different register allocation sequence. llvm-svn: 114348
-
Evan Cheng authored
llvm-svn: 114338
-
- Sep 19, 2010
-
-
Owen Anderson authored
llvm-svn: 114313
-
Owen Anderson authored
r114268 fixed the last of the blockers to enabling it. I will be monitoring for failures. llvm-svn: 114312
-
- Sep 18, 2010
-
-
Benjamin Kramer authored
llvm-svn: 114284
-
Lang Hames authored
llvm-svn: 114273
-
Lang Hames authored
Added a separate class (PBQPBuilder) for PBQP Problem construction. This class can be extended to support custom constraints. For now the allocator still uses the old (internal) construction mechanism by default. This will be phased out soon assuming no issues with the builder system come up. To invoke the new construction mechanism just pass '-regalloc=pbqp -pbqp-builder' to llc. To provide custom constraints a Target just needs to extend PBQPBuilder and pass an instance of their derived builder to the RegAllocPBQP constructor. llvm-svn: 114272
-
Evan Cheng authored
llvm-svn: 114270
-
Owen Anderson authored
NO path to the destination containing side effects, not that SOME path contains no side effects. In practice, this only manifests with CombinerAA enabled, because otherwise the chain has little to no branching, so "any" is effectively equivalent to "all". llvm-svn: 114268
-
Evan Cheng authored
1) Do forward copy propagation. This makes it easier to estimate the cost of the instruction being sunk. 2) Break critical edges on demand, including cases where the value is used by PHI nodes. Critical edge splitting is not yet enabled by default. llvm-svn: 114227
-
- Sep 17, 2010
-
-
Evan Cheng authored
llvm-svn: 114222
-