Skip to content

Commit e590edf

Browse files
committed
Refactor cgeist driver, separate options & optimizations. (#14)
* NFC:Polygeist: Refactor cgeist driver, separate options & optimizations. Signed-off-by: Tiotto, Ettore <ettore.tiotto@intel.com>
1 parent 0967496 commit e590edf

File tree

2 files changed

+544
-453
lines changed

2 files changed

+544
-453
lines changed

Diff for: polygeist/tools/cgeist/Options.h

+149
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
//===- Options.h - cgeist command line options ----------------------------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
//
9+
// Command line flags for cgeist.
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
#ifndef CGEIST_OPTIONS_H_
14+
#define CGEIST_OPTIONS_H_
15+
16+
#include "llvm/Support/CommandLine.h"
17+
#include <string>
18+
19+
static llvm::cl::OptionCategory toolOptions("clang to mlir - tool options");
20+
21+
static llvm::cl::opt<bool>
22+
CudaLower("cuda-lower", llvm::cl::init(false),
23+
llvm::cl::desc("Add parallel loops around cuda"));
24+
25+
static llvm::cl::opt<bool> EmitLLVM("emit-llvm", llvm::cl::init(false),
26+
llvm::cl::desc("Emit llvm"));
27+
28+
static llvm::cl::opt<bool> EmitOpenMPIR("emit-openmpir", llvm::cl::init(false),
29+
llvm::cl::desc("Emit OpenMP IR"));
30+
31+
static llvm::cl::opt<bool> EmitAssembly("S", llvm::cl::init(false),
32+
llvm::cl::desc("Emit Assembly"));
33+
34+
static llvm::cl::opt<bool> Opt0("O0", llvm::cl::init(false),
35+
llvm::cl::desc("Opt level 0"));
36+
static llvm::cl::opt<bool> Opt1("O1", llvm::cl::init(false),
37+
llvm::cl::desc("Opt level 1"));
38+
static llvm::cl::opt<bool> Opt2("O2", llvm::cl::init(false),
39+
llvm::cl::desc("Opt level 2"));
40+
static llvm::cl::opt<bool> Opt3("O3", llvm::cl::init(false),
41+
llvm::cl::desc("Opt level 3"));
42+
43+
static llvm::cl::opt<bool> SCFOpenMP("scf-openmp", llvm::cl::init(true),
44+
llvm::cl::desc("Emit llvm"));
45+
46+
static llvm::cl::opt<bool> OpenMPOpt("openmp-opt", llvm::cl::init(true),
47+
llvm::cl::desc("Turn on openmp opt"));
48+
49+
static llvm::cl::opt<bool>
50+
ParallelLICM("parallel-licm", llvm::cl::init(true),
51+
llvm::cl::desc("Turn on parallel licm"));
52+
53+
static llvm::cl::opt<bool>
54+
InnerSerialize("inner-serialize", llvm::cl::init(false),
55+
llvm::cl::desc("Turn on parallel licm"));
56+
57+
static llvm::cl::opt<bool> ShowAST("show-ast", llvm::cl::init(false),
58+
llvm::cl::desc("Show AST"));
59+
60+
static llvm::cl::opt<bool> ImmediateMLIR("immediate", llvm::cl::init(false),
61+
llvm::cl::desc("Emit immediate mlir"));
62+
63+
static llvm::cl::opt<bool> RaiseToAffine("raise-scf-to-affine",
64+
llvm::cl::init(false),
65+
llvm::cl::desc("Raise SCF to Affine"));
66+
67+
static llvm::cl::opt<bool>
68+
ScalarReplacement("scal-rep", llvm::cl::init(true),
69+
llvm::cl::desc("Raise SCF to Affine"));
70+
71+
static llvm::cl::opt<bool> LoopUnroll("unroll-loops", llvm::cl::init(true),
72+
llvm::cl::desc("Unroll Affine Loops"));
73+
74+
static llvm::cl::opt<bool>
75+
DetectReduction("detect-reduction", llvm::cl::init(false),
76+
llvm::cl::desc("Detect reduction in inner most loop"));
77+
78+
static llvm::cl::opt<std::string> Standard("std", llvm::cl::init(""),
79+
llvm::cl::desc("C/C++ std"));
80+
81+
static llvm::cl::opt<std::string> CUDAGPUArch("cuda-gpu-arch",
82+
llvm::cl::init(""),
83+
llvm::cl::desc("CUDA GPU arch"));
84+
85+
static llvm::cl::opt<std::string> CUDAPath("cuda-path", llvm::cl::init(""),
86+
llvm::cl::desc("CUDA Path"));
87+
88+
static llvm::cl::opt<bool>
89+
NoCUDAInc("nocudainc", llvm::cl::init(false),
90+
llvm::cl::desc("Do not include CUDA headers"));
91+
92+
static llvm::cl::opt<bool>
93+
NoCUDALib("nocudalib", llvm::cl::init(false),
94+
llvm::cl::desc("Do not link CUDA libdevice"));
95+
96+
static llvm::cl::opt<std::string> Output("o", llvm::cl::init("-"),
97+
llvm::cl::desc("Output file"));
98+
99+
static llvm::cl::opt<std::string>
100+
cfunction("function", llvm::cl::desc("<Specify function>"),
101+
llvm::cl::init("main"), llvm::cl::cat(toolOptions));
102+
103+
static llvm::cl::opt<bool> FOpenMP("fopenmp", llvm::cl::init(false),
104+
llvm::cl::desc("Enable OpenMP"));
105+
106+
static llvm::cl::opt<std::string> ToCPU("cpuify", llvm::cl::init(""),
107+
llvm::cl::desc("Convert to cpu"));
108+
109+
static llvm::cl::opt<std::string> MArch("march", llvm::cl::init(""),
110+
llvm::cl::desc("Architecture"));
111+
112+
static llvm::cl::opt<std::string> ResourceDir("resource-dir",
113+
llvm::cl::init(""),
114+
llvm::cl::desc("Resource-dir"));
115+
116+
static llvm::cl::opt<std::string> SysRoot("sysroot", llvm::cl::init(""),
117+
llvm::cl::desc("sysroot"));
118+
119+
static llvm::cl::opt<bool>
120+
EarlyVerifier("early-verifier", llvm::cl::init(false),
121+
llvm::cl::desc("Enable verifier ASAP"));
122+
123+
static llvm::cl::opt<bool> Verbose("v", llvm::cl::init(false),
124+
llvm::cl::desc("Verbose"));
125+
126+
static llvm::cl::list<std::string>
127+
includeDirs("I", llvm::cl::desc("include search path"),
128+
llvm::cl::cat(toolOptions));
129+
130+
static llvm::cl::list<std::string> defines("D", llvm::cl::desc("defines"),
131+
llvm::cl::cat(toolOptions));
132+
133+
static llvm::cl::list<std::string>
134+
Includes("include", llvm::cl::desc("includes"), llvm::cl::cat(toolOptions));
135+
136+
static llvm::cl::opt<std::string>
137+
TargetTripleOpt("target", llvm::cl::init(""),
138+
llvm::cl::desc("Target triple"),
139+
llvm::cl::cat(toolOptions));
140+
141+
static llvm::cl::opt<int> CanonicalizeIterations(
142+
"canonicalizeiters", llvm::cl::init(400),
143+
llvm::cl::desc("Number of canonicalization iterations"));
144+
145+
static llvm::cl::opt<std::string> McpuOpt("mcpu", llvm::cl::init(""),
146+
llvm::cl::desc("Target CPU"),
147+
llvm::cl::cat(toolOptions));
148+
149+
#endif /* CGEIST_OPTIONS_H_ */

0 commit comments

Comments
 (0)