Arnold Schwaighofer
2007-Oct-11 21:02 UTC
[LLVMdev] .ll test cases for tail call optimization in test-suite
In order to test the tail call optimization i created quite a few .ll
files and added them to the SingleSource directory in the test-suite.
For example llvm-test/SingleSource/Tailcall/tailcall1-2.ll.
Since i don't want opt to inline the tailcalls away :) i changed the rules
in the Makefile situated in the TailCall directory.
I want to compare the output of a file compile with normal llc with a
file compiled with llc -tailcallopt.
So my SingleSource/TailCall/Makefile looks like the following:
----
LEVEL = ../..
include $(LEVEL)/Makefile.config
#DISABLE_FOR_LLVM_PROGRAMS := 1
PROGRAM_REQUIRED_TO_EXIT_OK := 1
#REQUIRES_EH_SUPPORT := 1
PROGRAMS_TO_TEST :=
$(patsubst $(SourceDir)/%,%,$(basename $(wildcard $(SourceDir)/*.ll)))
include $(LEVEL)/Makefile.programs
.PRECIOUS: Output/%.linked.rll
Output/%.linked.rbc: Output/%.bc
-cp -f $< $@
# since there is no native use llc output
Output/%.native: Output/%.bc Output/.dir
-$(LLC) < $< | $(CC) -x assembler - -o $@
#
# Compile a linked program to machine code with LLC.
# use the unoptimized file %.bc not %.llvm.bc
#
$(PROGRAMS_TO_TEST:%=Output/%.llc.s): \
Output/%.llc.s: Output/%.bc $(LLC)
-$(LLC) $(LLCFLAGS) -f $< -o $@
$(PROGRAMS_TO_TEST:%=Output/%.llc-beta.s): \
Output/%.llc-beta.s: Output/%.bc $(LLC)
-$(LLC) $(LLCFLAGS) -f $(LLCBETAOPTION) $< -o $@
----
But that causes many of the following warnings when executiong make.
Makefile:43: warning: overriding commands for target
`Output/tailcall-struct-by-val.out-jit-beta'
Is there a better way of doing what i want? Also should i really add
those .ll test cases to the test-suite?
regards arnold (obviously not a makefile guru)
Evan Cheng
2007-Oct-12 05:07 UTC
[LLVMdev] .ll test cases for tail call optimization in test-suite
On Oct 11, 2007, at 2:02 PM, Arnold Schwaighofer <arnold.schwaighofer at gmail.com > wrote:> In order to test the tail call optimization i created quite a few .ll > files and added them to the SingleSource directory in the test-suite. > For example llvm-test/SingleSource/Tailcall/tailcall1-2.ll.Shouldn't these be dejagnu tests instead? Evan> > > Since i don't want opt to inline the tailcalls away :) i changed the > rules > in the Makefile situated in the TailCall directory. > > I want to compare the output of a file compile with normal llc with a > file compiled with llc -tailcallopt. > > So my SingleSource/TailCall/Makefile looks like the following: > ---- > LEVEL = ../.. > include $(LEVEL)/Makefile.config > > #DISABLE_FOR_LLVM_PROGRAMS := 1 > PROGRAM_REQUIRED_TO_EXIT_OK := 1 > > #REQUIRES_EH_SUPPORT := 1 > > PROGRAMS_TO_TEST :> $(patsubst $(SourceDir)/%,%,$(basename $(wildcard $(SourceDir)/*.ll))) > > include $(LEVEL)/Makefile.programs > > .PRECIOUS: Output/%.linked.rll > > > Output/%.linked.rbc: Output/%.bc > -cp -f $< $@ > > > # since there is no native use llc output > Output/%.native: Output/%.bc Output/.dir > -$(LLC) < $< | $(CC) -x assembler - -o $@ > > # > # Compile a linked program to machine code with LLC. > # use the unoptimized file %.bc not %.llvm.bc > # > $(PROGRAMS_TO_TEST:%=Output/%.llc.s): \ > Output/%.llc.s: Output/%.bc $(LLC) > -$(LLC) $(LLCFLAGS) -f $< -o $@ > > $(PROGRAMS_TO_TEST:%=Output/%.llc-beta.s): \ > Output/%.llc-beta.s: Output/%.bc $(LLC) > -$(LLC) $(LLCFLAGS) -f $(LLCBETAOPTION) $< -o $@ > > ---- > > But that causes many of the following warnings when executiong make. > > Makefile:43: warning: overriding commands for target > `Output/tailcall-struct-by-val.out-jit-beta' > > Is there a better way of doing what i want? Also should i really add > those .ll test cases to the test-suite? > > regards arnold (obviously not a makefile guru) > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev