OptimizationOptions.h revision 533eae20118036f425f27bf0536ef0ccbb090b65
1//===- OptimizationOptions.h ----------------------------------------------===//
2//
3//                     The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#ifndef MCLD_LDLITE_OPTIMIZATION_OPTIONS_H
10#define MCLD_LDLITE_OPTIMIZATION_OPTIONS_H
11#include <llvm/Support/CommandLine.h>
12#include <string>
13
14namespace mcld {
15
16class LinkerConfig;
17
18class OptimizationOptions
19{
20public:
21  enum ICF {
22    ICF_None,
23    ICF_All,
24    ICF_Safe
25  };
26
27public:
28  OptimizationOptions();
29
30  bool parse(LinkerConfig& pConfig);
31
32private:
33  bool& m_GCSections;
34  bool& m_GenUnwindInfo;
35  llvm::cl::opt<ICF>& m_ICF;
36  llvm::cl::opt<char>& m_OptLevel;
37  llvm::cl::list<std::string>& m_Plugin;
38  llvm::cl::list<std::string>& m_PluginOpt;
39};
40
41} // namespace of mcld
42
43#endif
44
45