- Feb 19, 2008
-
-
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
-
Owen Anderson authored
Fix a comment, and a bug where we weren't applying the tail call logic in cases that failed the first test. llvm-svn: 47253
-
Owen Anderson authored
llvm-svn: 47252
-
Chris Lattner authored
llvm-svn: 47251
-
Chris Lattner authored
If we see a memcpy of a pointer, make sure to check later uses of the pointer as well. llvm-svn: 47250
-
Owen Anderson authored
llvm-svn: 47248
-
- Feb 17, 2008
-
-
Owen Anderson authored
Also, noalias arguments are be considered "like" stack allocated ones for this purpose, because the only way they can be modref'ed is if they escape somewhere in the current function. llvm-svn: 47247
-
Chris Lattner authored
the second half of PR2047 llvm-svn: 47244
-
Chris Lattner authored
llvm-svn: 47242
-
Chris Lattner authored
that is also a subtract. This implements PR2047 and Transforms/Reassociate/subtest2.ll llvm-svn: 47241
-
Chris Lattner authored
functionality change. llvm-svn: 47239
-
Chris Lattner authored
llvm-svn: 47237
-
- Feb 16, 2008
-
-
Duncan Sands authored
is not passed as an argument to a trampoline intrinsic. llvm-svn: 47220
-
Duncan Sands authored
llvm-svn: 47219
-
Andrew Lenharth authored
I cannot find a libgcc function for this builtin. Therefor expanding it to a noop (which is how it use to be treated). If someone who knows the x86 backend better than me could tell me how to get a lock prefix on an instruction, that would be nice to complete x86 support. llvm-svn: 47213
-
Duncan Sands authored
br_cc. This fixes 5 "make check" failures. llvm-svn: 47212
-
Evan Cheng authored
llvm-svn: 47208
-
Andrew Lenharth authored
llvm-svn: 47204
-