summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Move sparc-specific livevar code into lib/Target/SparcChris Lattner2004-01-096-1/+688
| | | | llvm-svn: 10733
* Fix more incestuous #includage.Chris Lattner2004-01-092-4/+4
| | | | llvm-svn: 10732
* Move InstrSelection into lib/Target/Sparc, as it's sparc specific. ThisChris Lattner2004-01-095-1/+1036
| | | | | | | makes the incestuous #include'ing of sparc internal headers much less disturbing. :) llvm-svn: 10729
* Move lib/Codegen/RegAlloc into lib/Target/Sparc, as it is sparc specificChris Lattner2004-01-0915-0/+3354
| | | | llvm-svn: 10728
* Clean up a lot of the code I added yesterday by exposing the IntrinsicLoweringChris Lattner2003-12-2810-63/+46
| | | | | | implementation from the TargetMachine directly. llvm-svn: 10636
* Add TargetInstrInfo::isMoveInstr() to support coalescing in registerAlkis Evlogimenos2003-12-282-0/+23
| | | | | | allocation. llvm-svn: 10633
* Whoops, don't try to lower non intrinsic callsChris Lattner2003-12-281-0/+1
| | | | llvm-svn: 10632
* implement support for the intrinsic lowering functionalityChris Lattner2003-12-286-36/+78
| | | | llvm-svn: 10629
* Eliminate some code that is not needed now that we have the intrinsic ↵Chris Lattner2003-12-284-58/+30
| | | | | | lowering pass llvm-svn: 10628
* finegrainify namespacificationChris Lattner2003-12-221-3/+13
| | | | | | add new getIntPtrType() method llvm-svn: 10579
* Really release memory used by functions. Patch by Chris.Misha Brukman2003-12-221-0/+1
| | | | llvm-svn: 10572
* Move FP_REG_KILL closer to the return instruction.Alkis Evlogimenos2003-12-211-1/+2
| | | | llvm-svn: 10567
* Move FP_REG_KILL closer to the actual branch instruction.Alkis Evlogimenos2003-12-201-2/+5
| | | | llvm-svn: 10563
* Remove floating point killer pass. This is now implemented in theAlkis Evlogimenos2003-12-205-64/+8
| | | | | | | | | | instruction selector by adding a new pseudo-instruction FP_REG_KILL. This instruction implicitly defines all x86 fp registers and is a terminator so that passes which add machine code at the end of basic blocks (like phi elimination) do not add instructions between it and the branch or return instruction. llvm-svn: 10562
* Finally, _actually delete the machine code_ for a function, after it hasChris Lattner2003-12-202-2/+9
| | | | | | | been emitted. Also, since the FPK pass is causing memory access violations, disable it. llvm-svn: 10559
* Fix memory leak in the stackifier, due to the machinebasicblocks not holdingChris Lattner2003-12-201-0/+1
| | | | | | instructions on an ilist llvm-svn: 10556
* Finegrainify namespacificationChris Lattner2003-12-201-21/+20
| | | | | | Minor cleanups to killer pass llvm-svn: 10555
* Hoist some sparc specific code into the sparc targetChris Lattner2003-12-203-6/+53
| | | | llvm-svn: 10554
* A minor cleanup for better encapsulationChris Lattner2003-12-201-12/+13
| | | | llvm-svn: 10545
* Rip JIT specific stuff out of TargetMachine, as per PR176Chris Lattner2003-12-209-63/+135
| | | | llvm-svn: 10542
* * Converted C-style comments to C++Misha Brukman2003-12-171-13/+15
| | | | | | | * Doxygenified comments * Reordered #includes llvm-svn: 10503
* Reordered #includes.Misha Brukman2003-12-171-5/+5
| | | | llvm-svn: 10502
* Doxygenified some comments, reduced extraneous space.Misha Brukman2003-12-171-19/+12
| | | | llvm-svn: 10501
* Reorganized the Sparc backend to be more modular -- each differentMisha Brukman2003-12-1713-773/+845
| | | | | | | | | | | | | implementation of a Target{RegInfo, InstrInfo, Machine, etc} now has a separate header and a separate implementation file. This means that instead of a massive SparcInternals.h that forces a recompilation of the whole target whenever a minor detail is changed, you should only recompile a few files. Note that SparcInternals.h is still around; its contents should be minimized. llvm-svn: 10500
* Change interface of MachineOperand as follows:Alkis Evlogimenos2003-12-144-20/+17
| | | | | | | | | | | | | | | a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse() b) add isUse(), isDef() c) rename opHiBits32() to isHiBits32(), opLoBits32() to isLoBits32(), opHiBits64() to isHiBits64(), opLoBits64() to isLoBits64(). This results to much more readable code, for example compare "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used very often in the code. llvm-svn: 10461
* Change preserve all claim to just preserve live variables and phielimination.Alkis Evlogimenos2003-12-141-1/+2
| | | | llvm-svn: 10460
* Add a floating point killer pass. This pass runs before registerAlkis Evlogimenos2003-12-133-0/+68
| | | | | | | | | | allocaton on the X86 to add information to the machine code denoting that our floating point stackifier cannot handle virtual point register that are alive across basic blocks. This pass adds an implicit def of all virtual floating point register at the end of each basic block. llvm-svn: 10446
* Modified cast so that it converts the int to a long before casting toJohn Criswell2003-12-121-1/+1
| | | | | | | a pointer. This evades a warning emitted by GCC when we cast from unsigned int (32 bit) to void * (64 bit) on SparcV9. llvm-svn: 10435
* Implement the TargetMachine::getJITStubForFunction method for X86, finegrainifyChris Lattner2003-12-122-4/+13
| | | | | | namespacification. llvm-svn: 10430
* Add an option to enable the SSA based peephole optimizer.Chris Lattner2003-12-012-4/+13
| | | | | | | | | | Eventually this pass will provide substantially better code in the interim between when we have a crappy isel and nice isel. Unfortunately doing so requires fixing the backend to actually SUPPORT all of the fancy addressing modes that we now generate, and writing a DCE pass for machine code. Each of these is a fairly substantial job, so this will remain disabled for the immediate future. :( llvm-svn: 10276
* Add a new SSA-based peephole optimizer which includes copy propagation andChris Lattner2003-12-011-2/+283
| | | | | | | | folding of instructions into addressing modes. This creates lots of dead instructions, which are currently not deleted. It also creates a lot of instructions that the X86 backend currently cannot handle. :( llvm-svn: 10275
* generalize the instruction types permitted a bitChris Lattner2003-12-011-35/+42
| | | | llvm-svn: 10274
* Finegrainify namespacificationChris Lattner2003-11-301-4/+2
| | | | llvm-svn: 10270
* Support constant casting constant pointers to ints/uints, and/orBrian Gaeke2003-11-221-4/+8
| | | | | | the other way around, instead of failing a large, tumor-like assertion. llvm-svn: 10171
* Constant shift expressions, meet InstSelectSimple. Yow!!Brian Gaeke2003-11-221-50/+55
| | | | llvm-svn: 10170
* Stub for constant shift expr support.Brian Gaeke2003-11-221-0/+23
| | | | llvm-svn: 10168
* * Add code to flush the ICache, which any self-respecting SMC must doMisha Brukman2003-11-211-5/+8
| | | | | | | | * Restore registers *after* everything else to avoid any possible side effects This fixes McCat-imp. llvm-svn: 10147
* Fix PR123Chris Lattner2003-11-181-7/+7
| | | | llvm-svn: 10069
* Include the file before we close the llvm namespace.Misha Brukman2003-11-131-1/+2
| | | | llvm-svn: 9954
* Substantially re-organized this file:Misha Brukman2003-11-131-600/+554
| | | | | | | | | | | | | * There is now only one pass to print out assembly instead of two * It is a FunctionPass * The Module-level printing of globals is now in doFinalization() method of the FunctionPass * The code has been reformatted to follow LLVM coding standards * Some comments, not all, were doxygenified * Last but not least, the function to create an instance of this pass is also no longer a method in the UltraSparc class. llvm-svn: 9953
* The function to create an instance of this pass is no longer a method ofMisha Brukman2003-11-132-2/+2
| | | | | | the UltraSparc class. llvm-svn: 9952
* The functions to create new instances of passes are no longer methods in theMisha Brukman2003-11-131-15/+16
| | | | | | UltraSparc class. Comments are also doxygen-compatible now. llvm-svn: 9951
* * Put command-line switches in their own namespaceMisha Brukman2003-11-131-17/+16
| | | | | | * Pass creation functions are no longer in the UltraSparc class llvm-svn: 9950
* Force a dependency on the .inc file, which must be generated!Misha Brukman2003-11-131-0/+3
| | | | llvm-svn: 9949
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-1139-30/+181
| | | | llvm-svn: 9903
* Fix PR103Brian Gaeke2003-11-091-6/+3
| | | | llvm-svn: 9830
* Fix two typos I found in comments.Brian Gaeke2003-11-082-3/+3
| | | | llvm-svn: 9806
* For some reason, LICM and GCSE like to crash the FunctionPassManager when theyMisha Brukman2003-11-081-2/+4
| | | | | | are being added as FunctionPasses... Sigh. llvm-svn: 9798
* Implement branching to a PC-relative constant (not a BasicBlock).Misha Brukman2003-11-071-7/+7
| | | | llvm-svn: 9793
* PreSelection is not optional, it performs a necessary and vital transformationMisha Brukman2003-11-071-12/+15
| | | | | | | | | for the Sparc backend: breaking up constant expressions. Thus, we cannot have it guarded by a conditional, it should never be disabled. Also, it's now available for the JIT since it is a FunctionPass. llvm-svn: 9791
OpenPOWER on IntegriCloud