[LLVMdev] .ll test cases for tail call optimization in test-suite
Arnold Schwaighofer
arnold.schwaighofer at gmail.com
Thu Oct 11 14:02:04 PDT 2007
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)
More information about the llvm-dev
mailing list