MCPcopy Create free account
hub / github.com/SeaOfNodes/Simple / main

Method main

chapter21/src/test/java/com/seaofnodes/simple/Simple.java:161–313  ·  view source on GitHub ↗
(String[] args)

Source from the content-addressed store, hash-verified

159 }
160
161 public static void main(String[] args) throws Exception {
162 String input_filename = null;
163 boolean use_stdin = false;
164 boolean do_eval = false;
165 boolean do_run = false;
166 boolean do_codegen = false;
167 boolean do_print_size = false;
168 boolean do_print_time = false;
169 int dump = 0;
170 int first_arg = 0;
171 String src = null;
172 String cpu = null;
173 String abi = null;
174
175 // TODO: autodetect
176 system_cpu = "x86_64_v2";
177 system_abi = "SystemV";
178
179 // Parse command line
180loop: for (int i = 0; i < args.length; i++) {
181 String arg = args[i];
182 if (arg.charAt(0) == '-') {
183 switch (arg) {
184 case "-": use_stdin = true; break;
185 case "--dump": dump |= DUMP_FINAL; break;
186 case "--dump-after-parse": dump |= DUMP_AFTER_PARSE; break;
187 case "--dump-after-opto": dump |= DUMP_AFTER_OPTO; break;
188 case "--dump-after-type-check": dump |= DUMP_AFTER_TYPE_CHECK; break;
189 case "--dump-after-loop-tree": dump |= DUMP_AFTER_LOOP_TREE; break;
190 case "--dump-after-instr-select": dump |= DUMP_AFTER_INSTR_SELECT; break;
191 case "--dump-after-gcm": dump |= DUMP_AFTER_GCM; break;
192 case "--dump-after-local-sched": dump |= DUMP_AFTER_LOCAL_SCHED; break;
193 case "--dump-after-reg-alloc": dump |= DUMP_AFTER_REG_ALLOC; break;
194 case "--dump-after-encode": dump |= DUMP_AFTER_ENCODE; break;
195 case "--dump-after-all": dump |= DUMP_AFTER_ALL; break;
196 case "--dot": dump |= DUMP_DOT; break;
197 case "-S": dump |= DUMP_DISASSEMBLE; break;
198 case "--eval": do_eval = true; first_arg = i + 1; break loop;
199 case "--run": do_run = true; first_arg = i + 1; break loop;
200 case "--dump-size": do_print_size = true; break;
201 case "--dump-time": do_print_time = true; break;
202 case "--cpu": if (cpu != null
203 || i + 1 >= args.length
204 || args[i + 1].charAt(0) == '-') bad_usage();
205 cpu = args[i + 1];
206 i++;
207 break;
208 case "--abi": if (abi != null
209 || i + 1 >= args.length
210 || args[i + 1].charAt(0) == '-') bad_usage();
211 abi = args[i + 1];
212 i++;
213 break;
214 case "--target": target();
215 case "--version": throw Utils.TODO();
216 case "--help": usage();
217 default: bad_usage();
218 }

Callers

nothing calls this directly

Calls 15

bad_usageMethod · 0.95
targetMethod · 0.95
TODOMethod · 0.95
usageMethod · 0.95
getInputMethod · 0.95
parseMethod · 0.95
dumpMethod · 0.95
optoMethod · 0.95
typeCheckMethod · 0.95
loopTreeMethod · 0.95
instSelectMethod · 0.95
GCMMethod · 0.95

Tested by

no test coverage detected