- Feb 18, 2009
-
-
Dan Gohman authored
llvm-svn: 64888
-
Dan Gohman authored
are multiple IV's in a loop, some of them may under go signed or unsigned wrapping even if the IV that's used in the loop exit condition doesn't. Restrict sign-extension-elimination and zero-extension-elimination to only those that operate on the original loop-controlling IV. llvm-svn: 64866
-
Dan Gohman authored
llvm-svn: 64859
-
- Feb 17, 2009
-
-
Dan Gohman authored
llvm-svn: 64811
-
Dan Gohman authored
modified in a way that may effect the trip count calculation. Change IndVars to use this method when it rewrites pointer or floating-point induction variables instead of using a doInitialization method to sneak these changes in before ScalarEvolution has a chance to see the loop. This eliminates the need for LoopPass to depend on ScalarEvolution. llvm-svn: 64810
-
Chris Lattner authored
eliminate all the extensions and all but the one required truncate from the testcase, but the or/and/shift stuff still isn't zapped. llvm-svn: 64809
-
Dan Gohman authored
llvm-svn: 64784
-
Dan Gohman authored
llvm-svn: 64766
-
Evan Cheng authored
llvm-svn: 64703
-
Dan Gohman authored
llvm-svn: 64702
-
Dan Gohman authored
of an alloca or global variable. llvm-svn: 64693
-
- Feb 16, 2009
-
-
Dan Gohman authored
been written for is no longer relevant with the elimination of signed and unsigned types. llvm-svn: 64625
-
Dan Gohman authored
Enhance instcombine to use the preferred field of GetOrEnforceKnownAlignment in more cases, so that regular IR operations are optimized in the same way that the intrinsics currently are. llvm-svn: 64623
-
- Feb 15, 2009
-
-
Nick Lewycky authored
when I was looking at functions used by python. Highlights include, better largefile support (64-bit file sizes on 32-bit systems), fputs string is nocapture, popen/pclose added (popen being noalias return), modf and frexp and friends. Also added some missing 'break' statements and combined identical sections. llvm-svn: 64615
-
Evan Cheng authored
Fix pr3571: If stride is a value defined by an instruction, make sure it dominates the loop preheader. When IV users are strength reduced, the stride is inserted into the preheader. It could create a use before def situation. llvm-svn: 64579
-
Evan Cheng authored
llvm-svn: 64575
-
- Feb 14, 2009
-
-
Dan Gohman authored
- Test for signed and unsigned wrapping conditions, instead of just testing for non-negative induction ranges. - Handle loops with GT comparisons, in addition to LT comparisons. - Support more cases of induction variables that don't start at 0. llvm-svn: 64532
-
Dan Gohman authored
llvm-svn: 64531
-
Dan Gohman authored
No functionality change. llvm-svn: 64530
-
- Feb 13, 2009
-
-
Dan Gohman authored
printing getName(), so that unnamed values are printed correctly. llvm-svn: 64468
-
Dan Gohman authored
about the code it describes, but at least now the comment is right. llvm-svn: 64465
-
Nick Lewycky authored
llvm-svn: 64460
-
Nick Lewycky authored
mark the first argument nocapture if endptr=NULL for each particular call. llvm-svn: 64453
-
Dan Gohman authored
addrec in a different loop to check the value being added to the accumulated Start value, not the Start value before it has the new value added to it. This prevents LSR from going crazy on the included testcase. Dale, please review. llvm-svn: 64440
-
Dan Gohman authored
after sorting by stride value. This prevents it from missing IV reuse opportunities in a host-sensitive manner. llvm-svn: 64415
-
- Feb 12, 2009
-
-
Dan Gohman authored
loop induction on LP64 targets. When the induction variable is used in addressing, IndVars now is usually able to inserst a 64-bit induction variable and eliminates the sign-extending cast. This is also useful for code using C "short" types for induction variables on targets with 32-bit addressing. Inserting a wider induction variable is easy; the tricky part is determining when trunc(sext(i)) expressions are no-ops. This requires range analysis of the loop trip count. A common case is when the original loop iteration starts at 0 and exits when the induction variable is signed-less-than a fixed value; this case is now handled. This replaces IndVarSimplify's OptimizeCanonicalIVType. It was doing the same optimization, but it was limited to loops with constant trip counts, because it was running after the loop rewrite, and the information about the original induction variable is lost by that point. Rename ScalarEvolution's executesAtLeastOnce to isLoopGuardedByCond, generalize it to be able to test for ICMP_NE conditions, and move it to be a public function so that IndVars can use it. llvm-svn: 64407
-
Dan Gohman authored
when the loop has exactly one exit, and make use of it in LoopIndexSplit. llvm-svn: 64388
-
Dan Gohman authored
llvm-svn: 64376
-
Chris Lattner authored
llvm-svn: 64363
-
Chris Lattner authored
forget about already inserted expressions. llvm-svn: 64362
-
Nick Lewycky authored
llvm-svn: 64352
-
- Feb 11, 2009
-
-
Nate Begeman authored
the two non-mask arguments to a shufflevector must be the same width, but they do not have to be the same width as the result value. llvm-svn: 64335
-
- Feb 10, 2009
-
-
Devang Patel authored
llvm-svn: 64226
-
Devang Patel authored
llvm-svn: 64207
-
- Feb 09, 2009
-
-
Dale Johannesen authored
llvm-svn: 64177
-
- Feb 08, 2009
-
-
Bill Wendling authored
llvm-svn: 64065
-
Bill Wendling authored
llvm-svn: 64062
-
- Feb 07, 2009
-
-
Mon P Wang authored
changes the address space of the pointer. llvm-svn: 64035
-
Mike Stump authored
llvm-svn: 64003
-
- Feb 06, 2009
-
-
Devang Patel authored
llvm-svn: 63923
-