MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
annotation.hpp
Go to the documentation of this file.
1// Copyright (c) 2010-2024, Lawrence Livermore National Security, LLC. Produced
2// at the Lawrence Livermore National Laboratory. All Rights reserved. See files
3// LICENSE and NOTICE for details. LLNL-CODE-806117.
4//
5// This file is part of the MFEM library. For more information and source code
6// availability visit https://mfem.org.
7//
8// MFEM is free software; you can redistribute it and/or modify it under the
9// terms of the BSD-3 license. We welcome feedback and contributions, see file
10// CONTRIBUTING.md for details.
11
12#ifndef MFEM_ANNOTATION_HPP
13#define MFEM_ANNOTATION_HPP
14
15#include "../config/config.hpp"
16
17#ifdef MFEM_USE_CALIPER
18
19#include <caliper/cali.h>
20#include <caliper/cali-manager.h>
21#define MFEM_PERF_FUNCTION CALI_CXX_MARK_FUNCTION
22#define MFEM_PERF_BEGIN(s) CALI_MARK_BEGIN(s)
23#define MFEM_PERF_END(s) CALI_MARK_END(s)
24#define MFEM_PERF_SCOPE(name) \
25 cali::Annotation::Guard cali_autogenerated_guard_name(cali::Annotation("function").begin(std::string(name).c_str()))
26
27
28#else
29
30#define MFEM_PERF_FUNCTION
31#define MFEM_PERF_BEGIN(s)
32#define MFEM_PERF_END(s)
33#define MFEM_PERF_SCOPE(name)
34
35#endif
36
37#endif