Hi Andrew, Good news! After enhance the GenFw tool, I finally enable the clang LTO build on edk2 and pass test on the OVMF three platforms (OvmfPkgIa32.dsc, OvmfPkgX64.dsc, OvmfPkgIa32X64.dsc) in my side . Below is the code size comparing data between VS2015x86 and CLANGLTO38. You can see they are quite close and their gap is almost less than 10%.
I’ve push all my enhancement in edk2 llvm branch: https://github.com/shijunjing/edk2/tree/llvm, and please use “git diff master --name-only” to see all my updated from master. Thank you again for the valuable advices during the enabling. Image toolchain RELEASE IA32 PeiCore.efi DEBUG IA32 PeiCore.efi RELEASE X64 PeiCore.efi DEBUG X64 PeiCore.efi RELEASE X64 DxeCore.efi DEBUG X64 DxeCore.efi RELEASE IA32 StatusCodePei.efi DEBUG IA32 StatusCodePei.efi RELEASE X64 Timer.efi DEBUG X64 Timer.efi VS2015x86 20,512 40,832 25,440 47,808 97,600 141,216 1,408 8,736 1,888 9,920 CLANGLTO38 22,656 42,176 27,200 46,912 103,616 142,080 1,344 7,872 1,664 8,576 (CLANGLTO38 - VS2015x86)/ VS2015x86 10.45% 3.29% 6.9% -1.8% 6.1% 0.6% -4.5% -9.8% -11.8% -13.5% Image build commands: VS2015x86: build -a IA32 -t VS2015x86-p OvmfPkg\OvmfPkgIa32.dsc -n 5 -b RELEASE build -a IA32 -t VS2015x86-p OvmfPkg\OvmfPkgIa32.dsc -n 5 -b DEBUG -DDEBUG_ON_SERIAL_PORT build -a X64 -t VS2015x86-p OvmfPkg\OvmfPkgX64.dsc -n 5 -b RELEASE build -a X64 -t VS2015x86-p OvmfPkg\OvmfPkgX64.dsc -n 5 -b DEBUG -DDEBUG_ON_SERIAL_PORT CLANGLTO38: build -a IA32 -t CLANGLTO38 -p OvmfPkg/OvmfPkgIa32.dsc -n 5 -b RELEASE build -a IA32 -t CLANGLTO38 -p OvmfPkg/OvmfPkgIa32.dsc -n 5 -b DEBUG -DDEBUG_ON_SERIAL_PORT build -a X64 -t CLANGLTO38 -p OvmfPkg/OvmfPkgX64.dsc -n 5 -b RELEASE build -a X64 -t CLANGLTO38 -p OvmfPkg/OvmfPkgX64.dsc -n 5 -b DEBUG -DDEBUG_ON_SERIAL_PORT Steven Shi Intel\SSG\STO\UEFI Firmware Tel: +86 021-61166522 iNet: 821-6522 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel