summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Fix the last remaining bug preventing us from switching the X86 BE overChris Lattner2005-05-111-30/+68
| | | | | | | | | from the simple isel to the pattern isel. This forces inserted libcalls to serialize against other function calls, which was breaking UnitTests/2005-05-12-Int64ToFP. Hopefully this will fix issues on other targets as well. llvm-svn: 21872
* Do not memoize ADJCALLSTACKDOWN nodes, provide a method to hack on them.Chris Lattner2005-05-111-3/+24
| | | | llvm-svn: 21871
* wrap long lineChris Lattner2005-05-111-1/+2
| | | | llvm-svn: 21870
* Make sure to legalize generated ctpop nodes, convert tabs to spacesChris Lattner2005-05-111-18/+18
| | | | llvm-svn: 21868
* expand count-leading/trailing-zeros; the test 2005-05-11-Popcount-ffs-fls.cDuraid Madina2005-05-111-19/+32
| | | | | | should now pass (the "LLVM" and "REF" results should be identical) llvm-svn: 21866
OpenPOWER on IntegriCloud