| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
InstructionSimplify.cpp. Other fixups as needed.
Part of rdar://10500969
llvm-svn: 145559
|
|
|
|
|
|
|
| |
Optimize chained bitcasts of the form A->B->A.
Undo r138722 and change isEliminableCastPair to allow this case.
llvm-svn: 138756
|
|
|
|
| |
llvm-svn: 138722
|
|
|
|
| |
llvm-svn: 138469
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 20a05be15ea5271ab6185b83200fa88263362400. (svn rev 138340)
Conflicts:
test/Transforms/InstCombine/bitcast.ll
llvm-svn: 138366
|
|
|
|
|
|
|
| |
1. Cleanup the tests in ConstantFolding.cpp
2. Implement isAllOnes for Constant, ConstantFP, ConstantVector
llvm-svn: 138340
|
|
|
|
| |
llvm-svn: 138206
|
|
|
|
| |
llvm-svn: 135904
|
|
|
|
|
|
| |
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.
llvm-svn: 135673
|
|
|
|
| |
llvm-svn: 135478
|
|
|
|
| |
llvm-svn: 135477
|
|
|
|
| |
llvm-svn: 135375
|
|
|
|
| |
llvm-svn: 135040
|
|
|
|
|
|
|
|
| |
This reverts commit e8e00f5efb4a22238f2407bf813de4606f30c5aa.
The cmake build on OS X is still broken.
llvm-svn: 133718
|
|
|
|
|
|
| |
It broke the build worse.
llvm-svn: 133716
|
|
|
|
| |
llvm-svn: 133714
|
|
|
|
|
|
|
|
| |
It has only one user. This eliminates the last include of
config.h from the public headers -- ideally, config.h
shouldn't even be installed by `make install` anymore.
llvm-svn: 133713
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
all over the place in different styles and variants. Standardize on two
preferred entrypoints: one that takes a StructType and ArrayRef, and one that
takes StructType and varargs.
In cases where there isn't a struct type convenient, we now add a
ConstantStruct::getAnon method (whose name will make more sense after a few
more patches land).
It would be "really really nice" if the ConstantStruct::get and
ConstantVector::get methods didn't make temporary std::vectors.
llvm-svn: 133412
|
|
|
|
|
|
| |
C99 runtimes don't have exp2).
llvm-svn: 131872
|
|
|
|
| |
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
|