set(PARALLEL_DIRS)

set(PARALLEL_DIRS Fhourstones Fhourstones-3.1 McCat Olden Ptrdist llubenchmark sim FreeBench MallocBench Prolangs-C SciMark2-C mediabench nbench ASCI_Purple MiBench Trimaran VersaBench NPB-serial BitBench ASC_Sequoia TSVC)
if("${TARGET_OS}" STREQUAL "Darwin")
  if("${ARCH}" STREQUAL "ARM")
    llvm_filter_out(TMP1 TSVC ${PARALLEL_DIRS})
    set(PARALLEL_DIRS ${TMP1})
  endif()
endif()
if(NOT DEFINED DISABLE_CXX)
  list(APPEND PARALLEL_DIRS Prolangs-C++ PAQ8p tramp3d-v4 Bullet 7zip)
endif()
if("${ARCH}" STREQUAL "PowerPC")
  llvm_filter_out(TMP2 tramp3d-v4  ${PARALLEL_DIRS})
  set(PARALLEL_DIRS ${TMP2})
endif()
if(NOT DEFINED SMALL_PROBLEM_SIZE)
  list(APPEND PARALLEL_DIRS mafft)
endif()
if("${ARCH}" STREQUAL "XCore")
  llvm_filter_out(TMP3 7zip  ${PARALLEL_DIRS})
  set(PARALLEL_DIRS ${TMP3})
  llvm_filter_out(TMP4 PAQ8p  ${PARALLEL_DIRS})
  set(PARALLEL_DIRS ${TMP4})
endif()

llvm_add_subdirectories(${PARALLEL_DIRS})
