Просмотр исходного кода

Add -plain postfix to compare llvm optimization with source-level bf optimization

Taddeus Kroes 11 лет назад
Родитель
Сommit
2d29dab646
3 измененных файлов с 12 добавлено и 4 удалено
  1. 1 0
      .gitignore
  2. 9 4
      Makefile
  3. 2 0
      compare.sh

+ 1 - 0
.gitignore

@@ -1,5 +1,6 @@
 bf
 hello
+*-plain
 *-opt
 *.cmi
 *.cmx

+ 9 - 4
Makefile

@@ -7,7 +7,8 @@ BFILES := $(patsubst %.b,%,$(wildcard *.b))
 
 .PHONY: check clean
 .PRECIOUS: $(addsuffix .ll,$(BFILES)) $(addsuffix -opt.ll,$(BFILES)) \
-	$(addsuffix -c.c,$(BFILES)) $(addsuffix -nayuki.c,$(BFILES))
+	$(addsuffix -plain.ll,$(BFILES)) $(addsuffix -c.c,$(BFILES)) \
+	$(addsuffix -nayuki.c,$(BFILES))
 
 bf: bf.ml
 	ocamlfind ocamlopt -linkpkg -package llvm -package str -o $@ -g $<
@@ -29,14 +30,17 @@ bf: bf.ml
 %.ll: %.bc
 	llvm-dis -o $@ $<
 
+%-plain.ll: %.b bf
+	./bf < $< | opt -O3 -S -o $@
+
 %-opt.ll: %.ll
 	opt -O3 -S -o $@ $<
 
 %.ll: %.b bf
-	./bf $(BFFLAGS) < $< > $@
+	./bf -o < $< > $@
 
 %-c.c: %.b bf
-	./bf $(BFFLAGS) -c < $< > $@
+	./bf -o -c < $< > $@
 
 %.dump: %
 	objdump -d -M intel $< > $@
@@ -45,4 +49,5 @@ check: hello-opt
 	./$<
 
 clean:
-	rm -f bf *.cmi *.cmx *.ll *.bc *.o *.c *-opt *-c *-nayuki $(BFILES) *.dump
+	rm -f bf *.cmi *.cmx *.ll *.bc *.o *.c *-plain *-opt *-c *-nayuki \
+		$(BFILES) *.dump

+ 2 - 0
compare.sh

@@ -19,10 +19,12 @@ compile () {
 
 set -e
 
+compile plain
 compile opt
 compile c
 compile nayuki
 
+echo "plain:  `mytime ./$basename-plain`"
 echo "opt:    `mytime ./$basename-opt`"
 echo "c:      `mytime ./$basename-c`"
 echo "nayuki: `mytime ./$basename-nayuki`"