LLVM 20.0.0git
Macros | Functions
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 <algorithm>
#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 50 of file SplitModule.cpp.

Function Documentation

◆ addAllGlobalValueUsers()

static void addAllGlobalValueUsers ( ClusterMapType &  GVtoClusterMap,
const GlobalValue GV,
const Value V 
)
static

◆ addNonConstUser()

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

Definition at line 72 of file SplitModule.cpp.

References assert(), F, I, and llvm_unreachable.

Referenced by addAllGlobalValueUsers().

◆ externalize()

static void externalize ( GlobalValue GV)
static

◆ findPartitions()

static void findPartitions ( Module M,
ClusterIDMapType &  ClusterIDMap,
unsigned  N 
)
static

◆ getGVPartitioningRoot()

static const GlobalObject * getGVPartitioningRoot ( const GlobalValue GV)
static

Definition at line 104 of file SplitModule.cpp.

References llvm::GlobalValue::getAliaseeObject().

Referenced by findPartitions(), and isInPartition().

◆ isInPartition()

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