summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add support for marking each operand as a %hh, %hm, %lm or %lo.Vikram S. Adve2002-07-101-24/+80
| | | | | | | Represent previous bools and these ones with flags in a single byte per operand. llvm-svn: 2863
* Added a few more methods for creating instructions.Vikram S. Adve2002-07-101-0/+33
| | | | llvm-svn: 2862
* Fix print of BB name in dump().Vikram S. Adve2002-07-101-2/+1
| | | | llvm-svn: 2861
* Add support for marking each operand as a %hh, %hm, %lm or %lo.Vikram S. Adve2002-07-101-34/+38
| | | | | | | Represent previous bools and these ones with flags in a single byte per operand. llvm-svn: 2860
* Changed interface to insertCallerSavingCode().Vikram S. Adve2002-07-101-1/+3
| | | | llvm-svn: 2859
* Stop using pseudo-instructions (SETX, SETUW, SETSW)Vikram S. Adve2002-07-101-10/+28
| | | | | | and generate actual machine instruction sequences directly. llvm-svn: 2858
* Add support to print %hh, %hm, %lm, or %lo in an operand field.Vikram S. Adve2002-07-101-14/+30
| | | | llvm-svn: 2857
* Major overhaul to stop using pseudo-instructions (SETX, SETUW, SETSW)Vikram S. Adve2002-07-101-110/+207
| | | | | | | | | | | and generate actual machine instruction sequences directly. Also a couple of bug fixes in code for putting constants into registers: -- Do *not* sign-extend unsigned constant that is shorter than int reg size -- Fix handling of address constant (a GlobalValue) vs. constant that must be loaded. llvm-svn: 2856
* More important fixes:Vikram S. Adve2002-07-101-40/+53
| | | | | | | | | | -- FP argument to a function with no prototype going on stack was not being copied to the stack in colorCallArgs(). -- Put caller-saving code *before* argument copying code so that we don't trash a register before saving it! -- Two other minor fixes. llvm-svn: 2855
* Put caller-saving code *before* argument copying code!Vikram S. Adve2002-07-101-1/+3
| | | | | | (This file has a minor change required for this fix.) llvm-svn: 2854
* Minor change in comments.Vikram S. Adve2002-07-102-6/+8
| | | | llvm-svn: 2853
* *** empty log message ***Chris Lattner2002-07-101-5/+5
| | | | llvm-svn: 2852
* Allow specifying a module for context instead of a slot calculator directlyChris Lattner2002-07-101-3/+4
| | | | llvm-svn: 2851
* Add a new testcase. It actually is not infinite looping. It just takesChris Lattner2002-07-091-0/+67
| | | | | | FOREVER to run. That's the bug. :) llvm-svn: 2850
* Disabling reassociate pass until it is fixed.Vikram S. Adve2002-07-091-1/+2
| | | | llvm-svn: 2849
* New testcase for problem effecting mstChris Lattner2002-07-091-0/+10
| | | | llvm-svn: 2848
* changed mem_fun to std::mem_funAnand Shukla2002-07-091-2/+2
| | | | llvm-svn: 2847
* added std:: to hash_setAnand Shukla2002-07-091-0/+2
| | | | llvm-svn: 2846
* Added std:: to mem_fun for 64-bit gccAnand Shukla2002-07-091-2/+2
| | | | llvm-svn: 2845
* Implementing shift left & shift right on pointersChris Lattner2002-07-091-0/+2
| | | | llvm-svn: 2844
* Include header in the compiler-neutral locationChris Lattner2002-07-091-1/+1
| | | | llvm-svn: 2843
* Added support for printing constant global references toVikram S. Adve2002-07-091-4/+10
| | | | | | assembly. llvm-svn: 2842
* Add makefile-mode flag for emacs.Vikram S. Adve2002-07-092-2/+4
| | | | llvm-svn: 2841
* Fix iteration and InsertPos bugs introduced when Chris changed over to ilist.Vikram S. Adve2002-07-081-21/+35
| | | | llvm-svn: 2840
* Numerous changes in interface to class SparcRegInfo corresponding toVikram S. Adve2002-07-081-75/+78
| | | | | | | | changes in class MachineRegInfo (see MachineRegInfo.h for details). Added {LD,ST}[X]FSR instructions. llvm-svn: 2839
* class MachineCodeForBasicBlock is now an annotation on BasicBlock.Vikram S. Adve2002-07-081-2/+3
| | | | llvm-svn: 2838
* BA no longer has the unused CC operand.Vikram S. Adve2002-07-081-2/+3
| | | | llvm-svn: 2837
* Have to save a boolean (setCC) value whenever use is outside the currentVikram S. Adve2002-07-081-20/+16
| | | | | | | | | | basic block. Mark setCCInstr used as dest. of conditional-move as both a def and a use. BA instruction no longer has the unused CC argument. llvm-svn: 2836
* BA has only one argument.Vikram S. Adve2002-07-081-8/+12
| | | | | | | Added LDFSR, LDXFSR, STFSR and STXFSR. Fixed operands info for RDCCR, WRCCR. llvm-svn: 2835
* Significant changes to correctly spill CC registers and to correctlyVikram S. Adve2002-07-081-214/+273
| | | | | | | | | | | | | | | | | | | | | | | | | | handle conditional move instructions: -- cpMem<->Reg functions now support CC registers (int and FP) correctly. Also, cpMem<->Reg functions now return a vector of machine instructions. -- Scratch registers must be explicitly provided to cpMem<->Reg when needed, since CC regs need one to be copied to/from memory. -- CC regs are saved to a scratch register instead of stack. -- All regs used by a instruction are now recorded in MachineInstr::regsUsed, since regs used to save values *across* an instruction are not obvious either from the operands or from the LiveVar sets. -- An (explicit or implicit) operand may now be both a def and a use. This is needed for conditional move operations. So an operand may need spill code both before and after the instruction. Other changes: -- Added several get{Class,Type} functions. -- Added unified-to-local register number conversion. -- class MachineCodeForBasicBlock is now an annotation on BasicBlock. -- Suggest/Color methods may modify the MachineInstr (and always did), so don't make that argument const! -- Caller-saving code doesn't need its special purpose code for handling CC registers since cpMem<->Reg handle those correctly now. llvm-svn: 2834
* Significant changes to correctly spill CC registers and to correctlyVikram S. Adve2002-07-081-239/+164
| | | | | | | | | | | | | | | | | handle conditional move instructions: -- cpMem<->Reg functions now support CC registers (int and FP) correctly. -- Scratch registers must be explicitly provided to cpMem<->Reg when needed, since CC regs need one to be copied to/from memory. -- CC regs are saved to a scratch register instead of stack. -- All regs used by a instruction are now recorded in MachineInstr::regsUsed, since regs used to save values *across* an instruction are not obvious either from the operands or from the LiveVar sets. -- An (explicit or implicit) operand may now be both a def and a use. This is needed for conditional move operations. So an operand may need spill code both before and after the instruction. -- class MachineCodeForBasicBlock is now an annotation on BasicBlock. llvm-svn: 2833
* MachineInstr* in vector are not const (and never really were)Vikram S. Adve2002-07-081-9/+10
| | | | | | | because operands may be modified directly to set register. Also, class MachineCodeForBasicBlock is now an annotation on BasicBlock. llvm-svn: 2832
* Rename static struct Initializer to avoid name conflict with BB.Vikram S. Adve2002-07-081-3/+3
| | | | llvm-svn: 2831
* Fix printing of BB in dump.Vikram S. Adve2002-07-081-2/+3
| | | | llvm-svn: 2830
* Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.h.Vikram S. Adve2002-07-081-3/+4
| | | | | | This class is now an annotation on BasicBlock. llvm-svn: 2829
* MachineInstr::dump() now takes no arguments.Vikram S. Adve2002-07-081-1/+1
| | | | llvm-svn: 2828
* Implementation of class MachineCodeForBasicBlock.Vikram S. Adve2002-07-081-0/+28
| | | | | | Moved here from MachineInstr.cpp to make it an annotation on BasicBlock. llvm-svn: 2827
* A single MachineInstr operand may now be both a def and a use,Vikram S. Adve2002-07-085-102/+91
| | | | | | | | | so additional dep. edges have to be added. This was needed to correctly handle conditional move instructions! MachineCodeForBasicBlock is now an annotation on BasicBlock. Renamed "earliestForNode" to "earliestReadyTimeForNode". llvm-svn: 2826
* A single MachineInstr operand may now be both a def and a use.Vikram S. Adve2002-07-082-9/+13
| | | | llvm-svn: 2825
* cpMem<->Reg functions now support CC registers (int and FP) correctly.Vikram S. Adve2002-07-081-24/+42
| | | | | | | | | | | | A scratch register has to be provided when needed to do the copy. Also, cpMem<->Reg functions now return a vector of machine instructions. Added several get{Class,Type} functions. Suggest/Color methods may modify the MachineInstr (and always did), so don't make that argument const! llvm-svn: 2824
* Interface to class MachineCodeForBasicBlock.Vikram S. Adve2002-07-082-0/+148
| | | | | | Moved here from MachineInstr.h to make it an annotation on BasicBlock. llvm-svn: 2823
* getUsableUniRegAtMI interface simplified slightly.Vikram S. Adve2002-07-081-6/+7
| | | | llvm-svn: 2822
* Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.{cpp,h}.Vikram S. Adve2002-07-082-108/+108
| | | | | | | | An (explicit or implicit) operand may now be both a def and a use. Also add a set of regs used by each instruction. dump() no longer takes an optional argument, which doesn't work in gdb. llvm-svn: 2821
* MachineInstr* in vector are not const (and never really were)Vikram S. Adve2002-07-081-1/+1
| | | | | | because operands may be modified directly to set register. llvm-svn: 2820
* Added two more helper functions for instruction creation.Vikram S. Adve2002-07-081-0/+21
| | | | llvm-svn: 2819
* Moved MachineCodeForBB to be an annotation on BasicBlock.Vikram S. Adve2002-07-082-11/+1
| | | | llvm-svn: 2818
* changes BBsorting and orederingAnand Shukla2002-07-082-720/+90
| | | | llvm-svn: 2817
* small correctionsAnand Shukla2002-07-081-23/+22
| | | | llvm-svn: 2816
* changed function numberingAnand Shukla2002-07-081-102/+95
| | | | llvm-svn: 2815
* Add new << to allow printing modules by reference.Anand Shukla2002-07-031-0/+5
| | | | llvm-svn: 2814
OpenPOWER on IntegriCloud