| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
- The only meat here is in Value.{h,cpp} the rest is essential 'const
std::string &' -> 'const Twine &'.
llvm-svn: 77048
|
| |
|
|
| |
llvm-svn: 77045
|
| |
|
|
| |
llvm-svn: 77044
|
| |
|
|
| |
llvm-svn: 77039
|
| |
|
|
| |
llvm-svn: 77033
|
| |
|
|
|
|
| |
getAnalysisIfAvailable<TargetData>().
llvm-svn: 77028
|
| |
|
|
|
|
|
|
|
|
| |
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
llvm-svn: 77019
|
| |
|
|
|
|
| |
thanks to contexts-on-types. More to come.
llvm-svn: 77011
|
| |
|
|
| |
llvm-svn: 77009
|
| |
|
|
| |
llvm-svn: 76988
|
| |
|
|
|
|
| |
instead of getAnalysis<TargetData>().
llvm-svn: 76982
|
| |
|
|
|
|
| |
LiveInterval, etc to raw_ostream.
llvm-svn: 76965
|
| |
|
|
| |
llvm-svn: 76962
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Yay for '-'s and simplifications!
- I kept StringMap::GetOrCreateValue for compatibility purposes, this can
eventually go away. Likewise the StringMapEntry Create functions still follow
the old style.
- NIFC.
llvm-svn: 76888
|
| |
|
|
|
|
| |
simplify it.
llvm-svn: 76866
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
also apply to vectors. This allows us to compile this:
#include <emmintrin.h>
__m128i a(__m128 a, __m128 b) { return a==a & b==b; }
__m128i b(__m128 a, __m128 b) { return a!=a | b!=b; }
to:
_a:
cmpordps %xmm1, %xmm0
ret
_b:
cmpunordps %xmm1, %xmm0
ret
with clang instead of to a ton of horrible code.
llvm-svn: 76863
|
| |
|
|
|
|
| |
no functionality change.
llvm-svn: 76859
|
| |
|
|
| |
llvm-svn: 76782
|
| |
|
|
|
|
|
|
| |
functions with a single use; eliminating the single use may eliminate
the function from the current module, but usually doesn't eliminate
it from the final program.
llvm-svn: 76730
|
| |
|
|
| |
llvm-svn: 76702
|
| |
|
|
|
|
| |
getAnalysisIfAvailable<TargetData>.
llvm-svn: 76676
|
| |
|
|
| |
llvm-svn: 76598
|
| |
|
|
| |
llvm-svn: 76595
|
| |
|
|
| |
llvm-svn: 76533
|
| |
|
|
| |
llvm-svn: 76442
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Getelementptrs that are defined to wrap are virtually useless to
optimization, and getelementptrs that are undefined on any kind
of overflow are too restrictive -- it's difficult to ensure that
all intermediate addresses are within bounds. I'm going to take
a different approach.
Remove a few optimizations that depended on this flag.
llvm-svn: 76437
|
| |
|
|
|
|
| |
doesn't cause ".no_dead_strip" to be emitted on darwin.
llvm-svn: 76399
|
| |
|
|
|
|
|
|
|
| |
"private" symbols which the assember shouldn't strip, but which the linker may
remove after evaluation. This is mostly useful for Objective-C metadata.
This is plumbing, so we don't have a use of it yet. More to come, etc.
llvm-svn: 76385
|
| |
|
|
|
|
|
|
|
|
| |
insertelement/extractelement.
I'm not entirely sure this is precisely what we want to do: should we
prefer bitcast(insertelement) or insertelement(bitcast)? Similarly. should we
prefer extractelement(bitcast) or bitcast(extractelement)?
llvm-svn: 76345
|
| |
|
|
|
|
| |
way (bitcast -> insert/extractelement).
llvm-svn: 76325
|
| |
|
|
| |
llvm-svn: 76324
|
| |
|
|
|
|
| |
sign bit set.
llvm-svn: 76304
|
| |
|
|
| |
llvm-svn: 76302
|
| |
|
|
| |
llvm-svn: 76301
|
| |
|
|
|
|
|
|
|
| |
bitcasts.
It would also be possible to canonicalize the other way; does anyone
have a preference?
llvm-svn: 76300
|
| |
|
|
|
|
| |
where int is 32 bits.
llvm-svn: 76293
|
| |
|
|
|
|
|
|
| |
all values belonging to the intersection will belong to the resulting range.
The former was inconsistent about that point (either way is fine, just pick
one.) This is part of PR4545.
llvm-svn: 76289
|
| |
|
|
|
|
|
| |
which cannot be folded even if they have constant operands. Significantly
helps if_spppsubr.c attached to PR4573.
llvm-svn: 76285
|
| |
|
|
| |
llvm-svn: 76284
|
| |
|
|
|
|
|
| |
ConstantExpr and Instruction. This involves duplicating some code
between GetElementPtrInst and GEPOperator, but it's not a lot.
llvm-svn: 76265
|
| |
|
|
|
|
|
|
| |
GEPOperator's hasNoPointer0verflow(), and make a few places in instcombine
that create GEPs that may overflow clear the NoOverflow value. Among
other things, this partially addresses PR2831.
llvm-svn: 76252
|
| |
|
|
| |
llvm-svn: 76249
|
| |
|
|
|
|
|
|
|
| |
in a convenient manner, factoring out some common code from
InstructionCombining and ValueTracking. Move the contents of
BinaryOperators.h into Operator.h and use Operator to generalize them
to support ConstantExprs as well as Instructions.
llvm-svn: 76232
|
| |
|
|
| |
llvm-svn: 76184
|
| |
|
|
|
|
|
|
|
|
| |
isSafeToSpeculativelyExecute. The new method is a bit closer to what
the callers actually care about in that it rejects more things callers
don't want. It also adds more precise handling for integer
division, and unifies code for analyzing the legality of a speculative
load.
llvm-svn: 76150
|
| |
|
|
|
|
|
|
| |
number of issues in
our current context-passing stuff, which is also fixed here
llvm-svn: 76089
|
| |
|
|
|
|
| |
AllocaInst and MallocInst.
llvm-svn: 75863
|
| |
|
|
|
|
| |
using it.
llvm-svn: 75852
|
| |
|
|
|
|
|
| |
operands; it's possible to end up with a constant-foldable operand to
most instructions, even those which can't trap.
llvm-svn: 75845
|
| |
|
|
| |
llvm-svn: 75723
|