oota-llvm.git
17 years agoDeal with cases when MMI is not requested.
Jim Laskey [Sat, 24 Feb 2007 09:45:44 +0000 (09:45 +0000)]
Deal with cases when MMI is not requested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34556 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDrop unused operand.
Jim Laskey [Sat, 24 Feb 2007 09:44:17 +0000 (09:44 +0000)]
Drop unused operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34555 91177308-0d34-0410-b5e6-96231b3b80d8

17 years ago1. Make internal functions take const arguments where they should, just
Reid Spencer [Sat, 24 Feb 2007 03:58:46 +0000 (03:58 +0000)]
1. Make internal functions take const arguments where they should, just
   to be safe.
2. Make internal functions that return a carry/borrow return bool instead
   of uint64_t because the carry/borrow can only be in range [0,1].
3. Assert that the pointers to KnuthDiv are all different so that the
   result and operands can't overlap.
4. Add debug output to KnuthDiv function.
5. Fix a problem with KnuthDiv by separating the b's complement operation
   from the subtraction borrow operation. This fixes a wide range of
   division problems, but alas, not all of them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34554 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded some more information on how to use "delta" to reduce testcases.
Bill Wendling [Sat, 24 Feb 2007 03:46:42 +0000 (03:46 +0000)]
Added some more information on how to use "delta" to reduce testcases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34553 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix PR1216 by cleaning up the ownership of JITResolver.
Chris Lattner [Sat, 24 Feb 2007 02:57:03 +0000 (02:57 +0000)]
Fix PR1216 by cleaning up the ownership of JITResolver.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34552 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix CodeGen/Generic/2007-02-23-DAGCombine-Miscompile.ll and PR1219
Chris Lattner [Sat, 24 Feb 2007 02:09:29 +0000 (02:09 +0000)]
Fix CodeGen/Generic/2007-02-23-DAGCombine-Miscompile.ll and PR1219

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34551 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agotestcase for PR1219
Chris Lattner [Sat, 24 Feb 2007 02:08:00 +0000 (02:08 +0000)]
testcase for PR1219

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34550 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoremove folding set debug output
Chris Lattner [Sat, 24 Feb 2007 01:41:48 +0000 (01:41 +0000)]
remove folding set debug output

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34549 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix Transforms/ConstProp/2007-02-23-sdiv.ll and PR1215
Chris Lattner [Sat, 24 Feb 2007 01:19:50 +0000 (01:19 +0000)]
Fix Transforms/ConstProp/2007-02-23-sdiv.ll and PR1215

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34548 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agotestcase for pr1215
Chris Lattner [Sat, 24 Feb 2007 01:16:39 +0000 (01:16 +0000)]
testcase for pr1215

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34547 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix InstCombine/2007-02-23-PhiFoldInfLoop.ll and PR1217
Chris Lattner [Sat, 24 Feb 2007 01:03:45 +0000 (01:03 +0000)]
Fix InstCombine/2007-02-23-PhiFoldInfLoop.ll and PR1217

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34546 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agotestcase for pr1217
Chris Lattner [Sat, 24 Feb 2007 01:03:11 +0000 (01:03 +0000)]
testcase for pr1217

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34545 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRefactor the setName stuff, moving it down the inheritance hierarchy, to
Chris Lattner [Sat, 24 Feb 2007 00:55:48 +0000 (00:55 +0000)]
Refactor the setName stuff, moving it down the inheritance hierarchy, to
solve a crash in -instcombine -debug that was hit while investigating PR1217

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34544 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMake the testcase correct.
Bill Wendling [Fri, 23 Feb 2007 23:23:41 +0000 (23:23 +0000)]
Make the testcase correct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34543 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTestcase for PR1164
Bill Wendling [Fri, 23 Feb 2007 23:19:32 +0000 (23:19 +0000)]
Testcase for PR1164

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34542 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPR1164:
Bill Wendling [Fri, 23 Feb 2007 22:45:08 +0000 (22:45 +0000)]
PR1164:
Generate local names with a "llvm_cbe_" prefix using the actual name of the
variable instead of a temporary name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34540 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAvoid TBAA issue.
Chris Lattner [Fri, 23 Feb 2007 22:31:24 +0000 (22:31 +0000)]
Avoid TBAA issue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34539 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoNew test - practically wrote itself.
Jim Laskey [Fri, 23 Feb 2007 22:12:08 +0000 (22:12 +0000)]
New test - practically wrote itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34538 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agobugfix: SP wasn't updated for varargs when frame pointer was eliminated.
Lauro Ramos Venancio [Fri, 23 Feb 2007 21:53:48 +0000 (21:53 +0000)]
bugfix: SP wasn't updated for varargs when frame pointer was eliminated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34537 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoReuse extends the liveness of a register. Transfer the kill to the operand that reuse it.
Evan Cheng [Fri, 23 Feb 2007 21:47:50 +0000 (21:47 +0000)]
Reuse extends the liveness of a register. Transfer the kill to the operand that reuse it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34536 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHandle improper cast.
Jim Laskey [Fri, 23 Feb 2007 21:45:01 +0000 (21:45 +0000)]
Handle improper cast.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34535 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHandle cases when joining live intervals of two virtual registers.
Evan Cheng [Fri, 23 Feb 2007 20:40:13 +0000 (20:40 +0000)]
Handle cases when joining live intervals of two virtual registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34534 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDon't spill LR as a callee saved register.
Jim Laskey [Fri, 23 Feb 2007 20:34:16 +0000 (20:34 +0000)]
Don't spill LR as a callee saved register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34533 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix stack alignment in functions with varargs.
Lauro Ramos Venancio [Fri, 23 Feb 2007 20:32:57 +0000 (20:32 +0000)]
Fix stack alignment in functions with varargs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34532 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofix an obscure and tricky bug the inliner can hit sometimes.
Chris Lattner [Fri, 23 Feb 2007 19:54:30 +0000 (19:54 +0000)]
fix an obscure and tricky bug the inliner can hit sometimes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34531 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofix this testcase
Chris Lattner [Fri, 23 Feb 2007 19:39:24 +0000 (19:39 +0000)]
fix this testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34530 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agocrtend is only for llvm-gcc3, remove it.
Chris Lattner [Fri, 23 Feb 2007 19:34:09 +0000 (19:34 +0000)]
crtend is only for llvm-gcc3, remove it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34529 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix thinko.
Devang Patel [Fri, 23 Feb 2007 18:05:55 +0000 (18:05 +0000)]
Fix thinko.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34528 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoLoop passes are set up to accept pointer.
Devang Patel [Fri, 23 Feb 2007 17:53:17 +0000 (17:53 +0000)]
Loop passes are set up to accept pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34527 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMark livein registers as being in used.
Evan Cheng [Fri, 23 Feb 2007 08:41:19 +0000 (08:41 +0000)]
Mark livein registers as being in used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34525 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoclarify.
Chris Lattner [Fri, 23 Feb 2007 06:53:06 +0000 (06:53 +0000)]
clarify.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34524 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agorewrite of constant islands
Dale Johannesen [Fri, 23 Feb 2007 05:02:36 +0000 (05:02 +0000)]
rewrite of constant islands

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34523 91177308-0d34-0410-b5e6-96231b3b80d8

