summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* forgot thisDuraid Madina2006-09-041-0/+2
| | | | llvm-svn: 30097
* add setJumpBufSize() and setJumpBufAlignment() to target-lowering.Duraid Madina2006-09-043-12/+15
| | | | | | | Call these from your backend to enjoy setjmp/longjmp goodness, see lib/Target/IA64/IA64ISelLowering.cpp for an example llvm-svn: 30095
* new fileChris Lattner2006-09-041-0/+154
| | | | llvm-svn: 30082
* Completely rearchitect the interface between targets and the pass manager.Chris Lattner2006-09-0422-524/+170
| | | | | | | | | | | | | | | | | | | | | | | | This pass: 1. Splits TargetMachine into TargetMachine (generic targets, can be implemented any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by things using libcodegen and other support). 2. Instead of having each target fully populate the passmgr for file or JIT output, move all this to common code, and give targets hooks they can implement. 3. Commonalize the target population stuff between file emission and JIT emission. 4. All (native code) codegen stuff now happens in a FunctionPassManager, which paves the way for "fast -O0" stuff in the CFE later, and now LLC could lazily stream .bc files from disk to use less memory. 5. There are now many fewer #includes and the targets don't depend on the scalar xforms or libanalysis anymore (but codegen does). 6. Changing common code generator pass ordering stuff no longer requires touching all targets. 7. The JIT now has the option of "-fast" codegen or normal optimized codegen, which is now orthogonal to the fact that JIT'ing is being done. llvm-svn: 30081
* Add accessorChris Lattner2006-09-041-0/+1
| | | | llvm-svn: 30080
* Add explicit doInitialization/doFinalization methods instead of makingChris Lattner2006-09-041-1/+14
| | | | | | the FunctionPassManager redo this for each function. llvm-svn: 30079
* remove #includeChris Lattner2006-09-041-1/+1
| | | | llvm-svn: 30078
* Simplify target construction.Chris Lattner2006-09-038-14/+7
| | | | llvm-svn: 30070
* eliminate use of TM.getName()Chris Lattner2006-09-031-2/+1
| | | | llvm-svn: 30068
* add the SETULT condition codeRafael Espindola2006-09-031-0/+1
| | | | llvm-svn: 30067
* Avoid beating on the mi2i map when we know the answer already.Chris Lattner2006-09-031-12/+19
| | | | llvm-svn: 30066
* minor speedupChris Lattner2006-09-031-3/+3
| | | | llvm-svn: 30065
* Fix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86.Chris Lattner2006-09-031-6/+11
| | | | | | | Just because an alias of a register is available, it doesn't mean that we can arbitrarily evict the register. llvm-svn: 30064
* When deleting a machine instruction, make sure to remove it from theChris Lattner2006-09-031-1/+4
| | | | | | livevariables information. This fixes several regalloc=local failures on x86 llvm-svn: 30062
* Move two methods out of line, make them work when the record for a machineChris Lattner2006-09-031-0/+36
| | | | | | instruction includes physregs. llvm-svn: 30061
* Count the time for a pass to ReleaseMemory against that pass. Not doing thisChris Lattner2006-09-021-0/+2
| | | | | | was under accounting for the time that livevariables cost llvm-svn: 30060
* Make ArgumentPromotion handle recursive functions that pass pointers in ↵Owen Anderson2006-09-021-11/+33
| | | | | | their recursive calls. llvm-svn: 30057
* add more condition codesRafael Espindola2006-09-022-2/+30
| | | | llvm-svn: 30056
* Improve handling of SelectInst.Nick Lewycky2006-09-021-31/+44
| | | | | | | | Reorder operations to remove duplicated work. Fix to leave floating-point types out of the optimization. Add tests to predsimplify.ll for SwitchInst and SelectInst handling. llvm-svn: 30055
* improve compat with certain versions of GCC (on cygwin?)Chris Lattner2006-09-021-1/+1
| | | | llvm-svn: 30054
* Iteration is required for some cases, even if they don't occur in crafty.Chris Lattner2006-09-021-13/+24
| | | | | | Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll llvm-svn: 30050
* When joining two intervals where the RHS is really simple, use a light-weightChris Lattner2006-09-022-11/+172
| | | | | | method for joining the live ranges instead of the fully-general one. llvm-svn: 30049
* Oops. Bad typo. Without the check of N1.hasOneUse() bad things can happen.Evan Cheng2006-09-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Suppose the TokenFactor can reach the Op: [Load chain] ^ | [Load] ^ ^ | | / \- / | / [Op] / ^ ^ | .. | | / | [TokenFactor] | ^ | | | \ / \ / [Store] If we move the Load below the TokenFactor, we would have created a cycle in the DAG. llvm-svn: 30040
* Use a couple of multiclass patterns to factor some integer ops.Chris Lattner2006-09-012-135/+51
| | | | llvm-svn: 30039
* remove a bunch of commentsChris Lattner2006-09-011-54/+0
| | | | llvm-svn: 30038
* - Fixed broken Win32 buildAnton Korobeynikov2006-09-016-22/+26
| | | | | | - Removed warning about clobbered parameter in Bytecode/Reader llvm-svn: 30026
* Remove extra spaces.Evan Cheng2006-09-011-2/+2
| | | | llvm-svn: 30025
* Last check-in was a mistake...Evan Cheng2006-09-011-4/+6
| | | | | | | | | | | I've been told apple gcc version number is not guaranteed to increase monotonically. Change the preprocess condition to make it less risky. The configuration change is done during the middle 10.4 life cycle so we have to check __APPLE_CC. For future OS X release, we should be able to assume -fenable-cxa-atexit is the default. llvm-svn: 30024
* *** empty log message ***Evan Cheng2006-09-011-2/+2
| | | | llvm-svn: 30023
* Allow legalizer to expand ISD::MUL using only MULHS in the rare case that isEvan Cheng2006-09-011-6/+13
| | | | | | possible and the target only supports MULHS. llvm-svn: 30022
* Corrections.Jim Laskey2006-09-011-4/+4
| | | | llvm-svn: 30021
* Better comments.Evan Cheng2006-09-011-1/+4
| | | | llvm-svn: 30017
* Yikes. This requires checking apple gcc version.Evan Cheng2006-09-011-2/+4
| | | | llvm-svn: 30016
* Pull some code out of a hot recursive function because the common case doesn'tChris Lattner2006-09-011-6/+19
| | | | | | need recursion. llvm-svn: 30015
* Reserve space in the ValueNumberInfo vector. This speeds up live intervalChris Lattner2006-09-011-10/+10
| | | | | | | | analysis 16% on crafty. Wrap long lines. llvm-svn: 30012
* Iterative coallescing doesn't buy us anything (we get identical results onChris Lattner2006-09-011-24/+4
| | | | | | crafty with and without it). Removing it speeds up live intervals 6%. llvm-svn: 30010
* Don't confuse canonicalize and lookup. Fixes predsimplify.reg4.ll. AlsoNick Lewycky2006-09-011-21/+20
| | | | | | corrects missing optimization opportunity removing cases from a switch. llvm-svn: 30009
* DAG combiner fix for rotates. Previously the outer-most condition checksEvan Cheng2006-08-311-27/+44
| | | | | | | for ROTL availability. This prevents it from forming ROTR for targets that has ROTR only. llvm-svn: 29997
* Add a special case that speeds up coallescing a bit, but not enough.Chris Lattner2006-08-311-51/+107
| | | | llvm-svn: 29996
* Delete copies as they are coallesced instead of waiting until the end.Chris Lattner2006-08-311-0/+4
| | | | llvm-svn: 29995
* avoid calling the virtual isMoveInstr method endlessly by caching its results.Chris Lattner2006-08-312-75/+73
| | | | llvm-svn: 29994
* Properties where both Values weren't in the union (as being equal toNick Lewycky2006-08-311-24/+18
| | | | | | | | another Value) weren't being found by findProperties. This fixes predsimplify.ll test6, a missed optimization opportunity. llvm-svn: 29991
* Fix a compiler crash bootstrapping llvm-gcc.Chris Lattner2006-08-301-2/+6
| | | | llvm-svn: 29989
* Guess what happens when asserts are disabled. :(Chris Lattner2006-08-301-1/+2
| | | | | | Also, the assert could never fire due to || instead of &&. llvm-svn: 29977
* Instantiate Statistic<> in one place, not in every .o file that uses it.Chris Lattner2006-08-301-0/+2
| | | | llvm-svn: 29971
* Move to using the EquivalenceClass ADT. Removes SynSets.Nick Lewycky2006-08-301-165/+92
| | | | | | | | | If a branch's condition has become a ConstantBool, simplify it immediately. Removing the edge saves work and exposes up more optimization opportunities in the pass. Add support for SelectInst. llvm-svn: 29970
* Teach the coallescer to coallesce live intervals joined by an arbitraryChris Lattner2006-08-292-155/+249
| | | | | | | | number of copies, potentially defining live ranges that appear to have differing value numbers that become identical when coallsced. Among other things, this fixes CodeGen/X86/shift-coalesce.ll and PR687. llvm-svn: 29968
* Do not rely on std::sort and std::erase to get list of uniqueDevang Patel2006-08-292-10/+57
| | | | | | | | exit blocks. The output is dependent on addresses of basic block. Add and use Loop::getUniqueExitBlocks. llvm-svn: 29966
* Minor asm fix.Evan Cheng2006-08-292-2/+5
| | | | llvm-svn: 29965
* Remove dead code.Evan Cheng2006-08-291-4/+0
| | | | llvm-svn: 29962
OpenPOWER on IntegriCloud