Coverage Report

Created: 2023-10-30 17:15

/builds/2mk6rsew/0/parcoach/parcoach/src/aSSA/Options.cpp
Line
Count
Source
1
#include "parcoach/Options.h"
2
3
#include "llvm/Support/CommandLine.h"
4
#include "llvm/Support/raw_os_ostream.h"
5
6
using namespace llvm;
7
8
namespace parcoach {
9
10
cl::OptionCategory ParcoachCategory("Parcoach options");
11
12
namespace {
13
cl::opt<bool> OptOmpTaint("check-omp",
14
                          cl::desc("enable OpenMP collectives checking"),
15
                          cl::cat(ParcoachCategory));
16
cl::opt<bool> OptMpiTaint("check-mpi",
17
                          cl::desc("enable MPI collectives checking"),
18
                          cl::cat(ParcoachCategory));
19
20
cl::opt<bool> OptCudaTaint("check-cuda",
21
                           cl::desc("enable CUDA collectives checking"),
22
                           cl::cat(ParcoachCategory));
23
24
cl::opt<bool> OptUpcTaint("check-upc",
25
                          cl::desc("enable UPC collectives checking"),
26
                          cl::cat(ParcoachCategory));
27
28
// This sets the default paradigme to MPI; it's likely what we want.
29
cl::opt<parcoach::Paradigm> ActivatedParadigm(
30
    "check", cl::desc("Select enabled paradigm (mpi, omp, upc, cuda)"),
31
    cl::values(clEnumValN(parcoach::Paradigm::MPI, "mpi",
32
                          "Enable MPI checkin (this is the default")
33
#ifdef PARCOACH_ENABLE_OPENMP
34
                   ,
35
               clEnumValN(parcoach::Paradigm::OMP, "omp", "Enable OpenMP")
36
#endif
37
#ifdef PARCOACH_ENABLE_UPC
38
                   ,
39
               clEnumValN(parcoach::Paradigm::UPC, "upc", "Enable UPC")
40
#endif
41
#ifdef PARCOACH_ENABLE_CUDA
42
                   ,
43
               clEnumValN(parcoach::Paradigm::CUDA, "cuda", "Enable Cuda")
44
#endif
45
                   ,
46
               clEnumValN(parcoach::Paradigm::RMA, "rma", "Enable MPI-RMA")),
47
    cl::cat(ParcoachCategory));
48
49
} // namespace
50
51
47.9k
Options const &Options::get() {
52
47.9k
  static Options Instance;
53
47.9k
  return Instance;
54
47.9k
}
55
56
1.82k
Options::Options() {
57
1.82k
  if (OptMpiTaint) {
58
1.73k
    ActivatedParadigm = Paradigm::MPI;
59
1.73k
#ifdef PARCOACH_ENABLE_OPENMP
60
1.73k
  } else if (OptOmpTaint) {
61
15
    ActivatedParadigm = Paradigm::OMP;
62
15
#endif
63
#ifdef PARCOACH_ENABLE_UPC
64
  } else if (OptUpcTaint) {
65
    ActivatedParadigm = Paradigm::UPC;
66
#endif
67
#ifdef PARCOACH_ENABLE_CUDA
68
  } else if (OptCudaTaint) {
69
    ActivatedParadigm = Paradigm::CUDA;
70
#endif
71
15
  }
72
1.82k
}
73
74
47.9k
bool Options::isActivated(Paradigm Par) const {
75
47.9k
  return Par == ActivatedParadigm;
76
47.9k
}
77
} // namespace parcoach