| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
and use this to simplify more code.
llvm-svn: 75722
|
|
|
|
| |
llvm-svn: 75703
|
|
|
|
| |
llvm-svn: 75642
|
|
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
|
|
|
|
|
|
| |
This results in the pass manager running IVUsers only once for
indvars, instead of twice.
llvm-svn: 75633
|
|
|
|
| |
llvm-svn: 75586
|
|
|
|
|
|
| |
function.
llvm-svn: 75584
|
|
|
|
|
|
| |
block has a single unique exiting block.
llvm-svn: 75579
|
|
|
|
|
|
| |
xor R, R is a common and valid idiom for zeroing a register, for example.
llvm-svn: 75571
|
|
|
|
| |
llvm-svn: 75539
|
|
|
|
|
|
|
|
| |
(I think it's reasonably clear that we want to have a canonical form for
constructs like this; if anyone thinks that a select is not the best
canonical form, please tell me.)
llvm-svn: 75531
|
|
|
|
| |
llvm-svn: 75528
|
|
|
|
|
|
|
|
|
|
| |
using the Curiously Recurring Template Pattern with LoopBase.
This will help further refactoring, and future functionality for
Loop. Also, Headers can now foward-declare Loop, instead of pulling
in LoopInfo.h or doing tricks.
llvm-svn: 75519
|
|
|
|
|
|
|
|
| |
the changes are allowed by not calling this function for bitcasts.
The Instruction::AShr case is dead because
SimplifyDemandedInstructionBits handles that case.
llvm-svn: 75514
|
|
|
|
| |
llvm-svn: 75499
|
|
|
|
| |
llvm-svn: 75497
|
|
|
|
|
|
| |
bitcasts will always be eliminated anyway.
llvm-svn: 75495
|
|
|
|
|
|
|
|
|
| |
Constants.cpp and ConstantFold.cpp.
This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's
the only way I could figure out to make this process vaguely incremental.
llvm-svn: 75445
|
|
|
|
|
|
| |
InstCombiner::visitSelectInstWithICmp.
llvm-svn: 75409
|
|
|
|
| |
llvm-svn: 75393
|