backend.h (07d5dec1642b3d8b5aca8f12f47bcc29bb156592) backend.h (58c07c4fa7bdba34c2b29fbdcd58893d48c3fd9e)
1// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors.
2// All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
3//
4// SPDX-License-Identifier: BSD-2-Clause
5//
6// This file is part of CEED: http://github.com/ceed
7
8/// @file

--- 38 unchanged lines hidden (view full) ---

47#ifndef CeedPragmaOptimizeOn
48#if defined(__clang__)
49/// This macro restores previously set optimization flags after CeedPragmaOptimizeOff.
50/// @ingroup Ceed
51#define CeedPragmaOptimizeOn _Pragma("clang optimize on")
52#elif defined(__GNUC__)
53#define CeedPragmaOptimizeOn _Pragma("GCC pop_options")
54#elif defined(__INTEL_COMPILER) || defined(__INTEL_LLVM_COMPILER)
1// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors.
2// All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
3//
4// SPDX-License-Identifier: BSD-2-Clause
5//
6// This file is part of CEED: http://github.com/ceed
7
8/// @file

--- 38 unchanged lines hidden (view full) ---

47#ifndef CeedPragmaOptimizeOn
48#if defined(__clang__)
49/// This macro restores previously set optimization flags after CeedPragmaOptimizeOff.
50/// @ingroup Ceed
51#define CeedPragmaOptimizeOn _Pragma("clang optimize on")
52#elif defined(__GNUC__)
53#define CeedPragmaOptimizeOn _Pragma("GCC pop_options")
54#elif defined(__INTEL_COMPILER) || defined(__INTEL_LLVM_COMPILER)
55#define CeedPragmaOptimizeOff _Pragma("optimize('', on)")
55#define CeedPragmaOptimizeOn _Pragma("optimize('', on)")
56#else
57#define CeedPragmaOptimizeOn
58#endif
59#endif
60
56#else
57#define CeedPragmaOptimizeOn
58#endif
59#endif
60
61/// This macro provides the appropriate OpenMP Pragmas for the compilation environment.
62/// @ingroup Ceed
63#ifndef CeedPragmaOMP
64#ifdef _OPENMP
65#define CeedPragmaOMPHelper(x) _Pragma(#x)
66#define CeedPragmaOMP(x) CeedPragmaOMPHelper(omp x)
67#else
68#define CeedPragmaOMP(x)
69#endif
70#endif
71#ifndef CeedPragmaAtomic
72#define CeedPragmaAtomic CeedPragmaOMP(atomic update)
73#endif
74#ifndef CeedPragmaCritical
75#define CeedPragmaCritical(x) CeedPragmaOMP(critical(x))
76#endif
77
61/**
62 This enum supples common colors for CeedDebug256 debugging output.
63 Set the environment variable `CEED_DEBUG = 1` to activate debugging output.
64
65 @ingroup Ceed
66 @ref Backend
67**/
68typedef enum {

--- 188 unchanged lines hidden (view full) ---

257CEED_EXTERN int CeedElemRestrictionGetStrides(CeedElemRestriction rstr, CeedInt (*strides)[3]);
258CEED_EXTERN int CeedElemRestrictionHasBackendStrides(CeedElemRestriction rstr, bool *has_backend_strides);
259CEED_EXTERN int CeedElemRestrictionGetOffsets(CeedElemRestriction rstr, CeedMemType mem_type, const CeedInt **offsets);
260CEED_EXTERN int CeedElemRestrictionRestoreOffsets(CeedElemRestriction rstr, const CeedInt **offsets);
261CEED_EXTERN int CeedElemRestrictionGetOrientations(CeedElemRestriction rstr, CeedMemType mem_type, const bool **orients);
262CEED_EXTERN int CeedElemRestrictionRestoreOrientations(CeedElemRestriction rstr, const bool **orients);
263CEED_EXTERN int CeedElemRestrictionGetCurlOrientations(CeedElemRestriction rstr, CeedMemType mem_type, const CeedInt8 **curl_orients);
264CEED_EXTERN int CeedElemRestrictionRestoreCurlOrientations(CeedElemRestriction rstr, const CeedInt8 **curl_orients);
78/**
79 This enum supples common colors for CeedDebug256 debugging output.
80 Set the environment variable `CEED_DEBUG = 1` to activate debugging output.
81
82 @ingroup Ceed
83 @ref Backend
84**/
85typedef enum {

--- 188 unchanged lines hidden (view full) ---

274CEED_EXTERN int CeedElemRestrictionGetStrides(CeedElemRestriction rstr, CeedInt (*strides)[3]);
275CEED_EXTERN int CeedElemRestrictionHasBackendStrides(CeedElemRestriction rstr, bool *has_backend_strides);
276CEED_EXTERN int CeedElemRestrictionGetOffsets(CeedElemRestriction rstr, CeedMemType mem_type, const CeedInt **offsets);
277CEED_EXTERN int CeedElemRestrictionRestoreOffsets(CeedElemRestriction rstr, const CeedInt **offsets);
278CEED_EXTERN int CeedElemRestrictionGetOrientations(CeedElemRestriction rstr, CeedMemType mem_type, const bool **orients);
279CEED_EXTERN int CeedElemRestrictionRestoreOrientations(CeedElemRestriction rstr, const bool **orients);
280CEED_EXTERN int CeedElemRestrictionGetCurlOrientations(CeedElemRestriction rstr, CeedMemType mem_type, const CeedInt8 **curl_orients);
281CEED_EXTERN int CeedElemRestrictionRestoreCurlOrientations(CeedElemRestriction rstr, const CeedInt8 **curl_orients);
282CEED_EXTERN int CeedElemRestrictionGetNumPointsInElement(CeedElemRestriction rstr, CeedInt elem, CeedInt *num_points);
265CEED_EXTERN int CeedElemRestrictionGetELayout(CeedElemRestriction rstr, CeedInt (*layout)[3]);
266CEED_EXTERN int CeedElemRestrictionSetELayout(CeedElemRestriction rstr, CeedInt layout[3]);
267CEED_EXTERN int CeedElemRestrictionGetData(CeedElemRestriction rstr, void *data);
268CEED_EXTERN int CeedElemRestrictionSetData(CeedElemRestriction rstr, void *data);
269CEED_EXTERN int CeedElemRestrictionReference(CeedElemRestriction rstr);
270CEED_EXTERN int CeedElemRestrictionGetFlopsEstimate(CeedElemRestriction rstr, CeedTransposeMode t_mode, CeedSize *flops);
271
272/// Type of FE space;

--- 127 unchanged lines hidden ---
283CEED_EXTERN int CeedElemRestrictionGetELayout(CeedElemRestriction rstr, CeedInt (*layout)[3]);
284CEED_EXTERN int CeedElemRestrictionSetELayout(CeedElemRestriction rstr, CeedInt layout[3]);
285CEED_EXTERN int CeedElemRestrictionGetData(CeedElemRestriction rstr, void *data);
286CEED_EXTERN int CeedElemRestrictionSetData(CeedElemRestriction rstr, void *data);
287CEED_EXTERN int CeedElemRestrictionReference(CeedElemRestriction rstr);
288CEED_EXTERN int CeedElemRestrictionGetFlopsEstimate(CeedElemRestriction rstr, CeedTransposeMode t_mode, CeedSize *flops);
289
290/// Type of FE space;

--- 127 unchanged lines hidden ---