summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* add an brief instruction what this pass isGuochun Shi2003-06-101-1/+1
| | | | llvm-svn: 6676
* a simple introduction to this passGuochun Shi2003-06-101-0/+33
| | | | llvm-svn: 6675
* cleaned codeGuochun Shi2003-06-103-127/+321
| | | | | | add some comments llvm-svn: 6674
* delete useless functionsGuochun Shi2003-06-084-216/+190
| | | | | | add comment llvm-svn: 6673
* change DEBUG to DEBUG_PRINTGuochun Shi2003-06-083-102/+106
| | | | llvm-svn: 6672
* Do not hastily change the Opcode from 'r' to 'i' type if we're not actuallyMisha Brukman2003-06-071-7/+6
| | | | | | | | SETTING the operand to be an immediate or have verified that one of the operands is really a SignExtended or Unextended immediate value already, which warrants an 'i' opcode. llvm-svn: 6662
* Fix bug: Jello/2003-06-04-bzip2-bug.llChris Lattner2003-06-051-23/+21
| | | | llvm-svn: 6624
* I have finally seen the light. The code to change the opcode must live higher inMisha Brukman2003-06-041-4/+13
| | | | | | | | | | | the loop, and in both cases. In the first case, it is a VReg that is a constant so it may be actually converted to a constant. In the second case, it is already a constant, but then if it doesn't change its type (e.g. to become a register and have the value loaded from memory if it is too large to live in its instruction field), we must change the opcode BEFORE the 'continue', otherwise we miss the opportunity. llvm-svn: 6602
* Pass through the emitConstantPool() call to the real emitter.Misha Brukman2003-06-031-0/+4
| | | | llvm-svn: 6590
* Moved code to modify the opcode from 'reg' to 'imm' form to a more logical ↵Misha Brukman2003-06-031-15/+6
| | | | | | place. llvm-svn: 6563
* Moved FInfo.cpp to lib/Target/Sparc as it is Sparc-specific.Misha Brukman2003-06-021-73/+0
| | | | llvm-svn: 6554
* Minor cleanups.Chris Lattner2003-06-021-6/+4
| | | | | | | This pass should be moved to lib/Target/Sparc since it's sparc specific It also needs a file comment. llvm-svn: 6553
* Remove usage of noncopyable classes to clean up doxygen output.Chris Lattner2003-06-022-22/+25
| | | | | | | In particular these classes are the last that link the noncopyable classes with the hash_map, vector, and list classes. llvm-svn: 6552
* Add #includeChris Lattner2003-06-021-0/+1
| | | | llvm-svn: 6550
* Removed a useless ofstream.Misha Brukman2003-06-021-8/+2
| | | | llvm-svn: 6547
* compiled with the new SchedGraphCommonGuochun Shi2003-06-023-27/+38
| | | | llvm-svn: 6545
* Remove spurious assert()Misha Brukman2003-06-021-1/+0
| | | | llvm-svn: 6529
* Changes to be compatible with MachineCodeEmitter.hChris Lattner2003-06-011-65/+51
| | | | llvm-svn: 6515
* Minor changes.Vikram S. Adve2003-05-311-0/+5
| | | | llvm-svn: 6470
* Added MachineCodeForInstruction object as an argument toVikram S. Adve2003-05-312-6/+13
| | | | | | | | TmpInstruction constructors because every TmpInstruction object has to be registered with a MachineCodeForInstruction to prevent leaks. This simplifies the user's code. llvm-svn: 6469
* Allow explicit physical registers for implicit operands.Vikram S. Adve2003-05-311-1/+11
| | | | llvm-svn: 6468
* Changes to allow explicit physical register arguments that have beenVikram S. Adve2003-05-312-42/+96
| | | | | | | | | | preallocated. While reg-to-reg dependences were already handled, this change required new code for adding edges to/from call instructions. This was part of the extensive changes to the way code generation occurs for function call arguments and return values. See log for CodeGen/PhyRegAlloc.cpp. llvm-svn: 6467
* Extensive changes to the way code generation occurs for functionVikram S. Adve2003-05-312-157/+261
| | | | | | | | | | | | | | call arguments and return values: Now all copy operations before and after a call are generated during selection instead of during register allocation. The values are copied to virtual registers (or to the stack), but in the former case these operands are marked with the correct physical registers according to the calling convention. Although this complicates scheduling and does not work well with live range analysis, it simplifies the machine-dependent part of register allocation. llvm-svn: 6465
* When converting virtual registers to immediate constants, change the opcode.Misha Brukman2003-05-301-0/+14
| | | | llvm-svn: 6452
* Added saveBBreferences() for BasicBlock resolution.Misha Brukman2003-05-301-4/+8
| | | | llvm-svn: 6451
* so far everything compilesGuochun Shi2003-05-302-23/+39
| | | | llvm-svn: 6423
* Correctly write out binary data as chars, before they're cast to ints.Misha Brukman2003-05-281-2/+1
| | | | llvm-svn: 6385
* Added a debugging code emitter that prints code to a file, debug to std::cerr,Misha Brukman2003-05-271-0/+121
| | | | | | | and passes the real code to a memory-outputting code emitter. This may be removed at a later point in development. llvm-svn: 6379
* (1) Added special register class containing (for now) %fsr.Vikram S. Adve2003-05-279-51/+54
| | | | | | | | | | | | | Fixed spilling of %fcc[0-3] which are part of %fsr. (2) Moved some machine-independent reg-class code to class TargetRegInfo from SparcReg{Class,}Info. (3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly() and related functions and flags. Fixed several bugs where only "isDef" was being checked, not "isDefAndUse". llvm-svn: 6341
* Cleaned up code layout. No functional changes.Misha Brukman2003-05-222-678/+622
| | | | llvm-svn: 6304
* Kill `using' directives.Misha Brukman2003-05-222-51/+47
| | | | llvm-svn: 6301
* Use a kill, not a dead definition, update commentChris Lattner2003-05-121-5/+4
| | | | llvm-svn: 6131
* * Keep LiveVariable information more up-to-date and consistentChris Lattner2003-05-121-7/+87
| | | | | | | | | * *** Finally mark values that are inputs to PHIs as killed when appropriate. This should make the generated code quite a bit better. For example, the local-ra will not have to spill PHI inputs at the end of predecessor BB's anymore. llvm-svn: 6117
* Fix bug where we could iterate off the end of a basic blockChris Lattner2003-05-121-2/+3
| | | | llvm-svn: 6116
* * Keep the BBMap around as long as the pass is liveChris Lattner2003-05-121-8/+23
| | | | | | | * Change getVarInfo to take real virtual register numbers and offset them itself. This has caused me so much grief, it's not even funny. llvm-svn: 6115
* Fix N^2 algorithmChris Lattner2003-05-121-25/+34
| | | | llvm-svn: 6112
* * Fix several commentsChris Lattner2003-05-121-6/+37
| | | | | | * Update LiveVar info better, fixing bug: Jello/2003-05-11-PHIRegAllocBug.ll llvm-svn: 6110
* Fix tab infestation!Chris Lattner2003-05-121-45/+45
| | | | llvm-svn: 6109
* Allow const functionsChris Lattner2003-05-091-2/+3
| | | | llvm-svn: 6056
* Add methods for stub function generationChris Lattner2003-05-081-0/+7
| | | | llvm-svn: 6054
* Add a vector to keep track of which registers are allocatable. Remove FIXMEsChris Lattner2003-05-071-14/+38
| | | | llvm-svn: 6015
* Re-add gross hack, it's still necessary. :(Chris Lattner2003-05-061-2/+12
| | | | llvm-svn: 6012
* Remove hideously nasty hackChris Lattner2003-05-061-12/+2
| | | | llvm-svn: 6011
* Debug output should go to cerr, not cout, because that's where bytecode goes.Misha Brukman2003-05-041-2/+2
| | | | llvm-svn: 6002
* Fix a bug which occurred with empty basic blocksChris Lattner2003-05-021-1/+1
| | | | llvm-svn: 5982
* Minor cleanupChris Lattner2003-05-011-4/+6
| | | | llvm-svn: 5976
* Remove unneccesary &*Chris Lattner2003-04-232-2/+2
| | | | llvm-svn: 5871
* Just some code beautification changes I had sitting around in my tree.Misha Brukman2003-04-222-22/+15
| | | | llvm-svn: 5859
* Fixed compilation errors, command-line argument declarations, cleaned up code toMisha Brukman2003-04-104-267/+257
| | | | | | | | | | | | look nicer and removed useless stuff. Also renamed a few variables, moved them into namespaces, converted outputting to a file into a print to std::cerr with a DEBUG() guard, as all passes should do anyway. No functional changes have been made. However, this code now compiles. llvm-svn: 5769
* Made the code readable:Misha Brukman2003-04-094-1884/+1977
| | | | | | | | | * Lines must be wrapped at 80 chars. This is a hard limit. * Consistent style on functions, braces, if, for, etc. Code must be readable. No functional changes have been made, even though I added a new typedef. llvm-svn: 5768
OpenPOWER on IntegriCloud