|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 129271 | 
| | 
| 
| 
| 
| 
| | identical to the smul.with.overflow() code.
llvm-svn: 128379 | 
| | 
| 
| 
| | llvm-svn: 125537 | 
| | 
| 
| 
| 
| 
| | builders unhappy.
llvm-svn: 125504 | 
| | 
| 
| 
| 
| 
| | idiom.  Change various clients to simplify their code.
llvm-svn: 125487 | 
| | 
| 
| 
| | llvm-svn: 124990 | 
| | 
| 
| 
| 
| 
| | resulting pointer type both have the same size.
llvm-svn: 124987 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | with BasicAA's DecomposeGEPExpression, which recently began
using a TargetData. This fixes PR8968, though the testcase
is awkward to reduce.
Also, update several off GetUnderlyingObject's users
which happen to have a TargetData handy to pass it in.
llvm-svn: 124134 | 
| | 
| 
| 
| | llvm-svn: 123562 | 
| | 
| 
| 
| 
| 
| 
| 
| | point values to their integer representation through the SSE intrinsic
calls. This is the last part of a README.txt entry for which I have real
world examples.
llvm-svn: 123206 | 
| | 
| 
| 
| 
| 
| 
| | IDs when available rather than using a mixture of IDs and textual name
comparisons.
llvm-svn: 123165 | 
| | 
| 
| 
| | llvm-svn: 122977 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | ret i64 ptrtoint (i8* getelementptr ([1000 x i8]* @X, i64 1, i64 sub (i64 0, i64 ptrtoint ([1000 x i8]* @X to i64))) to i64)
to "ret i64 1000".  This allows us to correctly compute the trip count
on a loop in PR8883, which occurs with std::fill on a char array.  This
allows us to transform it into a memset with a constant size.
llvm-svn: 122950 | 
| | 
| 
| 
| 
| 
| 
| | new gcc warning that complains on self-assignments and
self-initializations.
llvm-svn: 122458 | 
| | 
| 
| 
| 
| 
| 
| | function so that it can live in Analysis instead of
VMCore.
llvm-svn: 121885 | 
| | 
| 
| 
| 
| 
| 
| 
| | zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121120 | 
| | 
| 
| 
| | llvm-svn: 120316 | 
| | 
| 
| 
| | llvm-svn: 120298 | 
| | 
| 
| 
| 
| 
| 
| 
| | are constant.  There was in fact one exception to this (phi nodes) - so
remove that exception (InstructionSimplify handles this so there should
be no loss).
llvm-svn: 120015 | 
| | 
| 
| 
| | llvm-svn: 119941 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | zero sized elements.  This allows us to compile:
  #include <string>
  void foo() { std::string s; }
into an empty function.
llvm-svn: 119933 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | operands are the phi node itself or undef, then return undef.
This logic already existed at a higher level so in practice it
shouldn't make the slightest difference.  Note that this code
could be replaced by a call to PN->hasConstantValue().  However
since we bail out the moment we see a non-constant operand, it
is more efficient to have a specialized version of that logic.
llvm-svn: 119041 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | logic to use the new APInt methods.  Among other things this
implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold
which comes from "clang -ftrapv", originally brought to my attention from PR8221.
llvm-svn: 116457 | 
| | 
| 
| 
| 
| 
| 
| 
| | Usually we wouldn't do this anyway because llvm_fenv_testexcept would return an
exception, but we have seen some cases where neither errno nor fenv detect an
exception on arm-linux.
llvm-svn: 114893 | 
| | 
| 
| 
| | llvm-svn: 114219 | 
| | 
| 
| 
| | llvm-svn: 114196 | 
| | 
| 
| 
| 
| 
| 
| | so that it detects errors on platforms where libm doesn't set errno.
It's still subject to host libm details though.
llvm-svn: 114148 | 
| | 
| 
| 
| | llvm-svn: 108522 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | that was actually useful here.
Chris, please double check that this is the correct interpretation. I was
pretty sure, and ran it by Nick as well.
llvm-svn: 108129 | 
| | 
| 
| 
| | llvm-svn: 108113 | 
| | 
| 
| 
| | llvm-svn: 107767 | 
| | 
| 
| 
| | llvm-svn: 106279 | 
| | 
| 
| 
| 
| 
| 
| | Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.
llvm-svn: 101579 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | with a fix for self-hosting
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101465 | 
| | 
| 
| 
| | llvm-svn: 101434 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | with a fix
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101397 | 
| | 
| 
| 
| | llvm-svn: 101368 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101364 | 
| | 
| 
| 
| | llvm-svn: 101009 | 
| | 
| 
| 
| | llvm-svn: 98911 | 
| | 
| 
| 
| | llvm-svn: 98853 | 
| | 
| 
| 
| 
| 
| | the inner GEP is not a ConstantInt.
llvm-svn: 98359 | 
| | 
| 
| 
| | llvm-svn: 98178 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | getelementptr. Despite only doing so in the case where x is a known
array object and c can be converted to an index within range, this
could still be invalid if c is actually the address of an object
allocated outside of LLVM. Also, SCEVExpander, the original motivation
for this code, has since been improved to avoid inttoptr+ptroint in
more cases.
llvm-svn: 96950 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | operators.
The test difference is just due to the multiplication operands
being commuted (and thus requiring a more elaborate match). In
optimized code, that expression would be folded.
llvm-svn: 96816 | 
| | 
| 
| 
| | llvm-svn: 96808 | 
| | 
| 
| 
| | llvm-svn: 96432 | 
| | 
| 
| 
| 
| 
| 
| | and T->isPointerTy().  Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344 | 
| | 
| 
| 
| 
| 
| | isInteger, we now have isFloatTy and isIntegerTy.  Requested by Chris!
llvm-svn: 96223 | 
| | 
| 
| 
| | llvm-svn: 95582 |