GCC Middle and Back End API Reference
internal-fn.c File Reference
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "internal-fn.h"
#include "tree.h"
#include "expr.h"
#include "optabs.h"
#include "gimple.h"
#include "internal-fn.def"
Include dependency graph for internal-fn.c:

Macros

#define DEF_INTERNAL_FN(CODE, FLAGS)   #CODE,
#define DEF_INTERNAL_FN(CODE, FLAGS)   FLAGS,
#define DEF_INTERNAL_FN(CODE, FLAGS)   expand_##CODE,

Functions

static enum insn_code get_multi_vector_move ()
static void expand_LOAD_LANES ()
static void expand_STORE_LANES ()
static void expand_ANNOTATE ()
static void expand_GOMP_SIMD_LANE ()
static void expand_GOMP_SIMD_VF ()
static void expand_GOMP_SIMD_LAST_LANE ()
void expand_internal_call ()

Variables

const char *const internal_fn_name_array []
const int internal_fn_flags_array []
static void(*const internal_fn_expanders [])(gimple)

Macro Definition Documentation

#define DEF_INTERNAL_FN (   CODE,
  FLAGS 
)    #CODE,
#define DEF_INTERNAL_FN (   CODE,
  FLAGS 
)    FLAGS,
#define DEF_INTERNAL_FN (   CODE,
  FLAGS 
)    expand_##CODE,

Function Documentation

static void expand_ANNOTATE ( )
static

References gcc_unreachable.

static void expand_GOMP_SIMD_LANE ( )
static

This should get expanded in adjust_simduid_builtins.

References gcc_unreachable.

static void expand_GOMP_SIMD_LAST_LANE ( )
static

This should get expanded in adjust_simduid_builtins.

static void expand_GOMP_SIMD_VF ( )
static

This should get expanded in adjust_simduid_builtins.

References gcc_unreachable.

void expand_internal_call ( )

Expand STMT, which is a call to internal function FN.

static void expand_LOAD_LANES ( )
static

Expand LOAD_LANES call STMT.

static void expand_STORE_LANES ( )
static

Expand STORE_LANES call STMT.

static enum insn_code get_multi_vector_move ( )
static

ARRAY_TYPE is an array of vector modes. Return the associated insn for load-lanes-style optab OPTAB. The insn must exist.


Variable Documentation

void(*const internal_fn_expanders[])(gimple)
static
Initial value:
{
#define DEF_INTERNAL_FN(CODE, FLAGS)
)
0
}

Routines to expand each internal function, indexed by function number. Each routine has the prototype:

expand_<NAME> (gimple stmt)

where STMT is the statement that performs the call.

const int internal_fn_flags_array[]
Initial value:
{
#define DEF_INTERNAL_FN(CODE, FLAGS)
)
0
}

The ECF_* flags of each internal function, indexed by function number.

const char* const internal_fn_name_array[]
Initial value:
{
#define DEF_INTERNAL_FN(CODE, FLAGS)
)
"<invalid-fn>"
}

Internal functions. Copyright (C) 2011-2013 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/. The names of each internal function, indexed by function number.