| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | just like they can opt into getting the root of the pattern being | Chris Lattner | 2010-09-21 | 1 | -1/+5 |
| | | | | | | | | matched, allow ComplexPatterns to opt into getting the parent node of the operand being matched. llvm-svn: 114472 | ||||
| * | fix a long standing wart: all the ComplexPattern's were being | Chris Lattner | 2010-09-21 | 16 | -139/+126 |
| | | | | | | | | | | | | passed the root of the match, even though only a few patterns actually needed this (one in X86, several in ARM [which should be refactored anyway], and some in CellSPU that I don't feel like detangling). Instead of requiring all ComplexPatterns to take the dead root, have targets opt into getting the root by putting SDNPWantRoot on the ComplexPattern. llvm-svn: 114471 | ||||
| * | Refix MSVC9 and upper_bound. It actually needs a fully symmetric comparator. | Jakob Stoklund Olesen | 2010-09-21 | 1 | -7/+5 |
| | | | | | llvm-svn: 114469 | ||||
| * | even though I'm about to rip it out, simplify the address mode stuff | Chris Lattner | 2010-09-21 | 2 | -28/+13 |
| | | | | | llvm-svn: 114468 | ||||
| * | finish pushing MachinePointerInfo through selectiondags. At this point, | Chris Lattner | 2010-09-21 | 2 | -16/+7 |
| | | | | | | | | I think I've audited all uses, so it should be dependable for address spaces, and the pointer+offset info should also be accurate when there. llvm-svn: 114464 | ||||
| * | convert a couple more places to use the new getStore() | Chris Lattner | 2010-09-21 | 3 | -11/+16 |
| | | | | | llvm-svn: 114463 | ||||
| * | update a bunch of code to use the MachinePointerInfo version of getStore. | Chris Lattner | 2010-09-21 | 14 | -93/+87 |
| | | | | | llvm-svn: 114461 | ||||
| * | When adding the carry bit to another value on X86, exploit the fact that the ↵ | Owen Anderson | 2010-09-21 | 1 | -0/+23 |
| | | | | | | | | | | | | carry-materialization (sbbl x, x) sets the registers to 0 or ~0. Combined with two's complement arithmetic, we can fold the intermediate AND and the ADD into a single SUB. This fixes <rdar://problem/8449754>. llvm-svn: 114460 | ||||
| * | Don't pollute the global namespace. | Jakob Stoklund Olesen | 2010-09-21 | 1 | -0/+2 |
| | | | | | llvm-svn: 114459 | ||||
| * | MSVC9 does not support upper_bound with an asymmetric comparator. | Jakob Stoklund Olesen | 2010-09-21 | 1 | -6/+10 |
| | | | | | llvm-svn: 114455 | ||||
| * | Define the TargetLowering::getTgtMemIntrinsic hook for ARM so that NEON load | Bob Wilson | 2010-09-21 | 3 | -1/+66 |
| | | | | | | | and store intrinsics are represented with MemIntrinsicSDNodes. llvm-svn: 114454 | ||||
| * | eliminate some uses of the getStore overload. | Chris Lattner | 2010-09-21 | 3 | -41/+60 |
| | | | | | llvm-svn: 114453 | ||||
| * | eliminate an old SelectionDAG::getTruncStore method, propagating | Chris Lattner | 2010-09-21 | 8 | -93/+77 |
| | | | | | | | MachinePointerInfo around more. llvm-svn: 114452 | ||||
| * | eliminate last SelectionDAG::getLoad old entrypoint, on to stores. | Chris Lattner | 2010-09-21 | 3 | -22/+7 |
| | | | | | llvm-svn: 114450 | ||||
| * | fix the code that infers SV info to be correct when dealing | Chris Lattner | 2010-09-21 | 1 | -28/+53 |
| | | | | | | | with an indexed load/store that has an offset in the index. llvm-svn: 114449 | ||||
| * | Add LiveInterval::find and use it for most LiveRange searching operations | Jakob Stoklund Olesen | 2010-09-21 | 1 | -68/+8 |
| | | | | | | | | | | | | | 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 | ||||
| * | Remove dead method. | Jakob Stoklund Olesen | 2010-09-21 | 1 | -21/+0 |
| | | | | | llvm-svn: 114447 | ||||
| * | propagate MachinePointerInfo through various uses of the old | Chris Lattner | 2010-09-21 | 11 | -297/+283 |
| | | | | | | | SelectionDAG::getExtLoad overload, and eliminate it. llvm-svn: 114446 | ||||
| * | Fix errant printing of [v]ldm instructions that aren't a pop | Jim Grosbach | 2010-09-21 | 1 | -32/+24 |
| | | | | | llvm-svn: 114445 | ||||
| * | Simplify code. | Benjamin Kramer | 2010-09-21 | 1 | -8/+6 |
| | | | | | llvm-svn: 114444 | ||||
| * | continue MachinePointerInfo'izing, eliminating use of one of the old | Chris Lattner | 2010-09-21 | 8 | -192/+192 |
| | | | | | | | getLoad overloads. llvm-svn: 114443 | ||||
| * | convert dagcombine off the old form of getLoad. This fixes several bugs | Chris Lattner | 2010-09-21 | 1 | -16/+18 |
| | | | | | | | with SVOffset computation. llvm-svn: 114442 | ||||
| * | Make CreateComplexVariable independent of SmallVector. | Benjamin Kramer | 2010-09-21 | 1 | -7/+6 |
| | | | | | llvm-svn: 114439 | ||||
| * | simplify DAGCombiner::SimplifySelectOps step #2/2. | Chris Lattner | 2010-09-21 | 1 | -55/+53 |
| | | | | | llvm-svn: 114437 | ||||
| * | substantially reduce indentation and simplify DAGCombiner::SimplifySelectOps. | Chris Lattner | 2010-09-21 | 1 | -85/+76 |
| | | | | | | | no functionality change (step #1) llvm-svn: 114436 | ||||
| * | llvmc: Allow multiple output languages. | Mikhail Glushenkov | 2010-09-21 | 1 | -23/+35 |
| | | | | | llvm-svn: 114433 | ||||
| * | Fixed ambiguous call. | Lang Hames | 2010-09-21 | 1 | -1/+2 |
| | | | | | llvm-svn: 114431 | ||||
| * | Fix buglet when the TST instruction directly uses the AND result. | Gabor Greif | 2010-09-21 | 1 | -5/+6 |
| | | | | | | | | I am unable to write a test for this case, help is solicited, though... What I did is to tickle the code in the debugger and verify that we do the right thing. llvm-svn: 114430 | ||||
| * | Added an additional PBQP problem builder which adds coalescing costs (both ↵ | Lang Hames | 2010-09-21 | 1 | -14/+127 |
| | | | | | | | between pairs of virtuals, and between virtuals and physicals). llvm-svn: 114429 | ||||
| * | Move the search for the appropriate AND instruction | Gabor Greif | 2010-09-21 | 3 | -23/+47 |
| | | | | | | | | | | | into OptimizeCompareInstr. This necessitates the passing of CmpValue around, so widen the virtual functions to accomodate. No functionality changes. llvm-svn: 114428 | ||||
| * | a few more trivial updates. This fixes PerformInsertVectorEltInMemory to not | Chris Lattner | 2010-09-21 | 2 | -15/+13 |
| | | | | | | | | pass a completely incorrect SrcValue, which would result in a miscompile with combiner-aa. llvm-svn: 114411 | ||||
| * | convert the targets off the non-MachinePointerInfo of getLoad. | Chris Lattner | 2010-09-21 | 11 | -102/+116 |
| | | | | | llvm-svn: 114410 | ||||
| * | add some accessors | Chris Lattner | 2010-09-21 | 1 | -0/+7 |
| | | | | | llvm-svn: 114409 | ||||
| * | it's more elegant to put the "getConstantPool" and | Chris Lattner | 2010-09-21 | 5 | -29/+40 |
| | | | | | | | | | "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 | ||||
| * | update the X86 backend to use the MachinePointerInfo version of one | Chris Lattner | 2010-09-21 | 1 | -38/+44 |
| | | | | | | | | of the getLoad methods. This fixes at least one bug where an incorrect svoffset is passed in (a potential combiner-aa miscompile). llvm-svn: 114404 | ||||
| * | Fix a bug where the x86 backend would lower memcpy/memset of segment ↵ | Chris Lattner | 2010-09-21 | 1 | -0/+9 |
| | | | | | | | | | relative operations into non-segment-relative copies. llvm-svn: 114402 | ||||
| * | reimplement memcpy/memmove/memset lowering to use MachinePointerInfo | Chris Lattner | 2010-09-21 | 10 | -66/+85 |
| | | | | | | | | instead of srcvalue/offset pairs. This corrects SV info for mem operations whose size is > 32-bits. llvm-svn: 114401 | ||||
| * | add some helpful accessors. | Chris Lattner | 2010-09-21 | 1 | -0/+8 |
| | | | | | llvm-svn: 114400 | ||||
| * | add overloads for SelectionDAG::getLoad, getStore, getTruncStore that take a | Chris Lattner | 2010-09-21 | 1 | -18/+47 |
| | | | | | | | | MachinePointerInfo. Among other virtues, this doesn't silently truncate the svoffset to 32-bits. llvm-svn: 114399 | ||||
| * | simplify interface to SelectionDAG::getMemIntrinsicNode, making it take a ↵ | Chris Lattner | 2010-09-21 | 2 | -6/+6 |
| | | | | | | | MachinePointerInfo llvm-svn: 114397 | ||||
| * | chagne interface to SelectionDAG::getAtomic to take a MachinePointerInfo, | Chris Lattner | 2010-09-21 | 2 | -12/+4 |
| | | | | | | | eliminating some weird "infer a frame address" logic which was dead. llvm-svn: 114396 | ||||
| * | don't implicitly drop the offset of a machinememoperand when legalizing atomics. | Chris Lattner | 2010-09-21 | 1 | -2/+2 |
| | | | | | llvm-svn: 114395 | ||||
| * | force clients of MachineFunction::getMachineMemOperand to provide a | Chris Lattner | 2010-09-21 | 3 | -24/+15 |
| | | | | | | | | MachinePointerInfo, propagating the type out a level of API. Remove the old MachineFunction::getMachineMemOperand impl. llvm-svn: 114393 | ||||
| * | convert targets to the new MF.getMachineMemOperand interface. | Chris Lattner | 2010-09-21 | 9 | -30/+42 |
| | | | | | llvm-svn: 114391 | ||||
| * | start pushing MachinePointerInfo out through the MachineMemOperand interface | Chris Lattner | 2010-09-21 | 2 | -9/+16 |
| | | | | | | | to the MachineFunction construction methods. llvm-svn: 114390 | ||||
| * | refactor the Value*/offset pair from MachineMemOperand out to a new | Chris Lattner | 2010-09-21 | 1 | -5/+5 |
| | | | | | | | | | | 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 | ||||
| * | fix rdar://8453210, a crash handling a call through a GS relative load. | Chris Lattner | 2010-09-21 | 1 | -1/+7 |
| | | | | | | | For now, just disable folding the load into the call. llvm-svn: 114386 | ||||
| * | Revert unrelated change that was accidentally included in the previous commit. | Rafael Espindola | 2010-09-21 | 1 | -4/+1 |
| | | | | | llvm-svn: 114383 | ||||
| * | Implement support for .local and its "interesting" interactions with .comm. | Rafael Espindola | 2010-09-21 | 3 | -11/+36 |
| | | | | | llvm-svn: 114382 | ||||
| * | Enable machine sinking critical edge splitting. e.g. | Evan Cheng | 2010-09-20 | 1 | -7/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | ||||

