60ceb6ec151eb3cad0de6559de247be972cd94d6 |
|
06-Jul-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Fix annotation of unlink. Should fix builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
dc89737bcdbb8f69d8ae7578bdfa904cabcfc5ed |
|
06-Jul-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Extend 'readonly' and 'readnone' to work on function arguments as well as functions. Make the function attributes pass add it to known library functions and when it can deduce it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
08bdfe26a5e22425699a53e9ad3ee287b0c9b1b9 |
|
04-Jul-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Tabs to spaces. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
7cb0321ad8d86c9fdfb70d3bfa1ff3e8e1ff9f71 |
|
03-Jul-2013 |
Michael Gottesman <mgottesman@apple.com> |
Added support in FunctionAttrs for adding relevant function/argument attributes for the posix call gettimeofday. This implies annotating it as nounwind and its arguments as nocapture. To be conservative, we do not annotate the arguments with noalias since some platforms do not have restrict on the declaration for gettimeofday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
e7dd3afef074596dd61211b5e0b05c4de5d5f85b |
|
02-Jul-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Add missing break statements. Noticed by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
5729b8ea01739cf9b1171f0a4349275bc8124756 |
|
22-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert "FunctionAttrs: Merge attributes once instead of doing it for every argument." It doesn't work as I intended it to. This reverts commit r184638. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
39bab0e11abc1a310c537052872415b29b6a4241 |
|
22-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
FunctionAttrs: Merge attributes once instead of doing it for every argument. It has become an expensive operation. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
cf47ce616c53040cb8aa09eff9dc0b693e571842 |
|
21-Mar-2013 |
Meador Inge <meadori@codesourcery.com> |
Move library call prototype attribute inference to functionattrs The simplify-libcalls pass implemented a doInitialization hook to infer function prototype attributes for well-known functions. Given that the simplify-libcalls pass is going away *and* that the functionattrs pass is already in place to deduce function attributes, I am moving this logic to the functionattrs pass. This approach was discussed during patch review: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121126/157465.html. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
28d65722d6f283b327b5815914382077fe9c0ab4 |
|
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove the last of uses that use the Attribute object as a collection of attributes. Collections of attributes are handled via the AttributeSet class now. This finally frees us up to make significant changes to how attributes are structured. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
8246df61f6de716acf1f8c64fac3c19970a2c174 |
|
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the AttributeSet when removing multiple attributes. Use Attribute::AttrKind when removing one attribute. This further encapsulates the use of the attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
70d2ca0725b05a2d372e4dc3336e8ea350093e98 |
|
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the AttributeSet when adding multiple attributes and an Attribute::AttrKind when adding a single attribute to the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
3251e81d793a293b78f4914be6093b405c24fc2a |
|
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move CallGraphSCCPass.h into the Analysis tree; that's where the implementation lives already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
034b94b17006f51722886b0f2283fb6fb19aca1f |
|
19-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
99faa3b4ec6d03ac7808fe4ff3fbf3d04e375502 |
|
08-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
s/AttrListPtr/AttributeSet/g to better label what this class is going to be in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. 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. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
b4c9d9c51fcb8a4cad2336b1ad9d225f504bbc4c |
|
31-Oct-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace some instances of UniqueVector with SetVector, which is slightly cheaper. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
702cc91aa1bd41540e8674921ae7ac89a4ff061f |
|
15-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
07aae2e7d58fe23e370e0cbb9e1a3def99434c36 |
|
15-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Add an enum for the return and function indexes into the AttrListPtr object. This gets rid of some magic numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
cb3de0bc800d7920087b19bb12a545d4cc84114e |
|
15-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Attributes Rewrite Convert the internal representation of the Attributes class into a pointer to an opaque object that's uniqued by and stored in the LLVMContext object. The Attributes class then becomes a thin wrapper around this opaque object. Eventually, the internal representation will be expanded to include attributes that represent code generation options, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
7d2f2496c1d263eecdc104fd72e847a31d8695b9 |
|
10-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the final bits of Attributes being declared in the Attribute namespace. Use the attribute's enum value instead. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
3e2d76c946ba753c2b11af192a52e25b6f9b46ff |
|
09-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Use the attribute enums to query if a parameter has an attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
c92b8aa79f4a2cd16f7b674189e425c2c367e886 |
|
09-Oct-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Give CaptureTracker::shouldExplore a base implementation. Most users want to do the same thing. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
5df15c692b944b6c46ec6d532fc286b7e0000d5d |
|
04-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Add method to query for 'NoAlias' attribute on call/invoke instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
720ac9196997e856c5fed7a23fdfe144425222b1 |
|
05-Jan-2012 |
Nick Lewycky <nicholas@mxc.ca> |
SCCCaptured is trivially false on entry to this loop and not modified inside it. Eliminate the dead test for it on each loop iteration. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
b48a18903a5769f0ecb295db069252576b1388b0 |
|
29-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Change CaptureTracking to pass a Use* instead of a Value* when a value is captured. This allows the tracker to look at the specific use, which may be especially interesting for function calls. Use this to fix 'nocapture' deduction in FunctionAttrs. The existing one does not iterate until a fixpoint and does not guarantee that it produces the same result regardless of iteration order. The new implementation builds up a graph of how arguments are passed from function to function, and uses a bottom-up walk on the argument-SCCs to assign nocapture. This gets us nocapture more often, and does so rather efficiently and independent of iteration order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
2199dfb0e6b98fdce0a3c863eb84d466d426b968 |
|
16-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert a bit of r137667; the logic in question can safely handle atomic load/store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
3d30b435e2b3d0e7480019577f48472b51133c21 |
|
16-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Update inter-procedural optimizations for atomic load/store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
6d8eb156e6be727570b300bac7712f745a318c7d |
|
11-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Add helper functions for computing the Location of load, store, and vaarg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
68a6056dafd4913ce42606353ab1ff7208215ff2 |
|
10-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Add a doesAccessArgPointees helper function, and update code to use it, and to be consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
432d08cbdb9ceaa333f1d6eab4f8b542fdddf9db |
|
10-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Factor out the code for testing whether a function accesses arbitrary memory into a helper function, and adjust some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
42c31a70735e55bf82e66a9315c97d1821c9a798 |
|
10-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Make ModRefBehavior a lattice. Use this to clean up AliasAnalysis chaining and simplify FunctionAttrs' GetModRefBehavior logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
4cf0dcfb44d9d308f2df48e2878c91297395179c |
|
09-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Teach FunctionAttrs about the VAArg instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
6d44d64f61359c865cbf2d7f331bb9c97ce253d5 |
|
09-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Use the AliasAnalysis interface to determine how a Function accesses memory. This isn't a real improvement with present day AliasAnalysis implementations; it's mainly for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
40b6a19daa0efa5131a56aa15cc8694d3cf6171e |
|
09-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Teach FunctionAttrs about AccessesArgumentsReadonly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
554375b707d741c357a78650160ba5d093b4993a |
|
08-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Fix a thinko that Duncan spotted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
ea8900f5df76e11efb9464157af160f5fa41e9c0 |
|
08-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Make FunctionAttrs TBAA-aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
a25e5dbcc2371352386a01e3c1b8e76dd890272b |
|
08-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Extend the AliasAnalysis::pointsToConstantMemory interface to allow it to optionally look for constant or local (alloca) memory. Teach BasicAliasAnalysis::pointsToConstantMemory to look through Select and Phi nodes, and to support looking for local memory. Remove FunctionAttrs' PointsToLocalOrConstantMemory function, now that AliasAnalysis knows all the tricks that it knew. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
3c97f7af9e75507f12a3977bced6b91c7e2ffb2a |
|
08-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Make FunctionAttrs use AliasAnalysis::getModRefBehavior, now that it knows about intrinsic functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
391f5bce046e229a8d52faf317a7ab980aff0dbb |
|
03-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Rename PointsToLocalMemory to PointsToLocalOrConstantMemory to make the code more self-documenting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
aa660993304216053b578aeb2537d26071c3a51e |
|
30-Oct-2010 |
Duncan Sands <baldrick@free.fr> |
Now that the MallocInst no longer exists, this workaround for it claiming not to have side-effects is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
ad6f541840015690ad1483821eb9d8e5f7e50442 |
|
30-Oct-2010 |
Duncan Sands <baldrick@free.fr> |
If a function does a volatile load from a global constant, do not consider it to be readonly. In fact, don't even consider it to be readonly if it does a volatile load from an AllocaInst either (it is debatable as to whether readonly would be correct or not in this case; play safe for the moment). This fixes PR8279. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
081c34b725980f995be9080eaec24cd3dfaaf065 |
|
19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
ae0a7bc68303ce0c8721f0e981ae602601390e68 |
|
14-Oct-2010 |
Owen Anderson <resistor@mac.com> |
CallGraphSCC passes implicity require CallGraph analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
ce665bd2e2b581ab0858d1afe359192bac96b868 |
|
08-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
90c579de5a383cee278acc3f7e7b9d0a656e6a35 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
1f74590e9d1b9cf0f1f81a156efea73f76546e05 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
9ccaf53ada99c63737547c0235baeb8454b04e80 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
79fca6fea87be7221843031870bbf2c9ae1fc555 |
|
03-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Thread const correctness through a bunch of AliasAnalysis interfaces and 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
7d3056b16038a6a09c452c0dfcc3c8f4e421506a |
|
29-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
simplify by using CallSite constructors; virtually eliminates CallSite::get from the tree git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
d13db2c59cc94162d6cf0a04187d408bfef6d4a7 |
|
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
2decb22222cac46bb1d9163e7b89d7e5be8ef65f |
|
17-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
introduce a new CallGraphSCC class, and pass it around to CallGraphSCCPass's instead of passing around a std::vector<CallGraphNode*>. No functionality change, but now we have a much tidier interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
1df9859c40492511b8aa4321eb76496005d3b75b |
|
16-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
5d8ea117a07b53c4bbabbc6912e3c54b50e1a51c |
|
07-Jan-2010 |
Duncan Sands <baldrick@free.fr> |
Be less stingy as to how many selects and phi nodes we are prepared to look through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
e10920d678c4d6046619e51770de1c9de0c3fe0a |
|
06-Jan-2010 |
Duncan Sands <baldrick@free.fr> |
Fix a README item: have functionattrs look through selects and phi nodes when deciding which pointers point to local memory. I actually checked long ago how useful this is, and it isn't very: it hardly ever fires in the testsuite, but since Chris wants it here it is! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
7c422ac216fe39fc9c402a704cf296cca9dc5b22 |
|
06-Jan-2010 |
Duncan Sands <baldrick@free.fr> |
Partially address a README by having functionattrs consider calls to memcpy, memset and other intrinsics that only access their arguments to be readnone if the intrinsic's arguments all point to local memory. This improves the testcase in the README to readonly, but it could in theory be made readnone, however this would involve more sophisticated analysis that looks through the memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
f94b5edc452c32d9ae258e7de30c33391fda6cc9 |
|
19-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Extend CaptureTracking to indicate when a value is never stored, even if it is not ultimately captured. Teach BasicAliasAnalysis that a local object address which does not escape and is never stored does not alias with a value resulting from a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
f006b183e2d2bebcf6968d1dd7350397c95b0325 |
|
27-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Rename MallocFreeHelper as MemoryBuiltins git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
f2becca90b832cc02345fba063b9b439b2be33ad |
|
27-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
f5a86f45e75ec744c203270ffa03659eb0a220c1 |
|
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove includes of Support/Compiler.h that are no longer needed after the VISIBILITY_HIDDEN removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
6726b6d75a8b679068a58cb954ba97cf9d1690ba |
|
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
93bb60d3793e6354866e2820a030f3baebb55a38 |
|
19-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Malloc calls are marked NoAlias, so the code below the isMalloc() check makes it redundant. Removing the isMalloc() check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
a276c603b82a11b0bf0b59f0517a69e4b63adeab |
|
17-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Remove MallocInst from LLVM Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
439044f4f9594990fb9a8149ea67c119a2b05387 |
|
27-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
remove special handling of bitcast(malloc), it will be handled when the loop inspects the bitcast operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
2a9325ff2fc21d8c9873b999cb9ebe2bc6b6f1a1 |
|
27-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
unlike the malloc instruction, "malloc" calls do not claim to be readonly, just nounwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
83d63919bd990ce00f62e18114504b9e4a5cb35e |
|
19-Sep-2009 |
Victor Hernandez <vhernandez@apple.com> |
Enhance transform passes so that they apply the same tranforms to malloc calls as to MallocInst. Reviewed by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
98a27ce03f092ab5464e65725f7d1fa0c03652f2 |
|
31-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
simplify some code by making the SCCNodes set contain Function*'s instead of CallGraphNode*'s. This also papers over a callgraph problem where a pass (in this case, MemCpyOpt) introduces a new function into the module (llvm.memset.i64) but doesn't add it to the call graph (nor should it, since it is a function pass). While it might be a good idea for MemCpyOpt to not synthesize functions in a runOnFunction(), there is no need for FunctionAttrs to be boneheaded, so fix it there. This fixes an assertion building 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
5095e3d1d1caef8d573534d369e37277c623064c |
|
31-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Fix some nasty callgraph dangling pointer problems in argpromotion and structretpromote. Basically, when replacing a function, they used the 'changeFunction' api which changes the entry in the function map (and steals/reuses the callgraph node). This has some interesting effects: first, the problem is that it doesn't update the "callee" edges in any callees of the function in the call graph. Second, this covers for a major problem in all the CGSCC pass stuff, which is that it is completely broken when functions are deleted if they *don't* reuse a CGN. (there is a cute little fixme about this though :). This patch changes the protocol that CGSCC passes must obey: now the CGSCC pass manager copies the SCC and preincrements its iterator to avoid passes invalidating it. This allows CGSCC passes to mutate the current SCC. However multiple passes may be run on that SCC, so if passes do this, they are now required to *update* the SCC to be current when they return. Other less interesting parts of this patch are that it makes passes update the CG more directly, eliminates changeFunction, and requires clients of replaceCallSite to specify the new callee CGN if they are changing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
cfd0ebea276521a48370c197e651064b032a381e |
|
06-May-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3754: don't mark functions that wrap MallocInst with the readnone. Since MallocInst is scheduled for deletion it doesn't seem worth doing anything more subtle, such as having mayWriteToMemory return true for MallocInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
ee199f72bbc8984eab542ed982f75c5acf42256f |
|
09-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
This debug info special case should no longer be needed now that these intrinsics are marked as not accessing memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
4bfba9da0afb00ea1cc7df764da03ed9ebb7676b |
|
08-Mar-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Fix comments, pointed out by Duncan Sands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
199aa3c09c6ec42da6165c5ba1415aaeeaf7c11f |
|
08-Mar-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Mark function returns as noalias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
cd11991203f2f8ca8b0c7bd920fa4e32b4f88e1d |
|
03-Mar-2009 |
Devang Patel <dpatel@apple.com> |
Ignore debug info intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
8556d2a7f155c7edfaf454a3acda8ce28863c5e4 |
|
18-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
BasicAliasAnalysis and FunctionAttrs were both doing very similar pointer capture analysis. Factor out the common logic. The new version is from FunctionAttrs since it does a better job than the version in BasicAliasAnalysis git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
b0cea8ff3979b8af15311b34df12bbb4440fd888 |
|
07-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Remove alloca tracking from nocapture analysis. Not only was it not very helpful, it was also wrong! The problem is shown in the testcase: the alloca might be passed to a nocapture callee which dereferences it and returns the original pointer. But because it was a nocapture call we think we don't need to track its uses, but we do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
acf984417fbb721467205011b5ef8f3595771df7 |
|
07-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Reorder these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
00e7ea98c0fd4a568fe974e79fb44913f173fa77 |
|
07-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Use a switch rather than a sequence of "isa" tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
3b3b4e3f0f4e4adb2af74942aa939b283a4d5f16 |
|
03-Jan-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Any void readonly functions are provably dead, don't waste time adding nocapture attributes to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
9c5a5b01b4c463fb6dc7c98cfa7ce06e1e9a63dd |
|
02-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Load tracking means that the value analyzed may not have pointer type. In particular, it may be the condition argument for a select or a GEP index. While I was unable to construct a testcase for which some bits of the original pointer are captured due to one of these, it's very very close to being possible - so play safe and exclude these possibilities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
338cd6ba6e36c291185541bb8e391427f57a32b1 |
|
02-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
When calculating 'nocapture' argument attributes, allow the argument to be stored to an alloca by tracking uses of the alloca. This occurs 4 times (out of 7121, 0.05%) in MultiSource/Applications, so may not be worth it. On the other hand, it is easy to do and fairly cheap. The functions it helps are: W_addcom and W_addlit in spiff; process_args (argv) in d (make_dparser); ercPixConcealIMB in JM/ldecod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
b2f2279056ab9e2e80f94c20d79affc007a4de62 |
|
02-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Improve comments and reorganize a bit - no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
6b0568628319e08b36b8ec14793083e6bbf101a7 |
|
02-Jan-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Make adding nocapture a bit stronger. FreeInst is nocapture. Also, functions that don't write can't leak a pointer except through the return value, so a void readonly function is implicitly nocapture. Test these, and add a test that verifies that f1 calling f2 with an otherwise dead pointer gets both of them marked nocapture. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
88e76757deb4872fc5d0db8592019fa73bfecfe7 |
|
01-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Mention that this pass does escape analysis in the leading comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
1010941954a44520d12037d8b6d81a4af89b57a6 |
|
31-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Look through phi nodes and select instructions when calculating nocapture attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
17da06ffbd1f7269b6b9037f883a3d8a5c985f62 |
|
31-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Don't analyze arguments already marked 'nocapture'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|
9e89ba31f16a960239a750a26a982b4c9dfe8949 |
|
31-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Rename AddReadAttrs to FunctionAttrs, and teach it how to work out (in a very simplistic way) which function arguments (pointer arguments only) are only dereferenced and so do not escape. Mark such arguments 'nocapture'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61525 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
|