Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: src/IceClFlags.cpp

Issue 2602713002: Subzero: Fix some build problems against LLVM trunk. (Closed)
Patch Set: Reformat Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/IceClFlags.def » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceClFlags.cpp - Command line flags and parsing --------===// 1 //===- subzero/src/IceClFlags.cpp - Command line flags and parsing --------===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 /// 9 ///
10 /// \file 10 /// \file
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 template <typename T> using list = llvm::cl::list<T>; 53 template <typename T> using list = llvm::cl::list<T>;
54 54
55 using llvm::cl::NotHidden; 55 using llvm::cl::NotHidden;
56 56
57 template <typename T> using opt = llvm::cl::opt<T>; 57 template <typename T> using opt = llvm::cl::opt<T>;
58 58
59 using llvm::cl::ParseCommandLineOptions; 59 using llvm::cl::ParseCommandLineOptions;
60 60
61 using llvm::cl::Positional; 61 using llvm::cl::Positional;
62 62
63 // LLVM commit 3ffe113e11168abcd809ec5ac539538ade5db0cb changed the internals of
64 // llvm::cl that need to be mirrored here. That commit removed the clEnumValEnd
65 // macro, so we can use that to determine which version of LLVM we're compiling
66 // against.
67 #if defined(clEnumValEnd)
68
69 #define CLENUMVALEND , clEnumValEnd
70
63 template <typename T> using ValuesClass = llvm::cl::ValuesClass<T>; 71 template <typename T> using ValuesClass = llvm::cl::ValuesClass<T>;
64 72
65 template <typename T, typename... A> 73 template <typename T, typename... A>
66 ValuesClass<T> values(const char *Arg, T Val, const char *Desc, A &&... Args) { 74 ValuesClass<T> values(const char *Arg, T Val, const char *Desc, A &&... Args) {
67 return llvm::cl::values(Arg, Val, Desc, std::forward<A>(Args)..., nullptr); 75 return llvm::cl::values(Arg, Val, Desc, std::forward<A>(Args)..., nullptr);
68 } 76 }
69 77
78 #else // !defined(clEnumValEnd)
79
80 #define CLENUMVALEND
81
82 using llvm::cl::OptionEnumValue;
83
84 template <typename... A> llvm::cl::ValuesClass values(A &&... Args) {
85 return llvm::cl::values(std::forward<A>(Args)...);
86 }
87
88 #endif // !defined(clEnumValEnd)
89
70 using llvm::cl::value_desc; 90 using llvm::cl::value_desc;
71 } // end of namespace cl 91 } // end of namespace cl
72 92
73 // cl_type_traits is used to convert between a tuple of <T, cl_detail::*flag> to 93 // cl_type_traits is used to convert between a tuple of <T, cl_detail::*flag> to
74 // the appropriate (llvm::)cl object. 94 // the appropriate (llvm::)cl object.
75 template <typename B, typename CL> struct cl_type_traits {}; 95 template <typename B, typename CL> struct cl_type_traits {};
76 96
77 template <typename T> 97 template <typename T>
78 struct cl_type_traits<T, ::Ice::cl_detail::dev_list_flag> { 98 struct cl_type_traits<T, ::Ice::cl_detail::dev_list_flag> {
79 using cl_type = cl::list<T>; 99 using cl_type = cl::list<T>;
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 (OutFileTypeObj != Ice::FT_Iasm)); 225 (OutFileTypeObj != Ice::FT_Iasm));
206 OutFlags.ForceO2.init(OutFlags.getForceO2String()); 226 OutFlags.ForceO2.init(OutFlags.getForceO2String());
207 OutFlags.SplitInsts.init(OutFlags.getSplitInstString()); 227 OutFlags.SplitInsts.init(OutFlags.getSplitInstString());
208 OutFlags.TestStatus.init(OutFlags.getTestStatusString()); 228 OutFlags.TestStatus.init(OutFlags.getTestStatusString());
209 OutFlags.TimingFocus.init(OutFlags.getTimingFocusOnString()); 229 OutFlags.TimingFocus.init(OutFlags.getTimingFocusOnString());
210 OutFlags.TranslateOnly.init(OutFlags.getTranslateOnlyString()); 230 OutFlags.TranslateOnly.init(OutFlags.getTranslateOnlyString());
211 OutFlags.VerboseFocus.init(OutFlags.getVerboseFocusOnString()); 231 OutFlags.VerboseFocus.init(OutFlags.getVerboseFocusOnString());
212 } 232 }
213 233
214 } // end of namespace Ice 234 } // end of namespace Ice
OLDNEW
« no previous file with comments | « no previous file | src/IceClFlags.def » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698