diff options
author | Konstantin Baladurin <k.baladurin@samsung.com> | 2019-04-18 12:29:56 +0300 |
---|---|---|
committer | Konstantin Baladurin <k.baladurin@samsung.com> | 2019-09-26 00:24:27 +0300 |
commit | afb9ce877fa04946e9cf4e76fd731af63b45eaa5 (patch) | |
tree | a4a9fa0d3b953bea0957fd70ca968e8372b8aad7 | |
parent | 67c356ce140eb2b07acfecc1f434062d21c055f4 (diff) | |
download | coreclr-afb9ce877fa04946e9cf4e76fd731af63b45eaa5.tar.gz coreclr-afb9ce877fa04946e9cf4e76fd731af63b45eaa5.tar.bz2 coreclr-afb9ce877fa04946e9cf4e76fd731af63b45eaa5.zip |
[Tizen] Enable PGO for Linux/arm
-rw-r--r-- | .packages/optimization.linux-arm.pgo.coreclr/99.99.99-master-20190912.1/data/clrjit.profdata | bin | 0 -> 949192 bytes | |||
-rw-r--r-- | .packages/optimization.linux-arm.pgo.coreclr/99.99.99-master-20190912.1/data/coreclr.profdata | bin | 0 -> 36848 bytes | |||
-rwxr-xr-x | packaging/coreclr.spec | 27 | ||||
-rw-r--r-- | pgosupport.cmake | 4 |
4 files changed, 27 insertions, 4 deletions
diff --git a/.packages/optimization.linux-arm.pgo.coreclr/99.99.99-master-20190912.1/data/clrjit.profdata b/.packages/optimization.linux-arm.pgo.coreclr/99.99.99-master-20190912.1/data/clrjit.profdata Binary files differnew file mode 100644 index 0000000000..5377cc513c --- /dev/null +++ b/.packages/optimization.linux-arm.pgo.coreclr/99.99.99-master-20190912.1/data/clrjit.profdata diff --git a/.packages/optimization.linux-arm.pgo.coreclr/99.99.99-master-20190912.1/data/coreclr.profdata b/.packages/optimization.linux-arm.pgo.coreclr/99.99.99-master-20190912.1/data/coreclr.profdata Binary files differnew file mode 100644 index 0000000000..483d897f0f --- /dev/null +++ b/.packages/optimization.linux-arm.pgo.coreclr/99.99.99-master-20190912.1/data/coreclr.profdata diff --git a/packaging/coreclr.spec b/packaging/coreclr.spec index 021938daf1..58450e418b 100755 --- a/packaging/coreclr.spec +++ b/packaging/coreclr.spec @@ -2,6 +2,10 @@ %define skipnative 0 %define skipmscorlib 0 + +%define pgo_instrument 0 +%define pgo_optimize 1 + %ifarch %{ix86} %define dotnet_buildtype Release %endif @@ -78,6 +82,11 @@ BuildRequires: libopenssl-64bit %endif %endif +%if 0%{pgo_instrument} || 0%{pgo_optimize} +BuildRequires: binutils-gold +BuildRequires: compiler-rt +%endif + %description The CoreCLR repo contains the complete runtime implementation for .NET Core. It includes RyuJIT, the .NET GC, native interop and many other components. It is cross-platform, with multiple OS and CPU ports in progress. @@ -178,6 +187,20 @@ export CXXFLAGS+="-fstack-protector-strong" %endif %endif +%if 0%{skipnative} +%else +%if 0%{pgo_instrument} +%define _pgo_flags -pgoinstrument +%else +%if 0%{pgo_optimize} +# pgo optimization is enabled by default +%define _pgo_flags "" +%else +%define _pgo_flags -nopgooptimize +%endif +%endif +%endif + %ifarch %{arm} %define _ngen_relocs_opts cmakeargs "-DFEATURE_NGEN_RELOCS_OPTIMIZATIONS=true" %else @@ -191,7 +214,7 @@ export CXXFLAGS+="-fstack-protector-strong" # Build native only. export NUGET_PACKAGES=%{_builddir}/%{name}-%{version}/.packages/ export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/libicu-57.1/ -./build.sh -%{_barch} -%{_buildtype} -numproc %{_numproc} -clang3.8 -skipmscorlib -skipgenerateversion -skipnuget -msbuildonunsupportedplatform -cmakeargs "-DFEATURE_GDBJIT=TRUE -DFEATURE_PREJIT=true -DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION=true -DCLR_ADDITIONAL_LINKER_FLAGS=-Wl,-z,relro" %{_ngen_relocs_opts} +./build.sh -%{_barch} -%{_buildtype} -numproc %{_numproc} -skipmscorlib -skipgenerateversion -skipnuget -msbuildonunsupportedplatform -cmakeargs "-DFEATURE_GDBJIT=TRUE -DFEATURE_PREJIT=true -DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION=true -DCLR_ADDITIONAL_LINKER_FLAGS=-Wl,-z,relro" %{_ngen_relocs_opts} %{_pgo_flags} %endif %else %if 0%{skipnative} @@ -203,7 +226,7 @@ export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/libicu-57.1/ # Build native and mscorlib. export NUGET_PACKAGES=%{_builddir}/%{name}-%{version}/.packages/ export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/libicu-57.1/ -./build.sh -%{_barch} -%{_buildtype} -numproc %{_numproc} -clang3.8 -skipgenerateversion -skiprestore -skiprestoreoptdata -skipnuget -skipcrossgen -msbuildonunsupportedplatform -cmakeargs "-DFEATURE_GDBJIT=TRUE -DFEATURE_PREJIT=true -DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION=true -DCLR_ADDITIONAL_LINKER_FLAGS=-Wl,-z,relro" %{_ngen_relocs_opts} +./build.sh -%{_barch} -%{_buildtype} -numproc %{_numproc} -skipgenerateversion -skiprestore -skiprestoreoptdata -skipnuget -skipcrossgen -msbuildonunsupportedplatform -cmakeargs "-DFEATURE_GDBJIT=TRUE -DFEATURE_PREJIT=true -DFEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION=true -DCLR_ADDITIONAL_LINKER_FLAGS=-Wl,-z,relro" %{_ngen_relocs_opts} %{_pgo_flags} %endif %endif diff --git a/pgosupport.cmake b/pgosupport.cmake index dec050033e..514c725f43 100644 --- a/pgosupport.cmake +++ b/pgosupport.cmake @@ -22,8 +22,8 @@ function(add_pgo TargetName) set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS_RELWITHDEBINFO " /LTCG /GENPROFILE") else(WIN32) if(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELEASE OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO) - target_compile_options(${TargetName} PRIVATE -flto -fprofile-instr-generate) - set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS " -flto -fuse-ld=gold -fprofile-instr-generate") + target_compile_options(${TargetName} PRIVATE -flto -fprofile-instr-generate=/tmp/${TargetName}-%p.profdata) + set_property(TARGET ${TargetName} APPEND_STRING PROPERTY LINK_FLAGS " -flto -fuse-ld=gold -fprofile-instr-generate=/tmp/${TargetName}-%p.profdata") endif(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELEASE OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO) endif(WIN32) elseif(CLR_CMAKE_PGO_OPTIMIZE) |