- Feb 19, 2008
-
-
Duncan Sands authored
llvm-svn: 47328
-
Chris Lattner authored
llvm-svn: 47323
-
Chris Lattner authored
could work don't work fully. This fixes PR1705. Oh yeah, we don't have packed types anymore either ;-) llvm-svn: 47322
-
Owen Anderson authored
Refactor this method a bit, and correct a test that was completely wrong but happened to work out anyways. :-) llvm-svn: 47321
-
Chris Lattner authored
llvm-svn: 47320
-
Chris Lattner authored
llvm-svn: 47319
-
Owen Anderson authored
llvm-svn: 47318
-
Owen Anderson authored
In addition to arguments passed to it, memcpy (and all other calls) can ModRef pointers that alias their arguments as well. This fixes PR2057. llvm-svn: 47317
-
Owen Anderson authored
and add some others that should have been in from the first place. Document the whole thing better. llvm-svn: 47315
-
Chris Lattner authored
llvm-svn: 47314
-
Chris Lattner authored
can be a SNaN. We could be more aggressive and turn this into unreachable, but that is less nice, and not really worth it. llvm-svn: 47313
-
Chris Lattner authored
llvm-svn: 47312
-
Chris Lattner authored
llvm-svn: 47311
-
Owen Anderson authored
At some point in the future, this check will become smarter. llvm-svn: 47310
-
Owen Anderson authored
over all the parameters of the callee looking for it. llvm-svn: 47309
-
Owen Anderson authored
to apply to a memcpy into processInstruction. Also, fix a bug in the check due to missing braces. llvm-svn: 47307
-
Owen Anderson authored
Fix Transforms/GVN/memcpy.ll, which Chris broke in r47275 by reordering the branches. memcpy's are a kind of CallInst. llvm-svn: 47305
-
Evan Cheng authored
PR1909: Tail merging pass ran wild. It makes no sense to merge blocks in order to save a single instruction since a branch will be inserted for each BB. llvm-svn: 47301
-
Evan Cheng authored
llvm-svn: 47300
-
Evan Cheng authored
- When DAG combiner is folding a bit convert into a BUILD_VECTOR, it should check if it's essentially a SCALAR_TO_VECTOR. Avoid turning (v8i16) <10, u, u, u> to <10, 0, u, u, u, u, u, u>. Instead, simply convert it to a SCALAR_TO_VECTOR of the proper type. - X86 now normalize SCALAR_TO_VECTOR to (BIT_CONVERT (v4i32 SCALAR_TO_VECTOR)). Get rid of X86ISD::S2VEC. llvm-svn: 47290
-
- Feb 18, 2008
-
-
Nick Lewycky authored
llvm-svn: 47287
-
Dan Gohman authored
on x86-32 since i64 itself is not a Legal type. And, update some comments. llvm-svn: 47282
-
Evan Cheng authored
- For now, conservatively ignore copy MI whose source is a physical register. Commuting its def MI can cause a physical register live interval to be live through a loop (since we know it's live coming into the def MI). llvm-svn: 47281
-
Chris Lattner authored
llvm-svn: 47280
-
Nate Begeman authored
llvm-svn: 47279
-
Chris Lattner authored
llvm-svn: 47278
-
Dan Gohman authored
has plain one-result scalar integer multiplication instructions. This avoids expanding such instructions into MUL_LOHI sequences that must be special-cased at isel time, and avoids the problem with that code that provented memory operands from being folded. This fixes PR1874, addressesing the most common case. The uncommon cases of optimizing multiply-high operations will require work in DAGCombiner. llvm-svn: 47277
-
Chris Lattner authored
to Dale for noticing this! llvm-svn: 47276
-
Chris Lattner authored
llvm-svn: 47275
-
Duncan Sands authored
requested by Chris. While there, do the same for an existing function committed by someone called "lattner" :) llvm-svn: 47273
-
Chris Lattner authored
llvm-svn: 47272
-
Owen Anderson authored
that Object is an Argument before casting it to one. llvm-svn: 47268
-
Roman Levenstein authored
New helper function getMBBFromIndex() that given an index in any instruction of an MBB returns a pointer the MBB. Reviewed by Evan. llvm-svn: 47267
-
Owen Anderson authored
Add support to GVN for performing sret return slot optimization. This means that, if an sret function tail calls another sret function, it should pass its own sret parameter to the tail callee, allowing it to fill in the correct return value. llvm-gcc does not emit this by default. Instead, it allocates space in the caller for the sret of the tail call and then uses memcpy to copy the result into the caller's sret parameter. This optimization detects and optimizes that case. llvm-svn: 47265
-
Owen Anderson authored
llvm-svn: 47264
-
Owen Anderson authored
llvm-svn: 47263
-
Evan Cheng authored
For now, avoid commuting def MI for copy MI's whose source is not killed. That simply trade a live interval for another and because only the non-two-address operands can be folded into loads, may end up pessimising code. llvm-svn: 47262
-
Chris Lattner authored
this speeds it up 2.3% on eon. llvm-svn: 47261
-
Chris Lattner authored
llvm-svn: 47258
-
Owen Anderson authored
a function must be the first parameter. llvm-svn: 47254
-