| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 92369
|
| |
|
|
|
|
| |
fix RemoveDeadBinaryOp to actually do something.
llvm-svn: 92368
|
| |
|
|
|
|
| |
instead of std::vector.
llvm-svn: 92366
|
| |
|
|
| |
llvm-svn: 92364
|
| |
|
|
|
|
| |
improve some comments, simplify a bit of code.
llvm-svn: 92363
|
| |
|
|
| |
llvm-svn: 92362
|
| |
|
|
|
|
| |
miscompilation, PR5458.
llvm-svn: 92354
|
| |
|
|
| |
llvm-svn: 92347
|
| |
|
|
| |
llvm-svn: 92346
|
| |
|
|
| |
llvm-svn: 92344
|
| |
|
|
| |
llvm-svn: 92343
|
| |
|
|
|
|
|
| |
by moving one method out of line and eliminating redundant checks
from other methods.
llvm-svn: 92337
|
| |
|
|
|
|
|
| |
things that occur in types. "operands" are things that occur
in values.
llvm-svn: 92322
|
| |
|
|
| |
llvm-svn: 92264
|
| |
|
|
| |
llvm-svn: 92260
|
| |
|
|
|
|
|
|
| |
getMDKindID/getMDKindNames methods to LLVMContext (and add
convenience methods to Module), eliminating MetadataContext.
Move the state that it maintains out to LLVMContext.
llvm-svn: 92259
|
| |
|
|
| |
llvm-svn: 92256
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I asked Devang to do back on Sep 27. Instead of going through the
MetadataContext class with methods like getMD() and getMDs(), just
ask the instruction directly for its metadata with getMetadata()
and getAllMetadata().
This includes a variety of other fixes and improvements: previously
all Value*'s were bloated because the HasMetadata bit was thrown into
value, adding a 9th bit to a byte. Now this is properly sunk down to
the Instruction class (the only place where it makes sense) and it
will be folded away somewhere soon.
This also fixes some confusion in getMDs and its clients about
whether the returned list is indexed by the MDID or densely packed.
This is now returned sorted and densely packed and the comments make
this clear.
This introduces a number of fixme's which I'll follow up on.
llvm-svn: 92235
|
| |
|
|
|
|
|
| |
non-templated IRBuilderBase class. Move that large CreateGlobalString
out of line, eliminating the need to #include GlobalVariable.h in IRBuilder.h
llvm-svn: 92227
|
| |
|
|
|
|
|
| |
doesn't exist already, eliminate registerMDKind. Tidy up a bunch
of random stuff.
llvm-svn: 92225
|
| |
|
|
| |
llvm-svn: 92211
|
| |
|
|
|
|
|
|
|
| |
SDISel. This optimization was causing simplifylibcalls to
introduce type-unsafe nastiness. This is the first step, I'll be
expanding the memcmp optimizations shortly, covering things that
we really really wouldn't want simplifylibcalls to do.
llvm-svn: 92098
|
| |
|
|
| |
llvm-svn: 92084
|
| |
|
|
|
|
| |
other files to compensate.
llvm-svn: 92075
|
| |
|
|
|
|
| |
lowering code and update testcases.
llvm-svn: 91979
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
load is needed when we have a small store into a large alloca (at which
point we get a load/insert/store sequence), but when you do a full-sized
store, this load ends up being dead.
This dead load is bad in really large nasty testcases where the load ends
up causing mem2reg to insert large chains of dependent phi nodes which only
ADCE can delete. Instead of doing this, just don't insert the dead load.
This fixes rdar://6864035
llvm-svn: 91917
|
| |
|
|
| |
llvm-svn: 91916
|
| |
|
|
|
|
|
|
| |
missing check that an array reference doesn't go past the end of the array,
and remove some redundant checks for in-bound array and vector references
that are no longer needed.
llvm-svn: 91897
|
| |
|
|
|
|
|
| |
by merging all returns in a function into a single one, but simplifycfg
currently likes to duplicate the return (an unfortunate choice!)
llvm-svn: 91890
|
| |
|
|
|
|
|
|
|
|
| |
result
instead of stored. This reduces memdep memory usage, and also eliminates a bunch of
weakvh's. This speeds up gvn on gcc.c-torture/20001226-1.c from 23.9s to 8.45s (2.8x)
on a different machine than earlier.
llvm-svn: 91885
|
| |
|
|
| |
llvm-svn: 91875
|
| |
|
|
| |
llvm-svn: 91853
|
| |
|
|
|
|
|
|
|
|
|
| |
load to avoid even messing around with SSAUpdate at all. In this case (which
is very common, we can just use the input value directly).
This speeds up GVN time on gcc.c-torture/20001226-1.c from 36.4s to 16.3s,
which still isn't great, but substantially better and this is a simple speedup
that applies to lots of different cases.
llvm-svn: 91851
|
| |
|
|
| |
llvm-svn: 91849
|
| |
|
|
|
|
| |
no functionality change.
llvm-svn: 91848
|
| |
|
|
|
|
|
|
| |
two-element arrays. After restructuring the SROA code, it was not safe to
do this without adding more checking. It is not clear that this special-case
has really been useful, and removing this simplifies the code quite a bit.
llvm-svn: 91828
|
| |
|
|
|
|
| |
the underlying PHI node insertion issue in SSAUpdate is fixed.
llvm-svn: 91821
|
| |
|
|
|
|
|
|
|
|
| |
'GetValueInMiddleOfBlock' case, instead of inserting
duplicates.
A similar fix is almost certainly needed by the machine-level
SSAUpdate implementation.
llvm-svn: 91820
|
| |
|
|
|
|
|
|
|
| |
implement some optimizations for MIN(MIN()) and MAX(MAX()) and
MIN(MAX()) etc. This substantially improves the code in PR5822 but
doesn't kick in much elsewhere. 2 max's were optimized in
pairlocalalign and one in smg2000.
llvm-svn: 91814
|
| |
|
|
|
|
|
|
|
|
|
| |
Use the presence of NSW/NUW to fold "icmp (x+cst), x" to a constant in
cases where it would otherwise be undefined behavior.
Surprisingly (to me at least), this triggers hundreds of the times in
a few benchmarks: lencode, ldecode, and 466.h264ref seem to *really*
like this.
llvm-svn: 91812
|
| |
|
|
|
|
|
| |
a bunch in lencode, ldecod, spass, 176.gcc, 252.eon, among others. It is
also the first part of PR5822
llvm-svn: 91811
|
| |
|
|
| |
llvm-svn: 91764
|
| |
|
|
|
|
|
|
| |
where instcombine would have to split a critical edge due to a
phi node of an invoke. Since instcombine can't change the CFG,
it has to bail out from doing the transformation.
llvm-svn: 91763
|
| |
|
|
|
|
|
|
|
|
| |
* change FindElementAndOffset to return a uint64_t instead of unsigned, and
to identify the type to be used for that result in a GEP instruction.
* move "isa<ConstantInt>" to be first in conditional.
* replace some dyn_casts with casts.
* add a comment about handling mem intrinsics.
llvm-svn: 91762
|
| |
|
|
|
|
|
| |
bootstrap. This also replaces the WeakVH references that Chris objected to
with normal Value references.
llvm-svn: 91711
|
| |
|
|
|
|
| |
multiple uses. (The construct in question was found in gcc.)
llvm-svn: 91675
|
| |
|
|
| |
llvm-svn: 91666
|
| |
|
|
|
|
|
|
| |
contains another loop, or an instruction. The loop form is
substantially more efficient on large loops than the typical
code it replaces.
llvm-svn: 91654
|
| |
|
|
| |
llvm-svn: 91653
|
| |
|
|
| |
llvm-svn: 91647
|