LLVM 22.0.0git
SplitModule.cpp File Reference
#include "llvm/Transforms/Utils/SplitModule.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/Comdat.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalObject.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MD5.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/ValueMapper.h"
#include <cassert>
#include <iterator>
#include <memory>
#include <queue>
#include <utility>
#include <vector>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "split-module"

Functions

static void addNonConstUser (ClusterMapType &GVtoClusterMap, const GlobalValue *GV, const User *U)
static void addAllGlobalValueUsers (ClusterMapType &GVtoClusterMap, const GlobalValue *GV, const Value *V)
static const GlobalObjectgetGVPartitioningRoot (const GlobalValue *GV)
static void findPartitions (Module &M, ClusterIDMapType &ClusterIDMap, unsigned N)
static void externalize (GlobalValue *GV)
static bool isInPartition (const GlobalValue *GV, unsigned I, unsigned N)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "split-module"

Definition at line 49 of file SplitModule.cpp.

Function Documentation

◆ addAllGlobalValueUsers()

◆ addNonConstUser()

void addNonConstUser ( ClusterMapType & GVtoClusterMap,
const GlobalValue * GV,
const User * U )
static

Definition at line 71 of file SplitModule.cpp.

References assert(), llvm::dyn_cast(), F, I, llvm::isa(), and llvm_unreachable.

Referenced by addAllGlobalValueUsers().

◆ externalize()

◆ findPartitions()

◆ getGVPartitioningRoot()

const GlobalObject * getGVPartitioningRoot ( const GlobalValue * GV)
static

◆ isInPartition()

bool isInPartition ( const GlobalValue * GV,
unsigned I,
unsigned N )
static