@@ -260,6 +260,10 @@ def run(self, cwd, args):
260
260
"-Dpython.home=%s" % join (SUITE .dir , "graalpython" ),
261
261
"com.oracle.graal.python.shell.GraalPythonMain"
262
262
]
263
+ for a in args [:]:
264
+ if a .startswith ("-D" ) or a .startswith ("-XX" ):
265
+ vm_args .insert (0 , a )
266
+ args .remove (a )
263
267
cmd = truffle_options + vm_args + extra_polyglot_args + args
264
268
265
269
host_vm = self .host_vm ()
@@ -361,31 +365,37 @@ def run(self, benchmarks, bm_suite_args):
361
365
return results
362
366
363
367
def postprocess_run_args (self , run_args ):
364
- parser = argparse .ArgumentParser (add_help = False )
365
- parser .add_argument ("-i" , default = None )
366
- parser .add_argument ("--cpusampler" , action = "store_true" )
367
- parser .add_argument ("--memtracer" , action = "store_true" )
368
- parser .add_argument ("-dump" , action = "store_true" )
369
- args , remaining = parser .parse_known_args (run_args )
370
-
371
368
vm_options = []
372
- if args .cpusampler :
373
- vm_options .append ("--cpusampler" )
374
- if args .memtracer :
375
- vm_options .append ("--memtracer" )
376
- if args .dump :
377
- vm_options .append ("-dump" )
378
-
379
- if args .i :
380
- if args .i .isdigit ():
381
- return vm_options , (["-i" , args .i ] + remaining )
382
- if args .i == "-1" :
383
- return vm_options , remaining
384
- else :
369
+ remaining = []
370
+ i = 0
371
+
372
+ while i < len (run_args ):
373
+ arg = run_args [i ]
374
+ if not arg .startswith ("-" ):
375
+ remaining = run_args [i :]
376
+ break
377
+ elif arg .startswith ("-i" ):
378
+ if len (run_args ) >= i and run_args [i + 1 ] == "-1" :
379
+ pass
380
+ else :
381
+ remaining = run_args [i :]
382
+ break
383
+ else :
384
+ vm_options .append (arg )
385
+ i += 1
386
+
387
+ if not (remaining and remaining [0 ] == "-i" ):
385
388
iterations = DEFAULT_ITERATIONS + self .getExtraIterationCount (DEFAULT_ITERATIONS )
386
- return vm_options , (["-i" , str (iterations )] + remaining )
389
+ remaining = ["-i" , str (iterations )] + remaining
390
+
391
+ return vm_options , remaining
392
+
393
+ def createCommandLineArgs (self , benchmarks , bmSuiteArgs ):
394
+ return self .createVmCommandLineArgs (benchmarks , bmSuiteArgs )
387
395
388
- def createVmCommandLineArgs (self , benchmarks , run_args ):
396
+ def createVmCommandLineArgs (self , benchmarks , bmSuiteArgs ):
397
+ vm_args = self .vmArgs (bmSuiteArgs )
398
+ run_args = self .runArgs (bmSuiteArgs )
389
399
if not benchmarks or len (benchmarks ) != 1 :
390
400
mx .abort ("Please run a specific benchmark (mx benchmark {}:<benchmark-name>) or all the benchmarks "
391
401
"(mx benchmark {}:*)" .format (self .name (), self .name ()))
@@ -412,7 +422,7 @@ def createVmCommandLineArgs(self, benchmarks, run_args):
412
422
run_args += self ._benchmarks [benchmark ]
413
423
vm_options , run_args = self .postprocess_run_args (run_args )
414
424
cmd_args .extend (run_args )
415
- return vm_options + cmd_args
425
+ return vm_options + vm_args + cmd_args
416
426
417
427
def benchmarkList (self , bm_suite_args ):
418
428
return self ._benchmarks .keys ()
0 commit comments