summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Compensate for loss of DerivedTypes.h in TargetLowering.hReid Spencer2007-01-121-0/+1
| | | | llvm-svn: 33159
* Move a function out of line.Reid Spencer2007-01-121-0/+21
| | | | llvm-svn: 33158
* Minor fix.Evan Cheng2007-01-121-1/+1
| | | | llvm-svn: 33149
* Simplify codeChris Lattner2007-01-121-4/+1
| | | | llvm-svn: 33123
* For PR1064:Reid Spencer2007-01-122-45/+56
| | | | | | | | | | | | | | | | | | | | | | | Implement the arbitrary bit-width integer feature. The feature allows integers of any bitwidth (up to 64) to be defined instead of just 1, 8, 16, 32, and 64 bit integers. This change does several things: 1. Introduces a new Derived Type, IntegerType, to represent the number of bits in an integer. The Type classes SubclassData field is used to store the number of bits. This allows 2^23 bits in an integer type. 2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and 64-bit integers. These are replaced with just IntegerType which is not a primitive any more. 3. Adjust the rest of LLVM to account for this change. Note that while this incremental change lays the foundation for arbitrary bit-width integers, LLVM has not yet been converted to actually deal with them in any significant way. Most optimization passes, for example, will still only deal with the byte-width integer types. Future increments will rectify this situation. llvm-svn: 33113
* Implement review feedback for the ConstantBool->ConstantInt merge. ChrisReid Spencer2007-01-122-3/+3
| | | | | | | | recommended that getBoolValue be replaced with getZExtValue and that get(bool) be replaced by get(const Type*, uint64_t). This implements those changes. llvm-svn: 33110
* Store default libgcc routine names and allow them to be redefined by target.Evan Cheng2007-01-122-82/+205
| | | | llvm-svn: 33105
* Rename BoolTy as Int1Ty. Patch by Sheng Zhou.Reid Spencer2007-01-113-5/+5
| | | | llvm-svn: 33076
* For PR1043:Zhou Sheng2007-01-113-20/+20
| | | | | | | Merge ConstantIntegral and ConstantBool into ConstantInt. Remove ConstantIntegral and ConstantBool from LLVM. llvm-svn: 33073
* Naming consistency.Evan Cheng2007-01-081-25/+27
| | | | llvm-svn: 33026
* Fix for PR1075: bottom-up register-reduction scheduling actually increases ↵Evan Cheng2007-01-081-120/+72
| | | | | | | | | | register pressure. - Fixed bugs in sethi-ullman number computation and priority queue comparison functions. - Separate code that handles priority computation special cases from SU number computation. llvm-svn: 33025
* Implement some trivial FP foldings when -enable-unsafe-fp-math is specified.Chris Lattner2007-01-081-0/+15
| | | | | | This implements CodeGen/PowerPC/unsafe-math.ll llvm-svn: 33024
* Need to handle static declarations properly.Jim Laskey2007-01-081-6/+9
| | | | llvm-svn: 33022
* llvm 2.0 doesn't support llvm.isunordered.*Chris Lattner2007-01-071-17/+0
| | | | llvm-svn: 32994
* remove support for llvm.isunorderedChris Lattner2007-01-071-22/+0
| | | | llvm-svn: 32992
* Change the interface to Module::getOrInsertFunction to be easier to use,to ↵Chris Lattner2007-01-071-74/+39
| | | | | | | | resolve PR1088, and to help PR411. This simplifies many clients also llvm-svn: 32989
* Expand fcopysign to the bitwise sequence if select is marked as expensive.Evan Cheng2007-01-051-4/+6
| | | | llvm-svn: 32940
* Bug in ExpandFCOPYSIGNToBitwiseOps(). Clear the old sign bit of operand 0Evan Cheng2007-01-051-4/+14
| | | | | | before or'ing in the sign bit of operand 1. llvm-svn: 32930
* CopyToReg source operand can be a register as well. e.g. Copy from ↵Evan Cheng2007-01-051-2/+6
| | | | | | GlobalBaseReg. llvm-svn: 32929
* GEP subscript is interpreted as a signed value.Evan Cheng2007-01-051-1/+1
| | | | llvm-svn: 32888
* fix PowerPC/2007-01-04-ArgExtension.ll, a bug handling K&R prototypes withChris Lattner2007-01-041-4/+6
| | | | | | the recent signless changes. llvm-svn: 32884
* Expand fcopysign to a series of bitwise of operations when it's profitable toEvan Cheng2007-01-041-19/+46
| | | | | | do so. llvm-svn: 32881
* Legalizer doesn't do an ANY_EXTEND if we don't ask for one so make sureReid Spencer2007-01-031-1/+1
| | | | | | | that we default to an ANY_EXTEND if no parameter attribute is set on the result value of a function. llvm-svn: 32836
* NULL names should pass validation.Jim Laskey2007-01-031-1/+2
| | | | llvm-svn: 32835
* Silence warning.Jim Laskey2007-01-031-1/+1
| | | | llvm-svn: 32834
* Restore previous behavior of defaulting to ZEXT. This works around twoReid Spencer2007-01-031-7/+2
| | | | | | | | things: (1) preventing PR1071 and (2) working around missing parameter attributes for bool type. (2) will be fixed shortly. When PR1071 is fixed, this patch should be undone. llvm-svn: 32831
* Two changes:Reid Spencer2007-01-031-5/+12
| | | | | | | | | | | 1. Switch expression and cases are compared signed and are sign extended. 2. For function results needing extended, do SIGN_EXTEND if the SExtAttribute is set and ZERO_EXTEND if the ZExtAttribute is set, otherwise just let the Legalizer do ANY_EXTEND. This fixes the recent regression in kimwitu++ and probably the llvm-gcc bootstrap issue we had today. llvm-svn: 32830
* Clean up from recent changes. Comment the new parameter to ExpandLibCall.Reid Spencer2007-01-031-24/+20
| | | | | | Consolidate some lines of code and remove duplication. llvm-svn: 32829
* - Fixing naming inconsistency: calleesave -> calleesaved.Evan Cheng2007-01-021-24/+30
| | | | | | - Make use of spillCalleeSavedRegisters() and restoreCalleeSavedRegisters(). llvm-svn: 32822
* For PR950:Reid Spencer2006-12-316-151/+169
| | | | | | | | | | | | | | | | | | 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
* For PR950:Reid Spencer2006-12-232-106/+91
| | | | | | | | This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. llvm-svn: 32751
* Need to walk the derived chain of typedefs to get actual size.Jim Laskey2006-12-221-4/+13
| | | | llvm-svn: 32744
* Debug dump error.Evan Cheng2006-12-221-1/+1
| | | | llvm-svn: 32743
* Just print integer constants as signed values. The actual signednessReid Spencer2006-12-211-7/+1
| | | | | | doesn't matter as it is determined in the way the constant is used. llvm-svn: 32733
* Simplify all the casting business and get rid of isSigned().Reid Spencer2006-12-211-64/+18
| | | | llvm-svn: 32731
* getLoad() and getStore() calls missed SVOffset operand. Thanks to Dan GohmanEvan Cheng2006-12-201-2/+2
| | | | | | for pointing it out! llvm-svn: 32712
* Eliminate static ctors from StatisticsChris Lattner2006-12-1910-64/+43
| | | | llvm-svn: 32698
* Fix for PR1059: http://llvm.org/PR1059Anton Korobeynikov2006-12-191-3/+6
| | | | llvm-svn: 32685
* 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
* Convert the last uses of CastInst::createInferredCast to a normal castReid Spencer2006-12-181-5/+13
| | | | | | | | creation. These changes are still temporary but at least this pushes knowledge of signedness out closer to where it can be determined properly and allows signedness to be removed from VMCore. llvm-svn: 32654
* move ExtWeakSymbols to AsmPrinterRafael Espindola2006-12-181-0/+12
| | | | llvm-svn: 32648
* Fixed so that it dereferences the ostream pointer.Bill Wendling2006-12-171-1/+1
| | | | llvm-svn: 32640
* Added an automatic cast to "std::ostream*" etc. from OStream. We then canBill Wendling2006-12-175-28/+28
| | | | | | | rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the correct print() method. llvm-svn: 32636
* Fix PR1049 and CodeGen/Generic/2006-12-16-InlineAsmCrash.llChris Lattner2006-12-161-1/+2
| | | | | | | by producing target constants instead of constants. Constants can get selected to li/movri instructions, which causes the scheduler to explode. llvm-svn: 32633
* Cannot combine an indexed load / store any further.Evan Cheng2006-12-161-1/+10
| | | | llvm-svn: 32629
* Expand FP undefEvan Cheng2006-12-161-0/+1
| | | | llvm-svn: 32623
* The best unbreakage yet, addressing Bill's concerns.Jeff Cohen2006-12-163-49/+30
| | | | llvm-svn: 32622
* 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
OpenPOWER on IntegriCloud