Commit Graph

30103 Commits

Author SHA1 Message Date
Chris Lattner a90a7d6c5a remove terminology section (this is not a legal document)
move testcases above quality.  Mention that a testcase is part of quality.

llvm-svn: 34404
2007-02-19 05:47:13 +00:00
Chris Lattner 793eead2d6 Transmogrify 'Starting New Work' into 'Making a Major Change', add
incremental development as a subsection of it.

llvm-svn: 34403
2007-02-19 05:43:04 +00:00
Reid Spencer 4da2c8b6a5 Adjust to CallInst::CallInst interface changes.
llvm-svn: 34402
2007-02-19 05:05:07 +00:00
Chris Lattner 8087c0b55f A bunch of editting. I'm still not done with the 'patches' section.
llvm-svn: 34401
2007-02-19 03:50:31 +00:00
Chris Lattner 8503007331 clarify the 'developed by' line
llvm-svn: 34400
2007-02-19 03:33:06 +00:00
Reid Spencer da81bf4d3e For PR1207:
Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.

llvm-svn: 34399
2007-02-19 03:20:00 +00:00
Reid Spencer 577f4bd78c Add some new constants.
llvm-svn: 34398
2007-02-19 03:18:22 +00:00
Reid Spencer 861c1cb67a 1. Fix some indentation and variable names in the get{Min,Max}Value methods.
2. Implement toString for power-of-2 radix without using divide and always
   printing full words. This allows hex/binary to look at the bit
   respresentation of the APInt as well as avoid bugs in divide.

llvm-svn: 34396
2007-02-18 22:29:05 +00:00
Chris Lattner 9f4707eb04 fix comment
llvm-svn: 34395
2007-02-18 22:10:58 +00:00
Chris Lattner a6f54c0e2c simplify pass, delete dead gvar protos as well.
llvm-svn: 34394
2007-02-18 22:10:34 +00:00
Reid Spencer 9154bc80be Remove broken links to gccas and gccld.
llvm-svn: 34393
2007-02-18 20:37:44 +00:00
Reid Spencer be4ddf6856 1. Use APINT_WORD_SIZE instead of sizeof(uint64_t)
2. Teach slt about signedness.
3. Teach roundToDouble to properly sign extend.

llvm-svn: 34391
2007-02-18 20:09:41 +00:00
Reid Spencer 68b6184884 1. "unsigned" -> "uint32_t" to gaurantee its bit width on all platforms.
Size matters in this case.
2. Remove the unused whichByte private function, which was also broken.
3. Remove the non-const overload of the getWord function, getWord() is
   never used as an lvalue.
4. Rename some local variables for clarity (e.g. API -> Result).

llvm-svn: 34390
2007-02-18 18:42:35 +00:00
Reid Spencer a856b6e985 1. Remove dead code (lshift function).
2. Consolidate memory allocation into just two inline functions.
3. Convert "unsigned" to uint32_t to gaurantee its size.
4. Eliminate magic constants and replace with symbolic equivalent.
5. Improve code documentation slightly.
6. Simplify the logical operator code because bitwidths must be the same.
7. Fix indentation per coding standards.
8. Use exit-early style to reduce indentation in several functions.

llvm-svn: 34389
2007-02-18 18:38:44 +00:00
Reid Spencer ee0a685ea1 Make add_1 exit early if carry is 0.
Fix line breaks and 80 cols violation.
Simplify operator^= since bitwidths must be the same.

llvm-svn: 34388
2007-02-18 06:39:42 +00:00
Chris Lattner 8597d69961 avoid collision with /usr/bin/sample if this ever gets installed.
llvm-svn: 34387
2007-02-18 03:03:41 +00:00
Reid Spencer fbd48a566a Implement signed output for toString.
Fix bugs in countLeadingZeros and countTrailingZeros.

llvm-svn: 34386
2007-02-18 00:44:22 +00:00
Chris Lattner 9df8be40fe temporarily revert Devang's most recent patch, which caused a large
compile-time regression in LLC.

llvm-svn: 34385
2007-02-17 23:14:24 +00:00
Reid Spencer 26c6616e4b Fix some bugs in division logic.
llvm-svn: 34384
2007-02-17 22:38:07 +00:00
Evan Cheng 2605082f0e - Changes how function livein's are handled, they now have a start index of 0.
- When coalescing a copy MI, if its destination is "dead", propagate the
  property to the source MI's destination if there are no intervening uses.
- Detect dead function live-in's and remove them.

llvm-svn: 34383
2007-02-17 11:15:40 +00:00
Evan Cheng a3d3599210 Do not add livein's to entry MBB twice.
llvm-svn: 34382
2007-02-17 11:11:27 +00:00
Evan Cheng 41d2a1d8bf Added removeLiveIn.
llvm-svn: 34381
2007-02-17 11:10:48 +00:00
Evan Cheng 6accd480a2 Added findRegisterDefOperand().
llvm-svn: 34380
2007-02-17 11:10:18 +00:00
Evan Cheng ef932b067d - Use MRegister::regsOverlap().
- Allow LiveVariables to track liveness of more registers.

