summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/LibCallAliasAnalysis.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [PM/AA] Delete the LibCallAliasAnalysis and all the associatedChandler Carruth2015-08-151-139/+0
| | | | | | | | | | | | | | | | | | infrastructure. This AA was never used in tree. It's infrastructure also completely overlaps that of TargetLibraryInfo which is used heavily by BasicAA to achieve similar goals to those stated for this analysis. As has come up in several discussions, the use case here is still really important, but this code isn't helping move toward that use case. Any progress on better supporting rich AA information for runtime library environments would likely be better off starting from scratch or starting from TargetLibraryInfo than from this base. Differential Revision: http://reviews.llvm.org/D12028 llvm-svn: 245155
* [PM/AA] Remove the function names and class names from doxygen commentsChandler Carruth2015-08-141-7/+5
| | | | | | and generally clean up their formatting. llvm-svn: 245002
* [PM/AA] Move the LibCall AA creation routine declaration to thatChandler Carruth2015-08-141-1/+0
| | | | | | analysis's header file to be more consistent with other analyses. llvm-svn: 245001
* [PM/AA] Run clang-format over LibCallAliasAnalysis prior to makingChandler Carruth2015-08-141-17/+17
| | | | | | substantial changes needed for the new pass manager's AA integration. llvm-svn: 245000
* [PM/AA] Extract the ModRef enums from the AliasAnalysis class inChandler Carruth2015-07-221-18/+19
| | | | | | | | | | | | | | | | | | | | | | | preparation for de-coupling the AA implementations. In order to do this, they had to become fake-scoped using the traditional LLVM pattern of a leading initialism. These can't be actual scoped enumerations because they're bitfields and thus inherently we use them as integers. I've also renamed the behavior enums that are specific to reasoning about the mod/ref behavior of functions when called. This makes it more clear that they have a very narrow domain of applicability. I think there is a significantly cleaner API for all of this, but I don't want to try to do really substantive changes for now, I just want to refactor the things away from analysis groups so I'm preserving the exact original design and just cleaning up the names, style, and lifting out of the class. Differential Revision: http://reviews.llvm.org/D10564 llvm-svn: 242963
* [PM/AA] Remove the Location typedef from the AliasAnalysis class nowChandler Carruth2015-06-171-2/+2
| | | | | | | | | | | | that it is its own entity in the form of MemoryLocation, and update all the callers. This is an entirely mechanical change. References to "Location" within AA subclases become "MemoryLocation", and elsewhere "AliasAnalysis::Location" becomes "MemoryLocation". Hope that helps out-of-tree folks update. llvm-svn: 239885
* Make DataLayout Non-Optional in the ModuleMehdi Amini2015-03-041-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: DataLayout keeps the string used for its creation. As a side effect it is no longer needed in the Module. This is "almost" NFC, the string is no longer canonicalized, you can't rely on two "equals" DataLayout having the same string returned by getStringRepresentation(). Get rid of DataLayoutPass: the DataLayout is in the Module The DataLayout is "per-module", let's enforce this by not duplicating it more than necessary. One more step toward non-optionality of the DataLayout in the module. Make DataLayout Non-Optional in the Module Module->getDataLayout() will never returns nullptr anymore. Reviewers: echristo Subscribers: resistor, llvm-commits, jholewinski Differential Revision: http://reviews.llvm.org/D7992 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 231270
* [C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper2014-04-151-1/+1
| | | | | | instead of comparing to nullptr. llvm-svn: 206243
* Move all of the header files which are involved in modelling the LLVM IRChandler Carruth2013-01-021-1/+1
| | | | | | | | | | | | | | | | | | | | | into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. llvm-svn: 171366
* Use the new script to sort the includes of every file under lib.Chandler Carruth2012-12-031-1/+1
| | | | | | | | | | | | | | | | | Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
* Now with fewer extraneous semicolons!Owen Anderson2010-10-071-1/+1
| | | | llvm-svn: 115996
* Remove the experimental AliasAnalysis::getDependency interface, whichDan Gohman2010-09-141-9/+9
| | | | | | | | | | | isn't a good level of abstraction for memdep. Instead, generalize AliasAnalysis::alias and related interfaces with a new Location class for describing a memory location. For now, this is the same Pointer and Size as before, plus an additional field for a TBAA tag. Also, introduce a fixed MD_tbaa metadata tag kind. llvm-svn: 113858
* Thread const correctness through a bunch of AliasAnalysis interfaces andDan Gohman2010-08-031-3/+4
| | | | | | | | | | | | 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
* Add INSTANTIATE_AG_PASS, which combines RegisterPass<> with ↵Owen Anderson2010-07-211-5/+2
| | | | | | RegisterAnalysisGroup<> for pass registration. llvm-svn: 109058
* LibCallAliasAnalysis doesn't use TargetData.Dan Gohman2009-07-311-2/+0
| | | | llvm-svn: 77729
* Expose a public interface to this pass.Chris Lattner2008-06-051-40/+12
| | | | llvm-svn: 52029
* Let libcall semantics decide whether it knows about functions Chris Lattner2008-06-051-2/+2
| | | | | | with definitions or not. llvm-svn: 52028
* Fix a typo in a comment.Dan Gohman2008-05-301-1/+1
| | | | llvm-svn: 51718
* Use static and anonymous namespaces consistently with other passes.Dan Gohman2008-05-151-8/+8
| | | | llvm-svn: 51156
* put LibCallAliasAnalysis into anonymous namespace to avoidTorok Edwin2008-05-091-1/+1
| | | | | | clashes on ::X llvm-svn: 50912
* Add a new LibCallAliasAnalysis pass, which is parameterizedChris Lattner2008-05-071-0/+169
by an instance of LibCallInfo to provide mod/ref info of standard library functions. This is powerful enough to say that 'sqrt' is readonly except that it modifies errno, or that "printf doesn't store to memory unless the %n constraint is present" etc. llvm-svn: 50827
OpenPOWER on IntegriCloud