Staging
v0.5.1
https://github.com/python/cpython
Raw File
Tip revision: 11fc030b6f9294030f0baa15f3bd4e2293e260e4 authored by Benjamin Peterson on 05 December 2015, 19:45:17 UTC
2.7.11 final
Tip revision: 11fc030
build_pgo.bat
@echo off
rem A batch program to build PGO (Profile guided optimization) by first
rem building instrumented binaries, then running the testsuite, and
rem finally building the optimized code.
rem Note, after the first instrumented run, one can just keep on
rem building the PGUpdate configuration while developing.

setlocal
set platf=Win32
set parallel=/m
set dir=%~dp0

rem use the performance testsuite.  This is quick and simple
set job1="%dir%..\tools\pybench\pybench.py" -n 1 -C 1 --with-gc
set path1="%dir%..\tools\pybench"

rem or the whole testsuite for more thorough testing
set job2="%dir%..\lib\test\regrtest.py"
set path2="%dir%..\lib"

set job=%job1%
set clrpath=%path1%

:CheckOpts
if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts
if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts
if "%1"=="-M" (set parallel=) & shift & goto CheckOpts


rem We cannot cross compile PGO builds, as the optimization needs to be run natively
set vs_platf=x86
set PGO=%dir%win32-pgo

if "%platf%"=="x64" (set vs_platf=amd64) & (set PGO=%dir%amd64-pgo)
rem Setup the environment
call "%dir%env.bat" %vs_platf%


rem build the instrumented version
msbuild "%dir%pcbuild.proj" %parallel% /t:Build /p:Configuration=PGInstrument /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9

rem remove .pyc files, .pgc files and execute the job
"%PGO%\python.exe" "%dir%rmpyc.py" %clrpath%
del "%PGO%\*.pgc"
"%PGO%\python.exe" %job%

rem build optimized version
msbuild "%dir%pcbuild.proj" %parallel% /t:Build /p:Configuration=PGUpdate /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9
back to top