llvm-svn: 34379
2007-02-17 11:09:47 +00:00
Evan Cheng 0479014657 Added removeLiveIn and more livein iterators.
llvm-svn: 34378
2007-02-17 11:07:41 +00:00
Evan Cheng 08ceaae6b1 Allow LiveVariables to track liveness of more registers.
llvm-svn: 34377
2007-02-17 11:07:08 +00:00
Evan Cheng 9865be6d40 Added getReservedRegs().
llvm-svn: 34376
2007-02-17 11:06:00 +00:00
Evan Cheng 6457b9eff4 - Added regsOverlap() to test if two registers overlap. Or in case they are
virtual registers, test if they the same.
- Added a virtual method to return target specific reserved registers, e.g. SP.

llvm-svn: 34375
2007-02-17 11:04:35 +00:00
Chris Lattner 1f7d60262e Fix ixaddrs as well, allowing ppc64 to compile to:
_test2:
        li r2, 0
        lis r3, 1
        std r2, 9024(r3)
        blr

instead of:

_test2:
        lis r2, 1
        li r3, 0
        ori r2, r2, 9024
        std r3, 0(r2)
        blr

This implements CodeGen/PowerPC/LargeAbsoluteAddr.ll:test2

llvm-svn: 34373
2007-02-17 06:57:26 +00:00
Chris Lattner 3723c90455 new test
llvm-svn: 34372
2007-02-17 06:57:11 +00:00
Chris Lattner 4a9c0bb147 Compile test/CodeGen/PowerPC/LargeAbsoluteAddr.ll to:
_test:
        lis r2, 743
        li r3, 0
        stw r3, 32751(r2)
        blr

instead of:

_test:
        li r2, 0
        stw r2, 32751(48693248)
        blr

Implement support for ppc64 as well, allowing it to produce better code.

llvm-svn: 34371
2007-02-17 06:44:03 +00:00
Chris Lattner 2be2ab59d5 Test that large absolute addresses are properly folded into addr modes on
both ppc32 and ppc64.

llvm-svn: 34370
2007-02-17 06:41:57 +00:00
Chris Lattner 56e5fea163 print target nodes nicely
llvm-svn: 34369
2007-02-17 06:38:37 +00:00
Chris Lattner a9f917af59 Implement i/n/s constraints correctly. This fixes
test/CodeGen/PowerPC/2007-02-16-InlineAsmNConstraint.ll

llvm-svn: 34368
2007-02-17 06:00:35 +00:00
Chris Lattner bc9111e290 new testcase that crashes llc
llvm-svn: 34367
2007-02-17 05:59:01 +00:00
Chris Lattner 6d6d70ba18 testcase for PR1170
llvm-svn: 34366
2007-02-17 05:44:57 +00:00
Chris Lattner f37f0479b8 new testcase for -fwritable-strings
llvm-svn: 34365
2007-02-17 05:07:40 +00:00
Devang Patel 98354dabc1 Use inverted map to speedup collectLastUses().
llvm-svn: 34364
2007-02-17 03:53:44 +00:00
Reid Spencer 100502d256 Move static functions closer to their usage.
llvm-svn: 34363
2007-02-17 03:16:00 +00:00
Reid Spencer 3986776fbd Clean up the divide and remainder logic a bit (exit early). Use more
meaningful variable names. Add comments to document the flow.

llvm-svn: 34362
2007-02-17 02:07:07 +00:00
Chris Lattner 3ae936ce69 new testcase
llvm-svn: 34361
2007-02-17 01:44:21 +00:00
Dale Johannesen 0552e3b580 adding PR 1200 comment by request
llvm-svn: 34360
2007-02-17 01:12:15 +00:00
Dale Johannesen 12920dda9e Fixes PR 1200
llvm-svn: 34359
2007-02-17 00:44:34 +00:00
Chris Lattner 04eb16b415 Do not dereference invalid ranges. Generalize targetdata alignment model.
This fixes the UnitTests/Vector/sumarray-dbl regressions.

llvm-svn: 34358
2007-02-17 00:41:42 +00:00
Reid Spencer a32372d110 Fix bugs introduced by constructor parameter order change.
llvm-svn: 34357
2007-02-17 00:18:01 +00:00
Chris Lattner dc64b9d379 Fix CodeGen/PowerPC/2007-02-16-AlignPacked.ll
llvm-svn: 34356
2007-02-16 23:11:51 +00:00
Chris Lattner e19f84cf28 testcase for recent targetdata regression
llvm-svn: 34355
2007-02-16 23:11:43 +00:00
Reid Spencer e4ff249d26 Remove an unnecessary predicate.
Patch by Scott Michel.

llvm-svn: 34354
2007-02-16 22:42:40 +00:00
Reid Spencer 1d0721209d Review changes:
1. Function style changes.
2. 80-col violations.
3. Better names for things.
4. Arrange constructors so they all take bit width first.
5. Add named signed and unsigned comparison functions and remove the
   corresponding operators.
6. Remove operator&& and operator|| but provide a getBoolValue function which
   converts to bool as comparison against 0. This allows the normal && and
   || operators to be used as if (X.getBoolValue() && Y.getBoolValue())

Note: this still doesn't function 100% yet. I'm working on the bugs now.
llvm-svn: 34353
2007-02-16 22:36:51 +00:00
Chris Lattner f9122c4512 simplify some code, ensure that packed structures get abi alignment of 1.
llvm-svn: 34352
2007-02-16 22:25:34 +00:00