mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-04 17:56:53 +00:00
opt: Add option to strip or add llvm value names
llvm-svn: 240583
This commit is contained in:
parent
a43ec6b1f8
commit
7c02bf5cdb
@ -104,6 +104,12 @@ static cl::opt<bool>
|
||||
StripDebug("strip-debug",
|
||||
cl::desc("Strip debugger symbol info from translation unit"));
|
||||
|
||||
static cl::opt<bool>
|
||||
StripValueNames("strip-value-names", cl::desc("Remove llvm value names"));
|
||||
|
||||
static cl::opt<bool>
|
||||
NameValues("name-values", cl::desc("Give anonymous llvm values a name"));
|
||||
|
||||
static cl::opt<bool>
|
||||
DisableInline("disable-inlining", cl::desc("Do not run the inliner pass"));
|
||||
|
||||
@ -281,6 +287,37 @@ static TargetMachine* GetTargetMachine(Triple TheTriple, StringRef CPUStr,
|
||||
GetCodeGenOptLevel());
|
||||
}
|
||||
|
||||
static void removeValueNames(Module &Mod) {
|
||||
for (Function &F : Mod) {
|
||||
for (BasicBlock &BB : F) {
|
||||
BB.setName("");
|
||||
for (Instruction &I : BB)
|
||||
I.setName("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void nameValuesInFunction(Function &F) {
|
||||
bool FirstBB = true;
|
||||
for (BasicBlock &BB : F) {
|
||||
if (!BB.hasName())
|
||||
BB.setName(FirstBB ? "entry" : "BB");
|
||||
FirstBB = false;
|
||||
|
||||
for (Instruction &I : BB) {
|
||||
if (I.getType()->isVoidTy())
|
||||
continue;
|
||||
if (!I.hasName())
|
||||
I.setName("v");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void nameValues(Module &Mod) {
|
||||
for (Function &F : Mod)
|
||||
nameValuesInFunction(F);
|
||||
}
|
||||
|
||||
#ifdef LINK_POLLY_INTO_TOOLS
|
||||
namespace polly {
|
||||
void initializePollyPasses(llvm::PassRegistry &Registry);
|
||||
@ -351,6 +388,12 @@ int main(int argc, char **argv) {
|
||||
if (StripDebug)
|
||||
StripDebugInfo(*M);
|
||||
|
||||
if (StripValueNames)
|
||||
removeValueNames(*M);
|
||||
|
||||
if (NameValues)
|
||||
nameValues(*M);
|
||||
|
||||
// Immediately run the verifier to catch any problems before starting up the
|
||||
// pass pipelines. Otherwise we can crash on broken code during
|
||||
// doInitialization().
|
||||
|
Loading…
Reference in New Issue
Block a user