Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Grab bag of minor cleanups. Export some statistics about the number of | Chris Lattner | 2002-12-15 | 1 | -46/+56 |
| | | | | | | spills and reloads emitted llvm-svn: 5054 | ||||
* | Implement printing of MBB arguments | Chris Lattner | 2002-12-15 | 2 | -19/+29 |
| | | | | llvm-svn: 5053 | ||||
* | Simplify interfaces used by regalloc to insert code | Chris Lattner | 2002-12-15 | 3 | -53/+38 |
| | | | | llvm-svn: 5052 | ||||
* | * Simplify code a bit by breaking the PHI node handling stuff out into a ↵ | Chris Lattner | 2002-12-15 | 1 | -152/+161 |
| | | | | | | | | | | seperate function from normal regalloc code * Make the regalloc for a block a function instead of part of runOnMachineBB, which makes it easier to see what's going on in runOnMBB. llvm-svn: 5051 | ||||
* | Changes to make new TargetRegisterClass interface. | Chris Lattner | 2002-12-15 | 1 | -61/+32 |
| | | | | llvm-svn: 5050 | ||||
* | * Remove some unneccesary instance variables | Chris Lattner | 2002-12-15 | 1 | -19/+16 |
| | | | | | | * Make allocateStackSpaceFor only allocate the right amount of space llvm-svn: 5048 | ||||
* | * Simplify TargetRegisterClass implementations | Chris Lattner | 2002-12-15 | 2 | -26/+9 |
| | | | | | | * Change regclass iterators to use an extra level of pointers llvm-svn: 5047 | ||||
* | pull inverse reg class mapping into a class that is sharable and out of the | Chris Lattner | 2002-12-15 | 1 | -6/+28 |
| | | | | | | target register description classes. llvm-svn: 5045 | ||||
* | Prune #includes | Chris Lattner | 2002-12-15 | 1 | -8/+2 |
| | | | | llvm-svn: 5044 | ||||
* | Remove extraneous #includes, perform FIXME | Chris Lattner | 2002-12-15 | 1 | -10/+6 |
| | | | | llvm-svn: 5043 | ||||
* | Fix bug: Assembler/2002-12-15-GlobalResolve.ll | Chris Lattner | 2002-12-15 | 1 | -11/+16 |
| | | | | llvm-svn: 5039 | ||||
* | planes is not spelled with an O | Chris Lattner | 2002-12-15 | 1 | -1/+1 |
| | | | | llvm-svn: 5037 | ||||
* | Fix borkness with not using MachineBasicBlocks in PHI nodes | Chris Lattner | 2002-12-15 | 1 | -12/+1 |
| | | | | llvm-svn: 5035 | ||||
* | Add support to cast from a bool type | Chris Lattner | 2002-12-15 | 1 | -6/+12 |
| | | | | | | | Add support for boolean constants add getClassB method llvm-svn: 5034 | ||||
* | Use MachineOperand::isFoo methods instead of our own global functions | Chris Lattner | 2002-12-15 | 3 | -50/+22 |
| | | | | llvm-svn: 5033 | ||||
* | Fix a huge performance problem in reassociate by introducing a | Chris Lattner | 2002-12-15 | 1 | -1/+7 |
| | | | | | | rank map cache for instruction ranks llvm-svn: 5030 | ||||
* | Minor changes: | Chris Lattner | 2002-12-15 | 1 | -19/+13 |
| | | | | | | | | * Reword comment to make more clear * Don't print out BB's after modification made * Don't delete and new an instruction when we need to move something, just move it. llvm-svn: 5029 | ||||
* | Implement indirect function calls | Chris Lattner | 2002-12-13 | 2 | -2/+12 |
| | | | | llvm-svn: 5024 | ||||
* | Make function code generation printing debug-only. | Misha Brukman | 2002-12-13 | 1 | -4/+3 |
| | | | | llvm-svn: 5023 | ||||
* | Fix bork in doMultiply | Chris Lattner | 2002-12-13 | 1 | -3/+4 |
| | | | | llvm-svn: 5021 | ||||
* | Add sanity checks | Chris Lattner | 2002-12-13 | 1 | -0/+2 |
| | | | | llvm-svn: 5020 | ||||
* | Fixed a bug where moves due to phis were being neglected. | Misha Brukman | 2002-12-13 | 1 | -23/+19 |
| | | | | llvm-svn: 5019 | ||||
* | Cleaned up the code: factored out switch/case into a separate function, put | Misha Brukman | 2002-12-13 | 1 | -43/+22 |
| | | | | | | | constants in an array for quick lookup. Stole the idea from elsewhere in Jello. llvm-svn: 5017 | ||||
* | Need to insert all moves due to PHI nodes before *ALL* jumps in a predecessor | Misha Brukman | 2002-12-13 | 1 | -15/+10 |
| | | | | | | basic block, as there could be multiple. llvm-svn: 5016 | ||||
* | Insert phi code at top of block | Chris Lattner | 2002-12-13 | 1 | -2/+5 |
| | | | | llvm-svn: 5015 | ||||
* | lib/Target/X86/InstSelectSimple.cpp: | Brian Gaeke | 2002-12-13 | 1 | -1/+1 |
| | | | | | | | | The MachineBasicBlock variable name patrol hereby fines Chris Lattner one bag of nachos, for shadowing global names while his license to do so was under suspension. llvm-svn: 5014 | ||||
* | This should be more correct: invalidates physical registers that are used in | Misha Brukman | 2002-12-13 | 1 | -4/+41 |
| | | | | | | an instruction to avoid using them to allocate to other virtual registers. llvm-svn: 5013 | ||||
* | Implement cast bool to X | Chris Lattner | 2002-12-13 | 1 | -3/+4 |
| | | | | llvm-svn: 5012 | ||||
* | Rename all BMI MachineBasicBlock operands to MBB. | Brian Gaeke | 2002-12-13 | 1 | -21/+22 |
| | | | | | | | Try to mess around with emitGEPOperation's elementSizeReg to make it work, again. llvm-svn: 5011 | ||||
* | Finish up iterator stuph | Chris Lattner | 2002-12-13 | 1 | -32/+49 |
| | | | | llvm-svn: 5009 | ||||
* | Treat longs as ints => pretend they're all 32-bit values and squeeze them into | Misha Brukman | 2002-12-13 | 1 | -0/+6 |
| | | | | | | 32-bit registers. llvm-svn: 5008 | ||||
* | Fixed bug with running out of registers. Also, reinstated namespace which | Misha Brukman | 2002-12-13 | 1 | -2/+5 |
| | | | | | | disappeared during the last checkin. llvm-svn: 5007 | ||||
* | Code gen phi's correctly | Chris Lattner | 2002-12-13 | 1 | -39/+109 |
| | | | | llvm-svn: 5004 | ||||
* | Print X86 PHI nodes in a sane manner | Chris Lattner | 2002-12-13 | 1 | -0/+16 |
| | | | | llvm-svn: 5003 | ||||
* | This should handle register allocating PHI nodes. | Misha Brukman | 2002-12-13 | 1 | -23/+97 |
| | | | | llvm-svn: 5002 | ||||
* | Added moveReg2Reg() and moveImm2Reg() to accomodate moving data around due to | Misha Brukman | 2002-12-13 | 2 | -0/+46 |
| | | | | | | PHI nodes. llvm-svn: 5001 | ||||
* | lib/Target/X86/InstSelectSimple.cpp: Start counting arguments with 2, | Brian Gaeke | 2002-12-13 | 2 | -14/+19 |
| | | | | | | | | | | | | | | | | because arguments start two stack slots off of EBP. Break out of the for loop once the argument is found. Increment the counter at the end of the loop instead of the beginning. Use addRegOffset and compute the scale * index part at compile time instead of using the fancy load instruction. Just because an instruction set has wacky addressing modes doesn't mean we ought to use them (at least, if you believe Dave Patterson). lib/Target/X86/X86InstrBuilder.h: Add some comments. test/Regression/Jello/test-loadstore.ll: Let main return int 0. llvm-svn: 4999 | ||||
* | InstSelectSimple.cpp: Give promote32 a comment. Add initial | Brian Gaeke | 2002-12-13 | 4 | -10/+33 |
| | | | | | | | | | | | implementation of getReg() for arguments. MachineCodeEmitter.cpp: Fix using EBP with index, scale and no displacement (whew!) due to Chris. Printer.cpp: Fix printing out index and scale in memory references. llvm-svn: 4998 | ||||
* | Implement getelementptr constant exprs | Chris Lattner | 2002-12-13 | 2 | -33/+45 |
| | | | | | | | Implement ConstantPointerRefs Treat long/ulongs as if they were integers. A hack, but an effective one llvm-svn: 4995 | ||||
* | brg | Brian Gaeke | 2002-12-13 | 2 | -1/+33 |
| | | | | | | | | | | | | | InstSelectSimple.cpp: Add stub implementation of visitFreeInst. Add comments that mention how we are failing to implement malloc/free. Add initial implementation of visitAllocaInst. X86TargetMachine.cpp: Include llvm/Transforms/Scalar.h. Add LowerAllocations pass before instruction selection. jello/Makefile: Add scalaropts.a. llvm-svn: 4994 | ||||
* | Emit the right form of mod/rm mod field | Chris Lattner | 2002-12-13 | 2 | -2/+2 |
| | | | | llvm-svn: 4986 | ||||
* | Nicify a bit | Chris Lattner | 2002-12-13 | 1 | -2/+1 |
| | | | | llvm-svn: 4985 | ||||
* | Fix encoding of CBW instruction | Chris Lattner | 2002-12-13 | 1 | -1/+1 |
| | | | | llvm-svn: 4983 | ||||
* | Start allocating stack space at [ebp-4] to not overwrite the return address. | Misha Brukman | 2002-12-13 | 1 | -2/+9 |
| | | | | | | Also make all loads & stores 4-byte aligned for performance. ;) llvm-svn: 4982 | ||||
* | Moves now select correct opcode based on the data size. | Misha Brukman | 2002-12-13 | 1 | -3/+18 |
| | | | | llvm-svn: 4981 | ||||
* | Remove extranous #include | Chris Lattner | 2002-12-13 | 1 | -1/+0 |
| | | | | llvm-svn: 4980 | ||||
* | Rename MemArg* to Arg* | Chris Lattner | 2002-12-13 | 5 | -49/+49 |
| | | | | llvm-svn: 4979 | ||||
* | Make mem size an assert | Chris Lattner | 2002-12-13 | 3 | -27/+17 |
| | | | | | | Add mem size flags to all instructions using an imm llvm-svn: 4978 | ||||
* | This is supposed to provide correct size for datatypes. Supposedly. | Misha Brukman | 2002-12-13 | 2 | -4/+40 |
| | | | | llvm-svn: 4977 | ||||
* | Take advantage of our knowledge of 2-address X86 instructions and | Misha Brukman | 2002-12-12 | 1 | -7/+24 |
| | | | | | | register-allocated them appropriately. llvm-svn: 4976 |