1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/unittests
Chandler Carruth 1b5573df25 [LCG] Re-organize the methods for mutating a call graph to make their
API requirements much more obvious.

The key here is that there are two totally different use cases for
mutating the graph. Prior to doing any SCC formation, it is very easy to
mutate the graph. There may be users that want to do small tweaks here,
and then use the already-built graph for their SCC-based operations.
This method remains on the graph itself and is documented carefully as
being cheap but unavailable once SCCs are formed.

Once SCCs are formed, and there is some in-flight DFS building them, we
have to be much more careful in how we mutate the graph. These mutation
operations are sunk onto the SCCs themselves, which both simplifies
things (the code was already there!) and helps make it obvious that
these interfaces are only applicable within that context. The other
primary constraint is that the edge being mutated is actually related to
the SCC on which we call the method. This helps make it obvious that you
cannot arbitrarily mutate some other SCC.

I've tried to write much more complete documentation for the interesting
mutation API -- intra-SCC edge removal. Currently one aspect of this
documentation is a lie (the result list of SCCs) but we also don't even
have tests for that API. =[ I'm going to add tests and fix it to match
the documentation next.

llvm-svn: 207339
2014-04-27 01:59:50 +00:00
..
ADT SCC: Change clients to use const, NFC 2014-04-25 18:24:50 +00:00
Analysis [LCG] Re-organize the methods for mutating a call graph to make their 2014-04-27 01:59:50 +00:00
Bitcode verify-di: Implement DebugInfoVerifier 2014-04-15 16:27:38 +00:00
CodeGen DIE: Pass ownership of children via std::unique_ptr rather than raw pointer. 2014-04-25 20:00:34 +00:00
DebugInfo [CMake] Update LLVM_LINK_COMPONENTS for each CMakeLists.txt. 2013-12-10 11:13:32 +00:00
ExecutionEngine Changes in IntelJITEventListener - By Arch Robinson 2014-04-06 11:08:33 +00:00
IR Make the User::value_op_iterator a random access iterator. I had written 2014-04-17 09:07:50 +00:00
LineEditor Introduce line editor library. 2014-01-31 23:46:14 +00:00
Linker Replace OwningPtr<T> with std::unique_ptr<T>. 2014-03-06 05:51:42 +00:00
MC Fix MCDataAtom never calling remap when adding data. 2013-10-16 18:26:16 +00:00
Object Object: Don't double-escape empty hexdata 2014-03-20 06:28:52 +00:00
Option Retire llvm::array_endof in favor of non-member std::end. 2014-04-12 16:15:53 +00:00
Support [ADT] Generalize pointee_iterator to smart pointers by using decltype. 2014-04-24 21:10:35 +00:00
Transforms This reverts r206828 until David has time to figure out that is going on. 2014-04-22 02:17:11 +00:00
CMakeLists.txt Correctly set rpath for unittests. 2014-02-28 16:11:03 +00:00
Makefile Introduce line editor library. 2014-01-31 23:46:14 +00:00
Makefile.unittest With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore. 2014-02-28 16:16:51 +00:00