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

Reply via email to