| ##===- TEST.dbgopt.Makefile --------------------------------*- Makefile -*-===## |
| # |
| # This test checks whether presense of debugging information influences |
| # the optimizer or not. |
| # |
| # $ clang -fno-verbose-asm -g -mllvm --disable-debug-info-print -Os \ |
| # -S foo.c -o foo.first.s |
| # $ clang -fno-verbose-asm -Os -S foo.c -o foo.second.s |
| # $ diff foo.first.s foo.second.s |
| # |
| ##===----------------------------------------------------------------------===## |
| |
| TESTNAME = $* |
| .PRECIOUS: Output/%.first.s Output/%.second.s |
| |
| $(PROGRAMS_TO_TEST:%=test.$(TEST).%): \ |
| test.$(TEST).%: Output/%.diff |
| |
| Output/%.s: %.c Output/.dir $(INCLUDES) |
| -$(LLVMCC) $(CPPFLAGS) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -g -Os \ |
| -fno-verbose-asm -mllvm --disable-debug-info-print \ |
| -S ${PROJ_SRC_DIR}/$*.c -o Output/$*.first.s |
| -$(LLVMCC) $(CPPFLAGS) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -Os \ |
| -fno-verbose-asm -S ${PROJ_SRC_DIR}/$*.c -o Output/$*.second.s |
| echo "---------------------------------------------------------------" \ |
| > Output/$*.dbgopt.report.txt; \ |
| echo ">>> ========= '$*' Program" >> Output/$*.dbgopt.report.txt; \ |
| echo "---------------------------------------------------------------\n"\ |
| >> Output/$*.dbgopt.report.txt; |
| @-if diff Output/$*.first.s Output/$*.second.s > $@; then \ |
| echo "TEST: PASS" >> Output/$*.dbgopt.report.txt; \ |
| else \ |
| echo "TEST: FAIL" >> Output/$*.dbgopt.report.txt; \ |
| fi |
| |
| Output/%.s: %.cpp Output/.dir $(INCLUDES) |
| -$(LLVMCC) $(CPPFLAGS) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -g -Os \ |
| -fno-verbose-asm -mllvm --disable-debug-info-print \ |
| -S ${PROJ_SRC_DIR}/$*.cpp -o Output/$*.first.s |
| -$(LLVMCC) $(CPPFLAGS) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -Os -S \ |
| -fno-verbose-asm ${PROJ_SRC_DIR}/$*.cpp -o Output/$*.second.s |
| echo "---------------------------------------------------------------" \ |
| > Output/$*.dbgopt.report.txt; \ |
| echo ">>> ========= '$*' Program" >> Output/$*.dbgopt.report.txt; \ |
| echo "---------------------------------------------------------------\n"\ |
| >> Output/$*.dbgopt.report.txt; |
| @-if diff Output/$*.first.s Output/$*.second.s > $@; then \ |
| echo "TEST: PASS" >> Output/$*.dbgopt.report.txt; \ |
| else \ |
| echo "TEST: FAIL" >> Output/$*.dbgopt.report.txt; \ |
| fi |
| |
| Output/%.s: %.cc Output/.dir $(INCLUDES) |
| -$(LLVMCC) $(CPPFLAGS) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -g -Os \ |
| -fno-verbose-asm -mllvm -disable-debug-info-print \ |
| -S ${PROJ_SRC_DIR}/$*.cc -o Output/$*.first.s |
| -$(LLVMCC) $(CPPFLAGS) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -Os -S \ |
| -fno-verbose-asm ${PROJ_SRC_DIR}/$*.cc -o Output/$*.second.s |
| echo "---------------------------------------------------------------" \ |
| > Output/$*.dbgopt.report.txt; \ |
| echo ">>> ========= '$*' Program" >> Output/$*.dbgopt.report.txt; \ |
| echo "---------------------------------------------------------------\n"\ |
| >> Output/$*.dbgopt.report.txt; |
| @-if diff Output/$*.first.s Output/$*.second.s > $@; then \ |
| echo "TEST: PASS" >> Output/$*.dbgopt.report.txt; \ |
| else \ |
| echo "TEST: FAIL" >> Output/$*.dbgopt.report.txt; \ |
| fi |
| |
| Output/%.s: %.m Output/.dir $(INCLUDES) |
| -$(LLVMCC) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -g -Os \ |
| -fno-verbose-asm -mllvm --disable-debug-info-print \ |
| -S ${PROJ_SRC_DIR}/$*.m -o Output/$*.first.s |
| -$(LLVMCC) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -Os -S \ |
| -fno-verbose-asm ${PROJ_SRC_DIR}/$*.m -o Output/$*.second.s |
| echo "---------------------------------------------------------------" \ |
| > Output/$*.dbgopt.report.txt; \ |
| echo ">>> ========= '$*' Program" >> Output/$*.dbgopt.report.txt; \ |
| echo "---------------------------------------------------------------\n"\ |
| >> Output/$*.dbgopt.report.txt; |
| @-if diff Output/$*.first.s Output/$*.second.s > $@; then \ |
| echo "TEST: PASS" >> Output/$*.dbgopt.report.txt; \ |
| else \ |
| echo "TEST: FAIL" >> Output/$*.dbgopt.report.txt; \ |
| fi |
| |
| Output/%.s: %.mm Output/.dir $(INCLUDES) |
| -$(LLVMCC) $(CPPFLAGS) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -g -Os \ |
| -fno-verbose-asm -mllvm --disable-debug-info-print \ |
| -S ${PROJ_SRC_DIR}/$*.mm -o Output/$*.first.s |
| -$(LLVMCC) $(CPPFLAGS) $(CFLAGS) $(LOPTFLAGS) $(X_TARGET_FLAGS) -Os -S \ |
| -fno-verbose-asm ${PROJ_SRC_DIR}/$*.mm -o Output/$*.second.s |
| echo "---------------------------------------------------------------" \ |
| > Output/$*.dbgopt.report.txt; \ |
| echo ">>> ========= '$*' Program" >> Output/$*.dbgopt.report.txt; \ |
| echo "---------------------------------------------------------------\n"\ |
| >> Output/$*.dbgopt.report.txt; |
| @-if diff Output/$*.first.s Output/$*.second.s > $@; then \ |
| echo "TEST: PASS" >> Output/$*.dbgopt.report.txt; \ |
| else \ |
| echo "TEST: FAIL" >> Output/$*.dbgopt.report.txt; \ |
| fi |
| |
| Asms := $(sort $(addsuffix .s, $(notdir $(basename $(Source))))) |
| AllAsms := $(addprefix Output/,$(Asms)) |
| |
| Output/%.diff: $(AllAsms) |
| |
| |