Changes in directory llvm-test:
Makefile.programs updated: 1.251 -> 1.252 Makefile.tests updated: 1.13 -> 1.14 TEST.nightly.Makefile updated: 1.44 -> 1.45 --- Log message: For PR1159: http://llvm.org/PR1159 : Avoid going to LLVM assembly files at all to improve performance of the nightly test. Bytecode is now processed like this: llvm-gcc -c -emit-llvm %.c -o %.bc gccld -disable-opt -link-as-library *.bc -o %.linked.rbc opt -std-compile-opts %.linked.rbc -o %.linked.bc gccld %.linked.bc -o %.llvm This eliminates one gccas invocation for each source file compilation, and two translations between .ll and .bc. --- Diffs of the changes: (+22 -30) Makefile.programs | 24 +++++++++++------------- Makefile.tests | 22 ++++++++-------------- TEST.nightly.Makefile | 6 +++--- 3 files changed, 22 insertions(+), 30 deletions(-) Index: llvm-test/Makefile.programs diff -u llvm-test/Makefile.programs:1.251 llvm-test/Makefile.programs:1.252 --- llvm-test/Makefile.programs:1.251 Thu Feb 1 17:46:22 2007 +++ llvm-test/Makefile.programs Fri Feb 2 22:30:17 2007 @@ -44,7 +44,7 @@ .PRECIOUS: Output/%.llvm Output/%.native Output/%.llc Output/%.llc.s .PRECIOUS: Output/%.cbe Output/%.cbe.c Output/%.llvm.bc -.PRECIOUS: Output/%.linked.bc +.PRECIOUS: Output/%.linked.bc # If we're using the llvm-gcc3 compiler then we need to also link with the # llvm c runtime library, othwerwise we don't @@ -233,11 +233,12 @@ print-llcbeta-option: @echo $(LLCBETAOPTION) -# Given a version of the entire program linked together into a single unit of -# raw output from the C frontend, optimize it. +# Given an unoptimized bytecode file that is a simple linkage of all +# the program's bytecode files, optimize the program using the +# standard compilation optimizations. $(PROGRAMS_TO_TEST:%=Output/%.linked.bc): \ -Output/%.linked.bc: Output/%.linked.rll $(LGCCAS) - -$(LGCCAS) $(STATS) $(EXTRA_GCCAS_OPTIONS) $< -o $@ +Output/%.linked.bc: Output/%.linked.rbc $(LOPT) + -$(LOPT) -std-compile-opts $(STATS) $(EXTRA_LOPT_OPTIONS) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.llvm.stripped.bc): \ Output/%.llvm.stripped.bc: Output/%.llvm.bc $(LOPT) @@ -285,9 +286,11 @@ endif # ifndef DISABLE_FOR_LLVM_PROGRAMS # Targets to get the pass arguments that gccas and gccld are using... -Output/gccas-pass-args: $(LGCCAS) Output/.dir - -$(LGCCAS) $(EXTRA_GCCAS_OPTIONS) /dev/null -o /dev/null -debug-pass=Arguments > [EMAIL PROTECTED] 2>&1 - sed 's/Pass Arguments: //' < [EMAIL PROTECTED] | sed 's/-emitbytecode//' > $@ +Output/opt-pass-args: $(LOPT) Output/.dir + -$(LLVMAS) < /dev/null -o - | \ + $(LOPT) $(EXTRA_LOPT_OPTIONS) -disable-output -debug-pass=Arguments 2>&1 | \ + sed 's/Pass Arguments: //' | sed 's/-emitbytecode//' > $@ + Output/gccld-pass-args: $(LGCCLDPROG) Output/.dir $(LLVMAS) < /dev/null > Output/gccld.test.bc $(LGCCLD) Output/gccld.test.bc -o Output/gccld.test-out -debug-pass=Arguments > [EMAIL PROTECTED] 2>&1 @@ -575,11 +578,6 @@ Output/%.out-nat: $(SRCDIR)/%.reference_output Output/.dir cp $< $@ -# To make a raw bytecode file up-to-date, just copy it over. -$(PROGRAMS_TO_TEST:%=Output/%.linked.rll): \ -Output/%.linked.rll: $(SRCDIR)/%.linked.rll Output/.dir - cp $< $@ - $(PROGRAMS_TO_TEST:%=Output/%.LOC.txt): \ Output/%.LOC.txt: $(SRCDIR)/%.LOC.txt Output/.dir cp $< $@ Index: llvm-test/Makefile.tests diff -u llvm-test/Makefile.tests:1.13 llvm-test/Makefile.tests:1.14 --- llvm-test/Makefile.tests:1.13 Sun Dec 3 15:15:49 2006 +++ llvm-test/Makefile.tests Fri Feb 2 22:30:17 2007 @@ -49,31 +49,25 @@ $(RM) -rf Output/ # Compile from X.c to Output/X.ll -Output/%.ll: %.c $(LCC1) Output/.dir $(INCLUDES) - -$(LLVMGCC) $(CPPFLAGS) $(LCCFLAGS) $(TARGET_FLAGS) -O0 -S $< -o $@ -emit-llvm +Output/%.bc: %.c $(LCC1) Output/.dir $(INCLUDES) + -$(LLVMGCC) $(CPPFLAGS) $(LCCFLAGS) $(TARGET_FLAGS) -O0 -c $< -o $@ -emit-llvm -$(call UPGRADE_LL,$@) # Compile from X.cpp to Output/X.ll -Output/%.ll: %.cpp $(LCC1XX) Output/.dir $(INCLUDES) - -$(LLVMGXX) $(CPPFLAGS) $(LCXXFLAGS) $(TARGET_FLAGS) -O0 -S $< -o $@ -emit-llvm +Output/%.bc: %.cpp $(LCC1XX) Output/.dir $(INCLUDES) + -$(LLVMGXX) $(CPPFLAGS) $(LCXXFLAGS) $(TARGET_FLAGS) -O0 -c $< -o $@ -emit-llvm -$(call UPGRADE_LL,$@) # Compile from X.cc to Output/X.ll -Output/%.ll: %.cc $(LCC1XX) Output/.dir $(INCLUDES) - -$(LLVMGXX) $(CPPFLAGS) $(LCXXFLAGS) $(TARGET_FLAGS) -O0 -S $< -o $@ -emit-llvm +Output/%.bc: %.cc $(LCC1XX) Output/.dir $(INCLUDES) + -$(LLVMGXX) $(CPPFLAGS) $(LCXXFLAGS) $(TARGET_FLAGS) -O0 -c $< -o $@ -emit-llvm -$(call UPGRADE_LL,$@) # Compile from X.C to Output/X.ll -Output/%.ll: %.C $(LCC1XX) Output/.dir $(INCLUDES) - -$(LLVMGXX) $(CPPFLAGS) $(LCXXFLAGS) $(TARGET_FLAGS) -O0 -S $< -o $@ -emit-llvm +Output/%.bc: %.C $(LCC1XX) Output/.dir $(INCLUDES) + -$(LLVMGXX) $(CPPFLAGS) $(LCXXFLAGS) $(TARGET_FLAGS) -O0 -c $< -o $@ -emit-llvm -$(call UPGRADE_LL,$@) -# LLVM Assemble from Output/X.ll to Output/X.bc. Output/X.ll must have come -# from GCC output, so use GCCAS. -# -Output/%.bc: Output/%.ll $(LGCCAS) - -$(LGCCAS) $(STATS) $< -o $@ - # LLVM Assemble from X.ll to Output/X.bc. Because we are coming directly from # LLVM source, use the non-transforming assembler. # Index: llvm-test/TEST.nightly.Makefile diff -u llvm-test/TEST.nightly.Makefile:1.44 llvm-test/TEST.nightly.Makefile:1.45 --- llvm-test/TEST.nightly.Makefile:1.44 Thu Feb 1 17:46:22 2007 +++ llvm-test/TEST.nightly.Makefile Fri Feb 2 22:30:17 2007 @@ -31,10 +31,10 @@ # Compilation tests $(PROGRAMS_TO_TEST:%=Output/%.nightly.compile.report.txt): \ -Output/%.nightly.compile.report.txt: Output/%.llvm.bc $(LGCCAS) +Output/%.nightly.compile.report.txt: Output/%.llvm.bc $(LOPT) @echo > $@ - @echo '$(LGCCAS) Output/$*.linked.rll -o /dev/null $(TIMEOPT) $(EXTRA_GCCAS_OPTIONS) >>$@ 2>&1' - @-if ($(LGCCAS) Output/$*.linked.rll -o /dev/null $(TIMEOPT) $(EXTRA_GCCAS_OPTIONS) >>$@ 2>&1)\ + @echo '$(LOPT) Output/$*.linked.bc -f -o /dev/null $(TIMEOPT) $(EXTRA_LOPT_OPTIONS) >>$@ 2>&1' + @-if ($(LOPT) Output/$*.linked.bc -f -o /dev/null $(TIMEOPT) $(EXTRA_LOPT_OPTIONS) >>$@ 2>&1)\ ;then \ echo "TEST-PASS: compile $(RELDIR)/$*" >> $@;\ printf "TEST-RESULT-compile: " >> $@;\ _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits