Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Teach reginfo how to deal with ADJSTACKPTRri, allowing us to generate: | Chris Lattner | 2005-05-15 | 1 | -0/+3 | |
| | | | | | | | | | | | | add %ESP, 20 jmp %EDX # TAIL CALL instead of: add %ESP, -8 add %ESP, 28 jmp %EDX # TAIL CALL llvm-svn: 22047 | |||||
* | When emitting the function epilog, check to see if there already a stack | Chris Lattner | 2005-05-14 | 1 | -8/+23 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | adjustment. If so, we merge the adjustment into the existing one. This allows us to generate: caller2: sub %ESP, 12 mov DWORD PTR [%ESP], 0 mov %EAX, 1234567890 mov %EDX, 0 call func2 add %ESP, 8 ret 4 intead of: caller2: sub %ESP, 12 mov DWORD PTR [%ESP], 0 mov %EAX, 1234567890 mov %EDX, 0 call func2 sub %ESP, 4 add %ESP, 12 ret 4 for X86/fast-cc-merge-stack-adj.ll llvm-svn: 22038 | |||||
* | Add some new instructions | Chris Lattner | 2005-05-14 | 1 | -2/+10 | |
| | | | | llvm-svn: 22036 | |||||
* | switch to having the callee pop stack operands for fastcc. This is ↵ | Chris Lattner | 2005-05-13 | 1 | -5/+19 | |
| | | | | | | | | currently buggy do not use llvm-svn: 21984 | |||||
* | allow RETI | Chris Lattner | 2005-05-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 21980 | |||||
* | add signed versions of the extra precision multiplies | Chris Lattner | 2005-04-06 | 1 | -0/+3 | |
| | | | | llvm-svn: 21106 | |||||
* | Add rotate instructions. | Chris Lattner | 2005-01-19 | 1 | -0/+12 | |
| | | | | llvm-svn: 19690 | |||||
* | Improve coverage of the X86 instruction set by adding 16-bit shift doubles. | Chris Lattner | 2005-01-19 | 1 | -0/+4 | |
| | | | | llvm-svn: 19687 | |||||
* | Add conditional moves for the parity flag. | Chris Lattner | 2005-01-10 | 1 | -0/+4 | |
| | | | | llvm-svn: 19437 | |||||
* | Add support for SETNPr to lower to memory form. | Chris Lattner | 2005-01-02 | 1 | -0/+1 | |
| | | | | llvm-svn: 19248 | |||||
* | Spill/restore X86 floating point stack registers with 64-bits of precision | Chris Lattner | 2004-12-02 | 1 | -4/+5 | |
| | | | | | | | | instead of 80-bits of precision. This fixes PR467. This change speeds up fldry on X86 with LLC from 7.32s on apoc to 4.68s. llvm-svn: 18433 | |||||
* | Add some new instructions. Fix the asm string for sbb32rr | Chris Lattner | 2004-10-06 | 1 | -0/+2 | |
| | | | | llvm-svn: 16759 | |||||
* | Changes For Bug 352 | Reid Spencer | 2004-09-01 | 1 | -2/+2 | |
| | | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137 | |||||
* | Reduce uses of getRegClass | Chris Lattner | 2004-08-21 | 1 | -14/+11 | |
| | | | | llvm-svn: 15973 | |||||
* | Code insertion methods now return void instead of an int. | Chris Lattner | 2004-08-15 | 1 | -13/+10 | |
| | | | | llvm-svn: 15780 | |||||
* | These methods no longer take a TargetRegisterClass* operand. | Chris Lattner | 2004-08-15 | 1 | -4/+4 | |
| | | | | llvm-svn: 15774 | |||||
* | Eliminate MachineFunction& argument from eliminateFrameIndex in x86 Target. ↵ | Nate Begeman | 2004-08-14 | 1 | -2/+2 | |
| | | | | | | Get MachineFunction from MachineInstruction's parent's parent llvm-svn: 15739 | |||||
* | Reserve the correct amt of space. | Chris Lattner | 2004-07-17 | 1 | -2/+2 | |
| | | | | llvm-svn: 14913 | |||||
* | Delete the allocate*TargetMachine function, which is now dead . | Chris Lattner | 2004-07-11 | 1 | -1/+1 | |
| | | | | | | The shared command line options are now in a header that makes sense. llvm-svn: 14756 | |||||
* | Add #include <iostream> since Value.h does not #include it any more. | Reid Spencer | 2004-07-04 | 1 | -0/+2 | |
| | | | | llvm-svn: 14622 | |||||
* | Spell out `NoFramePointerElim' for readability. | Misha Brukman | 2004-06-21 | 1 | -1/+1 | |
| | | | | llvm-svn: 14299 | |||||
* | Use the common `NoFPElim' setting instead of our own. | Misha Brukman | 2004-06-21 | 1 | -4/+2 | |
| | | | | llvm-svn: 14298 | |||||
* | Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID() | Chris Lattner | 2004-06-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 14201 | |||||
* | Add support for the setp instructions | Chris Lattner | 2004-06-11 | 1 | -0/+1 | |
| | | | | llvm-svn: 14140 | |||||
* | Convert to the new TargetMachine interface. | Chris Lattner | 2004-06-02 | 1 | -2/+2 | |
| | | | | llvm-svn: 13952 | |||||
* | Add more ADC and SBB variants | Alkis Evlogimenos | 2004-04-02 | 1 | -0/+2 | |
| | | | | llvm-svn: 12607 | |||||
* | Implement spill code folding for all of the conditional move instructions | Chris Lattner | 2004-03-30 | 1 | -0/+21 | |
| | | | | llvm-svn: 12554 | |||||
* | Another API change to MRegisterInfo::foldMemoryOperand. Instead of a | Alkis Evlogimenos | 2004-03-14 | 1 | -4/+3 | |
| | | | | | | MachineBasicBlock::iterator take a MachineInstr*. llvm-svn: 12392 | |||||
* | Change MRegisterInfo::foldMemoryOperand to return the folded | Alkis Evlogimenos | 2004-03-14 | 1 | -169/+163 | |
| | | | | | | instruction to make the API more flexible. llvm-svn: 12386 | |||||
* | Add memory operand version of conditional move. | Alkis Evlogimenos | 2004-03-07 | 1 | -0/+3 | |
| | | | | llvm-svn: 12190 | |||||
* | A big X86 instruction rename. The instructions are renamed to make | Alkis Evlogimenos | 2004-02-29 | 1 | -148/+148 | |
| | | | | | | | | | | | | | | | | their names more decriptive. A name consists of the base name, a default operand size followed by a character per operand with an optional special size. For example: ADD8rr -> add, 8-bit register, 8-bit register IMUL16rmi -> imul, 16-bit register, 16-bit memory, 16-bit immediate IMUL16rmi8 -> imul, 16-bit register, 16-bit memory, 8-bit immediate MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory llvm-svn: 11995 | |||||
* | SHLD and SHRD take 32-bit operands but an 8-bit immediate. Rename them | Alkis Evlogimenos | 2004-02-28 | 1 | -2/+2 | |
| | | | | | | to denote this fact. llvm-svn: 11972 | |||||
* | Floating point loads/stores act on memory operands. Rename them to | Alkis Evlogimenos | 2004-02-28 | 1 | -2/+2 | |
| | | | | | | denote this fact. llvm-svn: 11971 | |||||
* | Uncomment instructions that take both an immediate and a memory | Alkis Evlogimenos | 2004-02-28 | 1 | -11/+11 | |
| | | | | | | operand but their sizes differ. llvm-svn: 11969 | |||||
* | Do not generate instructions with mismatched memory/immediate sized | Alkis Evlogimenos | 2004-02-28 | 1 | -11/+11 | |
| | | | | | | operands. The X86 backend doesn't handle them properly right now. llvm-svn: 11944 | |||||
* | Add memory operand folding support for the SETcc family of | Alkis Evlogimenos | 2004-02-27 | 1 | -0/+12 | |
| | | | | | | instructions. llvm-svn: 11907 | |||||
* | Add memory operand folding support for SHLD and SHRD instructions. | Alkis Evlogimenos | 2004-02-27 | 1 | -0/+11 | |
| | | | | llvm-svn: 11905 | |||||
* | Add memory operand folding support for SHL, SHR and SAR, SHLD instructions. | Alkis Evlogimenos | 2004-02-27 | 1 | -0/+18 | |
| | | | | llvm-svn: 11903 | |||||
* | Move MOTy::UseType enum into MachineOperand. This eliminates the | Alkis Evlogimenos | 2004-02-22 | 1 | -5/+10 | |
| | | | | | | | | | switch statements in the constructors and simplifies the implementation of the getUseType() member function. You will have to specify defs using MachineOperand::Def instead of MOTy::Def though (similarly for Use and UseAndDef). llvm-svn: 11715 | |||||
* | When folding memory operands in machine instructions be careful to | Alkis Evlogimenos | 2004-02-22 | 1 | -2/+4 | |
| | | | | | | | leave register operands with the same use/def flags as the original instruction. llvm-svn: 11709 | |||||
* | Add support for GlobalAddress's for alkis | Chris Lattner | 2004-02-17 | 1 | -2/+8 | |
| | | | | llvm-svn: 11560 | |||||
* | Instructiosn with 1 memory operand have 4 operands in our | Alkis Evlogimenos | 2004-02-17 | 1 | -2/+1 | |
| | | | | | | representation.. duh! llvm-svn: 11554 | |||||
* | Align case statements. | Alkis Evlogimenos | 2004-02-17 | 1 | -32/+32 | |
| | | | | llvm-svn: 11552 | |||||
* | Add TEST and XCHG memory operand support. | Alkis Evlogimenos | 2004-02-17 | 1 | -1/+15 | |
| | | | | llvm-svn: 11550 | |||||
* | Add OR and XOR memory operand support. | Alkis Evlogimenos | 2004-02-17 | 1 | -0/+18 | |
| | | | | llvm-svn: 11549 | |||||
* | Add memory operand folding support for MUL, DIV, IDIV, NEG, NOT, | Alkis Evlogimenos | 2004-02-17 | 1 | -0/+22 | |
| | | | | | | MOVSX, and MOVZX. llvm-svn: 11546 | |||||
* | Add memory operand folding for CMP{rm,mr,mi}{8,16,32}, INCm{8,16,32} | Alkis Evlogimenos | 2004-02-17 | 1 | -0/+21 | |
| | | | | | | and DECm{8,16,32} instructions. llvm-svn: 11545 | |||||
* | Add support for folding memory operands for ADC, SBB and SUB instructions. | Alkis Evlogimenos | 2004-02-17 | 1 | -0/+13 | |
| | | | | llvm-svn: 11541 | |||||
* | Add a (hidden) option to print instructions that fail to fuse. It's looking | Chris Lattner | 2004-02-17 | 1 | -8/+16 | |
| | | | | | | like compares and test's would be the next huge win... llvm-svn: 11539 | |||||
* | Add support for folding memory operands in MOVri{8,16,32} instructions. | Alkis Evlogimenos | 2004-02-17 | 1 | -0/+3 | |
| | | | | llvm-svn: 11538 |