1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00

MemorySSA.h - make clang-format happy

llvm-svn: 299296
This commit is contained in:
Daniel Berlin 2017-04-01 09:44:14 +00:00
parent d007e8d89f
commit 2e2452dc6a

View File

@ -12,10 +12,10 @@
/// walk memory instructions using a use/def graph.
///
/// Memory SSA class builds an SSA form that links together memory access
/// instructions such as loads, stores, atomics, and calls. Additionally, it does
/// a trivial form of "heap versioning" Every time the memory state changes in
/// the program, we generate a new heap version. It generates MemoryDef/Uses/Phis
/// that are overlayed on top of the existing instructions.
/// instructions such as loads, stores, atomics, and calls. Additionally, it
/// does a trivial form of "heap versioning" Every time the memory state changes
/// in the program, we generate a new heap version. It generates
/// MemoryDef/Uses/Phis that are overlayed on top of the existing instructions.
///
/// As a trivial example,
/// define i32 @main() #0 {
@ -54,15 +54,15 @@
/// }
///
/// Given this form, all the stores that could ever effect the load at %8 can be
/// gotten by using the MemoryUse associated with it, and walking from use to def
/// until you hit the top of the function.
/// gotten by using the MemoryUse associated with it, and walking from use to
/// def until you hit the top of the function.
///
/// Each def also has a list of users associated with it, so you can walk from
/// both def to users, and users to defs. Note that we disambiguate MemoryUses,
/// but not the RHS of MemoryDefs. You can see this above at %7, which would
/// otherwise be a MemoryUse(4). Being disambiguated means that for a given
/// store, all the MemoryUses on its use lists are may-aliases of that store (but
/// the MemoryDefs on its use list may not be).
/// store, all the MemoryUses on its use lists are may-aliases of that store
/// (but the MemoryDefs on its use list may not be).
///
/// MemoryDefs are not disambiguated because it would require multiple reaching
/// definitions, which would require multiple phis, and multiple memoryaccesses
@ -711,10 +711,8 @@ private:
unsigned NextID;
};
// Internal MemorySSA utils, for use by MemorySSA classes and walkers
class MemorySSAUtil
{
class MemorySSAUtil {
protected:
friend class MemorySSAWalker;
friend class GVNHoist;