#!/bin/sh

set -eu

OPTIONS0="-O0"
OPTIONS1="-O1 \
    \
    -fno-tree-ter -fno-tree-sra -fno-tree-fre -fno-tree-sink -fno-tree-dce \
    -fno-tree-dominator-opts -fno-tree-dse -fno-split-wide-types \
    -fno-tree-bit-ccp -fno-tree-ccp -fno-tree-ch -fno-tree-copy-prop \
    -fno-tree-copyrename -fno-combine-stack-adjustments -fno-compare-elim \
    -fno-cprop-registers -fno-defer-pop -fno-forward-propagate \
    -fno-guess-branch-probability -fno-if-conversion -fno-if-conversion2 \
    -fno-ipa-profile -fno-ipa-pure-const -fno-ipa-reference \
    -fno-merge-constants \
    \
    -fno-inline -fno-omit-frame-pointer -fno-toplevel-reorder \
    \
    -U__OPTIMIZE__ -D__NO_INLINE__=1 \
    "


export LC_ALL=POSIX

g++ -E ${OPTIONS0} -o old.0.cc old.cc
g++ -E ${OPTIONS1} -o old.1.cc old.cc

diff -q old.0.cc old.1.cc && echo 'preprocessed sources identical' || true

g++ -S ${OPTIONS0} -fverbose-asm -o old.0.s old.cc
g++ -S ${OPTIONS1} -fverbose-asm -o old.1.s old.cc

diff -q old.0.s old.1.s && echo 'assembler code identical' || true
