Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
bed30c37
Kaydet (Commit)
bed30c37
authored
Ock 12, 2016
tarafından
Zachary Ware
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Issue #25348: Add --pgo and --pgo-job flags to PCbuild\build.bat
üst
a7c159dd
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
61 additions
and
51 deletions
+61
-51
NEWS
Misc/NEWS
+5
-0
build.bat
PCbuild/build.bat
+52
-5
build_pgo.bat
PCbuild/build_pgo.bat
+4
-46
No files found.
Misc/NEWS
Dosyayı görüntüle @
bed30c37
...
...
@@ -151,6 +151,11 @@ Tests
Build
-----
- Issue #25348: Added ``--pgo`` and ``--pgo-job`` arguments to
``PCbuild\build.bat`` for building with Profile-Guided Optimization. The
old ``PCbuild\build_pgo.bat`` script is now deprecated, and simply calls
``PCbuild\build.bat --pgo %*``.
- Issue #25827: Add support for building with ICC to ``configure``, including
a new ``--with-icc`` flag.
...
...
PCbuild/build.bat
Dosyayı görüntüle @
bed30c37
...
...
@@ -25,6 +25,9 @@ echo. -M Disable parallel build
echo. -v Increased output messages
echo. -k Attempt to kill any running Pythons before building (usually done
echo. automatically by the pythoncore project)
echo. --pgo Build with Profile-Guided Optimization. This flag
echo. overrides -c and -d
echo. --test-marker Enable the test marker within the build.
echo.
echo.Available flags to avoid building certain modules.
echo.These flags have no effect if '-e' is not given:
...
...
@@ -38,7 +41,8 @@ echo. -p x64 ^| Win32
echo. Set the platform (default: Win32)
echo. -t Build ^| Rebuild ^| Clean ^| CleanAll
echo. Set the target manually
echo. --test-marker Enable the test marker within the build.
echo. --pgo-job The job to use for PGO training; implies --pgo
echo. (default: "-m test --pgo")
exit /b 127
:Run
...
...
@@ -51,6 +55,12 @@ set dir=%~dp0
set parallel=/m
set verbose=/nologo /v:m
set kill=
set do_pgo=
set pgo_job=-m test --pgo
set on_64_bit=true
rem This may not be 100% accurate, but close enough.
if "%ProgramFiles(x86)%"=="" (set on_64_bit=false)
:CheckOpts
if "%~1"=="-h" goto Usage
...
...
@@ -63,6 +73,8 @@ if "%~1"=="-m" (set parallel=/m) & shift & goto CheckOpts
if "%~1"=="-M" (set parallel=) & shift & goto CheckOpts
if "%~1"=="-v" (set verbose=/v:n) & shift & goto CheckOpts
if "%~1"=="-k" (set kill=true) & shift & goto CheckOpts
if "%~1"=="--pgo" (set do_pgo=true) & shift & goto CheckOpts
if "%~1"=="--pgo-job" (set do_pgo=true) & (set pgo_job=%~2) & shift & shift & goto CheckOpts
if "%~1"=="--test-marker" (set UseTestMarker=true) & shift & goto CheckOpts
if "%~1"=="-V" shift & goto Version
rem These use the actual property names used by MSBuild. We could just let
...
...
@@ -78,15 +90,49 @@ if "%IncludeTkinter%"=="" set IncludeTkinter=true
if "%IncludeExternals%"=="true" call "%dir%get_externals.bat"
if "%platf%"=="x64" (set vs_platf=x86_amd64)
if "%platf%"=="x64" (
if "%on_64_bit%"=="true" (
rem This ought to always be correct these days...
set vs_platf=amd64
) else (
if "%do_pgo%"=="true" (
echo.ERROR: Cannot cross-compile with PGO
echo. 32bit operating system detected, if this is incorrect,
echo. make sure the ProgramFiles(x86^) environment variable is set
exit /b 1
)
set vs_platf=x86_amd64
)
)
rem Setup the environment
call "%dir%env.bat" %vs_platf% >nul
if "%kill%"=="true" (
msbuild /v:m /nologo /target:KillPython "%dir%\pythoncore.vcxproj" /p:Configuration=%conf% /p:Platform=%platf% /p:KillPython=true
if "%kill%"=="true" call :Kill
if "%do_pgo%"=="true" (
set conf=PGInstrument
call :Build
del /s "%dir%\*.pgc"
del /s "%dir%\..\Lib\*.pyc"
echo on
call "%dir%\..\python.bat" %pgo_job%
@echo off
call :Kill
set conf=PGUpdate
)
goto Build
:Kill
echo on
msbuild "%dir%\pythoncore.vcxproj" /t:KillPython %verbose%^
/p:Configuration=%conf% /p:Platform=%platf%^
/p:KillPython=true
@echo off
goto :eof
:Build
rem Call on MSBuild to do the work, echo the command.
rem Passing %1-9 is not the preferred option, but argument parsing in
rem batch is, shall we say, "lackluster"
...
...
@@ -98,7 +144,8 @@ msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose%^
/p:UseTestMarker=%UseTestMarker%^
%1 %2 %3 %4 %5 %6 %7 %8 %9
@goto :eof
@echo off
goto :eof
:Version
rem Display the current build version information
...
...
PCbuild/build_pgo.bat
Dosyayı görüntüle @
bed30c37
@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.
echo.DeprecationWarning:
echo. This script is deprecated, use `build.bat --pgo` instead.
echo.
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
call "%~dp0build.bat" --pgo %*
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment