aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2005-04-06Make these 64 bit constants so that this compiles on x86-32 as well.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21125 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06added sdiv by 2^k and works for neg divisors alsoAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21124 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Don't make this require loopsimplify. It works BETTER with loop simplifyChris Lattner
but should not require it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21123 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Teach ExpandShift how to handle shifts by a constant. This allows targetsNate Begeman
like PowerPC to codegen long shifts in many fewer instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21122 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06fix copy/paste errors, and add imm support to SxADDQ and SxSUBQAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21121 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Fix SingleSource/Regression/C/2005-05-06-LongLongSignedShift.c, we were notChris Lattner
properly sign extending the top of the result of a 64-bit shift right by a constant > 32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21120 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Added Nate's div by constant stuff, also scaled operations!Andrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21116 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Fix a namespace issue, reported by Vladimir Merzliakov!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21115 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06steal sampo's div-by-constant-power-of-2 stuffDuraid Madina
thanks sampo!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21113 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06add fms instructionDuraid Madina
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21112 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Fixed version of optimized integer divide is now fixed. Calculate theNate Begeman
quotient, not the remainder. Also, make sure to remove the old div operand from the ExprMap and let SelectExpr insert the new one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21111 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06lie a bit and say that r1/r12 (GP/SP) _aren't_ callee-save, as we takeDuraid Madina
care of this ourselves git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21110 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06make sure 'special' registers don't get allocatedDuraid Madina
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21109 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Add (untested) support for MULHS and MULHU.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21107 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06add signed versions of the extra precision multipliesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21106 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Turn off the div -> mul optimization until it works correctly 100% of theNate Begeman
time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21105 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Add support for MULHS and MULHU nodesNate Begeman
Have LegalizeDAG handle SREM and UREM for us Codegen SDIV and UDIV by constant as a multiply by magic constant instead of integer divide, which is very slow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21104 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06Expand SREM and UREM for targets that claim not to have them, like PowerPCNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21103 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05Add MULHU and MULHS nodes for the high part of an (un)signed 32x32=64bNate Begeman
multiply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21102 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05added lowerargs support for varargsAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21101 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05Behold, rlwinm with certain immediate arguments is printed as the much moreNate Begeman
readable slwi or srwi (shift left/right word immediate). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21099 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05Fix cut & paste errors (32->64), and codegen float->int more optimally.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21098 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05Updated to use dep analyzer.Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21097 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05Remove 64 bit simple ISel, it never worked correctlyNate Begeman
Add initial (buggy) implementation of 64 bit pattern ISel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21096 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05Back out the previous change to SelectBranchCC, since there are cases itNate Begeman
could miscompile. A correct solution will be found in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21095 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05Rename canUseAsImmediateForOpcode to getImmediateForOpcode to betterNate Begeman
indicate that it is not a boolean function. Properly emit the pseudo instruction for conditional branch, so that we can fix up conditional branches whose displacements are too large. Reserve the right amount of opcode space for said pseudo instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21094 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05do not crash when using -debugChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21092 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05Implement SDIV by power of 2 as srawi/addze rather than load imm, divwNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21091 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04Pattern match fp mul-add, mul-sub, neg-mul-add, and neg-mul-subNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21090 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04Add support for multiply-add, multiply-sub, and their negated versionsNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21089 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04do not dereference an extra layer of pointers to determine if an externalChris Lattner
call can modify a memory location. This fixes test/Regression/Analysis/Andersens/modreftest.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21088 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04Make sure that arg regs used by the call instruction are marked as such, soNate Begeman
that regalloc doesn't cleverly reuse early arg regs loading later arg regs. This fixes almost all outstanding failures in the pattern isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21086 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04Remove unnecessary register copy now that regalloc is fixedNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21085 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04Make sure to notice that explicit physregs are used in the functionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21084 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04i1 loads should also be from the low byte of the argument word.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21077 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04Fix i64 return, fix CopyFromRegNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21076 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04fix SREM/UREM, which gave incorrect results for x%y if x was zero. This isDuraid Madina
an ugly hack, but it seems to work. I should fix this properly and add a test as well. fixes multisource/obsequi (maybe others) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21075 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04add implicit use opDuraid Madina
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21074 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04Handle expanding arguments to ISD::TRUNCATE. This happens on PowerPC whenNate Begeman
you have something like i16 = truncate i64. This fixes Regression/C/casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21073 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03Fix sign_extend and zero_extend of promoted value types to expanded valueChris Lattner
types. This occurs when casting short to long on PPC for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21072 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03Full varargs support. All of UnitTests now passesNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21070 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03Pass the correct value for the chain to the storeNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21066 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03Fix SHL_PARTSNate Begeman
Start implementation of integer varargs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21065 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03is this simpler? I think it is simpler.Andrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21064 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03fix 101 regressionsAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21063 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03.bss is no problem here.Duraid Madina
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21061 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03Keeping up with the Joneses.Nate Begeman
Implement not, nor, nand, and eqv git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21060 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02Select optimizationAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21051 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02Try several things. 1) drop /i from FP ops 2) factor out FP to Int moves ↵Andrew Lenharth
and provide 21264 support for those 3) match not 4) match ornot andnot xornot git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21046 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02fix some VC compilation problems, thanks to Jeff C for pointing this out!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21044 91177308-0d34-0410-b5e6-96231b3b80d8