Mercurial > projects > ldc
view gen/cl_options.h @ 1170:e40c65bd8c5d
Allow specific optimization passes to be requested from the command line.
Now you can run "`ldc test.d -c -mem2reg -simplifycfg`" if you feel the urge.
The -O<N> options are still supported, and are inserted in the passes list in
the position where they appear on the command line.
(so -simplifycfg -O1 -instcombine does the "right thing")
One small change: -inline is renamed to -enable-inlining due to a naming
conflict with the option to add the -inline pass. -inline now inserts the
inlining pass in the position specified, not in the middle of -O<N>.
(ldmd has been updated to translate -inline to -enable-inlining)
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Sun, 29 Mar 2009 15:46:55 +0200 |
parents | 7ce8355fbcc6 |
children | 1311dabc6a1f |
line wrap: on
line source
#ifndef LDC_CL_OPTIONS_H #define LDC_CL_OPTIONS_H #include "mars.h" #include <deque> #include <vector> #include "llvm/Support/RegistryParser.h" #include "llvm/Target/TargetMachineRegistry.h" #include "llvm/Support/CommandLine.h" namespace opts { namespace cl = llvm::cl; /* Mostly generated with the following command: egrep -e '^(cl::|#if|#e)' gen/cl_options.cpp \ | sed -re 's/^(cl::.*)\(.*$/ extern \1;/' */ extern cl::list<std::string> fileList; extern cl::list<std::string> runargs; extern cl::opt<bool> compileOnly; extern cl::opt<bool> noAsm; extern cl::opt<bool> dontWriteObj; extern cl::opt<std::string> objectFile; extern cl::opt<std::string> objectDir; extern cl::opt<bool> output_bc; extern cl::opt<bool> output_ll; extern cl::opt<bool> output_s; extern cl::opt<cl::boolOrDefault> output_o; extern cl::opt<std::string> ddocDir; extern cl::opt<std::string> ddocFile; #ifdef _DH extern cl::opt<std::string> hdrDir; extern cl::opt<std::string> hdrFile; #endif extern cl::list<std::string> versions; extern cl::opt<const llvm::TargetMachineRegistry::entry*, false, llvm::RegistryParser<llvm::TargetMachine> > mArch; extern cl::opt<bool> m32bits; extern cl::opt<bool> m64bits; extern cl::opt<std::string> mCPU; extern cl::list<std::string> mAttrs; extern cl::opt<std::string> mTargetTriple; extern cl::opt<bool> singleObj; // Arguments to -d-debug extern std::vector<std::string> debugArgs; // Arguments to -run } #endif