]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/brig/brigfrontend/brig-fbarrier-handler.cc
Update copyright years.
[thirdparty/gcc.git] / gcc / brig / brigfrontend / brig-fbarrier-handler.cc
CommitLineData
5fd1486c 1/* brig-fbarrier-handler.cc -- brig fbarrier directive handling
8d9254fc 2 Copyright (C) 2016-2020 Free Software Foundation, Inc.
5fd1486c
PJ
3 Contributed by Pekka Jaaskelainen <pekka.jaaskelainen@parmance.com>
4 for General Processor Tech.
5
6This file is part of GCC.
7
8GCC is free software; you can redistribute it and/or modify it under
9the terms of the GNU General Public License as published by the Free
10Software Foundation; either version 3, or (at your option) any later
11version.
12
13GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14WARRANTY; without even the implied warranty of MERCHANTABILITY or
15FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16for more details.
17
18You should have received a copy of the GNU General Public License
19along with GCC; see the file COPYING3. If not see
20<http://www.gnu.org/licenses/>. */
21
22#include "brig-code-entry-handler.h"
23
24#include "stringpool.h"
25#include "errors.h"
26
27/* Allocate this many bytes from the group segment for each fbarrier. */
28#define FBARRIER_STRUCT_SIZE 32
29
30size_t
31brig_directive_fbarrier_handler::operator () (const BrigBase *base)
32{
33 /* Model fbarriers as group segment variables with fixed size
34 large enough to store whatever data the actual target needs
35 to store to maintain the barrier info. The handle is the
36 offset to the beginning of the object. */
37
38 const BrigDirectiveFbarrier* fbar = (const BrigDirectiveFbarrier*)base;
39 if (m_parent.m_cf != NULL)
40 m_parent.m_cf->m_function_scope_vars.insert (base);
41 std::string var_name = m_parent.get_mangled_name (fbar);
d4b7f2ee
PJ
42 m_parent.add_group_variable (var_name, FBARRIER_STRUCT_SIZE, 1,
43 m_parent.m_cf != NULL);
5fd1486c
PJ
44 return base->byteCount;
45}