| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
what gets printed. Be const-correct in PrintResults and uninline it too
llvm-svn: 47712
|
| |
|
|
| |
llvm-svn: 47598
|
| |
|
|
| |
llvm-svn: 47542
|
| |
|
|
| |
llvm-svn: 47437
|
| |
|
|
| |
llvm-svn: 47434
|
| |
|
|
| |
llvm-svn: 47433
|
| |
|
|
|
|
| |
annoying warnings.
llvm-svn: 47367
|
| |
|
|
| |
llvm-svn: 47361
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Parse reversed smax and umax as smin and umin and express them with negative
or binary-not SCEVs (which are really just subtract under the hood).
Parse 'xor %x, -1' as (-1 - %x).
Remove dead code (ConstantInt::get always returns a ConstantInt).
Don't use getIntegerSCEV(-1, Ty). The first value is an int, then it gets
passed into a uint64_t. Instead, create the -1 directly from
ConstantInt::getAllOnesValue().
llvm-svn: 47360
|
| |
|
|
| |
llvm-svn: 47328
|
| |
|
|
|
|
| |
ModRef pointers that alias their arguments as well. This fixes PR2057.
llvm-svn: 47317
|
| |
|
|
| |
llvm-svn: 47272
|
| |
|
|
|
|
|
|
| |
to explicitly check
that Object is an Argument before casting it to one.
llvm-svn: 47268
|
| |
|
|
| |
llvm-svn: 47263
|
| |
|
|
|
|
| |
cases that failed the first test.
llvm-svn: 47253
|
| |
|
|
| |
llvm-svn: 47252
|
| |
|
|
|
|
|
| |
If we see a memcpy of a pointer, make sure to check later
uses of the pointer as well.
llvm-svn: 47250
|
| |
|
|
|
|
|
|
|
| |
addresses.
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
|
| |
|
|
| |
llvm-svn: 47062
|
| |
|
|
| |
llvm-svn: 47061
|
| |
|
|
|
|
| |
bugs fixed. This now passes PPC bootstrap.
llvm-svn: 47026
|
| |
|
|
|
|
|
|
|
|
| |
variable (with step 1) and m is its final value. Then, the correct trip
count is SMAX(m,n)-n. Previously, we used SMAX(0,m-n), but m-n may
overflow and can't in general be interpreted as signed.
Patch by Nick Lewycky.
llvm-svn: 47007
|
| |
|
|
|
|
|
|
| |
to the RHS. This simple change allows to compute loop iteration count
for loops with condition similar to the one in the testcase (which seems
to be quite common).
llvm-svn: 46959
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
arbitrary iteration.
The patch:
1) changes SCEVSDivExpr into SCEVUDivExpr,
2) replaces PartialFact() function with BinomialCoefficient(); the
computations (essentially, the division) in BinomialCoefficient() are
performed with the apprioprate bitwidth necessary to avoid overflow;
unsigned division is used instead of the signed one.
Computations in BinomialCoefficient() require support from the code
generator for APInts. Currently, we use a hack rounding up the
neccessary bitwidth to the nearest power of 2. The hack is easy to turn
off in future.
One remaining issue: we assume the divisor of the binomial coefficient
formula can be computed accurately using 16 bits. It means we can handle
AddRecs of length up to 9. In future, we should use APInts to evaluate
the divisor.
Thanks to Nicholas for cooperation!
llvm-svn: 46955
|
| |
|
|
|
|
| |
before we reuse it.
llvm-svn: 46908
|
| |
|
|
|
|
| |
50 predecessors. Added command line option to play with this threshold.
llvm-svn: 46790
|
| |
|
|
| |
llvm-svn: 46738
|
| |
|
|
| |
llvm-svn: 46591
|
| |
|
|
|
|
|
|
| |
dereferencing the end
of one of its internal maps.
llvm-svn: 46541
|
| |
|
|
| |
llvm-svn: 46318
|
| |
|
|
|
|
|
| |
can't be aliased to other known objects. This allows us to know that byval
pointer args don't alias globals, etc.
llvm-svn: 46315
|
| |
|
|
| |
llvm-svn: 45485
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
| |
llvm-svn: 45415
|
| |
|
|
|
|
| |
to exceptions rather than variants for error handling in Ocaml.
llvm-svn: 45226
|
| |
|
|
| |
llvm-svn: 45034
|
| |
|
|
|
|
|
| |
Let: %q = GEP %p, X, ...
If %p is a GEP, we can chase baseptr further, only if X==0.
llvm-svn: 44999
|
| |
|
|
|
|
|
|
|
|
| |
and readnone for functions with bodies because it
broke llvm-gcc-4.2 bootstrap. It turns out that,
because of LLVM's array_ref hack, gcc was computing
pure/const attributes wrong (now fixed by turning
off the gcc ipa-pure-const pass).
llvm-svn: 44937
|
| |
|
|
|
|
| |
pointing this out and correcting the patch!
llvm-svn: 44907
|
| |
|
|
|
|
|
| |
Changes from me implementing different way of representing points-to anything.
Changes from me that improve slightly on LCD.
llvm-svn: 44895
|
| |
|
|
|
|
|
| |
of source/dest elements changes. This implements
test/Transforms/InstCombine/bitcast-vector-fold.ll
llvm-svn: 44855
|
| |
|
|
|
|
|
|
| |
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use
targetdata to validate that it is safe. While I'm in there, fix some const
correctness issues and generalize the interface to the "operand folder".
llvm-svn: 44817
|
| |
|
|
| |
llvm-svn: 44733
|
| |
|
|
|
|
|
|
| |
some (disabled) debugging code
to make such problems easier to diagnose in the future, written by Duncan Sands.
llvm-svn: 44695
|
| |
|
|
|
|
|
| |
not yet clear why, but in the meantime work around the
problem by making less use of readnone/readonly info.
llvm-svn: 44626
|
| |
|
|
|
|
|
|
|
| |
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
llvm-svn: 44544
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into alias analysis. This meant updating the API
which now has versions of the getModRefBehavior,
doesNotAccessMemory and onlyReadsMemory methods
which take a callsite parameter. These should be
used unless the callsite is not known, since in
general they can do a better job than the versions
that take a function. Also, users should no longer
call the version of getModRefBehavior that takes
both a function and a callsite. To reduce the
chance of misuse it is now protected.
llvm-svn: 44487
|
| |
|
|
| |
llvm-svn: 44460
|
| |
|
|
|
|
| |
use them.
llvm-svn: 44403
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.
llvm-svn: 44359
|