- May 12, 2009
-
-
Dan Gohman authored
and generalize it so that it can be used by IndVarSimplify. Implement the base IndVarSimplify transformation code using IVUsers. This removes TestOrigIVForWrap and associated code, as ScalarEvolution now has enough builtin overflow detection and folding logic to handle all the same cases, and more. Run "opt -iv-users -analyze -disable-output" on your favorite loop for an example of what IVUsers does. This lets IndVarSimplify eliminate IV casts and compute trip counts in more cases. Also, this happens to finally fix the remaining testcases in PR1301. Now that IndVarSimplify is being more aggressive, it occasionally runs into the problem where ScalarEvolutionExpander's code for avoiding duplicate expansions makes it difficult to ensure that all expanded instructions dominate all the instructions that will use them. As a temporary measure, IndVarSimplify now uses a FixUsesBeforeDefs function to fix up instructions inserted by SCEVExpander. Fortunately, this code is contained, and can be easily removed once a more comprehensive solution is available. llvm-svn: 71535
-
Douglas Gregor authored
(with -E), we turn the PCH include into an implicit include of the file from which the PCH file was generated. llvm-svn: 71534
-
Dan Gohman authored
These values aren't analyzable, so they don't care if more information about the loop trip count can be had. Also, SCEVUnknown is used for a PHI while the PHI itself is being analyzed, so it needs to be left in the Scalars map. This fixes a variety of subtle issues. llvm-svn: 71533
-
Dan Gohman authored
return the correct value when the cast operand is all zeros. This ought to be pretty rare, because it would mean that the regular SCEV folding routines missed a case, though there are cases they might legitimately miss. Also, it's unlikely anything currently using GetMinTrailingZeros cares about this case. llvm-svn: 71532
-
Chris Lattner authored
llvm-svn: 71524
-
Ted Kremenek authored
llvm-svn: 71523
-
Evan Cheng authored
llvm-svn: 71520
-
Bill Wendling authored
blast it away. - Move InlineInfo bookkeeping to bookkeep the correct debug info object. llvm-svn: 71519
-
Chris Lattner authored
llvm-svn: 71518
-
Douglas Gregor authored
TemplateArgumentList. This avoids the need to pass around pointer/length pairs of template arguments lists, and will eventually make it easier to introduce member templates and variadic templates. llvm-svn: 71517
-
Ted Kremenek authored
BugReport::getEndPath() - Only add a Stmt's range to the constructed PathDiagnosticEventPiece if the BugReport contained no explicit ranges. llvm-svn: 71516
-
Anders Carlsson authored
Factor code that's common to EmitCXXMemberCallExpr and EmitCXXConstructorCall out into a EmitCXXMemberCall function. llvm-svn: 71514
-
Ted Kremenek authored
llvm-svn: 71504
-
Lang Hames authored
llvm-svn: 71495
-
Daniel Dunbar authored
llvm-svn: 71494
-
Daniel Dunbar authored
llvm-svn: 71492
-
Daniel Dunbar authored
spotted by Eli! llvm-svn: 71490
-
Anders Carlsson authored
llvm-svn: 71489
-
Ted Kremenek authored
When stripping element regions for invalidating region values, treat FieldRegions and ObjCIvarRegions as "base" regions in addition to VarRegions. llvm-svn: 71488
-
Chris Lattner authored
options that the driver swizzles. llvm-svn: 71487
-
Anders Carlsson authored
llvm-svn: 71486
-
Evan Cheng authored
Teach LSR to optimize more loop exit compares, i.e. change them to use postinc iv value. Previously LSR would only optimize those which are in the loop latch block. However, if LSR can prove it is safe (and profitable), it's now possible to change those not in the latch blocks to use postinc values. Also, if the compare is the only use, LSR would place the iv increment instruction before the compare instead in the latch. llvm-svn: 71485
-
Daniel Dunbar authored
llvm-svn: 71484
-
Anders Carlsson authored
llvm-svn: 71482
-
Anders Carlsson authored
llvm-svn: 71481
-
Ted Kremenek authored
EdgeBuilder: DeclStmts and BinaryOperators are not the enclosing location context when they are used as initialization code for loops. llvm-svn: 71480
-
- May 11, 2009
-
-
Mike Stump authored
llvm-svn: 71479
-
Dale Johannesen authored
sucessor info. llvm-svn: 71478
-
Ted Kremenek authored
EdgeBuilder::cleanUpLocation() should used the PathDiagnosticLocation constructor for a single point, not a range. llvm-svn: 71477
-
Ted Kremenek authored
llvm-svn: 71474
-
Evan Cheng authored
llvm-svn: 71472
-
Douglas Gregor authored
specialization" within a C++ template, and permit name lookup into the current instantiation. For example, given: template<typename T, typename U> struct X { typedef T type; X* x1; // current instantiation X<T, U> *x2; // current instantiation X<U, T> *x3; // not current instantiation ::X<type, U> *x4; // current instantiation X<typename X<type, U>::type, U>: *x5; // current instantiation }; llvm-svn: 71471
-
Ted Kremenek authored
BugReporter (extensive diagnostics): Add EdgeBuilder::cleanUpLocation for canonicalization locations and use this in both popLocation and rawAddEdge. llvm-svn: 71470
-
Ted Kremenek authored
llvm-svn: 71469
-
Jay Foad authored
llvm-svn: 71468
-
Fariborz Jahanian authored
message dispage API for all but a few messages. This is a runtime performance improvement and there is not meant to be a functional change. llvm-svn: 71467
-
Dan Gohman authored
llvm-svn: 71466
-
Ted Kremenek authored
llvm-svn: 71463
-
Daniel Dunbar authored
llvm-svn: 71461
-
Dan Gohman authored
llvm-svn: 71459
-