Coming back to that after being consumed by other things for almost a
week.
The full set I went through was eventually this:
# experiment with different compilers
#works export CC=gcc-14 CXX=g++-14 CFLAGS="-O0 -g"
#works export CC=gcc-15 CXX=g++-15 CFLAGS="-O0 -g"
#fails export CC=gcc-15 CXX=g++-15
#fails export CC=gcc-15 CXX=g++-15 CFLAGS="-g"
#works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g"
#fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O2 -g"
# fulllist
#fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -falign-functions
-falign-jumps -falign-labels -falign-loops -fcaller-saves -fcode-hoisting
-fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp -fisolate-erroneous-paths-dereference -flra-remat -foptimize-crc
-foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2
-freorder-blocks-algorithm=stc -freorder-blocks-and-partition
-freorder-functions -frerun-cse-after-loop -fschedule-insns -fschedule-insns2
-fsched-interblock -fsched-spec -fstore-merging -fthread-jumps
-ftree-builtin-call-dce -ftree-loop-vectorize -ftree-pre -ftree-slp-vectorize
-ftree-switch-conversion -ftree-tail-merge -ftree-vrp
-fvect-cost-model=very-cheap"
# halflist 1
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -foptimize-sibling-calls
-foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-blocks-algorithm=stc
-freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop
-fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec
-fstore-merging -fthread-jumps -ftree-builtin-call-dce -ftree-loop-vectorize
-ftree-pre -ftree-slp-vectorize -ftree-switch-conversion -ftree-tail-merge
-ftree-vrp -fvect-cost-model=very-cheap"
# halflist 2
#fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -falign-functions
-falign-jumps -falign-labels -falign-loops -fcaller-saves -fcode-hoisting
-fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp -fisolate-erroneous-paths-dereference -flra-remat -foptimize-crc"
# quarter 1
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -ffinite-loops -fgcse
-fgcse-lm -fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp -fisolate-erroneous-paths-dereference -flra-remat -foptimize-crc"
# quarter 2
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -falign-functions
-falign-jumps -falign-labels -falign-loops -fcaller-saves -fcode-hoisting
-fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations"
# short1 - dropped -fisolate-erroneous-paths-dereference -flra-remat
-foptimize-crc
#fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -falign-functions
-falign-jumps -falign-labels -falign-loops -fcaller-saves -fcode-hoisting
-fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp"
# short2 - dropped -falign-jumps -falign-labels -falign-loops
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcode-hoisting -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp -fisolate-erroneous-paths-dereference -flra-remat -foptimize-crc"
# short3 - dropped -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations
#export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -falign-functions -falign-jumps
-falign-labels -falign-loops -fcaller-saves -fcode-hoisting -fcrossjumping
-fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks
-ffinite-loops -fgcse -fgcse-lm -fhoist-adjacent-loads -finline-functions
-finline-small-functions -findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf
-fipa-ra -fipa-sra -fipa-vrp -fisolate-erroneous-paths-dereference
-flra-remat -foptimize-crc"
# short 4 - common set left after the skips in 1-3
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcode-hoisting -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp"
# shorter 1 - drop -fcaller-saves -fcode-hoisting -fcrossjumping
-fcse-follow-jumps -fcse-skip-blocks
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp"
# shorter 2 - drop -fdelete-null-pointer-checks -fdevirtualize
-fdevirtualize-speculatively
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcode-hoisting -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp"
# shorter 3 - drop -finline-functions -finline-small-functions
-findirect-inlining
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcode-hoisting -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads
-fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra -fipa-vrp"
# shorter 4 - drop -fipa-bit-cp -fipa-cp -fipa-icf -fipa-ra -fipa-sra
-fipa-vrp
# fail export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcode-hoisting -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads -finline-functions -finline-small-functions
-findirect-inlining"
# common block: -fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads
# drop fixed: -fcaller-saves -fcode-hoisting -fcrossjumping
-fcse-follow-jumps -fcse-skip-blocks
# suspect 1
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcode-hoisting -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fexpensive-optimizations -ffinite-loops -fgcse -fgcse-lm
-fhoist-adjacent-loads"
# suspect 2
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcse-skip-blocks
-fexpensive-optimizations"
# suspect 3
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g
-fcode-hoisting -fcrossjumping -fcse-follow-jumps
-ffinite-loops -fgcse -fgcse-lm -fhoist-adjacent-loads"
# suspect 4
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcode-hoisting -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fexpensive-optimizations"
# ok it isn't either half of it, but thie full one fails reduce them slower
# reduce 1
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcode-hoisting -fcrossjumping -fcse-follow-jumps
-ffinite-loops -fgcse -fgcse-lm -fhoist-adjacent-loads"
# reduce 2
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fcrossjumping -fcse-follow-jumps
-ffinite-loops -fgcse -fgcse-lm"
# reduce 3
# fail export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves -ffinite-loops
-fgcse -fgcse-lm"
# reduce 4
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-ffinite-loops"
# reduce 5
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g
-ffinite-loops -fgcse"
#
# OK, one by one now
# single 1
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g
-ffinite-loops -fgcse -fgcse-lm"
# single 2
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fcaller-saves
-fgcse -fgcse-lm"
# single 3
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fgcse
-fgcse-lm"
# single 4
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fgcse-lm"
# single 5
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O1 -g -fgcse "
# So "-fgcse -fgcse-lm" is the smallest set, and it makes sense as
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fgcse-lm
# says -fgcse-lm is Enabled by default when -fgcse is enabled.
# Invert it and try if one is enough
# good 1
# works export CC=gcc-15 CXX=g++-15 CFLAGS="-O2 -g -fno-gcse"
# good 2
# fails export CC=gcc-15 CXX=g++-15 CFLAGS="-O2 -g -fno-gcse-lm"
# Sorry this was not very sophisticated, but also not too any checks
either and was a great "set one up between each meeting" way to do that
:-)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2120835
Title:
EDK2 tests for riscv emulation fail against qemu 10.1 on ppc64el
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/edk2/+bug/2120835/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs