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