1533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines//===- OptimizationOptions.h ----------------------------------------------===// 2533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 3533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// The MCLinker Project 4533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 5533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// This file is distributed under the University of Illinois Open Source 6533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// License. See LICENSE.TXT for details. 7533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines// 8533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines//===----------------------------------------------------------------------===// 9533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#ifndef MCLD_LDLITE_OPTIMIZATION_OPTIONS_H 10533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#define MCLD_LDLITE_OPTIMIZATION_OPTIONS_H 11a790f0a8f3175183bea088389b3e4ae41813e192Stephen Hines#include <mcld/GeneralOptions.h> 12533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <llvm/Support/CommandLine.h> 13533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#include <string> 14533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 15533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesnamespace mcld { 16533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 17533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesclass LinkerConfig; 18533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 19533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesclass OptimizationOptions 20533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines{ 21533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinespublic: 22533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines OptimizationOptions(); 23533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 24533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines bool parse(LinkerConfig& pConfig); 25533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 26533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hinesprivate: 27533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines bool& m_GCSections; 28a790f0a8f3175183bea088389b3e4ae41813e192Stephen Hines bool& m_PrintGCSections; 29533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines bool& m_GenUnwindInfo; 30a790f0a8f3175183bea088389b3e4ae41813e192Stephen Hines llvm::cl::opt<mcld::GeneralOptions::ICF>& m_ICF; 31a790f0a8f3175183bea088389b3e4ae41813e192Stephen Hines llvm::cl::opt<unsigned>& m_ICFIterations; 32a790f0a8f3175183bea088389b3e4ae41813e192Stephen Hines llvm::cl::opt<bool>& m_PrintICFSections; 33533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::opt<char>& m_OptLevel; 34533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::list<std::string>& m_Plugin; 35533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines llvm::cl::list<std::string>& m_PluginOpt; 36533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines}; 37533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 38533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines} // namespace of mcld 39533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 40533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines#endif 41533eae20118036f425f27bf0536ef0ccbb090b65Stephen Hines 42