12 if [ $# -eq 0 ]; then
13 echo "`basename $0`: no input files"
14 exit 1
15 fi
16
17 while [ $# -gt 0 ]; do
18 case $1 in
19 '-o')
20 OUTFILE=$2
21 shift
22 ;;
23 '-c')
24 NEED_LINK=0
25 ;;
26 *)
27 SPARSEOPTS="$SPARSEOPTS $1 " ;;
28 esac
29 shift
30 done
31
32 TMPLLVM=`mktemp -t tmp.XXXXXX`".llvm"
33 TMPFILE=`mktemp -t tmp.XXXXXX`".o"
34
35 $DIRNAME/sparse-llvm $SPARSEOPTS > $TMPLLVM
36
37 LLC=`"${LLVM_CONFIG:-llvm-config}" --bindir`/llc
38
39 $LLC -o - $TMPLLVM | as -o $TMPFILE
40
41 if [ $NEED_LINK -eq 1 ]; then
42 if [ -z $OUTFILE ]; then
43 OUTFILE=a.out
44 fi
45 gcc $TMPFILE -o $OUTFILE
46 else
47 if [ -z $OUTFILE ]; then
48 echo "`basename $0`: no output file"
49 exit 1
50 fi
51 mv $TMPFILE $OUTFILE
52 fi
53
54 rm -f $TMPLLVM
|
12 if [ $# -eq 0 ]; then
13 echo "`basename $0`: no input files"
14 exit 1
15 fi
16
17 while [ $# -gt 0 ]; do
18 case $1 in
19 '-o')
20 OUTFILE=$2
21 shift
22 ;;
23 '-c')
24 NEED_LINK=0
25 ;;
26 *)
27 SPARSEOPTS="$SPARSEOPTS $1 " ;;
28 esac
29 shift
30 done
31
32 TMPFILE=`mktemp -t tmp.XXXXXX`
33
34
35 LLC=`"${LLVM_CONFIG:-llvm-config}" --bindir`/llc
36
37 LLC_ARCH_OPTS=
38 case "$(uname -s)" in
39 *CYGWIN*)
40 # cygwin uses the sjlj (setjmp-longjmp) exception model
41 LLC_ARCH_OPTS="-exception-model=sjlj"
42 ;;
43 *)
44 ;;
45 esac
46
47 $DIRNAME/sparse-llvm $SPARSEOPTS | $LLC ${LLC_ARCH_OPTS} | as -o $TMPFILE
48
49 if [ $NEED_LINK -eq 1 ]; then
50 if [ -z $OUTFILE ]; then
51 OUTFILE=a.out
52 fi
53 gcc $TMPFILE -o $OUTFILE
54 rm -f $TMPFILE
55 else
56 if [ -z $OUTFILE ]; then
57 echo "`basename $0`: no output file"
58 exit 1
59 fi
60 mv $TMPFILE $OUTFILE
61 fi
|