summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Fix a long-standing wart in the code generator: two-address instruction loweringChris Lattner2006-09-059-604/+577
| | | | | | | | | | | | | | | actually *removes* one of the operands, instead of just assigning both operands the same register. This make reasoning about instructions unnecessarily complex, because you need to know if you are before or after register allocation to match up operand #'s with the target description file. Changing this also gets rid of a bunch of hacky code in various places. This patch also includes changes to fold loads into cmp/test instructions in the X86 backend, along with a significant simplification to the X86 spill folding code. llvm-svn: 30108
* jmp_bufs are this big on alpha.Andrew Lenharth2006-09-051-0/+3
| | | | llvm-svn: 30107
* First draft of the "Live Interval Analysis" section. This is the "LiveBill Wendling2006-09-041-0/+188
| | | | | | Variable Analysis" pass. llvm-svn: 30106
* ADd getImm/setImm methodsChris Lattner2006-09-041-6/+15
| | | | llvm-svn: 30105
* Add some short-hand accessorsChris Lattner2006-09-041-0/+4
| | | | llvm-svn: 30104
* add support for returning 64bit valuesRafael Espindola2006-09-042-0/+41
| | | | llvm-svn: 30103
* Fix some X86 JIT failures. This should really come from TargetJITInfo.Chris Lattner2006-09-041-0/+3
| | | | llvm-svn: 30102
* lli uses LinkAllCodegenComponents, so it needs this. Thanks toChris Lattner2006-09-041-1/+2
| | | | | | Rafael Esp?ndola for pointing this out llvm-svn: 30100
* Correct fix for a crasher on functions with live in valuesChris Lattner2006-09-041-4/+6
| | | | llvm-svn: 30099
* Hack around a regression I introduced yesterdayChris Lattner2006-09-041-0/+3
| | | | llvm-svn: 30098
* forgot thisDuraid Madina2006-09-041-0/+2
| | | | llvm-svn: 30097
* Fix a build problemChris Lattner2006-09-041-2/+3
| | | | llvm-svn: 30096
* add setJumpBufSize() and setJumpBufAlignment() to target-lowering.Duraid Madina2006-09-045-14/+47
| | | | | | | Call these from your backend to enjoy setjmp/longjmp goodness, see lib/Target/IA64/IA64ISelLowering.cpp for an example llvm-svn: 30095
* Update this to reflect llvm-config usageChris Lattner2006-09-041-24/+10
| | | | llvm-svn: 30094
* Remove some dead makefileryChris Lattner2006-09-041-62/+0
| | | | llvm-svn: 30093
* Use llvm-config to determine what to link inChris Lattner2006-09-044-7/+5
| | | | llvm-svn: 30092
* Use llvm-config instead of magic JIT thing to link in libsChris Lattner2006-09-041-1/+1
| | | | llvm-svn: 30091
* Use LINK_COMPONENTS to specify *components* to link against instead ofChris Lattner2006-09-0418-64/+21
| | | | | | using USED_LIBS to specify *libraries* to link against. llvm-svn: 30090
* Allow things like --libs CBackendChris Lattner2006-09-041-0/+3
| | | | llvm-svn: 30089
* Switch to using llvm-config to buildChris Lattner2006-09-041-1/+1
| | | | llvm-svn: 30088
* Bugfix for llvm-config supportChris Lattner2006-09-041-13/+16
| | | | llvm-svn: 30087
* Make LINK_COMPONENTS interact well with make cleanChris Lattner2006-09-041-1/+3
| | | | llvm-svn: 30086
* Switch to using llvm-config to select components to link in.Chris Lattner2006-09-041-2/+2
| | | | llvm-svn: 30085
* Add a new make option (LINK_COMPONENTS) which tools can use to specify whatChris Lattner2006-09-041-4/+14
| | | | | | libraries they need. This uses llvm-config to link the tools. llvm-svn: 30084
* Document build order dependencies. Make sure that llvm-config is built beforeChris Lattner2006-09-041-1/+12
| | | | | | tools. llvm-svn: 30083
* new fileChris Lattner2006-09-041-0/+154
| | | | llvm-svn: 30082
* Completely rearchitect the interface between targets and the pass manager.Chris Lattner2006-09-0425-614/+376
| | | | | | | | | | | | | | | | | | | | | | | | 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-042-1/+22
| | | | | | the FunctionPassManager redo this for each function. llvm-svn: 30079
* remove #includeChris Lattner2006-09-041-1/+1
| | | | llvm-svn: 30078
* rearrange targets to satisfy dependencies. Too bad we aren't using llvm-config.Chris Lattner2006-09-041-1/+1
| | | | llvm-svn: 30077
* If a cycle exists, don't succeed building the second time around.Chris Lattner2006-09-041-1/+1
| | | | llvm-svn: 30076
* remove messageChris Lattner2006-09-041-1/+0
| | | | llvm-svn: 30075
* Rearrange library linkage order.Chris Lattner2006-09-041-3/+4
| | | | llvm-svn: 30074
* Eliminate target name.Chris Lattner2006-09-031-14/+3
| | | | llvm-svn: 30071
* Simplify target construction.Chris Lattner2006-09-038-14/+7
| | | | llvm-svn: 30070
* Remove use of target::getName()Chris Lattner2006-09-031-2/+2
| | | | llvm-svn: 30069
* eliminate use of TM.getName()Chris Lattner2006-09-031-2/+1
| | | | llvm-svn: 30068
* add the SETULT condition codeRafael Espindola2006-09-032-1/+16
| | | | llvm-svn: 30067
* Avoid beating on the mi2i map when we know the answer already.Chris Lattner2006-09-032-16/+25
| | | | 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
* Testcase (distilled from crafty) that crashed the local RA on X86.Chris Lattner2006-09-031-0/+115
| | | | llvm-svn: 30063
* 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-032-28/+42
| | | | | | 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 this testcase actually recursive. I accidentally committed the wrong ↵Owen Anderson2006-09-021-1/+2
| | | | | | copy last time. llvm-svn: 30059
* Fix a typo pointed out by GaborChris Lattner2006-09-021-1/+1
| | | | llvm-svn: 30058
* Make ArgumentPromotion handle recursive functions that pass pointers in ↵Owen Anderson2006-09-022-11/+49
| | | | | | their recursive calls. llvm-svn: 30057
* add more condition codesRafael Espindola2006-09-023-5/+63
| | | | llvm-svn: 30056
OpenPOWER on IntegriCloud