aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix minor doxygen nits.Reid Spencer2007-08-051-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40854 91177308-0d34-0410-b5e6-96231b3b80d8
* shorten this nameChris Lattner2007-08-051-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40843 91177308-0d34-0410-b5e6-96231b3b80d8
* This is the patch to provide clean intrinsic function overloading support in ↵Chandler Carruth2007-08-041-12/+0
| | | | | | | | | LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
* More explicit keywords.Dan Gohman2007-08-022-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40757 91177308-0d34-0410-b5e6-96231b3b80d8
* don't redefine a parameterChris Lattner2007-08-021-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40748 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not emit copies for physical register output if it's not used.Evan Cheng2007-08-022-2/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40722 91177308-0d34-0410-b5e6-96231b3b80d8
* Style police: Expand the tabs to spaces!Scott Michel2007-08-021-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40712 91177308-0d34-0410-b5e6-96231b3b80d8
* Instead of adding copyfromreg's to handle physical definitions. Now isel canEvan Cheng2007-08-021-68/+78
| | | | | | | | | | | | | | | simply specify them as results and let scheduledag handle them. That is, instead of SDOperand Flag = DAG.getTargetNode(Opc, MVT::i32, MVT::Flag, ...) SDOperand Result = DAG.getCopyFromReg(Chain, X86::EAX, MVT::i32, Flag) Just write: SDOperand Result = DAG.getTargetNode(Opc, MVT::i32, MVT::i32, ...) And let scheduledag emit the move from X86::EAX to a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40710 91177308-0d34-0410-b5e6-96231b3b80d8
* Bugs: missing partial uses and redundant partial defs.Evan Cheng2007-08-011-4/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40688 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand unaligned loads/stores when the target doesn't support them. (PR1548)Lauro Ramos Venancio2007-08-011-3/+140
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40682 91177308-0d34-0410-b5e6-96231b3b80d8
* New CallInst interface to address GLIBCXX_DEBUG errors caused byDavid Greene2007-08-011-4/+4
| | | | | | | | | indexing an empty std::vector. Updates to all clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40660 91177308-0d34-0410-b5e6-96231b3b80d8
* simpleregistercoalescing -> regcoalescing. It's too long for me to handle.Evan Cheng2007-07-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40654 91177308-0d34-0410-b5e6-96231b3b80d8
* - Allow custom lowering for CTPOP, CTTZ, CTLZ.Scott Michel2007-07-301-2/+9
| | | | | | | - Fixed an existing unexpanded tab. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40605 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in getCopyFromParts turned up in the testcase for PR1132.Dan Gohman2007-07-301-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40598 91177308-0d34-0410-b5e6-96231b3b80d8
* Print a space between the comment character and the basic block name,Dan Gohman2007-07-301-1/+2
| | | | | | | for prettiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40593 91177308-0d34-0410-b5e6-96231b3b80d8
* Support for trampolines, except for X86 codegen which isDuncan Sands2007-07-273-0/+56
| | | | | | | still under discussion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40549 91177308-0d34-0410-b5e6-96231b3b80d8
* Move subreg lowering pass to be right after regalloc, per feedback.Christopher Lamb2007-07-271-4/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40548 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the alias analysis query in DAGCombiner to not add in twoDan Gohman2007-07-261-2/+2
| | | | | | | | offsets. The SrcValueOffset values are the real offsets from the SrcValue base pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40534 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a MachineFunction pass, which runs post register allocation, that turns ↵Christopher Lamb2007-07-262-0/+230
| | | | | | subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40521 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach DAG scheduling how to properly emit subreg insert/extract machine ↵Christopher Lamb2007-07-261-0/+150
| | | | | | instructions. PR1350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40520 91177308-0d34-0410-b5e6-96231b3b80d8
* Add selection DAG nodes for subreg insert/extract. PR1350Christopher Lamb2007-07-262-2/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40516 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove subreg index from MachineInstr's and also keep vregs as unsigned when ↵Christopher Lamb2007-07-261-2/+0
| | | | | | adding operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40514 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix infinite recursion for when extract_vector_elt is legal. Unfortunately ↵Christopher Lamb2007-07-261-1/+1
| | | | | | no public targets use this code-path, so no test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40510 91177308-0d34-0410-b5e6-96231b3b80d8
* EmitAlignment() also emits optional fill value.Evan Cheng2007-07-251-2/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40500 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanup:Anton Korobeynikov2007-07-251-1/+1
| | | | | | | | - Split EH and debug infiormation - Make DwarfWriter more verbose in some cases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40481 91177308-0d34-0410-b5e6-96231b3b80d8
* Add const to CanBeFoldedBy, CheckAndMask, and CheckOrMask.Dan Gohman2007-07-241-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40480 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some uses of dyn_cast to be uses of cast.Dan Gohman2007-07-232-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40443 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't assume that only Uses can be kills. Defs are marked as kills initiallyDan Gohman2007-07-202-10/+8
| | | | | | | | | when there are no uses. This fixes a dangling-pointer bug, where pointers to deleted instructions were not removed from kills lists. More info here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-July/009749.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40131 91177308-0d34-0410-b5e6-96231b3b80d8
* Added -print-emitted-asm to print out JIT generated asm to cerr.Evan Cheng2007-07-201-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40123 91177308-0d34-0410-b5e6-96231b3b80d8
* As pointed out by g++-4.2, the original code didn't doDuncan Sands2007-07-191-2/+2
| | | | | | | what it thought it was doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40044 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comment.Evan Cheng2007-07-181-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40022 91177308-0d34-0410-b5e6-96231b3b80d8
* It's not necessary to do rounding for alloca operations when the requestedDan Gohman2007-07-181-5/+5
| | | | | | | alignment is equal to the stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004 91177308-0d34-0410-b5e6-96231b3b80d8
* Dead code.Evan Cheng2007-07-171-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39979 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comments about vectors to use the current wording.Dan Gohman2007-07-162-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39921 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the build. Patch from Holger Schurig.Nick Lewycky2007-07-141-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39856 91177308-0d34-0410-b5e6-96231b3b80d8
* Long live the exception handling!Anton Korobeynikov2007-07-145-2/+71
| | | | | | | | | | | | | | | | This patch fills the last necessary bits to enable exceptions handling in LLVM. Currently only on x86-32/linux. In fact, this patch adds necessary intrinsics (and their lowering) which represent really weird target-specific gcc builtins used inside unwinder. After corresponding llvm-gcc patch will land (easy) exceptions should be more or less workable. However, exceptions handling support should not be thought as 'finished': I expect many small and not so small glitches everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39855 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the comment for LegalizeOp to more accurately reflect what it does.Dan Gohman2007-07-131-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39827 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't call SimplifyVBinOp for non-vector operations, following earlier reviewDan Gohman2007-07-131-25/+49
| | | | | | | feedback. This theoretically makes the common (scalar) case more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39823 91177308-0d34-0410-b5e6-96231b3b80d8
* Modify previous patch per review comments.Dale Johannesen2007-07-132-3/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39817 91177308-0d34-0410-b5e6-96231b3b80d8
* Skeleton of post-RA scheduler; doesn't do anything yet.Dale Johannesen2007-07-137-6/+93
| | | | | | | | Change name of -sched option and DEBUG_TYPE to pre-RA-sched; adjust testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816 91177308-0d34-0410-b5e6-96231b3b80d8
* The type ids making up a filter are unsigned, andDuncan Sands2007-07-121-2/+2
| | | | | | | | should be output as unsigned values. Checked against gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39775 91177308-0d34-0410-b5e6-96231b3b80d8
* Missed a couple of places where new instructions are added due to spill / ↵Evan Cheng2007-07-111-67/+77
| | | | | | restore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39748 91177308-0d34-0410-b5e6-96231b3b80d8
* Exception handling has been implemented.Duncan Sands2007-07-111-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39732 91177308-0d34-0410-b5e6-96231b3b80d8
* If assertions are not enabled, we should return False here.Duncan Sands2007-07-111-5/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38535 91177308-0d34-0410-b5e6-96231b3b80d8
* No longer need to track last def / use.Evan Cheng2007-07-111-79/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38534 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix for PR1545: Revamp code that update kill information due to register reuse.Evan Cheng2007-07-111-63/+85
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38525 91177308-0d34-0410-b5e6-96231b3b80d8
* Make this work with GLIBCXX_DEBUG.David Greene2007-07-101-1/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38516 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the peep for EXTRACT_VECTOR_ELT of BUILD_PAIR to look forDan Gohman2007-07-101-7/+19
| | | | | | | | the new CONCAT_VECTORS node type instead, as that's what legalize uses now. And add a peep for EXTRACT_VECTOR_ELT of INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38503 91177308-0d34-0410-b5e6-96231b3b80d8
* If the operand is marked M_OPTIONAL_DEF_OPERAND, then it's a def.Evan Cheng2007-07-101-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38496 91177308-0d34-0410-b5e6-96231b3b80d8
* Somehow this wasn't committed last time. M_CLOBBERS_PRED is gone.Evan Cheng2007-07-101-2/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38495 91177308-0d34-0410-b5e6-96231b3b80d8