Chris Lattner
04baffb0c5
switch AddReachableCodeToWorklist from being recursive to being iterative.
...
llvm-svn: 35282
2007-03-23 19:17:18 +00:00
Reid Spencer
1fd12cf9f6
For PR1205:
...
APIntify several utility functions supporting logical operators and shift
operators.
Patch by Zhou Sheng.
llvm-svn: 35281
2007-03-23 18:46:34 +00:00
Dan Gohman
42a3f4e16e
Add the 'explicit' keyword to several constructors that accept one
...
argument that don't appear intended as implicit-conversion operators.
llvm-svn: 35280
2007-03-23 18:44:11 +00:00
Duncan Sands
bce4648a05
Test handling of switches with wide case ranges.
...
llvm-svn: 35279
2007-03-23 07:17:52 +00:00
Reid Spencer
7a9c981d80
Fix constant fold of div by zero and rem by zero to match IEEE 754
...
requirements. We must return NaN in some cases and correctly signed
infinity in other cases. Passes CFP2006 (not that that says much).
llvm-svn: 35277
2007-03-23 05:33:23 +00:00
Zhou Sheng
e706d8f56d
Make the "KnownZero ^ TypeMask" computation just once.
...
llvm-svn: 35276
2007-03-23 03:13:21 +00:00
Zhou Sheng
6b7b4945f1
Simplify the code.
...
llvm-svn: 35275
2007-03-23 02:39:25 +00:00
Evan Cheng
62ccdaea67
A couple of bug fixes for reducing load width xform:
...
1. Address offset is in bytes.
2. Make sure truncate node uses are replaced with new load.
llvm-svn: 35274
2007-03-23 02:16:52 +00:00
Reid Spencer
9881580cec
For PR1205:
...
APInt support for logical operators in visitAnd, visitOr, and visitXor.
Patch by Zhou Sheng.
llvm-svn: 35273
2007-03-22 22:19:58 +00:00
Duncan Sands
9ee02c3f2e
The -funcresolve and -raise options no longer exist.
...
llvm-svn: 35272
2007-03-22 21:06:50 +00:00
Reid Spencer
74288268d3
For PR1205:
...
* APIntify commonIntCastTransforms
* APIntify visitTrunc
* APIntify visitZExt
Patch by Zhou Sheng.
llvm-svn: 35271
2007-03-22 20:56:53 +00:00
Reid Spencer
b6c09a009e
For PR1205:
...
* Re-enable the APInt version of MaskedValueIsZero.
* APIntify the Comput{Un}SignedMinMaxValuesFromKnownBits functions
* APIntify visitICmpInst.
llvm-svn: 35270
2007-03-22 20:36:03 +00:00
Bill Wendling
e6a9c6dfe6
We generate a shufflevector instruction, so we don't need the builtin
...
intrinsic.
llvm-svn: 35269
2007-03-22 20:29:26 +00:00
Jeff Cohen
53cc90b34c
Cleanup obsolete stuff.
...
llvm-svn: 35268
2007-03-22 19:13:29 +00:00
Jeff Cohen
2f87ca6cc7
Be more explicit concerning argument sizes.
...
Use VC++ byteswap intrinsics.
llvm-svn: 35267
2007-03-22 19:11:57 +00:00
Bill Wendling
1bcad4c1cd
Support added for shifts and unpacking MMX instructions.
...
llvm-svn: 35266
2007-03-22 18:42:45 +00:00
Dan Gohman
d0a0ea9916
Change uses of Function::front to Function::getEntryBlock for readability.
...
llvm-svn: 35265
2007-03-22 16:38:57 +00:00
Evan Cheng
8c8e97507d
Unbreak non-debug builds.
...
llvm-svn: 35264
2007-03-22 07:43:51 +00:00
Reid Spencer
91c2777f40
Make this test actually match the generated code.
...
llvm-svn: 35263
2007-03-22 02:53:05 +00:00
Reid Spencer
3fd4e45972
Add noreturn function attribute.
...
llvm-svn: 35262
2007-03-22 02:18:56 +00:00
Reid Spencer
648d9f53ca
Add tests for nounwind and noreturn function attributes.
...
llvm-svn: 35261
2007-03-22 02:15:17 +00:00
Reid Spencer
a2d8b5e7a1
Add the NoUnwind function attribute.
...
llvm-svn: 35260
2007-03-22 02:14:48 +00:00
Reid Spencer
620297a20c
Regenerate.
...
llvm-svn: 35259
2007-03-22 02:14:08 +00:00
Reid Spencer
6890147648
Add support for the noreturn and nounwind function attributes.
...
llvm-svn: 35258
2007-03-22 02:13:23 +00:00
Nick Lewycky
428523f51a
Fix broken optimization disabled by a logic bug.
...
Analyze GEPs. If the indices are all zero, transfer whether the pointer is
known to be not null through the GEP.
Add a few more cases for xor and shift instructions.
llvm-svn: 35257
2007-03-22 02:02:51 +00:00
Reid Spencer
3dd6681b9e
Preview nounwind function attribute.
...
llvm-svn: 35256
2007-03-22 02:02:11 +00:00
Evan Cheng
9992bbc5a0
Another test case.
...
llvm-svn: 35255
2007-03-22 01:55:16 +00:00
Evan Cheng
d7be4893f4
More opportunities to reduce load size.
...
llvm-svn: 35254
2007-03-22 01:54:19 +00:00
Evan Cheng
1a651088b1
Test case for PR1257
...
llvm-svn: 35253
2007-03-22 01:52:57 +00:00
Evan Cheng
da92165bab
Fix for PR1257. Bug in live range shortening as a result of copy coalescing
...
where the destination is dead.
llvm-svn: 35252
2007-03-22 01:26:05 +00:00
Reid Spencer
8862d80d67
Test case for PR1248
...
llvm-svn: 35251
2007-03-22 00:49:40 +00:00
Reid Spencer
17f3eeaf48
For PR1145:
...
Add the NoUnwindAttribute to allow explicit marking of functions that do
not unwind the stack via the unwind instruction. This is akin to gcc's
NoThrow attribute and used for optimizing exception handling.
llvm-svn: 35250
2007-03-22 00:32:02 +00:00
Anton Korobeynikov
61b9366c9f
More LangRef fixes. Corrected names of intrinsics.
...
llvm-svn: 35249
2007-03-22 00:02:17 +00:00
Anton Korobeynikov
cdfb4988d9
Fixed va_arg example. Reported by Roman Samoilov
...
llvm-svn: 35248
2007-03-21 23:58:04 +00:00
Reid Spencer
bdfbda05fb
For PR1248:
...
* Fix some indentation and comments in InsertRangeTest
* Add an "IsSigned" parameter to AddWithOverflow and make it handle signed
additions. Also, APIntify this function so it works with any bitwidth.
* For the icmp pred ([us]div %X, C1), C2 transforms, exit early if the
div instruction's RHS is zero.
* Finally, for icmp pred (sdiv %X, C1), -C2, fix an off-by-one error. The
HiBound needs to be incremented in order to get the range test correct.
llvm-svn: 35247
2007-03-21 23:19:50 +00:00
Reid Spencer
76c1fef30a
Fix a comment.
...
llvm-svn: 35246
2007-03-21 22:22:19 +00:00
Dale Johannesen
44c0a5d545
repair x86 performance, dejagnu problems from previous change
...
llvm-svn: 35245
2007-03-21 21:51:52 +00:00
Anton Korobeynikov
c0842af02d
Add TODO list for MSIL backend
...
llvm-svn: 35244
2007-03-21 21:48:59 +00:00
Anton Korobeynikov
717056a7b5
Add Roman to credits
...
llvm-svn: 35243
2007-03-21 21:45:25 +00:00
Anton Korobeynikov
bc43d296b2
Let the new backend begin!
...
llvm-svn: 35242
2007-03-21 21:38:25 +00:00
Dale Johannesen
fb7b59f5dd
add generation of unnecessary push/pop around calls
...
llvm-svn: 35241
2007-03-21 21:16:39 +00:00
Evan Cheng
ecfd152e0d
New test case.
...
llvm-svn: 35240
2007-03-21 20:14:56 +00:00
Evan Cheng
9867632e64
fold (truncate (srl (load x), c)) -> (smaller load (x+c/vt bits))
...
llvm-svn: 35239
2007-03-21 20:14:05 +00:00
Reid Spencer
7e5dbe3441
Regenerate.
...
llvm-svn: 35237
2007-03-21 17:27:53 +00:00
Reid Spencer
e4fa26b209
For PR1243:
...
Okay, really fix it this time. Make sure the CurFun.Linkage is set early
and consolidate some duplicate code.
llvm-svn: 35236
2007-03-21 17:26:41 +00:00
Reid Spencer
d1f592b16f
Regenerate.
...
llvm-svn: 35235
2007-03-21 17:15:50 +00:00
Reid Spencer
4149df60dd
For PR1256:
...
Make Signedness information pervasive throughout all types and values.
There is no easy way to get around this. Because the GEP instruction can
index through an arbitrarily complex value structure, it is necessary to
keep track of signedness information throughout that structure. This change
makes Signedness a full class, capable of representing Signedness in
arbitrarily shaped types. The class is then used throughout llvm-upgrade to
track signedness and differentiate between globals, locals, and functions
based on their signedness.
For PR1243:
This patch also removes bogus warnings about renaming internal globals. It
now only emits such warnings when renaming non-internal globals because
they may affect linkage.
llvm-svn: 35234
2007-03-21 17:14:36 +00:00
Nicolas Geoffray
205541ef78
Protect R31's frame offset from being used by callee-saved registers, when R31
...
is the frame pointer.
llvm-svn: 35233
2007-03-21 16:44:14 +00:00
Zhou Sheng
427b6bec97
Fix a bug in getAllOnesValue() which broke
...
some test cases for bitwidth > 64.
llvm-svn: 35232
2007-03-21 04:34:37 +00:00
Evan Cheng
00a5cbf9e7
Mark re-materializable instructions.
...
llvm-svn: 35230
2007-03-21 00:16:56 +00:00