diff options
Diffstat (limited to 'lib/gcc/arm-eabi/4.6.x-google/plugin/include/gimple.def')
-rw-r--r-- | lib/gcc/arm-eabi/4.6.x-google/plugin/include/gimple.def | 350 |
1 files changed, 0 insertions, 350 deletions
diff --git a/lib/gcc/arm-eabi/4.6.x-google/plugin/include/gimple.def b/lib/gcc/arm-eabi/4.6.x-google/plugin/include/gimple.def deleted file mode 100644 index 2b5488a..0000000 --- a/lib/gcc/arm-eabi/4.6.x-google/plugin/include/gimple.def +++ /dev/null @@ -1,350 +0,0 @@ -/* This file contains the definitions of the GIMPLE IR tuples used in GCC. - - Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - Contributed by Aldy Hernandez <aldyh@redhat.com> - -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 format of this file is - DEFGSCODE(GIMPLE_symbol, printable name, GSS_symbol). */ - - -/* Error marker. This is used in similar ways as ERROR_MARK in tree.def. */ -DEFGSCODE(GIMPLE_ERROR_MARK, "gimple_error_mark", GSS_BASE) - -/* IMPORTANT. Do not rearrange the codes between GIMPLE_COND and - GIMPLE_RETURN. The ordering is exposed by gimple_has_ops calls. - These are all the GIMPLE statements with register operands. */ - -/* GIMPLE_COND <COND_CODE, OP1, OP2, TRUE_LABEL, FALSE_LABEL> - represents the conditional jump: - - if (OP1 COND_CODE OP2) goto TRUE_LABEL else goto FALSE_LABEL - - COND_CODE is the tree code used as the comparison predicate. It - must be of class tcc_comparison. - - OP1 and OP2 are the operands used in the comparison. They must be - accepted by is_gimple_operand. - - TRUE_LABEL and FALSE_LABEL are the LABEL_DECL nodes used as the - jump target for the comparison. */ -DEFGSCODE(GIMPLE_COND, "gimple_cond", GSS_WITH_OPS) - -/* GIMPLE_DEBUG represents a debug statement. */ -DEFGSCODE(GIMPLE_DEBUG, "gimple_debug", GSS_WITH_OPS) - -/* GIMPLE_GOTO <TARGET> represents unconditional jumps. - TARGET is a LABEL_DECL or an expression node for computed GOTOs. */ -DEFGSCODE(GIMPLE_GOTO, "gimple_goto", GSS_WITH_OPS) - -/* GIMPLE_LABEL <LABEL> represents label statements. LABEL is a - LABEL_DECL representing a jump target. */ -DEFGSCODE(GIMPLE_LABEL, "gimple_label", GSS_WITH_OPS) - -/* GIMPLE_SWITCH <INDEX, DEFAULT_LAB, LAB1, ..., LABN> represents the - multiway branch: - - switch (INDEX) - { - case LAB1: ...; break; - ... - case LABN: ...; break; - default: ... - } - - INDEX is the variable evaluated to decide which label to jump to. - - DEFAULT_LAB, LAB1 ... LABN are the tree nodes representing case labels. - They must be CASE_LABEL_EXPR nodes. */ -DEFGSCODE(GIMPLE_SWITCH, "gimple_switch", GSS_WITH_OPS) - -/* IMPORTANT. - - Do not rearrange the codes between GIMPLE_ASSIGN and GIMPLE_RETURN. - It's exposed by GIMPLE_RANGE_CHECK calls. These are all the GIMPLE - statements with memory and register operands. */ - -/* GIMPLE_ASSIGN <SUBCODE, LHS, RHS1[, RHS2]> represents the assignment - statement - - LHS = RHS1 SUBCODE RHS2. - - SUBCODE is the tree code for the expression computed by the RHS of the - assignment. It must be one of the tree codes accepted by - get_gimple_rhs_class. If LHS is not a gimple register according to - is_gimple_reg, SUBCODE must be of class GIMPLE_SINGLE_RHS. - - LHS is the operand on the LHS of the assignment. It must be a tree node - accepted by is_gimple_lvalue. - - RHS1 is the first operand on the RHS of the assignment. It must always be - present. It must be a tree node accepted by is_gimple_val. - - RHS2 is the second operand on the RHS of the assignment. It must be a tree - node accepted by is_gimple_val. This argument exists only if SUBCODE is - of class GIMPLE_BINARY_RHS. */ -DEFGSCODE(GIMPLE_ASSIGN, "gimple_assign", GSS_WITH_MEM_OPS) - -/* GIMPLE_ASM <STRING, I1, ..., IN, O1, ... OM, C1, ..., CP> - represents inline assembly statements. - - STRING is the string containing the assembly statements. - I1 ... IN are the N input operands. - O1 ... OM are the M output operands. - C1 ... CP are the P clobber operands. - L1 ... LQ are the Q label operands. */ -DEFGSCODE(GIMPLE_ASM, "gimple_asm", GSS_ASM) - -/* GIMPLE_CALL <FN, LHS, ARG1, ..., ARGN[, CHAIN]> represents function - calls. - - FN is the callee. It must be accepted by is_gimple_call_addr. - - LHS is the operand where the return value from FN is stored. It may - be NULL. - - ARG1 ... ARGN are the arguments. They must all be accepted by - is_gimple_operand. - - CHAIN is the optional static chain link for nested functions. */ -DEFGSCODE(GIMPLE_CALL, "gimple_call", GSS_CALL) - -/* GIMPLE_RETURN <RETVAL> represents return statements. - - RETVAL is the value to return or NULL. If a value is returned it - must be accepted by is_gimple_operand. */ -DEFGSCODE(GIMPLE_RETURN, "gimple_return", GSS_WITH_MEM_OPS) - -/* GIMPLE_BIND <VARS, BLOCK, BODY> represents a lexical scope. - VARS is the set of variables declared in that scope. - BLOCK is the symbol binding block used for debug information. - BODY is the sequence of statements in the scope. */ -DEFGSCODE(GIMPLE_BIND, "gimple_bind", GSS_BIND) - -/* GIMPLE_CATCH <TYPES, HANDLER> represents a typed exception handler. - TYPES is the type (or list of types) handled. HANDLER is the - sequence of statements that handle these types. */ -DEFGSCODE(GIMPLE_CATCH, "gimple_catch", GSS_CATCH) - -/* GIMPLE_EH_FILTER <TYPES, FAILURE> represents an exception - specification. TYPES is a list of allowed types and FAILURE is the - sequence of statements to execute on failure. */ -DEFGSCODE(GIMPLE_EH_FILTER, "gimple_eh_filter", GSS_EH_FILTER) - -/* GIMPLE_EH_MUST_NOT_THROW <DECL> represents an exception barrier. - DECL is a noreturn function decl taking no arguments that will - be invoked if an exception propagates to this point. */ -DEFGSCODE(GIMPLE_EH_MUST_NOT_THROW, "gimple_eh_must_not_throw", GSS_EH_MNT) - -/* GIMPLE_RESX resumes execution after an exception. */ -DEFGSCODE(GIMPLE_RESX, "gimple_resx", GSS_EH_CTRL) - -/* GIMPLE_EH_DISPATCH demultiplexes an exception edge based on - the FILTER argument. */ -DEFGSCODE(GIMPLE_EH_DISPATCH, "gimple_eh_dispatch", GSS_EH_CTRL) - -/* GIMPLE_PHI <RESULT, ARG1, ..., ARGN> represents the PHI node - - RESULT = PHI <ARG1, ..., ARGN> - - RESULT is the SSA name created by this PHI node. - - ARG1 ... ARGN are the arguments to the PHI node. N must be - exactly the same as the number of incoming edges to the basic block - holding the PHI node. Every argument is either an SSA name or a - tree node of class tcc_constant. */ -DEFGSCODE(GIMPLE_PHI, "gimple_phi", GSS_PHI) - -/* GIMPLE_TRY <TRY_KIND, EVAL, CLEANUP> - represents a try/catch or a try/finally statement. - - TRY_KIND is either GIMPLE_TRY_CATCH or GIMPLE_TRY_FINALLY. - - EVAL is the sequence of statements to execute on entry to GIMPLE_TRY. - - CLEANUP is the sequence of statements to execute according to - TRY_KIND. If TRY_KIND is GIMPLE_TRY_CATCH, CLEANUP is only exected - if an exception is thrown during execution of EVAL. If TRY_KIND is - GIMPLE_TRY_FINALLY, CLEANUP is always executed after executing EVAL - (regardless of whether EVAL finished normally, or jumped out or an - exception was thrown). */ -DEFGSCODE(GIMPLE_TRY, "gimple_try", GSS_TRY) - -/* GIMPLE_NOP represents the "do nothing" statement. */ -DEFGSCODE(GIMPLE_NOP, "gimple_nop", GSS_BASE) - - -/* IMPORTANT. - - Do not rearrange any of the GIMPLE_OMP_* codes. This ordering is - exposed by the range check in gimple_omp_subcode(). */ - - -/* Tuples used for lowering of OMP_ATOMIC. Although the form of the OMP_ATOMIC - expression is very simple (just in form mem op= expr), various implicit - conversions may cause the expression to become more complex, so that it does - not fit the gimple grammar very well. To overcome this problem, OMP_ATOMIC - is rewritten as a sequence of two codes in gimplification: - - GIMPLE_OMP_LOAD (tmp, mem) - val = some computations involving tmp; - GIMPLE_OMP_STORE (val). */ -DEFGSCODE(GIMPLE_OMP_ATOMIC_LOAD, "gimple_omp_atomic_load", - GSS_OMP_ATOMIC_LOAD) -DEFGSCODE(GIMPLE_OMP_ATOMIC_STORE, "gimple_omp_atomic_store", - GSS_OMP_ATOMIC_STORE) - -/* GIMPLE_OMP_CONTINUE marks the location of the loop or sections - iteration in partially lowered OpenMP code. */ -DEFGSCODE(GIMPLE_OMP_CONTINUE, "gimple_omp_continue", GSS_OMP_CONTINUE) - -/* GIMPLE_OMP_CRITICAL <NAME, BODY> represents - - #pragma omp critical [name] - - NAME is the name given to the critical section. - BODY is the sequence of statements that are inside the critical section. */ -DEFGSCODE(GIMPLE_OMP_CRITICAL, "gimple_omp_critical", GSS_OMP_CRITICAL) - -/* GIMPLE_OMP_FOR <BODY, CLAUSES, INDEX, INITIAL, FINAL, COND, INCR, PRE_BODY> - represents - - PRE_BODY - #pragma omp for [clause1 ... clauseN] - for (INDEX = INITIAL; INDEX COND FINAL; INDEX {+=,-=} INCR) - BODY - - BODY is the loop body. - - CLAUSES is the list of clauses. - - INDEX must be an integer or pointer variable, which is implicitly thread - private. It must be accepted by is_gimple_operand. - - INITIAL is the initial value given to INDEX. It must be - accepted by is_gimple_operand. - - FINAL is the final value that INDEX should take. It must - be accepted by is_gimple_operand. - - COND is the condition code for the controlling predicate. It must - be one of { <, >, <=, >= } - - INCR is the loop index increment. It must be tree node of type - tcc_constant. - - PRE_BODY is a landing pad filled by the gimplifier with things from - INIT, COND, and INCR that are technically part of the OMP_FOR - structured block, but are evaluated before the loop body begins. - - INITIAL, FINAL and INCR are required to be loop invariant integer - expressions that are evaluated without any synchronization. - The evaluation order, frequency of evaluation and side-effects are - unspecified by the standard. */ -DEFGSCODE(GIMPLE_OMP_FOR, "gimple_omp_for", GSS_OMP_FOR) - -/* GIMPLE_OMP_MASTER <BODY> represents #pragma omp master. - BODY is the sequence of statements to execute in the master section. */ -DEFGSCODE(GIMPLE_OMP_MASTER, "gimple_omp_master", GSS_OMP) - -/* GIMPLE_OMP_ORDERED <BODY> represents #pragma omp ordered. - BODY is the sequence of statements to execute in the ordered section. */ -DEFGSCODE(GIMPLE_OMP_ORDERED, "gimple_omp_ordered", GSS_OMP) - -/* GIMPLE_OMP_PARALLEL <BODY, CLAUSES, CHILD_FN, DATA_ARG> represents - - #pragma omp parallel [CLAUSES] - BODY - - BODY is a the sequence of statements to be executed by all threads. - - CLAUSES is a TREE_LIST node with all the clauses. - - CHILD_FN is set when outlining the body of the parallel region. - All the statements in BODY are moved into this newly created - function when converting OMP constructs into low-GIMPLE. - - DATA_ARG is a local variable in the parent function containing data - to be shared with CHILD_FN. This is used to implement all the data - sharing clauses. */ -DEFGSCODE(GIMPLE_OMP_PARALLEL, "gimple_omp_parallel", GSS_OMP_PARALLEL) - -/* GIMPLE_OMP_TASK <BODY, CLAUSES, CHILD_FN, DATA_ARG, COPY_FN, - ARG_SIZE, ARG_ALIGN> represents - - #pragma omp task [CLAUSES] - BODY - - BODY is a the sequence of statements to be executed by all threads. - - CLAUSES is a TREE_LIST node with all the clauses. - - CHILD_FN is set when outlining the body of the explicit task region. - All the statements in BODY are moved into this newly created - function when converting OMP constructs into low-GIMPLE. - - DATA_ARG is a local variable in the parent function containing data - to be shared with CHILD_FN. This is used to implement all the data - sharing clauses. - - COPY_FN is set when outlining the firstprivate var initialization. - All the needed statements are emitted into the newly created - function, or when only memcpy is needed, it is NULL. - - ARG_SIZE and ARG_ALIGN are the size and alignment of the incoming - data area allocated by GOMP_task and passed to CHILD_FN. */ -DEFGSCODE(GIMPLE_OMP_TASK, "gimple_omp_task", GSS_OMP_TASK) - -/* OMP_RETURN marks the end of an OpenMP directive. */ -DEFGSCODE(GIMPLE_OMP_RETURN, "gimple_omp_return", GSS_BASE) - -/* OMP_SECTION <BODY> represents #pragma omp section. - BODY is the sequence of statements in the section body. */ -DEFGSCODE(GIMPLE_OMP_SECTION, "gimple_omp_section", GSS_OMP) - -/* OMP_SECTIONS <BODY, CLAUSES, CONTROL> represents #pragma omp sections. - - BODY is the sequence of statements in the sections body. - CLAUSES is a TREE_LIST node holding the list of associated clauses. - CONTROL is a VAR_DECL used for deciding which of the sections - to execute. */ -DEFGSCODE(GIMPLE_OMP_SECTIONS, "gimple_omp_sections", GSS_OMP_SECTIONS) - -/* GIMPLE_OMP_SECTIONS_SWITCH is a marker placed immediately after - OMP_SECTIONS. It represents the GIMPLE_SWITCH used to decide which - branch is taken. */ -DEFGSCODE(GIMPLE_OMP_SECTIONS_SWITCH, "gimple_omp_sections_switch", GSS_BASE) - -/* GIMPLE_OMP_SINGLE <BODY, CLAUSES> represents #pragma omp single - BODY is the sequence of statements inside the single section. - CLAUSES is a TREE_LIST node holding the associated clauses. */ -DEFGSCODE(GIMPLE_OMP_SINGLE, "gimple_omp_single", GSS_OMP_SINGLE) - -/* GIMPLE_PREDICT <PREDICT, OUTCOME> specifies a hint for branch prediction. - - PREDICT is one of the predictors from predict.def. - - OUTCOME is NOT_TAKEN or TAKEN. */ -DEFGSCODE(GIMPLE_PREDICT, "gimple_predict", GSS_BASE) - -/* This node represents a cleanup expression. It is ONLY USED INTERNALLY - by the gimplifier as a placeholder for cleanups, and its uses will be - cleaned up by the time gimplification is done. - - This tuple should not exist outside of the gimplifier proper. */ -DEFGSCODE(GIMPLE_WITH_CLEANUP_EXPR, "gimple_with_cleanup_expr", GSS_WCE) |