summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* For PR950:Reid Spencer2006-12-311-44/+64
| | | | | | | | | | | | | | | | | | Three changes: 1. Convert signed integer types to signless versions. 2. Implement the @sext and @zext parameter attributes. Previously the type of an function parameter was used to determine whether it should be sign extended or zero extended before the call. This information is now communicated via the function type's parameter attributes. 3. The interface to LowerCallTo had to be changed in order to accommodate the parameter attribute information. Although it would have been convenient to pass in the FunctionType itself, there isn't always one present in the caller. Consequently, a signedness indication for the result type and for each parameter was provided for in the interface to this method. All implementations were changed to make the adjustment necessary. llvm-svn: 32788
* May need to promote the operand (either sign_extend_inreg or and) beforeEvan Cheng2006-12-191-18/+29
| | | | | | expanding a {s|u}int_to_fp. llvm-svn: 32665
* LegalizeSetCCOperands() may end up inserting libcalls. They need to beEvan Cheng2006-12-181-3/+2
| | | | | | properly serialized. Do not clear LastCallSEQ_END until that is done. llvm-svn: 32659
* Expand FP undefEvan Cheng2006-12-161-0/+1
| | | | llvm-svn: 32623
* Allow promoted FP_TO_UINT / FP_TO_SINT to expand operand.Evan Cheng2006-12-161-2/+1
| | | | llvm-svn: 32621
* Expand fabs / fneg to and / xor.Evan Cheng2006-12-161-3/+22
| | | | llvm-svn: 32619
* Fix select_cc, select expansion to soft-fp bugs.Evan Cheng2006-12-151-3/+11
| | | | llvm-svn: 32616
* silence a bogus warningChris Lattner2006-12-151-1/+1
| | | | llvm-svn: 32597
* Expand FP compares to soft-fp call(s)Evan Cheng2006-12-151-7/+102
| | | | llvm-svn: 32590
* 1. Tidy up jump table info.Jim Laskey2006-12-141-5/+12
| | | | | | 2. Allow the jit to handle PIC relocable jump tables. llvm-svn: 32581
* More soft-fp work.Evan Cheng2006-12-131-4/+9
| | | | llvm-svn: 32559
* Expand (f64 extload f32) to (f64 fp_ext (load f32)) if f64 type action is ↵Evan Cheng2006-12-131-0/+10
| | | | | | expand. llvm-svn: 32527
* Expand fsqrt, fsin, and fcos to libcalls.Evan Cheng2006-12-131-10/+25
| | | | llvm-svn: 32526
* Expand f32 / f64 to i32 / i64 conversion to soft-fp library calls.Evan Cheng2006-12-131-2/+23
| | | | llvm-svn: 32523
* Expand FP constant to integers if FP types are not legal.Evan Cheng2006-12-121-7/+13
| | | | llvm-svn: 32497
* Soft fp FNEG, SINT_TO_FP, UINT_TO_FP libcall expansion.Evan Cheng2006-12-121-1/+20
| | | | llvm-svn: 32495
* Expand ConstantFP to load from CP if float types are being expanded.Evan Cheng2006-12-121-27/+44
| | | | llvm-svn: 32494
* - When expanding a bit_convert whose src operand is also to be expanded andEvan Cheng2006-12-121-2/+16
| | | | | | | | | its expansion result type is equal to the result type of the bit_convert, e.g. (i64 bit_convert (f64 op)) if FP is not legal returns the result of the expanded source operand. - Store f32 / f64 may be expanded to a single store i32/i64. llvm-svn: 32490
* fit in 80 colsChris Lattner2006-12-121-1/+1
| | | | llvm-svn: 32474
* this can only be fptrunc.Chris Lattner2006-12-121-1/+1
| | | | llvm-svn: 32473
* Revert Nate's patch to fix X86/store-fp-constant.ll. With the dag combinerChris Lattner2006-12-121-0/+18
| | | | | | | and legalizer separated like they currently are, I don't see a way to handle this xform. llvm-svn: 32466
* Change inferred cast creation calls to more specific cast creations.Reid Spencer2006-12-121-1/+1
| | | | llvm-svn: 32460
* Re-apply changes that were backed out and fix a naughty typo.Evan Cheng2006-12-111-10/+15
| | | | llvm-svn: 32442
* Revert changes that broke oggenc on ppcChris Lattner2006-12-111-14/+9
| | | | llvm-svn: 32440
* f32 / f64 node is expanded to one i32 / i64 node.Evan Cheng2006-12-111-5/+12
| | | | llvm-svn: 32433
* Clean up some bad code.Evan Cheng2006-12-111-5/+3
| | | | llvm-svn: 32432
* Move something that should be in the dag combiner from the legalizer to theNate Begeman2006-12-111-17/+1
| | | | | | dag combiner. llvm-svn: 32431
* Preliminary soft float support.Evan Cheng2006-12-091-4/+31
| | | | llvm-svn: 32394
* Removing even more <iostream> includes.Bill Wendling2006-12-071-5/+4
| | | | llvm-svn: 32320
* Avoid inifinite looping if READCYCLECOUNTER isn't custom lowered.Evan Cheng2006-11-291-3/+8
| | | | llvm-svn: 32022
* Allow target to custom lower READCYCLECOUNTER (when it doesn't have to be ↵Evan Cheng2006-11-291-2/+10
| | | | | | expanded). llvm-svn: 32016
* Fix PR1016Chris Lattner2006-11-281-5/+4
| | | | llvm-svn: 31950
* If a brcond condition is promoted, make sure to zero extend it, even if notChris Lattner2006-11-271-6/+6
| | | | | | expanded into BR_CC. llvm-svn: 31932
* Fix PR988 and CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll.Chris Lattner2006-11-071-1/+1
| | | | | | The low part goes in the first operand of expandop, not the second one. llvm-svn: 31487
* For PR786:Reid Spencer2006-11-021-2/+0
| | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
* Fix a typo which can break jumptables.Evan Cheng2006-10-311-1/+1
| | | | llvm-svn: 31305
* Lower jumptable to BR_JT. The legalizer can lower it to a BRIND or let the ↵Evan Cheng2006-10-301-0/+48
| | | | | | target custom lower it. llvm-svn: 31293
* For PR950:Reid Spencer2006-10-201-3/+3
| | | | | | | | This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. llvm-svn: 31063
* Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.Evan Cheng2006-10-131-145/+144
| | | | llvm-svn: 30945
* TypoJim Laskey2006-10-111-1/+1
| | | | llvm-svn: 30884
* Naming consistency.Evan Cheng2006-10-111-3/+3
| | | | llvm-svn: 30878
* Jimptables working again on alpha.Andrew Lenharth2006-10-111-11/+1
| | | | | | As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff. llvm-svn: 30873
* Fix another bug in extload promotion.Chris Lattner2006-10-101-1/+2
| | | | llvm-svn: 30857
* Fix a bug introduced by my LOAD/LOADX changes.Evan Cheng2006-10-101-2/+4
| | | | llvm-svn: 30853
* Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.Evan Cheng2006-10-091-174/+170
| | | | llvm-svn: 30844
* Fix a bug legalizing zero-extending i64 loads into 32-bit loads. The bottomChris Lattner2006-10-071-3/+2
| | | | | | part was always forced to be sextload, even when we needed an zextload. llvm-svn: 30782
* Fix a miscompilation of:Chris Lattner2006-10-061-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | long long foo(long long X) { return (long long)(signed char)(int)X; } Instead of: _foo: extsb r2, r4 srawi r3, r4, 31 mr r4, r2 blr we now produce: _foo: extsb r4, r4 srawi r3, r4, 31 blr This fixes a miscompilation in ConstantFolding.cpp. llvm-svn: 30768
* Make use of getStore().Evan Cheng2006-10-051-32/+22
| | | | llvm-svn: 30759
* Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add anEvan Cheng2006-10-041-59/+31
| | | | | | extra operand to LOADX to specify the exact value extension type. llvm-svn: 30714
* Fix an obvious typo.Evan Cheng2006-10-031-1/+1
| | | | llvm-svn: 30711
OpenPOWER on IntegriCloud