summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-0522-31/+31
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* Thread const correctness through a bunch of AliasAnalysis interfaces andDan Gohman2010-08-031-1/+1
| | | | | | | | | | | | eliminate several const_casts. Make CallSite implicitly convertible to ImmutableCallSite. Rename the getModRefBehavior for intrinsic IDs to getIntrinsicModRefBehavior to avoid overload ambiguity with CallSite, which happens to be implicitly convertible to bool. llvm-svn: 110155
* Prefix `next' iterator operation with `llvm::'.Oscar Fuentes2010-08-021-1/+1
| | | | | | | | Fixes potential ambiguity problems on VS 2010. Patch by nobled! llvm-svn: 110029
* Fix a -Wreorder warning.Daniel Dunbar2010-08-021-1/+1
| | | | llvm-svn: 110022
* Work in progress.Nick Lewycky2010-08-021-129/+164
| | | | | | | | Start cleaning up MergeFunctions to look more like the rest of LLVM. The primary change here is to move the methods responsible for comparison into the new FunctionComparator object. Some comments added. There's more to do. llvm-svn: 110021
* The BlockExtractorPass() constructor was not reading the BlockFile and that wasRafael Espindola2010-07-311-5/+3
| | | | | | | | | | | | | | exactly what bugpoint expected it to do. There was also only one user of BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and make BlockExtractorPass read BlockFile. This fixes bugpoint's block extraction. Nick, please review. llvm-svn: 109936
* simplify by using CallSite constructors; virtually eliminates CallSite::get ↵Gabor Greif2010-07-286-17/+16
| | | | | | from the tree llvm-svn: 109687
* mass elimination of reliance on automatic iterator dereferencingGabor Greif2010-07-221-1/+1
| | | | llvm-svn: 109103
* simplifyGabor Greif2010-07-221-3/+2
| | | | llvm-svn: 109101
* do not access arguments via low-level interface, do not multiply dereference ↵Gabor Greif2010-07-221-17/+19
| | | | | | use_iterators llvm-svn: 109100
* pass dereferenced iterator to dyn_castGabor Greif2010-07-221-1/+1
| | | | llvm-svn: 109099
* undo 80 column trespassing I causedGabor Greif2010-07-221-1/+2
| | | | llvm-svn: 109092
* Fix batch of converting RegisterPass<> to INTIALIZE_PASS().Owen Anderson2010-07-2120-46/+51
| | | | llvm-svn: 109045
* Make this code a little more readable.Dan Gohman2010-07-201-2/+4
| | | | llvm-svn: 108968
* Fix a typo.Dan Gohman2010-07-201-1/+1
| | | | llvm-svn: 108962
* Don't look up the "dbg" metadata kind by name.Dan Gohman2010-07-201-3/+2
| | | | llvm-svn: 108961
* Use getDebugLoc and setDebugLoc instead of getDbgMetadata and setDbgMetadata,Dan Gohman2010-07-201-4/+2
| | | | | | avoiding MDNode overhead. llvm-svn: 108909
* eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,Chris Lattner2010-07-161-1/+1
| | | | | | so there is no locking involved in type refinement. llvm-svn: 108553
* Arrays and vectors with different numbers of elements are not equivalent.Nick Lewycky2010-07-161-4/+10
| | | | llvm-svn: 108517
* This is a full sentence.Nick Lewycky2010-07-151-1/+1
| | | | llvm-svn: 108418
* Disable aliases on all platforms.Nick Lewycky2010-07-151-0/+5
| | | | llvm-svn: 108417
* Grammar.Eric Christopher2010-07-131-1/+1
| | | | llvm-svn: 108252
* cache result of operator*Gabor Greif2010-07-121-6/+9
| | | | llvm-svn: 108146
* cache result of operator*Gabor Greif2010-07-121-3/+4
| | | | llvm-svn: 108145
* cache result of operator*Gabor Greif2010-07-121-4/+6
| | | | llvm-svn: 108144
* cache results of operator*Gabor Greif2010-07-121-3/+5
| | | | llvm-svn: 108143
* cache dereferenced iteratorsGabor Greif2010-07-121-3/+3
| | | | llvm-svn: 108134
* make the prototypes for CreateMalloc and CreateFree more consistent. PatchChris Lattner2010-07-121-2/+2
| | | | | | by Hans Vandierendonck from PR7605 llvm-svn: 108116
* cache result of operator*Gabor Greif2010-07-091-6/+6
| | | | llvm-svn: 107990
* Rename "Release" builds as "Release+Asserts"; rename "Release-Asserts"Duncan Sands2010-07-071-1/+1
| | | | | | | | | | | | | builds to "Release". The default build is unchanged (optimization on, assertions on), however it is now called Release+Asserts. The intent is that future LLVM releases released via llvm.org will be Release builds in the new sense, i.e. will have assertions disabled (currently they have assertions enabled, for a more than 20% slowdown). This will bring them in line with MacOS releases, which ship with assertions disabled. It also means that "Release" now means the same things in make and cmake builds: cmake already disables assertions for "Release" builds AFAICS. llvm-svn: 107758
* Implement the "linker_private_weak" linkage type. This will be used forBill Wendling2010-07-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. However, this linkage isn't specific to Objective-C. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". Currently only supported on Darwin platforms. llvm-svn: 107433
* Debugging infomration is encoded in llvm IR using metadata. This is designedDevang Patel2010-07-011-0/+101
| | | | | | | | | such a way that debug info for symbols preserved even if symbols are optimized away by the optimizer. Add new special pass to remove debug info for such symbols. llvm-svn: 107416
* If a named mdnode is removed then mark module as changed.Devang Patel2010-07-011-1/+3
| | | | llvm-svn: 107412
* Remove all debug info related named mdnodes.Devang Patel2010-06-301-10/+6
| | | | llvm-svn: 107323
* use ArgOperand APIGabor Greif2010-06-301-2/+2
| | | | llvm-svn: 107277
* Revert r107205 and r107207.Bill Wendling2010-06-291-1/+0
| | | | llvm-svn: 107215
* Introducing the "linker_weak" linkage type. This will be used for Objective-CBill Wendling2010-06-291-0/+1
| | | | | | | | | | | | | | | | | | | metadata types which should be marked as "weak", but which the linker will remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". llvm-svn: 107205
* Return Changed. This required setting Changed if dbg metadataDuncan Sands2010-06-291-5/+7
| | | | | | | | is stripped off. Currently set unconditionally, since the API does not provide a way of working out if anything was actually stripped off. llvm-svn: 107142
* use ArgOperand API and CallSite for arg range; add necessary casts and ↵Gabor Greif2010-06-241-11/+14
| | | | | | perform some cosmetics llvm-svn: 106747
* use ArgOperand API and CallSite for arg rangeGabor Greif2010-06-241-4/+6
| | | | llvm-svn: 106745
* Use ValueMap instead of DenseMap.Devang Patel2010-06-242-8/+8
| | | | | | The ValueMapper used by various cloning utility maps MDNodes also. llvm-svn: 106706
* Use pre-increment instead of post-increment when the result is not used.Dan Gohman2010-06-221-2/+2
| | | | llvm-svn: 106542
* Make bugpoint dead-argument-hacking actually work, and actually test it.Dan Gohman2010-06-071-0/+7
| | | | llvm-svn: 105551
* Partial specialization was not checking the callsite to make sure it was ↵Kenneth Uildriks2010-06-051-9/+33
| | | | | | using the same constants as the specialization, leading to calls to the wrong specialization. Patch by Takumi Nakamura\! llvm-svn: 105528
* Avoid swap when a copy suffices.Benjamin Kramer2010-05-311-1/+1
| | | | llvm-svn: 105220
* Strip llvm.dbg.lv also.Devang Patel2010-05-201-0/+6
| | | | llvm-svn: 104236
* Teach the always inliner to release its inline cost estimates, like the basicNick Lewycky2010-05-151-0/+3
| | | | | | | inliner did in r103653. Why does the always inliner even bother with cost estimates anyways? llvm-svn: 103858
* Clean up, no functional change.Nick Lewycky2010-05-151-9/+9
| | | | llvm-svn: 103857
* Remove heinous tabs.Nick Lewycky2010-05-131-7/+7
| | | | llvm-svn: 103700
* Replace the core comparison login in merge functions. We can now mergeNick Lewycky2010-05-131-192/+276
| | | | | | | | | | | | | | | | | | | | | | | | vector<>::push_back() in: int foo(vector<int> &a, vector<unsigned> &b) { a.push_back(10); b.push_back(11); } to two calls to the same push_back function, or fold away the two copies of push_back() in: struct T { int; }; struct S { char; }; vector<T*> t; vector<S*> s; void f(T *x) { t.push_back(x); } void g(S *x) { s.push_back(x); } but leave f() and g() separate, since they refer to two different global variables. llvm-svn: 103698
OpenPOWER on IntegriCloud