17 years ago-march=arm -enable-thumb => -march=thumb
Evan Cheng [Fri, 23 Feb 2007 03:15:39 +0000 (03:15 +0000)]
-march=arm -enable-thumb => -march=thumb

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34522 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded -march=thumb; removed -enable-thumb.
Evan Cheng [Fri, 23 Feb 2007 03:14:31 +0000 (03:14 +0000)]
Added -march=thumb; removed -enable-thumb.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34521 91177308-0d34-0410-b5e6-96231b3b80d8

17 years ago80 col. violation.
Evan Cheng [Fri, 23 Feb 2007 03:03:16 +0000 (03:03 +0000)]
80 col. violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34520 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoExternal weak linkage is supported by recent binutils on mingw32.
Anton Korobeynikov [Fri, 23 Feb 2007 01:58:50 +0000 (01:58 +0000)]
External weak linkage is supported by recent binutils on mingw32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34519 91177308-0d34-0410-b5e6-96231b3b80d8

17 years ago1. Fix a carry out problem in add if destination and x point to the same
Reid Spencer [Fri, 23 Feb 2007 01:57:13 +0000 (01:57 +0000)]
1. Fix a carry out problem in add if destination and x point to the same
   memory (as done in fromString).
2. Implement Knuth divide more closely to what is recommended in his book.
3. Fix computation of the remainder for Knuth Divide (bad shifting).
4. Remove some cruft from the file

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34518 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoA spill kills the register being stored. But it is later being reused by spiller...
Evan Cheng [Fri, 23 Feb 2007 01:13:26 +0000 (01:13 +0000)]
A spill kills the register being stored. But it is later being reused by spiller, its live range has to be extended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34517 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFirst potential client of register scavenger.
Evan Cheng [Fri, 23 Feb 2007 01:11:26 +0000 (01:11 +0000)]
First potential client of register scavenger.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34516 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoBy default, spills kills the register being stored.
Evan Cheng [Fri, 23 Feb 2007 01:10:04 +0000 (01:10 +0000)]
By default, spills kills the register being stored.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34515 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd option to turn on register scavenger; By default, spills kills the register being...
Evan Cheng [Fri, 23 Feb 2007 01:09:11 +0000 (01:09 +0000)]
Add option to turn on register scavenger; By default, spills kills the register being stored.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34514 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTemporay hook to enable register scavening for specific targets only.
Evan Cheng [Fri, 23 Feb 2007 01:07:04 +0000 (01:07 +0000)]
Temporay hook to enable register scavening for specific targets only.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34513 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse findRegisterUseOperand to find a kill of particular register.
Evan Cheng [Fri, 23 Feb 2007 01:04:26 +0000 (01:04 +0000)]
Use findRegisterUseOperand to find a kill of particular register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34512 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoInitial check in of register scavenger. Its only current functionality is tracking...
Evan Cheng [Fri, 23 Feb 2007 01:01:19 +0000 (01:01 +0000)]
Initial check in of register scavenger. Its only current functionality is tracking live registers per MBB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34511 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTeach LoopPass to assign itself one Loop Pass Manager.
Devang Patel [Fri, 23 Feb 2007 00:36:57 +0000 (00:36 +0000)]
Teach LoopPass to assign itself one Loop Pass Manager.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34510 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd facility that allows LoopPass to re-insert a loop into
Devang Patel [Fri, 23 Feb 2007 00:16:44 +0000 (00:16 +0000)]
Add facility that allows LoopPass to re-insert a loop into
Loop Pass Manager's queue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34509 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd LPPassManager interface that LoopPass can use to skip
Devang Patel [Fri, 23 Feb 2007 00:10:16 +0000 (00:10 +0000)]
Add LPPassManager interface that LoopPass can use to skip
rest of the passes in the queue for a loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34508 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCopy and paste silliness.
Evan Cheng [Thu, 22 Feb 2007 23:52:23 +0000 (23:52 +0000)]
Copy and paste silliness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34507 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoremove obsolete file
Chris Lattner [Thu, 22 Feb 2007 23:48:43 +0000 (23:48 +0000)]
remove obsolete file

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34506 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPopulate and walk loop queue.
Devang Patel [Thu, 22 Feb 2007 23:45:15 +0000 (23:45 +0000)]
Populate and walk loop queue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34505 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd LoopQueue. This is used by loop pass manager to manage loop nest.
Devang Patel [Thu, 22 Feb 2007 23:30:07 +0000 (23:30 +0000)]
Add LoopQueue. This is used by loop pass manager to manage loop nest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34504 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRemove unnecessary isKill properties if a live range has been lengthened due to coale...
Evan Cheng [Thu, 22 Feb 2007 23:03:39 +0000 (23:03 +0000)]
Remove unnecessary isKill properties if a live range has been lengthened due to coalescing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34503 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUpdate comment.
Jim Laskey [Thu, 22 Feb 2007 18:51:19 +0000 (18:51 +0000)]
Update comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34502 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMissing end of abbreviations - correction
Jim Laskey [Thu, 22 Feb 2007 18:48:52 +0000 (18:48 +0000)]
Missing end of abbreviations - correction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34501 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMissing end of abbreviations.
Jim Laskey [Thu, 22 Feb 2007 18:22:42 +0000 (18:22 +0000)]
Missing end of abbreviations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34500 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoNeed to init.
Jim Laskey [Thu, 22 Feb 2007 18:04:49 +0000 (18:04 +0000)]
Need to init.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34499 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTypo.
Jim Laskey [Thu, 22 Feb 2007 16:40:10 +0000 (16:40 +0000)]
Typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34498 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRemove isAccessable.
Jim Laskey [Thu, 22 Feb 2007 16:39:03 +0000 (16:39 +0000)]
Remove isAccessable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34497 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse exception flag.
Jim Laskey [Thu, 22 Feb 2007 16:22:15 +0000 (16:22 +0000)]
Use exception  flag.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34496 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRevert changes for a simplier solution.
Jim Laskey [Thu, 22 Feb 2007 16:21:18 +0000 (16:21 +0000)]
Revert changes for a simplier solution.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34495 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRemove assertion.
Jim Laskey [Thu, 22 Feb 2007 16:12:17 +0000 (16:12 +0000)]
Remove assertion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34494 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTighten up error checking of args.
Jim Laskey [Thu, 22 Feb 2007 16:10:05 +0000 (16:10 +0000)]
Tighten up error checking of args.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34493 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHandle lowering invoke to call correctly.
Jim Laskey [Thu, 22 Feb 2007 15:38:06 +0000 (15:38 +0000)]
Handle lowering invoke to call correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34492 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSimplify lowering and selection of exception ops.
Jim Laskey [Thu, 22 Feb 2007 15:37:19 +0000 (15:37 +0000)]
Simplify lowering and selection of exception ops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34491 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomissed cast elimination
Andrew Lenharth [Thu, 22 Feb 2007 15:17:45 +0000 (15:17 +0000)]
missed cast elimination

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34490 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSimplify lowering and selection of exception ops.
Jim Laskey [Thu, 22 Feb 2007 14:56:36 +0000 (14:56 +0000)]
Simplify lowering and selection of exception ops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34488 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd Loop Pass Manager.
Devang Patel [Thu, 22 Feb 2007 08:56:17 +0000 (08:56 +0000)]
Add Loop Pass Manager.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34487 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoclarify llvm-gcc GPL issue
Chris Lattner [Thu, 22 Feb 2007 06:33:23 +0000 (06:33 +0000)]
clarify llvm-gcc GPL issue

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34486 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoWhen converting from 64 to 32-bits, use the actual number of words to
Reid Spencer [Thu, 22 Feb 2007 00:58:45 +0000 (00:58 +0000)]
When converting from 64 to 32-bits, use the actual number of words to
extract the value, not the number of words implied by the active bits.
This fixes numerous, but not all divide bugs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34484 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix countLeadingZeros in the case that the bitwidth evenly divides the
Reid Spencer [Thu, 22 Feb 2007 00:22:00 +0000 (00:22 +0000)]
Fix countLeadingZeros in the case that the bitwidth evenly divides the
word size. This fixes all reads of uninitialized data (buffer over read)
and makes APInt.cpp memory clean, per valgrind. The only remaining
problem is division in a few cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34483 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSupport to provide exception and selector registers.
Jim Laskey [Wed, 21 Feb 2007 22:54:50 +0000 (22:54 +0000)]
Support to provide exception and selector registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34482 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSelection and lowering for exception handling.
Jim Laskey [Wed, 21 Feb 2007 22:53:45 +0000 (22:53 +0000)]
Selection and lowering for exception handling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34481 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoItanium ABI exception handing support.
Jim Laskey [Wed, 21 Feb 2007 22:49:50 +0000 (22:49 +0000)]
Itanium ABI exception handing support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34480 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoException handling support.
Jim Laskey [Wed, 21 Feb 2007 22:48:45 +0000 (22:48 +0000)]
Exception handling support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34479 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd support for changes in DwarfWriter.
Jim Laskey [Wed, 21 Feb 2007 22:47:38 +0000 (22:47 +0000)]
Add support for changes in DwarfWriter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34478 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd TAI field for exception table section.
Jim Laskey [Wed, 21 Feb 2007 22:43:40 +0000 (22:43 +0000)]
Add TAI field for exception table section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34477 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMake branch folding behave in the presence of landing pads.
Jim Laskey [Wed, 21 Feb 2007 22:42:20 +0000 (22:42 +0000)]
Make branch folding behave in the presence of landing pads.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34476 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAllow for live in registers for eh landing pads.
Jim Laskey [Wed, 21 Feb 2007 22:41:17 +0000 (22:41 +0000)]
Allow for live in registers for eh landing pads.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34475 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd a flag to MBBs to indicate whether it is an eh landing pad.
Jim Laskey [Wed, 21 Feb 2007 22:39:52 +0000 (22:39 +0000)]
Add a flag to MBBs to indicate whether it is an eh  landing pad.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34474 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd structures used for collecting eh information.
Jim Laskey [Wed, 21 Feb 2007 22:38:31 +0000 (22:38 +0000)]
Add structures used for collecting eh information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34473 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd new instructions for handling data passed into eh landing pad.
Jim Laskey [Wed, 21 Feb 2007 22:37:22 +0000 (22:37 +0000)]
Add new instructions for handling data passed into eh landing pad.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34472 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd new intrinsics for eh support.
Jim Laskey [Wed, 21 Feb 2007 22:35:57 +0000 (22:35 +0000)]
Add new intrinsics for eh support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34471 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoELF / PIC requires GOT be in the EBX register during calls via PLT GOT pointer.
Evan Cheng [Wed, 21 Feb 2007 21:18:14 +0000 (21:18 +0000)]
ELF / PIC requires GOT be in the EBX register during calls via PLT GOT pointer.
Add implicit uses of EBX to calls to ensure liveintervalanalysis does not treat
the GOT in EBX move as dead upon definition.
This should fix PR1207.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34470 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSimplify
Devang Patel [Wed, 21 Feb 2007 19:57:33 +0000 (19:57 +0000)]
Simplify

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34469 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoReorganize some code to make it clearer, avoid a few uninitialized memory
Reid Spencer [Wed, 21 Feb 2007 08:21:52 +0000 (08:21 +0000)]
Reorganize some code to make it clearer, avoid a few uninitialized memory
reads, and reduce the number of temporary APInt instances we construct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34467 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agorevert r1.68. This breaks 'make install' without doing 'make' first, but
Chris Lattner [Wed, 21 Feb 2007 06:23:20 +0000 (06:23 +0000)]
revert r1.68.  This breaks 'make install' without doing 'make' first, but
fixes PR1208.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34466 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix the carry in addition.
Reid Spencer [Wed, 21 Feb 2007 05:44:56 +0000 (05:44 +0000)]
Fix the carry in addition.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34465 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd a dump() method for debugging.
Reid Spencer [Wed, 21 Feb 2007 03:56:12 +0000 (03:56 +0000)]
Add a dump() method for debugging.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34464 91177308-0d34-0410-b5e6-96231b3b80d8

