- Dec 31, 2009
-
-
Chris Lattner authored
by moving one method out of line and eliminating redundant checks from other methods. llvm-svn: 92337
-
Chris Lattner authored
things that occur in types. "operands" are things that occur in values. llvm-svn: 92322
-
- Dec 29, 2009
-
-
Benjamin Kramer authored
llvm-svn: 92264
-
Chris Lattner authored
llvm-svn: 92260
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 92256
-
Chris Lattner authored
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
-
- Dec 28, 2009
-
-
Chris Lattner authored
non-templated IRBuilderBase class. Move that large CreateGlobalString out of line, eliminating the need to #include GlobalVariable.h in IRBuilder.h llvm-svn: 92227
-
Chris Lattner authored
doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. llvm-svn: 92225
-
Chris Lattner authored
llvm-svn: 92211
-
- Dec 24, 2009
-
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 92084
-
- Dec 23, 2009
-
-
David Greene authored
Remove dump routine and the associated Debug.h from a header. Patch up other files to compensate. llvm-svn: 92075
-
Eric Christopher authored
lowering code and update testcases. llvm-svn: 91979
-
- Dec 22, 2009
-
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 91916
-
Bob Wilson authored
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
-
Chris Lattner authored
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
-
Chris Lattner authored
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
-
Eric Christopher authored
llvm-svn: 91875
-
Daniel Dunbar authored
llvm-svn: 91853
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 91849
-
- Dec 21, 2009
-
-
Chris Lattner authored
no functionality change. llvm-svn: 91848
-
Bob Wilson authored
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
-
Chris Lattner authored
the underlying PHI node insertion issue in SSAUpdate is fixed. llvm-svn: 91821
-
Chris Lattner authored
'GetValueInMiddleOfBlock' case, instead of inserting duplicates. A similar fix is almost certainly needed by the machine-level SSAUpdate implementation. llvm-svn: 91820
-
Chris Lattner authored
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
-
Chris Lattner authored
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
-
Chris Lattner authored
a bunch in lencode, ldecod, spass, 176.gcc, 252.eon, among others. It is also the first part of PR5822 llvm-svn: 91811
-
- Dec 19, 2009
-
-
Douglas Gregor authored
llvm-svn: 91764
-
Chris Lattner authored
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
-
Bob Wilson authored
* 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
-
- Dec 18, 2009
-
-
Bob Wilson authored
bootstrap. This also replaces the WeakVH references that Chris objected to with normal Value references. llvm-svn: 91711
-
Eli Friedman authored
multiple uses. (The construct in question was found in gcc.) llvm-svn: 91675
-
Dan Gohman authored
llvm-svn: 91666
-
Dan Gohman authored
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
-
Dan Gohman authored
llvm-svn: 91653
-
Dan Gohman authored
llvm-svn: 91647
-
Dan Gohman authored
llvm-svn: 91645
-