- Jan 28, 2011
-
-
Duncan Sands authored
benchmarks, and that it can be simplified to X/Y. (In general you can only simplify (Z*Y)/Y to Z if the multiplication did not overflow; if Z has the form "X/Y" then this is the case). This patch implements that transform and moves some Div logic out of instcombine and into InstructionSimplify. Unfortunately instcombine gets in the way somewhat, since it likes to change (X/Y)*Y into X-(X rem Y), so I had to teach instcombine about this too. Finally, thanks to the NSW/NUW flags, sometimes we know directly that "Z*Y" does not overflow, because the flag says so, so I added that logic too. This eliminates a bunch of divisions and subtractions in 447.dealII, and has good effects on some other benchmarks too. It seems to have quite an effect on tramp3d-v4 but it's hard to say if it's good or bad because inlining decisions changed, resulting in massive changes all over. llvm-svn: 124487
-
Oscar Fuentes authored
llvm-svn: 124486
-
Roman Divacky authored
llvm-svn: 124485
-
John McCall authored
Pure motion. llvm-svn: 124484
-
John McCall authored
for CodeGen's RValue type. llvm-svn: 124483
-
Nick Lewycky authored
functionality change. llvm-svn: 124482
-
John McCall authored
fixing a crash which probably nobody was ever going to see. In doing so, fix a horrendous number of problems with the conditional-cleanups code. Also, make conditional cleanups re-use the cleanup's activation variable, which avoids some unfortunate repetitiveness. llvm-svn: 124481
-
Nick Lewycky authored
llvm-svn: 124480
-
Nick Lewycky authored
llvm-svn: 124479
-
Evan Cheng authored
llvm-svn: 124478
-
Nico Weber authored
llvm-svn: 124477
-
John McCall authored
ret duplication. llvm-svn: 124476
-
Nick Lewycky authored
the function equality set. llvm-svn: 124475
-
Eric Christopher authored
llvm-svn: 124474
-
Nick Lewycky authored
test. llvm-svn: 124473
-
Nick Lewycky authored
llvm-svn: 124472
-
Rafael Espindola authored
llvm-svn: 124471
-
Nick Lewycky authored
llvm-svn: 124470
-
Nick Lewycky authored
llvm-svn: 124469
-
Rafael Espindola authored
llvm-svn: 124468
-
Nico Weber authored
llvm-svn: 124467
-
Johnny Chen authored
set ip to some stack offset) entries to the g_arm_opcodes table. llvm-svn: 124466
-
Douglas Gregor authored
might be queried in places where we absolutely require a valid location (e.g., for template instantiation). Fixes some major brokenness in the use of __is_convertible_to. llvm-svn: 124465
-
Jim Ingham authored
llvm-svn: 124464
-
Jim Ingham authored
The thread_info changes over the life of the thread, so you can't get it once and cache it, you have to fetch it every time you want to use it. llvm-svn: 124463
-
Evan Cheng authored
branches. PR8575, rdar://5134905, rdar://8911460. - Allow codegen tail duplication to dup small return blocks after register allocation is done. llvm-svn: 124462
-
Johnny Chen authored
The context being that it's a PC relative load. llvm-svn: 124460
-
Caroline Tice authored
If the user specfies one of stdin, stdout or stderr, don't automatically set the non-specified ones to /dev/null. llvm-svn: 124459
-
Evan Cheng authored
llvm-svn: 124458
-
Douglas Gregor authored
llvm-svn: 124456
-
Douglas Gregor authored
llvm-svn: 124455
-
Kevin Enderby authored
only .syntax unified is supported. llvm-svn: 124454
-
Douglas Gregor authored
non-class prvalues actually require the realization of a temporary. For everything else, we already have an lvalue (or class prvalue) in the subexpression. Note: we're missing some move elision in this case. I'll tackle that next. llvm-svn: 124453
-
Howard Hinnant authored
llvm-svn: 124452
-
Fariborz Jahanian authored
variable declaration of a struct declared type. // rdar://8918702 llvm-svn: 124451
-
Bob Wilson authored
llvm-svn: 124450
-
- Jan 27, 2011
-
-
Oscar Fuentes authored
location was stated with FFI_INCLUDE_DIR/FFI_LIBRARY_DIR. llvm-svn: 124449
-
Johnny Chen authored
PC relative immediate load into register, possibly followed by an add operation to adjust the SP. llvm-svn: 124448
-
David Greene authored
[AVX] Clean up the code to configure target lowering for AVX. Specify how to lower more/new operations. This is a prerequisite for adding additional AVX lowering. llvm-svn: 124447
-
Douglas Gregor authored
access control errors into SFINAE errors, so that the trait provides enough support to implement the C++0x std::is_convertible type trait. To get there, the SFINAETrap now knows how to set up a SFINAE context independent of any template instantiations or template argument deduction steps, and (separately) can set a Sema flag to translate access control errors into SFINAE errors. The latter can also be useful if we decide that access control errors during template argument deduction should cause substitution failure (rather than a hard error) as has been proposed for C++0x. llvm-svn: 124446
-