- Feb 18, 2008
-
-
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
-
Bill Wendling authored
llvm-svn: 47200
-
Dan Gohman authored
it actually does. Simplify CountOperands a little by reusing ComputeMemOperandsEnd. And reword some comments for both. llvm-svn: 47198
-
Dan Gohman authored
llvm-svn: 47196
-
Scott Michel authored
tblgen will complain if a sign-extended constant does not fit into a data type smaller than i32, e.g., i16. This causes a problem when certain hex constants are used, such as 0xff for byte masks or immediate xor values. tblgen will try the sign-extended value first and, if the sign extended value would overflow, it tries to see if the unsigned value will fit. Consequently, a software developer can now safely incant: (XORHIr16 R16C:$rA, 0xffff) which is somewhat clearer and more informative than incanting: (XORHIr16 R16C:$rA, (i16 -1)) even if the two are bitwise equivalent. Tblgen also outputs the 64-bit unsigned constant in the generated ISel code when getTargetConstant() is invoked. llvm-svn: 47188
-
- Feb 15, 2008
-
-
Evan Cheng authored
llvm-svn: 47179
-
Ted Kremenek authored
we had reached the "fake bucket" after the last bucket, allowing the iterator in some cases to run off the end of the hashtable. llvm-svn: 47178
-
Dan Gohman authored
with the TIED_TO attribute. llvm-svn: 47177
-
Dan Gohman authored
that should be checked for the TIED_TO attribute instead of using CountOperands. llvm-svn: 47176
-