17 years ago1. Add a dump() method for faster debugging.
Reid Spencer [Wed, 21 Feb 2007 03:55:44 +0000 (03:55 +0000)]
1. Add a dump() method for faster debugging.
2. Change 0 initialization of union to larger component so all is zeroed.
3. Fix the borrow logic in subtraction so it works for > 128 bits.
4. Rewrite fromString to use a simpler but correct algorithm and also to
   not set the bit width contrary to the user's request.
5. Optimize toString a bit by making it only do one Knuth divide per
   iteration instead of two.

With these changes, all arithmetic passes (verified by pari/GP) up to
1024 bits except for certain division cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34463 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix memory leak (PR 775).
Devang Patel [Wed, 21 Feb 2007 02:36:31 +0000 (02:36 +0000)]
Fix memory leak (PR 775).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34462 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoOut of bound reference.
Evan Cheng [Wed, 21 Feb 2007 02:27:39 +0000 (02:27 +0000)]
Out of bound reference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34461 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse BitVector instead. No functionality change.
Evan Cheng [Wed, 21 Feb 2007 02:22:03 +0000 (02:22 +0000)]
Use BitVector instead. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34460 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix countLeadingZeros to actually return the correct number.
Reid Spencer [Wed, 21 Feb 2007 00:29:48 +0000 (00:29 +0000)]
Fix countLeadingZeros to actually return the correct number.
Fix toString to correctly return "0" for zero valued APInts over 128 bits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34459 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMake long addition and subtraction work. Speed things up by using internal
Reid Spencer [Tue, 20 Feb 2007 23:40:25 +0000 (23:40 +0000)]
Make long addition and subtraction work. Speed things up by using internal
functions more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34458 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThis cast broke lots of tests.
Evan Cheng [Tue, 20 Feb 2007 21:30:56 +0000 (21:30 +0000)]
This cast broke lots of tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34457 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix typos in comments.
Dan Gohman [Tue, 20 Feb 2007 20:52:03 +0000 (20:52 +0000)]
Fix typos in comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34456 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoClean up variable names in operator*.
Reid Spencer [Tue, 20 Feb 2007 20:42:10 +0000 (20:42 +0000)]
Clean up variable names in operator*.
Attempt #3 for getting a portable INFINITY value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34454 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse INFINITY macro from math.h instead of constructing hex floating point
Reid Spencer [Tue, 20 Feb 2007 18:29:12 +0000 (18:29 +0000)]
Use INFINITY macro from math.h instead of constructing hex floating point
constants (avoids warnings).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34452 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFirst version that can process arith.cpp test case up to 1024 bits:
Reid Spencer [Tue, 20 Feb 2007 08:51:03 +0000 (08:51 +0000)]
First version that can process arith.cpp test case up to 1024 bits:
1. Ensure pVal is set to 0 in each constructor.
2. Fix roundToDouble to make correct calculations and not read beyond the
   end of allocated memory.
3. Implement Knuth's "classical algorithm" for division from scratch and
   eliminate buffer overflows and uninitialized mememory reads. Document
   it properly too.
4. Implement a wrapper function for KnuthDiv which handles the 64-bit to
   32-bit conversion and back. It also implement short division for the
   n == 1 case that Knuth's algorithm can't handle.
5. Simplify the logic of udiv and urem a little, make them exit early, and
   have them use the "divide" wrapper function to perform the division
   or remainder operation.
6. Move the toString function to the end of the file, closer to where
   the division functions are located.

Note: division is still broken for some > 64 bit values, but at least it
      doesn't crash any more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34449 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd an internal convenience method for division that urem and udiv use.
Reid Spencer [Tue, 20 Feb 2007 08:43:42 +0000 (08:43 +0000)]
Add an internal convenience method for division that urem and udiv use.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34448 91177308-0d34-0410-b5e6-96231b3b80d8