4233 - no real difference between -O2 or -O3

Neither in compile time, nor in the performance of the generated code.

(Triggered by https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc)
This commit is contained in:
Kartik K. Agaram 2018-03-22 21:52:35 -07:00
parent 6b1bd1ffad
commit 34514ae8a6
4 changed files with 9 additions and 9 deletions

8
build0
View File

@ -21,12 +21,12 @@ cd tangle
grep -h "^[[:space:]]*void test_" [0-9]*.cc |sed 's/^\s*void \(.*\)() {$/\1,/' > test_list
# }
# Now that we have all the _lists, compile 'tangle'
g++ -g -O3 boot.cc -o tangle
g++ -g -O2 boot.cc -o tangle
cd ..
cd termbox
gcc -g -O3 -c termbox.c
gcc -g -O3 -c utf8.c
gcc -g -O2 -c termbox.c
gcc -g -O2 -c utf8.c
ar rcs libtermbox.a *.o
cd ..
@ -38,6 +38,6 @@ cd ..
grep -h "^[^[:space:]#].*) {$" mu.cc |grep -v ":.*(" |sed 's/ {.*/;/' > function_list
# auto-generate list of tests to run
grep -h "^\s*void test_" mu.cc |sed 's/^\s*void \(.*\)() {.*/\1,/' > test_list
g++ -g -O3 mu.cc termbox/libtermbox.a -o mu_bin
g++ -g -O2 mu.cc termbox/libtermbox.a -o mu_bin
cat [0-9]*.mu > core.mu

2
build1
View File

@ -12,7 +12,7 @@ set -e # stop immediately on error
# $ CFLAGS=-g ./build1
test "$CXX" || export CXX=c++
test "$CC" || export CC=cc
test "$CFLAGS" || export CFLAGS="-g -O3"
test "$CFLAGS" || export CFLAGS="-g -O2"
export CFLAGS="$CFLAGS -Wall -Wextra -ftrapv -fno-strict-aliasing"
# Outline:

4
build2
View File

@ -12,7 +12,7 @@ set -e # stop immediately on error
# $ CFLAGS=-g ./build2
test "$CXX" || export CXX=c++
test "$CC" || export CC=cc
test "$CFLAGS" || export CFLAGS="-g -O3"
test "$CFLAGS" || export CFLAGS="-g -O2"
export CFLAGS="$CFLAGS -Wall -Wextra -ftrapv -fno-strict-aliasing"
# Outline:
@ -113,7 +113,7 @@ older_than mu.cc $LAYERS enumerate/enumerate tangle/tangle && {
}
older_than cleave/cleave cleave/cleave.cc && {
$CXX -O3 -Wall -Wextra -fno-strict-aliasing cleave/cleave.cc -o cleave/cleave
$CXX $CFLAGS cleave/cleave.cc -o cleave/cleave
rm -rf .build
}

4
build3
View File

@ -9,7 +9,7 @@ set -e # stop immediately on error
# $ CFLAGS=-g ./build3
test "$CXX" || export CXX=c++
test "$CC" || export CC=cc
test "$CFLAGS" || export CFLAGS="-g -O3"
test "$CFLAGS" || export CFLAGS="-g -O2"
export CFLAGS="$CFLAGS -Wall -Wextra -ftrapv -fno-strict-aliasing"
# Outline:
@ -138,7 +138,7 @@ older_than mu.cc $LAYERS enumerate/enumerate tangle/tangle && {
}
older_than cleave/cleave cleave/cleave.cc && {
$CXX -O3 -Wall -Wextra -fno-strict-aliasing cleave/cleave.cc -o cleave/cleave
$CXX $CFLAGS cleave/cleave.cc -o cleave/cleave
rm -rf .build
}