O2FLAGS="-fno-align-functions -fno-align-jumps -fno-align-labels -fno-align-loops -fno-caller-saves -fno-code-hoisting -fno-crossjumping -fno-cse-follow-jumps -fno-cse-skip-blocks -fno-delete-null-pointer-checks -fno-devirtualize -fno-devirtualize-speculatively -fno-expensive-optimizations -fno-finite-loops -fno-gcse -fno-gcse-lm -fno-hoist-adjacent-loads -fno-inline-functions -fno-inline-small-functions -fno-indirect-inlining -fno-ipa-bit-cp -fno-ipa-cp -fno-ipa-icf -fno-ipa-ra -fno-ipa-sra -fno-ipa-vrp -fno-isolate-erroneous-paths-dereference -fno-lra-remat -fno-optimize-sibling-calls -fno-optimize-strlen -fno-partial-inlining -fno-peephole2 -fno-reorder-blocks-and-partition -fno-reorder-functions -fno-rerun-cse-after-loop -fno-schedule-insns -fno-schedule-insns2 -fno-sched-interblock -fno-sched-spec -fno-store-merging -fno-strict-aliasing -fno-thread-jumps -fno-tree-builtin-call-dce -fno-tree-loop-vectorize -fno-tree-pre -fno-tree-slp-vectorize -fno-tree-switch-conversion -fno-tree-tail-merge -fno-tree-vrp" #-fno-reorder-blocks-algorithm=stc #-fno-vect-cost-model=very-cheap" O3FLAGS="-fno-gcse-after-reload -fno-ipa-cp-clone -fno-loop-interchange -fno-loop-unroll-and-jam -fno-peel-loops -fno-predictive-commoning -fno-split-loops -fno-split-paths -fno-tree-loop-distribution -fno-tree-partial-pre -fno-unswitch-loops -fno-version-loops-for-strides" #-fno-vect-cost-model=dynamic for i in $O2FLAGS; do rm spectre_v2-gcc-O2 > /dev/null; CFLAGS="$i" make spectre_v2-gcc-O2; ./spectre_v2-gcc-O2 2> /dev/null > /dev/null && echo -e "\033[32m ok $i\033[0m" done for i in $O3FLAGS; do rm spectre_v2-gcc-O3 > /dev/null; CFLAGS="$i" make spectre_v2-gcc-O3; ./spectre_v2-gcc-O3 2> /dev/null > /dev/null && echo -e "\033[32m ok $i\033[0m" done