summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix bugs that Chris noticed in my last patch.Owen Anderson2008-02-181-9/+17
| | | | llvm-svn: 47252
* simplify some code, BreakUpSubtract always returns nonnull now.Chris Lattner2008-02-181-4/+2
| | | | llvm-svn: 47251
* bitcasts of pointers are always pointers.Chris Lattner2008-02-181-5/+2
| | | | | | | If we see a memcpy of a pointer, make sure to check later uses of the pointer as well. llvm-svn: 47250
* Add a predicate to Argument to check for the StructRet attribute.Owen Anderson2008-02-171-0/+7
| | | | llvm-svn: 47248
* Teach getModRefInfo that memcpy, memmove, and memset don't "capture" memory ↵Owen Anderson2008-02-171-3/+13
| | | | | | | | | addresses. Also, noalias arguments are be considered "like" stack allocated ones for this purpose, because the only way they can be modref'ed is if they escape somewhere in the current function. llvm-svn: 47247
* Fold (-x + -y) -> -(x+y) which promotes better association, fixingChris Lattner2008-02-171-2/+10
| | | | | | the second half of PR2047 llvm-svn: 47244
* fix pastoChris Lattner2008-02-171-1/+1
| | | | llvm-svn: 47242
* Split up subtracts into add+negate if they have a reassociable use or operandChris Lattner2008-02-171-5/+8
| | | | | | that is also a subtract. This implements PR2047 and Transforms/Reassociate/subtest2.ll llvm-svn: 47241
* make the logic for breaking up subtracts more explicit, no Chris Lattner2008-02-171-9/+22
| | | | | | functionality change. llvm-svn: 47239
* move PR2053 to here.Chris Lattner2008-02-171-0/+12
| | | | llvm-svn: 47237
* Remove any 'nest' parameter attributes if the functionDuncan Sands2008-02-161-10/+52
| | | | | | is not passed as an argument to a trampoline intrinsic. llvm-svn: 47220
* Some micro-optimizations.Duncan Sands2008-02-161-4/+5
| | | | llvm-svn: 47219
* I cannot find a libgcc function for this builtin. Therefor expanding it to ↵Andrew Lenharth2008-02-169-9/+33
| | | | | | a noop (which is how it use to be treated). If someone who knows the x86 backend better than me could tell me how to get a lock prefix on an instruction, that would be nice to complete x86 support. llvm-svn: 47213
* Teach LegalizeTypes how to expand the operands ofDuncan Sands2008-02-162-4/+25
| | | | | | br_cc. This fixes 5 "make check" failures. llvm-svn: 47212
* Refactor some code; check if commuteInstruction is able to commute the ↵Evan Cheng2008-02-162-17/+34
| | | | | | instruction. llvm-svn: 47208
* llvm.memory.barrier, and impl for x86 and alphaAndrew Lenharth2008-02-168-1/+58
| | | | llvm-svn: 47204
* Fix typos.Bill Wendling2008-02-161-2/+2
| | | | llvm-svn: 47200
* Rename CountMemOperands to ComputeMemOperandsEnd to reflect whatDan Gohman2008-02-161-12/+9
| | | | | | | it actually does. Simplify CountOperands a little by reusing ComputeMemOperandsEnd. And reword some comments for both. llvm-svn: 47198
* Revert 47177, which was incorrect.Dan Gohman2008-02-161-1/+1
| | | | llvm-svn: 47196
* Make tblgen a little smarter about constants smaller than i32. Currently,Scott Michel2008-02-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | tblgen will complain if a sign-extended constant does not fit into a data type smaller than i32, e.g., i16. This causes a problem when certain hex constants are used, such as 0xff for byte masks or immediate xor values. tblgen will try the sign-extended value first and, if the sign extended value would overflow, it tries to see if the unsigned value will fit. Consequently, a software developer can now safely incant: (XORHIr16 R16C:$rA, 0xffff) which is somewhat clearer and more informative than incanting: (XORHIr16 R16C:$rA, (i16 -1)) even if the two are bitwise equivalent. Tblgen also outputs the 64-bit unsigned constant in the generated ISel code when getTargetConstant() is invoked. llvm-svn: 47188
* The copy instruction being coalesced will be removed, it is not a kill.Evan Cheng2008-02-151-2/+2
| | | | llvm-svn: 47179
* Fixed bug in FoldingSetIteratorImpl where we did not correctly check ifTed Kremenek2008-02-151-2/+4
| | | | | | | we had reached the "fake bucket" after the last bucket, allowing the iterator in some cases to run off the end of the hashtable. llvm-svn: 47178
* Skip over the defs and start at the uses when looking for operandsDan Gohman2008-02-151-1/+1
| | | | | | with the TIED_TO attribute. llvm-svn: 47177
* Use the TargetInstrDescr to determine the number of operandsDan Gohman2008-02-151-3/+3
| | | | | | | that should be checked for the TIED_TO attribute instead of using CountOperands. llvm-svn: 47176
* Teach LegalizeTypes how to promote the flagsDuncan Sands2008-02-152-7/+34
| | | | | | | | | in a ret node. These are created as i32 constants but on some platforms i32 is not legal. This fixes 26 "make check" failures, for example Alpha/2005-07-12-TwoMallocCalls.ll. llvm-svn: 47172
* Handle \n's in value names for more targets. The asm printers Chris Lattner2008-02-153-13/+40
| | | | | | really really really need refactoring :( llvm-svn: 47171
* If the llvm name contains an unprintable character, don't print it inChris Lattner2008-02-151-3/+15
| | | | | | | | | | | the global comment. This prevents printing things like: ... # foo bar when the name is "foo\nbar". llvm-svn: 47170
* targets that support quotes for mangled names still need to escape newlinesChris Lattner2008-02-151-0/+2
| | | | | | when they occur in the name, just like " is escaped. llvm-svn: 47169
* Cosmetics.Dale Johannesen2008-02-151-6/+3
| | | | llvm-svn: 47168
* - Removing the infamous r2rMap_ and rep() method. Now the coalescer will updateEvan Cheng2008-02-154-390/+298
| | | | | | | register defs and uses after each successful coalescing. - Also removed a number of hacks and fixed some subtle kill information bugs. llvm-svn: 47167
* Added CommuteChangesDestination(). This returns true if commuting the specifiedEvan Cheng2008-02-151-1/+21
| | | | | | machine instr will change its definition register. llvm-svn: 47166
* Remove unnecessary #include.Evan Cheng2008-02-151-1/+0
| | | | llvm-svn: 47164
* Use StoreSDNode::getValue instead of calling getOperand directlyDan Gohman2008-02-151-4/+4
| | | | | | with a hard-coded operand number. llvm-svn: 47163
* Remove warning about 64-bit code on processorDale Johannesen2008-02-152-10/+0
| | | | | | that doesn't support it. Per Chris. llvm-svn: 47162
* It is not safe to call fork in PrintStackTrace. Sometimes it freezes the ↵Lauro Ramos Venancio2008-02-151-44/+2
| | | | | | program. llvm-svn: 47161
* Fix PR2028Devang Patel2008-02-151-2/+2
| | | | llvm-svn: 47150
* nocona, core2 and penryn support 64 bit.Dale Johannesen2008-02-151-3/+3
| | | | llvm-svn: 47149
* Support vector constant zeros, thanks to Zack Rusin for the testcase.Chris Lattner2008-02-151-3/+3
| | | | llvm-svn: 47148
* Rewrite tblgen handling of subtarget features soDale Johannesen2008-02-144-0/+4
| | | | | | | | | | it follows the order of the enum, not alphabetical. The motivation is to make -mattr=+ssse3,+sse41 select SSE41 as it ought to. Added "ignored" enum values of 0 to PPC and SPU to avoid compiler warnings. llvm-svn: 47143
* If loop header is also loop exiting block then OrigPN is incoming value for ↵Devang Patel2008-02-141-1/+7
| | | | | | | | B loop header. Fixes PR 2030. llvm-svn: 47141
* Fix a warning about comparison between signed and unsigned,Dan Gohman2008-02-141-1/+1
| | | | | | being consistent with the rest of the APInt implementation. llvm-svn: 47138
* Fix PR2029Chris Lattner2008-02-141-0/+11
| | | | llvm-svn: 47129
* Fix a miscompilation from Dan's recent apintification.Chris Lattner2008-02-141-3/+1
| | | | llvm-svn: 47128
* Fix single precision FP constants on SPU. They are actually legal,Nate Begeman2008-02-143-20/+9
| | | | | | which allows us to kill a target-specific node. llvm-svn: 47127
* In TargetLowering::LowerCallTo, don't assert thatDuncan Sands2008-02-1410-36/+60
| | | | | | | | | | | | | | | | | the return value is zero-extended if it isn't sign-extended. It may also be any-extended. Also, if a floating point value was returned in a larger floating point type, pass 1 as the second operand to FP_ROUND, which tells it that all the precision is in the original type. I think this is right but I could be wrong. Finally, when doing libcalls, set isZExt on a parameter if it is "unsigned". Currently isSExt is set when signed, and nothing is set otherwise. This should be right for all calls to standard library routines. llvm-svn: 47122
* Change how FP immediates are handled. Nate Begeman2008-02-1411-44/+49
| | | | | | | | | | | | | | 1) ConstantFP is now expand by default 2) ConstantFP is not turned into TargetConstantFP during Legalize if it is legal. This allows ConstantFP to be handled like Constant, allowing for targets that can encode FP immediates as MachineOperands. As a bonus, fix up Itanium FP constants, which now correctly match, and match more constants! Hooray. llvm-svn: 47121
* Support a new type of MachineOperand, MO_FPImmediate, used for holdingNate Begeman2008-02-141-0/+10
| | | | | | FP Immediates, crazily enough llvm-svn: 47117
* simplify code, no functionality change.Chris Lattner2008-02-141-7/+9
| | | | llvm-svn: 47116
* Move some useful operands up into the all-targets .tdNate Begeman2008-02-142-3/+3
| | | | llvm-svn: 47115
* Fix PR2032. Inform the alias analysis of changes to the underlying program.Nick Lewycky2008-02-141-0/+2
| | | | llvm-svn: 47111
OpenPOWER on IntegriCloud