Lines Matching +full:clang +full:- +full:tools +full:- +full:extra
1 #!/bin/bash -eux
9 # http://www.apache.org/licenses/LICENSE-2.0
20 clang-fuzzer \
21 clang-format-fuzzer \
22 clang-objc-fuzzer \
23 clangd-fuzzer \
24 llvm-itanium-demangle-fuzzer \
25 llvm-microsoft-demangle-fuzzer \
26 llvm-dwarfdump-fuzzer \
27 llvm-isel-fuzzer \
28 llvm-special-case-list-fuzzer \
29 llvm-opt-fuzzer \
38 -fsanitize=fuzzer) CMAKE_FUZZING_CONFIG="-DLLVM_USE_SANITIZE_COVERAGE=ON" ;;
39 *) CMAKE_FUZZING_CONFIG="-DLLVM_LIB_FUZZING_ENGINE=${LIB_FUZZING_ENGINE}" ;;
42 LLVM=llvm-project/llvm
47 cmake -GNinja -DCMAKE_BUILD_TYPE=Release ../$LLVM \
48 -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;compiler-rt;lld;clang-tools-extra" \
49 -DLLVM_ENABLE_ASSERTIONS=ON \
50 -DCMAKE_C_COMPILER="${CC}" \
51 -DCMAKE_CXX_COMPILER="${CXX}" \
52 -DCMAKE_C_FLAGS="${CFLAGS}" \
53 -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
55 -DLLVM_NO_DEAD_STRIP=ON \
56 -DLLVM_USE_SANITIZER="${LLVM_SANITIZER}" \
57 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly
62 ninja llvm-as
64 # isel-fuzzer encodes its default flags in the name.
65 cp $OUT/llvm-isel-fuzzer $OUT/llvm-isel-fuzzer--aarch64-O2
66 cp $OUT/llvm-isel-fuzzer $OUT/llvm-isel-fuzzer--x86_64-O2
67 cp $OUT/llvm-isel-fuzzer $OUT/llvm-isel-fuzzer--wasm32-O2
68 mv $OUT/llvm-isel-fuzzer $OUT/llvm-isel-fuzzer--aarch64-gisel
70 # Same for llvm-opt-fuzzer
71 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-earlycse
72 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-simplifycfg
73 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-gvn
74 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-sccp
76 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-loop_predication
77 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-guard_widening
78 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-loop_vectorize
80 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-loop_rotate
81 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-loop_unswitch
82 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-loop_unroll
83 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-licm
84 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-indvars
85 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-strength_reduce
87 cp $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-irce
89 mv $OUT/llvm-opt-fuzzer $OUT/llvm-opt-fuzzer--x86_64-instcombine
91 # Build corpus for the llvm-opt-fuzzer
96 [[ -e "${WORK}/corpus-tmp" ]] && rm -r "${WORK}/corpus-tmp"
97 mkdir "${WORK}/corpus-tmp"
101 # Compile all lit tests into bitcode. Ignore possible llvm-as failures.
102 find "${lit_path}" -name "*.ll" -print0 |
103 xargs -t -i -0 -n1 sh -c "build/bin/llvm-as "{}" || true"
106 find "${lit_path}" -name "*.bc" -print0 |
107 xargs -t -i -0 -n1 mv "{}" "${WORK}/corpus-tmp"
110 zip -j "${OUT}/${fuzzer_name}_seed_corpus.zip" "${WORK}"/corpus-tmp/*
112 rm -r "${WORK}/corpus-tmp"
114 echo -e "[libfuzzer]\nmax_len = 0" > "${OUT}"/"${fuzzer_name}".options
117 build_corpus "$LLVM/test/Transforms/InstCombine/" "llvm-opt-fuzzer--x86_64-instcombine"
118 build_corpus "$LLVM/test/Transforms/EarlyCSE/" "llvm-opt-fuzzer--x86_64-earlycse"
119 build_corpus "$LLVM/test/Transforms/SimplifyCFG/" "llvm-opt-fuzzer--x86_64-simplifycfg"
120 build_corpus "$LLVM/test/Transforms/GVN/" "llvm-opt-fuzzer--x86_64-gvn"
121 build_corpus "$LLVM/test/Transforms/SCCP/" "llvm-opt-fuzzer--x86_64-sccp"
123 build_corpus "$LLVM/test/Transforms/LoopPredication/" "llvm-opt-fuzzer--x86_64-loop_predication"
124 build_corpus "$LLVM/test/Transforms/GuardWidening/" "llvm-opt-fuzzer--x86_64-guard_widening"
125 build_corpus "$LLVM/test/Transforms/LoopVectorize/" "llvm-opt-fuzzer--x86_64-loop_vectorize"
127 build_corpus "$LLVM/test/Transforms/LoopRotate/" "llvm-opt-fuzzer--x86_64-llvm-opt-fuzzer--x86_64-l…
128 …ild_corpus "$LLVM/test/Transforms/LoopUnswitch/" "llvm-opt-fuzzer--x86_64-llvm-opt-fuzzer--x86_64-…
129 build_corpus "$LLVM/test/Transforms/LoopUnroll/" "llvm-opt-fuzzer--x86_64-llvm-opt-fuzzer--x86_64-l…
130 build_corpus "$LLVM/test/Transforms/LICM/" "llvm-opt-fuzzer--x86_64-llvm-opt-fuzzer--x86_64-licm"
131 …d_corpus "$LLVM/test/Transforms/IndVarSimplify/" "llvm-opt-fuzzer--x86_64-llvm-opt-fuzzer--x86_64-…
132 …rpus "$LLVM/test/Transforms/LoopStrengthReduce/" "llvm-opt-fuzzer--x86_64-llvm-opt-fuzzer--x86_64-…
134 build_corpus "$LLVM/test/Transforms/IRCE/" "llvm-opt-fuzzer--x86_64-llvm-opt-fuzzer--x86_64-irce"
136 zip -j "${OUT}/clang-objc-fuzzer_seed_corpus.zip" $SRC/$LLVM/../clang/tools/clang-fuzzer/corpus_ex…
137 zip -j "${OUT}/clangd-fuzzer_seed_corpus.zip" $SRC/$LLVM/../clang-tools-extra/clangd/test/*