Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Teach instcombine to respect and preserve inbounds. Add inbounds | Dan Gohman | 2009-07-28 | 1 | -21/+53 |
| | | | | | | to a few tests where it is required for the expected transformation. llvm-svn: 77290 | ||||
* | Fix a small little typo. | Mike Stump | 2009-07-28 | 1 | -1/+1 |
| | | | | llvm-svn: 77289 | ||||
* | Replace dyn_castGetElementPtr with dyn_cast<GEPOperator>. | Dan Gohman | 2009-07-28 | 1 | -15/+5 |
| | | | | llvm-svn: 77286 | ||||
* | Grab the LLVMContext and parent Module of SI ahead of the | Dan Gohman | 2009-07-28 | 1 | -3/+4 |
| | | | | | | | point where SI can get deleted. This fixes a use of free'd memory. This fixes Externals/Povray. llvm-svn: 77285 | ||||
* | Fix a release-asserts warning. Debug functions should be marked used, | Mike Stump | 2009-07-27 | 1 | -0/+2 |
| | | | | | | | if there are no other uses. If people don't need this routine anymore, if should be deleted. llvm-svn: 77274 | ||||
* | Avoid build warnings. | Mike Stump | 2009-07-27 | 2 | -0/+2 |
| | | | | llvm-svn: 77271 | ||||
* | Move ConstantStruct back to 2.5 API. | Owen Anderson | 2009-07-27 | 2 | -3/+3 |
| | | | | llvm-svn: 77266 | ||||
* | Move ConstantFP construction back to the 2.5-ish API. | Owen Anderson | 2009-07-27 | 3 | -9/+7 |
| | | | | llvm-svn: 77247 | ||||
* | Do not seed mstadata into the value map. | Devang Patel | 2009-07-27 | 1 | -25/+4 |
| | | | | llvm-svn: 77208 | ||||
* | Remove Value::getName{Start,End}, the last of the old Name APIs. | Daniel Dunbar | 2009-07-26 | 10 | -39/+38 |
| | | | | llvm-svn: 77152 | ||||
* | Remove Value::getNameLen | Daniel Dunbar | 2009-07-26 | 1 | -7/+6 |
| | | | | llvm-svn: 77148 | ||||
* | Eliminate some uses of DOUT, cerr, and getNameStart(). | Daniel Dunbar | 2009-07-26 | 3 | -217/+217 |
| | | | | llvm-svn: 77145 | ||||
* | Remove Value::{isName, getNameRef}. | Daniel Dunbar | 2009-07-25 | 2 | -2/+2 |
| | | | | | | Also, change MDString to use a StringRef. llvm-svn: 77098 | ||||
* | Initial update to VMCore to use Twines for string arguments. | Daniel Dunbar | 2009-07-25 | 2 | -3/+6 |
| | | | | | | | - The only meat here is in Value.{h,cpp} the rest is essential 'const std::string &' -> 'const Twine &'. llvm-svn: 77048 | ||||
* | Fix 80-col violations. | Eric Christopher | 2009-07-25 | 1 | -5/+8 |
| | | | | llvm-svn: 77045 | ||||
* | Move ExtractElementInst to ::Create instead of new. Update all uses. | Eric Christopher | 2009-07-25 | 2 | -9/+9 |
| | | | | llvm-svn: 77044 | ||||
* | Convert a few more things to use raw_ostream. | Dan Gohman | 2009-07-25 | 1 | -14/+14 |
| | | | | llvm-svn: 77039 | ||||
* | Convert a few more uses of llvm/Support/Streams.h to raw_ostream. | Dan Gohman | 2009-07-25 | 3 | -23/+17 |
| | | | | llvm-svn: 77033 | ||||
* | Make AliasAnalysis and related classes use | Dan Gohman | 2009-07-25 | 2 | -2/+2 |
| | | | | | | getAnalysisIfAvailable<TargetData>(). llvm-svn: 77028 | ||||
* | More migration to raw_ostream, the water has dried up around the iostream hole. | Daniel Dunbar | 2009-07-25 | 17 | -83/+107 |
| | | | | | | | | | | - 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 | ||||
* | Revert the ConstantInt constructors back to their 2.5 forms where possible, ↵ | Owen Anderson | 2009-07-24 | 22 | -270/+268 |
| | | | | | | thanks to contexts-on-types. More to come. llvm-svn: 77011 | ||||
* | AliasAnalysis wants sizes in address-units, not bits. | Dan Gohman | 2009-07-24 | 1 | -1/+1 |
| | | | | llvm-svn: 77009 | ||||
* | Fix this condition I accidentally inverted. | Dan Gohman | 2009-07-24 | 1 | -1/+1 |
| | | | | llvm-svn: 76988 | ||||
* | Convert several more passes to use getAnalysisIfAvailable<TargetData>() | Dan Gohman | 2009-07-24 | 4 | -30/+31 |
| | | | | | | instead of getAnalysis<TargetData>(). llvm-svn: 76982 | ||||
* | Move more to raw_ostream, provide support for writing MachineBasicBlock, | Daniel Dunbar | 2009-07-24 | 1 | -3/+6 |
| | | | | | | LiveInterval, etc to raw_ostream. llvm-svn: 76965 | ||||
* | Switch to getNameStr(). | Daniel Dunbar | 2009-07-24 | 2 | -5/+5 |
| | | | | llvm-svn: 76962 | ||||
* | Convert StringMap to using StringRef for its APIs. | Daniel Dunbar | 2009-07-23 | 1 | -1/+1 |
| | | | | | | | | | | | | - 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 | ||||
* | refactor a blob of code out to a new 'FoldOrOfFCmps' function and | Chris Lattner | 2009-07-23 | 1 | -67/+70 |
| | | | | | | simplify it. llvm-svn: 76866 | ||||
* | Make some existing optimizations that would only trigger on scalars | Chris Lattner | 2009-07-23 | 1 | -2/+20 |
| | | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | refactor a bunch of code out into a helper function, | Chris Lattner | 2009-07-23 | 1 | -63/+73 |
| | | | | | | no functionality change. llvm-svn: 76859 | ||||
* | Remove unnecessary store to temporary std::string. | Daniel Dunbar | 2009-07-22 | 1 | -3/+4 |
| | | | | llvm-svn: 76782 | ||||
* | Don't give a massive inlining cost bonus to available_externally | Eli Friedman | 2009-07-22 | 1 | -2/+1 |
| | | | | | | | | 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 | ||||
* | Get rid of the Pass+Context magic. | Owen Anderson | 2009-07-22 | 59 | -460/+514 |
| | | | | llvm-svn: 76702 | ||||
* | Convert instcombine from using using getAnalysis<TargetData> to | Dan Gohman | 2009-07-21 | 1 | -46/+62 |
| | | | | | | getAnalysisIfAvailable<TargetData>. llvm-svn: 76676 | ||||
* | Rename getConstantInt{True|False} to get{True|False} at Chris' behest. | Owen Anderson | 2009-07-21 | 7 | -107/+107 |
| | | | | llvm-svn: 76598 | ||||
* | Update CMake files. | Ted Kremenek | 2009-07-21 | 2 | -5/+6 |
| | | | | llvm-svn: 76595 | ||||
* | Move a bit more state over to the LLVMContext. | Owen Anderson | 2009-07-21 | 1 | -14/+17 |
| | | | | llvm-svn: 76533 | ||||
* | use ExpandInlineAsm on TargetLowering instead of TargetAsmInfo. | Chris Lattner | 2009-07-20 | 1 | -14/+10 |
| | | | | llvm-svn: 76442 | ||||
* | Revert the addition of hasNoPointerOverflow to GEPOperator. | Dan Gohman | 2009-07-20 | 1 | -84/+1 |
| | | | | | | | | | | | | 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 | ||||
* | implement a new magic global "llvm.compiler.used" which is like llvm.used, but | Chris Lattner | 2009-07-20 | 2 | -21/+18 |
| | | | | | | doesn't cause ".no_dead_strip" to be emitted on darwin. llvm-svn: 76399 | ||||
* | Add plumbing for the `linker_private' linkage type. This type is meant for | Bill Wendling | 2009-07-20 | 1 | -0/+1 |
| | | | | | | | | | "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 | ||||
* | Canonicalize bitcasts between types like <1 x i64> and i64 to | Eli Friedman | 2009-07-18 | 1 | -0/+24 |
| | | | | | | | | | | 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 | ||||
* | Back out 76300; apparently the preference is to canonicalize the other | Eli Friedman | 2009-07-18 | 1 | -16/+6 |
| | | | | | | way (bitcast -> insert/extractelement). llvm-svn: 76325 | ||||
* | add a fixme | Chris Lattner | 2009-07-18 | 1 | -0/+5 |
| | | | | llvm-svn: 76324 | ||||
* | Add combine: X sdiv (1 << Y) -> X udiv (1 << Y) when X doesn't have the | Eli Friedman | 2009-07-18 | 1 | -4/+15 |
| | | | | | | sign bit set. llvm-svn: 76304 | ||||
* | Remove no-op check. | Eli Friedman | 2009-07-18 | 1 | -2/+1 |
| | | | | llvm-svn: 76302 | ||||
* | Remove dead check. | Eli Friedman | 2009-07-18 | 1 | -3/+1 |
| | | | | llvm-svn: 76301 | ||||
* | Canonicalize insert/extractelement from single-element vectors into | Eli Friedman | 2009-07-18 | 1 | -6/+16 |
| | | | | | | | | | bitcasts. It would also be possible to canonicalize the other way; does anyone have a preference? llvm-svn: 76300 | ||||
* | Fix simplifylibcalls memset recognition to work on 64-bit platforms | Eli Friedman | 2009-07-18 | 1 | -2/+2 |
| | | | | | | where int is 32 bits. llvm-svn: 76293 | ||||
* | Replace intersectWith with maximalIntersectWith. The latter guarantees that | Nick Lewycky | 2009-07-18 | 1 | -10/+10 |
| | | | | | | | | 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 |