Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Give FunctionLoweringInfo an MBB member, avoiding the need to pass it | Dan Gohman | 2010-07-07 | 3 | -166/+224 |
| | | | | | | | | around everywhere, and also give it an InsertPt member, to enable isel to operate at an arbitrary position within a block, rather than just appending to a block. llvm-svn: 107791 | ||||
* | Simplify FastISel's constructor by giving it a FunctionLoweringInfo | Dan Gohman | 2010-07-07 | 5 | -118/+46 |
| | | | | | | | | | instance, rather than pointers to all of FunctionLoweringInfo's members. This eliminates an NDEBUG ABI sensitivity. llvm-svn: 107789 | ||||
* | Move FunctionLoweringInfo.h out into include/llvm/CodeGen. This will | Dan Gohman | 2010-07-07 | 5 | -148/+4 |
| | | | | | | allow target-specific fast-isel code to make use of it directly. llvm-svn: 107787 | ||||
* | Split the SDValue out of OutputArg so that SelectionDAG-independent | Dan Gohman | 2010-07-07 | 28 | -94/+137 |
| | | | | | | code can do calling-convention queries. This obviates OutputArgReg. llvm-svn: 107786 | ||||
* | add some triple for minix, patch by Kees van Reeuwijk from PR7582 | Chris Lattner | 2010-07-07 | 3 | -3/+6 |
| | | | | llvm-svn: 107785 | ||||
* | Move CallingConvLower.cpp out of the SelectionDAG directory. | Dan Gohman | 2010-07-07 | 3 | -1/+1 |
| | | | | llvm-svn: 107781 | ||||
* | Fix more places assuming subregisters have live intervals | Jakob Stoklund Olesen | 2010-07-07 | 1 | -1/+6 |
| | | | | llvm-svn: 107780 | ||||
* | Add a getFirstNonPHI utility function. | Dan Gohman | 2010-07-07 | 1 | -0/+7 |
| | | | | llvm-svn: 107778 | ||||
* | Minore code simplification. | Dan Gohman | 2010-07-07 | 1 | -17/+15 |
| | | | | llvm-svn: 107777 | ||||
* | Remove interprocedural-basic-aa and associated code. The AliasAnalysis | Dan Gohman | 2010-07-07 | 3 | -183/+58 |
| | | | | | | | | | | | interface needs implementations to be consistent, so any code which wants to support different semantics must use a different interface. It's not currently worthwhile to add a new interface for this new concept. Document that AliasAnalysis doesn't support cross-function queries. llvm-svn: 107776 | ||||
* | conditionalize by CallInst::ArgOffset | Gabor Greif | 2010-07-07 | 1 | -2/+2 |
| | | | | llvm-svn: 107767 | ||||
* | Rename "Release" builds as "Release+Asserts"; rename "Release-Asserts" | Duncan Sands | 2010-07-07 | 1 | -1/+1 |
| | | | | | | | | | | | | | builds to "Release". The default build is unchanged (optimization on, assertions on), however it is now called Release+Asserts. The intent is that future LLVM releases released via llvm.org will be Release builds in the new sense, i.e. will have assertions disabled (currently they have assertions enabled, for a more than 20% slowdown). This will bring them in line with MacOS releases, which ship with assertions disabled. It also means that "Release" now means the same things in make and cmake builds: cmake already disables assertions for "Release" builds AFAICS. llvm-svn: 107758 | ||||
* | Add AVX SSE4.2 instructions | Bruno Cardoso Lopes | 2010-07-07 | 1 | -114/+179 |
| | | | | llvm-svn: 107752 | ||||
* | Use only one multiclass to pinsrq instructions | Bruno Cardoso Lopes | 2010-07-07 | 2 | -38/+20 |
| | | | | llvm-svn: 107750 | ||||
* | Now that almost all SSE4.1 AVX instructions are added, move code around to ↵ | Bruno Cardoso Lopes | 2010-07-07 | 2 | -361/+374 |
| | | | | | | more appropriate sections. No functionality changes llvm-svn: 107749 | ||||
* | Add AVX SSE4.1 insertps, ptest and movntdqa instructions | Bruno Cardoso Lopes | 2010-07-07 | 1 | -18/+39 |
| | | | | llvm-svn: 107747 | ||||
* | Add AVX SSE4.1 extractps and pinsr instructions | Bruno Cardoso Lopes | 2010-07-07 | 1 | -35/+67 |
| | | | | llvm-svn: 107746 | ||||
* | Revert "Remove references to INSERT_SUBREG after de-SSA" r107725. | Jakob Stoklund Olesen | 2010-07-07 | 7 | -9/+136 |
| | | | | | | Buildbot breakage. llvm-svn: 107744 | ||||
* | Also use REG_SEQUENCE for VTBX instructions. | Bob Wilson | 2010-07-07 | 2 | -24/+30 |
| | | | | llvm-svn: 107743 | ||||
* | Mark eh.sjlj.set/longjmp custom lowerings as Darwin-only since that's where | Jim Grosbach | 2010-07-07 | 1 | -2/+4 |
| | | | | | | they've been tested to work. llvm-svn: 107742 | ||||
* | Add AVX SSE4.1 Extract Integer instructions | Bruno Cardoso Lopes | 2010-07-07 | 1 | -0/+11 |
| | | | | llvm-svn: 107740 | ||||
* | By default, the eh.sjlj.setjmp/longjmp intrinsics should just do nothing rather | Jim Grosbach | 2010-07-06 | 2 | -2/+9 |
| | | | | | | | than assuming a target will custom lower them. Targets which do so should exlicitly mark them as having custom lowerings. PR7454. llvm-svn: 107734 | ||||
* | Remove references to INSERT_SUBREG after de-SSA | Jakob Stoklund Olesen | 2010-07-06 | 7 | -136/+9 |
| | | | | llvm-svn: 107732 | ||||
* | Use REG_SEQUENCE nodes to make the table registers for VTBL instructions be | Bob Wilson | 2010-07-06 | 2 | -10/+61 |
| | | | | | | allocated to consecutive registers. llvm-svn: 107730 | ||||
* | Accept RIP-relative symbols with 'i' constraint, and | Dale Johannesen | 2010-07-06 | 2 | -2/+3 |
| | | | | | | | print the (%rip) only if the 'a' modifier is present. PR 7528. llvm-svn: 107727 | ||||
* | Convert INSERT_SUBREG to COPY in TwoAddressInstructionPass. | Jakob Stoklund Olesen | 2010-07-06 | 3 | -2/+35 |
| | | | | | | | | | INSERT_SUBREG will now only appear in SSA machine instructions. Fix the handling of partial redefs in ProcessImplicitDefs. This is now relevant since partial redef COPY instructions appear. llvm-svn: 107726 | ||||
* | Track defs for all aliases in NEONMoveFix. | Jakob Stoklund Olesen | 2010-07-06 | 1 | -2/+2 |
| | | | | | | | This means that an instruction defining an S register will affect the domain of the parent D register. llvm-svn: 107725 | ||||
* | Add the rest of AVX SSE4.1 packed move with sign/zero extend instructions | Bruno Cardoso Lopes | 2010-07-06 | 1 | -0/+17 |
| | | | | llvm-svn: 107723 | ||||
* | Add part of AVX SSE4.1 packed move with sign/zero extend instructions | Bruno Cardoso Lopes | 2010-07-06 | 1 | -0/+15 |
| | | | | llvm-svn: 107720 | ||||
* | Fix comment from previous patch | Bruno Cardoso Lopes | 2010-07-06 | 1 | -1/+1 |
| | | | | llvm-svn: 107717 | ||||
* | Add AVX vblendvpd, vblendvps and vpblendvb instructions | Bruno Cardoso Lopes | 2010-07-06 | 4 | -10/+61 |
| | | | | | | Update VEX encoding to support those new instructions llvm-svn: 107715 | ||||
* | CanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext. | Dan Gohman | 2010-07-06 | 6 | -11/+11 |
| | | | | | | SelectBasicBlock doesn't needs its BasicBlock argument. llvm-svn: 107712 | ||||
* | Propagate debug loc. | Devang Patel | 2010-07-06 | 19 | -50/+60 |
| | | | | llvm-svn: 107710 | ||||
* | Represent NEON load/store alignments in bytes, not bits. | Bob Wilson | 2010-07-06 | 3 | -7/+13 |
| | | | | llvm-svn: 107701 | ||||
* | One more case assuming that subregs have live ranges. | Jakob Stoklund Olesen | 2010-07-06 | 1 | -2/+2 |
| | | | | llvm-svn: 107700 | ||||
* | Fix buildbot breakage where a def is missing. | Jakob Stoklund Olesen | 2010-07-06 | 1 | -0/+2 |
| | | | | llvm-svn: 107698 | ||||
* | Add fixme. | Devang Patel | 2010-07-06 | 1 | -0/+1 |
| | | | | llvm-svn: 107697 | ||||
* | Be more forgiving when calculating alias interference for physreg coalescing. | Jakob Stoklund Olesen | 2010-07-06 | 3 | -105/+59 |
| | | | | | | | | | | | | It is OK for an alias live range to overlap if there is a copy to or from the physical register. CoalescerPair can work out if the copy is coalescable independently of the alias. This means that we can join with the actual destination interval instead of using the getOrigDstReg() hack. It is no longer necessary to merge clobber ranges into subregisters. llvm-svn: 107695 | ||||
* | Reapply r107655 with fixes; insert the pseudo instruction into | Dan Gohman | 2010-07-06 | 14 | -212/+275 |
| | | | | | | | the block before calling the expansion hook. And don't put EFLAGS in a mbb's live-in list twice. llvm-svn: 107691 | ||||
* | Fix to 80-col. | Eric Christopher | 2010-07-06 | 1 | -21/+21 |
| | | | | llvm-svn: 107684 | ||||
* | Fix PR7545 crash. | Devang Patel | 2010-07-06 | 1 | -3/+3 |
| | | | | llvm-svn: 107678 | ||||
* | Don't create neon moves in CopyRegToReg. NEONMoveFixPass will do the conversion | Rafael Espindola | 2010-07-06 | 1 | -4/+6 |
| | | | | | | if profitable. llvm-svn: 107673 | ||||
* | tighten up this code. | Chris Lattner | 2010-07-06 | 1 | -12/+7 |
| | | | | llvm-svn: 107670 | ||||
* | Revert r107655. | Dan Gohman | 2010-07-06 | 13 | -269/+209 |
| | | | | llvm-svn: 107668 | ||||
* | Add versions of OutputArgReg, AnalyzeReturn, and AnalyzeCallOperands | Dan Gohman | 2010-07-06 | 1 | -0/+35 |
| | | | | | | which do not depend on SelectionDAG. llvm-svn: 107666 | ||||
* | Make getMinimalPhysRegClass' comment mention what makes it different | Dan Gohman | 2010-07-06 | 1 | -1/+2 |
| | | | | | | from getPhysicalRegisterRegClass. llvm-svn: 107660 | ||||
* | Fix a major regression on COFF targets introduced by r103267: 'discardable' ↵ | Anton Korobeynikov | 2010-07-06 | 1 | -1/+1 |
| | | | | | | | | section means that it is used only during the program load and can be discarded afterwards. This way *only* debug sections can be discarded, but not the opposite. Seems like the copy-and-pasto from ELF code, since there it contains the reverse flag ('alloc'). llvm-svn: 107658 | ||||
* | Add some more TODO comments. | Dan Gohman | 2010-07-06 | 1 | -0/+6 |
| | | | | llvm-svn: 107657 | ||||
* | Add a comment. | Dan Gohman | 2010-07-06 | 1 | -1/+2 |
| | | | | llvm-svn: 107656 | ||||
* | Fix a bunch of custom-inserter functions to handle the case where | Dan Gohman | 2010-07-06 | 13 | -209/+269 |
| | | | | | | the pseudo instruction is not at the end of the block. llvm-svn: 107655 |