summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Teach instcombine to respect and preserve inbounds. Add inboundsDan Gohman2009-07-281-21/+53
| | | | | | to a few tests where it is required for the expected transformation. llvm-svn: 77290
* Fix a small little typo.Mike Stump2009-07-281-1/+1
| | | | llvm-svn: 77289
* Replace dyn_castGetElementPtr with dyn_cast<GEPOperator>.Dan Gohman2009-07-281-15/+5
| | | | llvm-svn: 77286
* Grab the LLVMContext and parent Module of SI ahead of theDan Gohman2009-07-281-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 Stump2009-07-271-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 Stump2009-07-272-0/+2
| | | | llvm-svn: 77271
* Move ConstantStruct back to 2.5 API.Owen Anderson2009-07-272-3/+3
| | | | llvm-svn: 77266
* Move ConstantFP construction back to the 2.5-ish API.Owen Anderson2009-07-273-9/+7
| | | | llvm-svn: 77247
* Do not seed mstadata into the value map.Devang Patel2009-07-271-25/+4
| | | | llvm-svn: 77208
* Remove Value::getName{Start,End}, the last of the old Name APIs.Daniel Dunbar2009-07-2610-39/+38
| | | | llvm-svn: 77152
* Remove Value::getNameLenDaniel Dunbar2009-07-261-7/+6
| | | | llvm-svn: 77148
* Eliminate some uses of DOUT, cerr, and getNameStart().Daniel Dunbar2009-07-263-217/+217
| | | | llvm-svn: 77145
* Remove Value::{isName, getNameRef}.Daniel Dunbar2009-07-252-2/+2
| | | | | | Also, change MDString to use a StringRef. llvm-svn: 77098
* Initial update to VMCore to use Twines for string arguments.Daniel Dunbar2009-07-252-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 Christopher2009-07-251-5/+8
| | | | llvm-svn: 77045
* Move ExtractElementInst to ::Create instead of new. Update all uses.Eric Christopher2009-07-252-9/+9
| | | | llvm-svn: 77044
* Convert a few more things to use raw_ostream.Dan Gohman2009-07-251-14/+14
| | | | llvm-svn: 77039
* Convert a few more uses of llvm/Support/Streams.h to raw_ostream.Dan Gohman2009-07-253-23/+17
| | | | llvm-svn: 77033
* Make AliasAnalysis and related classes useDan Gohman2009-07-252-2/+2
| | | | | | getAnalysisIfAvailable<TargetData>(). llvm-svn: 77028
* More migration to raw_ostream, the water has dried up around the iostream hole.Daniel Dunbar2009-07-2517-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 Anderson2009-07-2422-270/+268
| | | | | | thanks to contexts-on-types. More to come. llvm-svn: 77011
* AliasAnalysis wants sizes in address-units, not bits.Dan Gohman2009-07-241-1/+1
| | | | llvm-svn: 77009
* Fix this condition I accidentally inverted.Dan Gohman2009-07-241-1/+1
| | | | llvm-svn: 76988
* Convert several more passes to use getAnalysisIfAvailable<TargetData>()Dan Gohman2009-07-244-30/+31
| | | | | | instead of getAnalysis<TargetData>(). llvm-svn: 76982
* Move more to raw_ostream, provide support for writing MachineBasicBlock,Daniel Dunbar2009-07-241-3/+6
| | | | | | LiveInterval, etc to raw_ostream. llvm-svn: 76965
* Switch to getNameStr().Daniel Dunbar2009-07-242-5/+5
| | | | llvm-svn: 76962
* Convert StringMap to using StringRef for its APIs.Daniel Dunbar2009-07-231-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 andChris Lattner2009-07-231-67/+70
| | | | | | simplify it. llvm-svn: 76866
* Make some existing optimizations that would only trigger on scalarsChris Lattner2009-07-231-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 Lattner2009-07-231-63/+73
| | | | | | no functionality change. llvm-svn: 76859
* Remove unnecessary store to temporary std::string.Daniel Dunbar2009-07-221-3/+4
| | | | llvm-svn: 76782
* Don't give a massive inlining cost bonus to available_externally Eli Friedman2009-07-221-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 Anderson2009-07-2259-460/+514
| | | | llvm-svn: 76702
* Convert instcombine from using using getAnalysis<TargetData> toDan Gohman2009-07-211-46/+62
| | | | | | getAnalysisIfAvailable<TargetData>. llvm-svn: 76676
* Rename getConstantInt{True|False} to get{True|False} at Chris' behest.Owen Anderson2009-07-217-107/+107
| | | | llvm-svn: 76598
* Update CMake files.Ted Kremenek2009-07-212-5/+6
| | | | llvm-svn: 76595
* Move a bit more state over to the LLVMContext.Owen Anderson2009-07-211-14/+17
| | | | llvm-svn: 76533
* use ExpandInlineAsm on TargetLowering instead of TargetAsmInfo.Chris Lattner2009-07-201-14/+10
| | | | llvm-svn: 76442
* Revert the addition of hasNoPointerOverflow to GEPOperator.Dan Gohman2009-07-201-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, butChris Lattner2009-07-202-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 forBill Wendling2009-07-201-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 Friedman2009-07-181-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 Friedman2009-07-181-16/+6
| | | | | | way (bitcast -> insert/extractelement). llvm-svn: 76325
* add a fixmeChris Lattner2009-07-181-0/+5
| | | | llvm-svn: 76324
* Add combine: X sdiv (1 << Y) -> X udiv (1 << Y) when X doesn't have the Eli Friedman2009-07-181-4/+15
| | | | | | sign bit set. llvm-svn: 76304
* Remove no-op check.Eli Friedman2009-07-181-2/+1
| | | | llvm-svn: 76302
* Remove dead check.Eli Friedman2009-07-181-3/+1
| | | | llvm-svn: 76301
* Canonicalize insert/extractelement from single-element vectors into Eli Friedman2009-07-181-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 Friedman2009-07-181-2/+2
| | | | | | where int is 32 bits. llvm-svn: 76293
* Replace intersectWith with maximalIntersectWith. The latter guarantees thatNick Lewycky2009-07-181-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
OpenPOWER on IntegriCloud