aboutsummaryrefslogtreecommitdiff
path: root/tools/gccas/gccas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gccas/gccas.cpp')
-rw-r--r--tools/gccas/gccas.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/tools/gccas/gccas.cpp b/tools/gccas/gccas.cpp
index dd8b8e0698..ef1d8d6376 100644
--- a/tools/gccas/gccas.cpp
+++ b/tools/gccas/gccas.cpp
@@ -48,7 +48,9 @@ namespace {
cl::desc("Do not run any optimization passes"));
cl::opt<bool>
- DisableDSE("disable-dse", cl::desc("Do not run dead store elimination"));
+ StripDebug("strip-debug",
+ cl::desc("Strip debugger symbol info from translation unit"));
+
cl::opt<bool>
NoCompress("disable-compression", cl::init(false),
cl::desc("Don't ompress the generated bytecode"));
@@ -66,9 +68,14 @@ static inline void addPass(PassManager &PM, Pass *P) {
void AddConfiguredTransformationPasses(PassManager &PM) {
PM.add(createVerifierPass()); // Verify that input is correct
+
addPass(PM, createLowerSetJmpPass()); // Lower llvm.setjmp/.longjmp
addPass(PM, createFunctionResolvingPass()); // Resolve (...) functions
+ // If the -strip-debug command line option was specified, do it.
+ if (StripDebug)
+ addPass(PM, createStripSymbolsPass(true));
+
if (DisableOptimizations) return;
addPass(PM, createRaiseAllocationsPass()); // call %malloc -> malloc inst
@@ -109,8 +116,7 @@ void AddConfiguredTransformationPasses(PassManager &PM) {
// Run instcombine after redundancy elimination to exploit opportunities
// opened up by them.
addPass(PM, createInstructionCombiningPass());
- if (!DisableDSE)
- addPass(PM, createDeadStoreEliminationPass()); // Delete dead stores
+ addPass(PM, createDeadStoreEliminationPass()); // Delete dead stores
addPass(PM, createAggressiveDCEPass()); // SSA based 'Aggressive DCE'
addPass(PM, createCFGSimplificationPass()); // Merge & remove BBs
addPass(PM, createDeadTypeEliminationPass()); // Eliminate dead types