summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Adapt the code for handling uint -> fp conversion for the 32 bit case toAndrew Lenharth2005-06-271-0/+35
| | | | | | handling it in the 64 bit case. The two code paths should probably be merged. llvm-svn: 22302
* iniital checkin of ELFWriter implementationChris Lattner2005-06-271-0/+230
| | | | | | | | For now, the elf writer is only capable of emitting an empty elf file, with a section table and a section table string table. This will be enhanced in the future :) llvm-svn: 22291
* If we support structs as va_list, we must pass pointers to them to va_copyAndrew Lenharth2005-06-221-4/+5
| | | | | | See last commit for LangRef, this implements it on all targets. llvm-svn: 22273
* core changes for varargsAndrew Lenharth2005-06-181-18/+12
| | | | llvm-svn: 22254
* Fix bug 537 test 2, which checks to make sure that we fold A+(B-A) -> B forNate Begeman2005-06-161-2/+7
| | | | | | | integer types. Add a couple checks to not perform these kinds of transform on floating point values. llvm-svn: 22228
* aCC and STLport complained about this, because they're like thatDuraid Madina2005-05-151-1/+1
| | | | llvm-svn: 22053
* Add some simplifications for MULH[SU]. This allows us to compile this:Chris Lattner2005-05-151-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | long %bar(long %X) { %Y = mul long %X, 4294967297 ret long %Y } to this: l1_bar: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, %EAX add %EDX, DWORD PTR [%ESP + 8] ret instead of: l1_bar: mov %ECX, DWORD PTR [%ESP + 4] mov %EDX, 1 mov %EAX, %ECX mul %EDX add %EDX, %ECX add %EDX, DWORD PTR [%ESP + 8] mov %EAX, %ECX ret llvm-svn: 22044
* When inserting callee-save register reloads, make sure to skip over anyChris Lattner2005-05-151-0/+8
| | | | | | | terminator instructions before the 'ret' in case the target has a multi-instruction return sequence. llvm-svn: 22041
* Fix construction of ioport intrinsics, fixing X86/io.llx and io-port.llxChris Lattner2005-05-141-4/+10
| | | | llvm-svn: 22026
* allow token chain at start or end of nodeChris Lattner2005-05-141-0/+2
| | | | llvm-svn: 22020
* remove special case hacks for readport/readio from the binary operatorChris Lattner2005-05-142-13/+15
| | | | | | codepath llvm-svn: 22019
* Implement fixme's by memoizing nodes.Chris Lattner2005-05-141-9/+21
| | | | llvm-svn: 22018
* Turn this into a wrapper for a simpler version of getNode.Chris Lattner2005-05-141-8/+7
| | | | llvm-svn: 22016
* Eliminate special purpose hacks for dynamic_stack_alloc.Chris Lattner2005-05-143-20/+15
| | | | llvm-svn: 22015
* Use the general mechanism for creating multi-value nodes instead of usingChris Lattner2005-05-142-56/+60
| | | | | | special case hacks. llvm-svn: 22014
* Wrap long line, actually add node to the graph.Chris Lattner2005-05-141-1/+3
| | | | llvm-svn: 22011
* legalize target-specific operationsChris Lattner2005-05-141-0/+23
| | | | llvm-svn: 22010
* add a getNode() version that allows construction of any node type.Chris Lattner2005-05-141-9/+33
| | | | llvm-svn: 22009
* LowerOperation takes a dagChris Lattner2005-05-142-3/+3
| | | | llvm-svn: 22004
* Print the symbolic register name in a register allocator debug dump.Chris Lattner2005-05-143-17/+29
| | | | llvm-svn: 22002
* Allow targets to have a custom int64->fp expander if desiredChris Lattner2005-05-141-0/+11
| | | | llvm-svn: 22001
* Align doubles on 8-byte boundaries if possible.Chris Lattner2005-05-131-0/+9
| | | | llvm-svn: 21993
* print stack object alignment in -print-machineinstr dumpsChris Lattner2005-05-131-2/+4
| | | | llvm-svn: 21992
* Tolerate instrs with extra argsChris Lattner2005-05-131-1/+1
| | | | llvm-svn: 21982
* Add an isTailCall flag to LowerCallToChris Lattner2005-05-132-7/+11
| | | | llvm-svn: 21958
* Handle TAILCALL nodeChris Lattner2005-05-132-3/+10
| | | | llvm-svn: 21957
* Emit function entry code after lowering hte arguments.Chris Lattner2005-05-131-2/+2
| | | | llvm-svn: 21931
* Allow targets to emit code into the entry block of each functionChris Lattner2005-05-131-0/+2
| | | | llvm-svn: 21930
* allow a virtual register to be associated with live-in values.Chris Lattner2005-05-132-8/+8
| | | | llvm-svn: 21927
* Fix a problem that nate reduced for me.Chris Lattner2005-05-131-1/+2
| | | | llvm-svn: 21923
* rename variables and functions to match renamed DAG nodes. Bonus feature:Chris Lattner2005-05-131-32/+32
| | | | | | I can actually remember which one is which now! llvm-svn: 21922
* do not call expandop on the same value more than once. This fixesChris Lattner2005-05-131-4/+5
| | | | | | X86/2004-02-22-Casts.llx llvm-svn: 21919
* fix a bad typeoChris Lattner2005-05-121-2/+2
| | | | llvm-svn: 21917
* update commentChris Lattner2005-05-121-1/+1
| | | | llvm-svn: 21916
* rename the ADJCALLSTACKDOWN/ADJCALLSTACKUP nodes to be CALLSEQ_START/BEGIN.Chris Lattner2005-05-122-22/+22
| | | | llvm-svn: 21915
* Pass calling convention to use into lower call toChris Lattner2005-05-122-7/+8
| | | | llvm-svn: 21900
* fix expansion of ct[lt]z nodesChris Lattner2005-05-121-0/+2
| | | | llvm-svn: 21896
* Expand 64-bit ctlz/cttz nodes for 32-bit targetsChris Lattner2005-05-121-4/+28
| | | | llvm-svn: 21895
* Fix uint->fp casts on PPC, allowing UnitTests/2005-05-12-Int64ToFP toChris Lattner2005-05-121-4/+3
| | | | | | work on it. llvm-svn: 21894
* Allow something to be legalized multiple times. This can be used to reduceChris Lattner2005-05-121-12/+30
| | | | | | legalization iteration llvm-svn: 21892
* Oops, don't do this after we figure out where to insert the call chains.Chris Lattner2005-05-121-6/+6
| | | | llvm-svn: 21890
* Make sure to expand all nodes, avoiding unintentional node duplication.Chris Lattner2005-05-121-0/+7
| | | | llvm-svn: 21889
* handle a common case generated by the uint64 -> FP code path betterChris Lattner2005-05-121-1/+17
| | | | llvm-svn: 21888
* add fixmeChris Lattner2005-05-121-0/+1
| | | | llvm-svn: 21887
* Fix a problem where early legalization can cause token chain problems.Chris Lattner2005-05-121-7/+8
| | | | llvm-svn: 21885
* Make legalize a bit more efficient, and canonicalize sub X, C -> add X, -CChris Lattner2005-05-122-8/+12
| | | | llvm-svn: 21882
* Necessary changes to codegen cttz efficiently on PowerPCNate Begeman2005-05-111-3/+13
| | | | | | | | | | 1. Teach LegalizeDAG how to better legalize CTTZ if the target doesn't have CTPOP, but does have CTLZ 2. Teach PPC32 how to do sub x, const -> add x, -const for valid consts 3. Teach PPC32 how to do and (xor a, -1) b -> andc b, a 4. Teach PPC32 that ISD::CTLZ -> PPC::CNTLZW llvm-svn: 21880
* Fix lowering of ctlz, so now UnitTests/2005-05-11-Popcount-ffs-fls passesChris Lattner2005-05-111-40/+26
| | | | | | with the CBE llvm-svn: 21875
* Fix lowering of cttz to work with signed valuesChris Lattner2005-05-111-5/+4
| | | | llvm-svn: 21874
* fix and concisify intinsic lowering for ctpop. Unfortunately, this codeChris Lattner2005-05-111-167/+61
| | | | | | looks completely untested. :( llvm-svn: 21873
OpenPOWER on IntegriCloud