summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Major bug fix: spill code for an instruction in a delay slot wasVikram S. Adve2002-10-111-11/+73
| | | | | | merrily being inserted before/after the instruction! llvm-svn: 4116
* Don't pad variables in stack slots for performance!Vikram S. Adve2002-10-111-2/+2
| | | | llvm-svn: 4115
* Bug fix in folding getElementPtr instructions: don't fold one intoVikram S. Adve2002-09-291-27/+45
| | | | | | | a predecessor if it has a non-zero first index and the predecessor ends with a struct index. llvm-svn: 3982
* Convert DIRS to PARALLEL_DIRS. They can be built independently.Vikram S. Adve2002-09-291-1/+1
| | | | llvm-svn: 3972
* Added a couple of helper methods for live range construction.Vikram S. Adve2002-09-281-13/+12
| | | | llvm-svn: 3970
* Live ranges for Return value and return address of a Call are nowVikram S. Adve2002-09-281-91/+71
| | | | | | | created here, simply by handling all implicit operands (which should have been done anyway). llvm-svn: 3969
* Fixed method getReturnValue(): it should return NULL if theVikram S. Adve2002-09-281-0/+7
| | | | | | callee does not return a value. llvm-svn: 3968
* Fixed incorrect assertion: spill code for function ptr should beVikram S. Adve2002-09-281-3/+4
| | | | | | handled like normal operands, not like other call arguments. llvm-svn: 3967
* Sign-extend integer constants from original type size to 64 bits!Vikram S. Adve2002-09-271-5/+9
| | | | llvm-svn: 3958
* Add method IGNode::getCombinedDegree to count the sum of the degreesVikram S. Adve2002-09-201-0/+3
| | | | | | of two nodes, excluding duplicates. llvm-svn: 3848
* Add PostOpts/ and rename PreSelection/ to PreOpts/.Vikram S. Adve2002-09-201-1/+1
| | | | llvm-svn: 3847
* Add method MachineInstr::replace to rewrite a machine instruction in place.Vikram S. Adve2002-09-201-0/+16
| | | | llvm-svn: 3843
* Allow copy coalescing in more cases: if sum of node degrees is more thanVikram S. Adve2002-09-202-1/+26
| | | | | | | | than #available regs, compute the sum excluding duplicates and if that is less than #regs, go ahead and coalesce. Add method IGNode::getCombinedDegree to count excluding duplicates. llvm-svn: 3842
* Peephole optimization pass on final machine code.Vikram S. Adve2002-09-201-0/+9
| | | | llvm-svn: 3840
* Files moved to CodeGen/PreOpts.Vikram S. Adve2002-09-202-294/+0
| | | | llvm-svn: 3839
* Moving these files from Code/PreSelection to here.Vikram S. Adve2002-09-201-0/+8
| | | | | | | | | | | | | | | | Original logs for PreSelection.cpp: revision 1.2 date: 2002/09/17 23:50:32; author: lattner; state: Exp; lines: +1 -3 Don't put default parameter values into .cpp files, it breaks 3.x compilers revision 1.1 date: 2002/09/16 15:31:13; author: vadve; state: Exp; New preselection pass that specializes LLVM code for a target machine, while remaining in legal portable LLVM form and preserving type information and type safety. llvm-svn: 3838
* Don't put default parameter values into .cpp files, it breaks 3.x compilersChris Lattner2002-09-171-3/+1
| | | | llvm-svn: 3799
* Add support for GCC 2.96Chris Lattner2002-09-171-2/+2
| | | | llvm-svn: 3777
* Add subdirectory PreSelection.Vikram S. Adve2002-09-161-1/+1
| | | | llvm-svn: 3739
* New preselection pass that specializes LLVM code for a target machine,Vikram S. Adve2002-09-162-0/+296
| | | | | | | while remaining in legal portable LLVM form and preserving type information and type safety. llvm-svn: 3738
* Dump routine now writes out allocated register numbers if available.Vikram S. Adve2002-09-161-4/+13
| | | | llvm-svn: 3737
* Improve and fix error in allocating stack slots: adjust alignment after addingVikram S. Adve2002-09-161-73/+43
| | | | | | | base address of the relevant region (instead of assuming that each region is maximally aligned). llvm-svn: 3736
* Add a version of ChooseRegOrImmed to handle numerical constantsVikram S. Adve2002-09-161-83/+118
| | | | | | introduced by InstrSelection. llvm-svn: 3735
* Add an assertion.Vikram S. Adve2002-09-161-0/+1
| | | | llvm-svn: 3734
* Fix typos in previous checkin.Vikram S. Adve2002-09-151-2/+2
| | | | llvm-svn: 3726
* RegAllocCommon no longer includes CommandLine.h so we have to include itChris Lattner2002-09-151-0/+1
| | | | | | here. llvm-svn: 3725
* Break RA_DEBUG option into several levels to get better control overVikram S. Adve2002-09-146-104/+117
| | | | | | debug output. llvm-svn: 3724
* Remove unnecessary include.Vikram S. Adve2002-09-141-2/+0
| | | | llvm-svn: 3723
* Break RA_DEBUG option into several levels to get better output.Vikram S. Adve2002-09-141-0/+23
| | | | llvm-svn: 3722
* Moving to lib/CodeGen/RegAlloc.Vikram S. Adve2002-09-141-18/+0
| | | | llvm-svn: 3718
* Fix a bug I introduced into the code generator. :(Chris Lattner2002-09-121-1/+1
| | | | llvm-svn: 3694
* - Change getelementptr instruction to use long indexes instead of uintChris Lattner2002-09-111-8/+8
| | | | | | indexes for sequential types. llvm-svn: 3681
* Make sure the leakdetector is told about temporary Phi nodes also, so it doesn'tChris Lattner2002-09-081-1/+6
| | | | | | erroneously report them as leaks llvm-svn: 3624
* Inform the memory leak detector that TmpInstruction objects should not beChris Lattner2002-09-081-0/+24
| | | | | | subject to memory leak checking. llvm-svn: 3623
* - Renamed Type::isIntegral() to Type::isInteger()Chris Lattner2002-09-031-7/+7
| | | | | | | - Added new method Type::isIntegral() that is the same as isInteger, but also accepts bool. llvm-svn: 3574
* moved this file from lib/Reoptimizer/MappingAnand Shukla2002-08-271-0/+75
| | | | llvm-svn: 3519
* Makefile for new sub directoryAnand Shukla2002-08-271-0/+4
| | | | llvm-svn: 3518
* Added Mapping subdirAnand Shukla2002-08-271-1/+1
| | | | llvm-svn: 3517
* Use newly-added type inspection support in InstTreeNode subclasses.Vikram S. Adve2002-08-241-5/+4
| | | | llvm-svn: 3501
* Moved code here to extract memory instruction indices and to checkVikram S. Adve2002-08-241-17/+96
| | | | | | | whether FoldGetElemNodes should be called. This is machine-independent but was in the Sparc directory. This is in a new function: GetMemInstArgs. llvm-svn: 3500
* Added #include <alloca.h>Anand Shukla2002-08-231-0/+1
| | | | llvm-svn: 3491
* Eliminated the MemAccessInst class, folding contents into GEP class.Chris Lattner2002-08-222-9/+8
| | | | llvm-svn: 3487
* dumpNode() does not need to print MachineInstrs.Vikram S. Adve2002-08-221-15/+2
| | | | llvm-svn: 3444
* Unary Not (boolean and bitwise) is no longer a separate LLVM instructionVikram S. Adve2002-08-151-2/+7
| | | | | | | | | but is instead implemented with XOR. Note that the InstrForest opLabels for Not and BNot remain the same, i.e., the XOR is recognized and represented as a (boolean or bitwise) Not when building the instruction trees. But these tree nodes are now binary, not unary. llvm-svn: 3343
* Add method MachineInstr::substituteValue() which substitutesVikram S. Adve2002-08-141-0/+29
| | | | | | | one Value with another one in all operands and implicit references of the machine instruction. llvm-svn: 3306
* * Removed extraneous #includesChris Lattner2002-08-094-51/+16
| | | | | | | * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes llvm-svn: 3278
* * Removed extraneous #includesChris Lattner2002-08-095-50/+23
| | | | | | | * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes llvm-svn: 3277
* We are using std::vector, so remove extraneous namespace prefixesChris Lattner2002-08-091-8/+7
| | | | llvm-svn: 3275
* Very minor cleanupsChris Lattner2002-08-091-23/+15
| | | | llvm-svn: 3271
* - Cleaned up the interface to AnalysisUsage to take analysis class namesChris Lattner2002-08-081-1/+1
| | | | | | | instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument llvm-svn: 3265
OpenPOWER on IntegriCloud