summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Cute bug fix: when moving links from N to this, some links could haveVikram S. Adve2002-12-051-14/+23
| | | | | | | been missed if node *this got merged away due to recursive merging! Also, links were not moved correctly if a node is collapsed. llvm-svn: 4933
* Target/X86/Printer.cpp: Add sizePtr function, and use it instead ofBrian Gaeke2002-12-053-111/+143
| | | | | | | | | | | | | | | | | | " <SIZE> PTR " string when emitting assembly. Target/X86/X86InstrInfo.def: Tidy up a bit: Squashed everything down to 118 chars wide, wrapping lines so that comment is at the same point on each line. Rename "NoImpRegs" as "NoIR". (most instructions have NoImpRegs twice on a line, so this saves 10 columns). Also, annotate various instructions with flags for size of memory operand. (MemArg16, MemArg32, MemArg64, etc.) Target/X86/X86InstrInfo.h: Define flags for size of memory operand. (MemArg16, MemArg32, MemArg64, etc.) llvm-svn: 4932
* Added code generation for function prologues and epilogues.Misha Brukman2002-12-041-17/+32
| | | | llvm-svn: 4930
* Implemented functions for emitting prologues and epilogues;Misha Brukman2002-12-042-1/+62
| | | | | | removed EBP from the list of callee-saved registers (it isn't one). llvm-svn: 4929
* Added push and pop instructions.Misha Brukman2002-12-041-1/+2
| | | | llvm-svn: 4928
* Fix handling of function calls that return voidChris Lattner2002-12-041-9/+11
| | | | llvm-svn: 4925
* Implement initial support for return values from call instructionsChris Lattner2002-12-041-0/+14
| | | | llvm-svn: 4924
* Fun arithmetic with iterators aimed at fixing a bug: inserting instructionsMisha Brukman2002-12-041-2/+4
| | | | | | | after the *current* instruction while keeping the iterator in the same 'logical' place. llvm-svn: 4923
* Adjust the stack pointer after a function call, proportional to the number ofMisha Brukman2002-12-041-0/+9
| | | | | | arguments pushed onto the stack. llvm-svn: 4922
* Added instructions to add/subtract imm32 to/from a reg32.Misha Brukman2002-12-041-0/+2
| | | | llvm-svn: 4921
* Fix bogus assertion failuresChris Lattner2002-12-043-3/+3
| | | | llvm-svn: 4919
* Avoid bad assertionChris Lattner2002-12-041-1/+1
| | | | llvm-svn: 4918
* Remove think-o assertionChris Lattner2002-12-041-2/+0
| | | | llvm-svn: 4917
* Avoid crashing on Arguments, just silently miscompileChris Lattner2002-12-041-0/+2
| | | | llvm-svn: 4916
* storeReg2RegOffset() and loadRegOffset2Reg() now take the iterator by valueMisha Brukman2002-12-042-4/+4
| | | | | | instead of by reference, since they return the modified iterator. llvm-svn: 4914
* Moved buildReg2RegClassMap() into from X86RegisterInfo to MRegisterInfo, sinceMisha Brukman2002-12-042-15/+0
| | | | | | it is target-independent. llvm-svn: 4911
* Add a "Lazy Function Resolution in Jello" sectionChris Lattner2002-12-041-14/+40
| | | | | | Remove some todo's llvm-svn: 4910
* Fix a bug I introduced in a previous changeChris Lattner2002-12-041-2/+4
| | | | llvm-svn: 4909
* Add support for referencing global variables/functionsChris Lattner2002-12-044-5/+31
| | | | llvm-svn: 4907
* Print out direct global referencesChris Lattner2002-12-041-1/+4
| | | | llvm-svn: 4906
* This should fix the bug seen with some registers not being allocatedMisha Brukman2002-12-031-6/+45
| | | | | | | | | | | correctly: skipping instructions by incorrectly incrementing the pointer. Also adds support for building a reg-to-regclass map, and splits the function for saving register to stack into two, one suitable for virtual registers (which also assigns it a physical register) and one for simply storing back physical registers. llvm-svn: 4898
* Added support for callee- and caller-save registers.Misha Brukman2002-12-032-0/+30
| | | | llvm-svn: 4897
* Fix broken ret opcode, grr...Chris Lattner2002-12-031-1/+1
| | | | llvm-svn: 4895
* Checkin debug implementation of MCEChris Lattner2002-12-031-0/+41
| | | | llvm-svn: 4893
* Fix instsel for callsChris Lattner2002-12-031-3/+2
| | | | llvm-svn: 4891
* Simplify codeChris Lattner2002-12-031-118/+13
| | | | llvm-svn: 4886
* Fix big bug introduced with symbol table changesChris Lattner2002-12-031-2/+2
| | | | llvm-svn: 4885
* Fix the buildChris Lattner2002-12-031-2/+2
| | | | llvm-svn: 4884
* brgBrian Gaeke2002-12-031-3/+14
| | | | | | Add support for cast ... to bool in visitCastInst (it's a start, anyways...) llvm-svn: 4883
* Split the machine code emitter completely out of the printerChris Lattner2002-12-033-203/+381
| | | | llvm-svn: 4882
* * Move information about Implicit Defs/Uses into X86InstrInfo.def.Chris Lattner2002-12-035-207/+131
| | | | | | | * Expose information about implicit defs/uses of register through the MachineInstrInfo.h file. llvm-svn: 4877
* Initialize implicit uses/defs fields for sparc backend to empty listChris Lattner2002-12-031-1/+3
| | | | llvm-svn: 4876
* brgBrian Gaeke2002-12-033-1/+108
| | | | | | | X86Implicit.cpp, X86Implicit.h: New files. InstSelectSimple.cpp: Add some clarifications in visitCallInst comments. llvm-svn: 4874
* More support for machine code emission: raw instructionsChris Lattner2002-12-022-12/+30
| | | | llvm-svn: 4872
* Expose explicit typeChris Lattner2002-12-021-1/+1
| | | | llvm-svn: 4871
* Start implementing MachineCodeEmitterChris Lattner2002-12-022-6/+72
| | | | llvm-svn: 4870
* Eliminate OtherFrmChris Lattner2002-12-021-10/+6
| | | | llvm-svn: 4868
* Remove commentChris Lattner2002-12-021-7/+0
| | | | | | Remove handling of OtherFrm llvm-svn: 4867
* Initial support for machine code emissionChris Lattner2002-12-023-0/+81
| | | | llvm-svn: 4866
* Ignore generated files Lexer.cpp and llvmAsmParser.*Misha Brukman2002-12-021-0/+2
| | | | llvm-svn: 4861
* * Abstracted out stack space allocation into its own functionMisha Brukman2002-12-021-34/+36
| | | | | | * Added saving of register values to the stack llvm-svn: 4858
* Fix order of operands on a store from reg to [reg+offset].Misha Brukman2002-12-021-2/+2
| | | | llvm-svn: 4857
* Add rawfrm flagsChris Lattner2002-12-012-7/+26
| | | | llvm-svn: 4841
* Don't add implicit regsChris Lattner2002-12-011-1/+1
| | | | llvm-svn: 4840
* brgBrian Gaeke2002-11-301-49/+74
| | | | | | | | InstSelectSimple.cpp: Refactor out conversion of byte, short -> int from visitReturnInst() to new method, promote32(). Use it in both visitReturnInst() and visitCallInst(). llvm-svn: 4839
* brgBrian Gaeke2002-11-292-4/+27
| | | | | | | | | InstSelectSimple.cpp: First draft of visitCallInst method, handling int/float args. X86InstrInfo.def: Add entries for CALL with 32-bit pc relative arg, and PUSH with 32-bit reg arg. llvm-svn: 4838
* Fix logical error in TD pass: we should clear Mod/Ref bits of each callerVikram S. Adve2002-11-273-8/+17
| | | | | | | before inlining their graphs into a function. To support this, added flags to CloneFlags to strip/keep Mod/Ref bits. llvm-svn: 4836
* (1) Bug fix that was causing nodes with dangling references to be freed.Vikram S. Adve2002-11-271-77/+201
| | | | | | | | | | We run removeDeadNodes() on the TD graph up front before using it. (2) Major enhancement to printing of results: now we list the actual objects that are mod/ref instead of just printing the bit vectors. Also an important bug fix in TDDataStructures pass (no change here): clear Mod/Ref bits of callers before inlining into a function. llvm-svn: 4833
* brgBrian Gaeke2002-11-261-3/+33
| | | | | | | InstSelectSimple.cpp: Add some comments that say what I'm going to do for calls and casts. llvm-svn: 4832
* Keep global nodes in each DS Graph (by forcing them to be marked live).Vikram S. Adve2002-11-251-3/+3
| | | | llvm-svn: 4831
OpenPOWER on IntegriCloud