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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Chris Lattner [Tue, 20 Feb 2007 07:18:01 +0000 (07:18 +0000)]
eliminate some dead friends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34447
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Feb 2007 07:17:17 +0000 (07:17 +0000)]
switch ConstantFP's from ValueMap to DenseMap, which is much faster to query
and is more memory efficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34446
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Feb 2007 06:39:57 +0000 (06:39 +0000)]
cleanup ConstantInt to use a single DenseMap for uniquing instead of the
heavy-weight ValueMap class. This reduces mem usage bc reading kc++ by 29K,
even though it only creates 2955 constant ints!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34445
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Feb 2007 06:18:57 +0000 (06:18 +0000)]
Not all managedstatics need object pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34444
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Feb 2007 06:11:36 +0000 (06:11 +0000)]
Make ConstantInt::getTrue/getFalse be llvm_shutdown safe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34443
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Feb 2007 06:08:37 +0000 (06:08 +0000)]
add a way to register an arbitrary cleanup function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34442
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Feb 2007 05:55:46 +0000 (05:55 +0000)]
Clean up the internals of the ConstantInt machinery
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34441
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Feb 2007 05:46:39 +0000 (05:46 +0000)]
simplify some code that was not llvm_shutdown safe
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34440
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Feb 2007 05:31:49 +0000 (05:31 +0000)]
remove reoptimizer-specific passes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34439
91177308-0d34-0410-b5e6-
96231b3b80d8