gcc/
2019-09-17 Tobias Burnus <tobias@codesourcery.com>
* config/gcn/gcn.c (gcn_expand_scalar_to_vector_address,
gcn_md_reorg): Remove unused statement.
(gcn_emutls_var_init): Add missing return - after sorry abort.
* config/gcn/gcn.md (movdi_symbol_save_scc): Fix condition.
* config/gcn/mkoffload.c (process_obj): Remove unused variables.
* gimplify.c (gomp_oacc_needs_data_present): Likewise.
(gimplify_adjust_omp_clauses): Fix condition by adding ().
* omp-low.c (process_oacc_gangprivate_1): Comment unused
parameter name to silence unused warning.
* omp-sese.c (omp_sese_number, omp_sese_pseudo): Remove
superfluous ().
(oacc_do_neutering): Use signed int to avoid a warning.
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
find_func_clobbers): Use unsigned to silence warning.
gcc/fortran/
2019-09-17 Tobias Burnus <tobias@codesourcery.com>
* trans-expr.c (gfc_auto_dereference_var): Use passed loc argument.
(cherry picked from openacc-gcc-9-branch commit
500483e6ced44e2e0fea6a37e4f8c267ebaf826a)
+2019-09-17 Tobias Burnus <tobias@codesourcery.com>
+
+ * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address,
+ gcn_md_reorg): Remove unused statement.
+ (gcn_emutls_var_init): Add missing return - after sorry abort.
+ * config/gcn/gcn.md (movdi_symbol_save_scc): Fix condition.
+ * config/gcn/mkoffload.c (process_obj): Remove unused variables.
+ * gimplify.c (gomp_oacc_needs_data_present): Likewise.
+ (gimplify_adjust_omp_clauses): Fix condition by adding ().
+ * omp-low.c (process_oacc_gangprivate_1): Comment unused
+ parameter name to silence unused warning.
+ * omp-sese.c (omp_sese_number, omp_sese_pseudo): Remove
+ superfluous ().
+ (oacc_do_neutering): Use signed int to avoid a warning.
+ * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
+ find_func_clobbers): Use unsigned to silence warning.
+
2019-09-10 Julian Brown <julian@codesourcery.com>
* config/gcn/mkoffload.c (process_asm): Remove omp_data_size,
/* tmp[:] += zext (mem_base) */
if (exec)
{
- rtx undef_di = gcn_gen_undef (DImode);
emit_insn (gen_addv64si3_vcc_dup_exec (tmplo, mem_base_lo, tmplo,
vcc, undef_v64si, exec));
emit_insn (gen_addcv64si3_exec (tmphi, tmphi, const0_rtx,
gcn_emutls_var_init (tree, tree decl, tree)
{
sorry_at (DECL_SOURCE_LOCATION (decl), "TLS is not implemented for GCN.");
+ return NULL_TREE;
}
/* }}} */
{
basic_block bb;
rtx exec_reg = gen_rtx_REG (DImode, EXEC_REG);
- rtx exec_lo_reg = gen_rtx_REG (SImode, EXEC_LO_REG);
- rtx exec_hi_reg = gen_rtx_REG (SImode, EXEC_HI_REG);
regset_head live;
INIT_REG_SET (&live);
[(set (match_operand:DI 0 "nonimmediate_operand" "=Sg")
(match_operand:DI 1 "general_operand" "Y"))
(clobber (reg:BI CC_SAVE_REG))]
- "GET_CODE (operands[1]) == SYMBOL_REF || GET_CODE (operands[1]) == LABEL_REF
+ "(GET_CODE (operands[1]) == SYMBOL_REF || GET_CODE (operands[1]) == LABEL_REF)
&& (lra_in_progress || reload_completed)"
"#"
"reload_completed"
{
size_t len = 0;
const char *input = read_file (in, &len);
- id_map const *id;
- unsigned ix;
/* Dump out an array containing the binary.
FIXME: do this with objcopy. */
+2019-09-17 Tobias Burnus <tobias@codesourcery.com>
+
+ * trans-expr.c (gfc_auto_dereference_var): Use passed loc argument.
+
2019-09-06 Andrew Stubbs <ams@codesourcery.com>
Backport from mainline:
&& (sym->attr.dummy
|| sym->attr.function
|| sym->attr.result))
- var = build_fold_indirect_ref_loc (input_location, var);
+ var = build_fold_indirect_ref_loc (loc, var);
}
else if (!sym->attr.value)
{
if (!descriptor_only_p)
var = GFC_DECL_SAVED_DESCRIPTOR (var);
- var = build_fold_indirect_ref_loc (input_location, var);
+ var = build_fold_indirect_ref_loc (loc, var);
}
/* Dereference non-character scalar dummy arguments. */
|| (!CLASS_DATA (sym)->attr.dimension
&& !(CLASS_DATA (sym)->attr.codimension
&& CLASS_DATA (sym)->attr.allocatable))))
- var = build_fold_indirect_ref_loc (input_location, var);
+ var = build_fold_indirect_ref_loc (loc, var);
/* Dereference scalar hidden result. */
if (flag_f2c && sym->ts.type == BT_COMPLEX
&& (sym->attr.function || sym->attr.result)
&& !sym->attr.dimension && !sym->attr.pointer
&& !sym->attr.always_explicit)
- var = build_fold_indirect_ref_loc (input_location, var);
+ var = build_fold_indirect_ref_loc (loc, var);
/* Dereference non-character, non-class pointer variables.
These must be dummies, results, or scalars. */
|| sym->attr.result
|| (!sym->attr.dimension
&& (!sym->attr.codimension || !sym->attr.allocatable))))
- var = build_fold_indirect_ref_loc (input_location, var);
+ var = build_fold_indirect_ref_loc (loc, var);
/* Now treat the class array pointer variables accordingly. */
else if (sym->ts.type == BT_CLASS
&& sym->attr.dummy
&& CLASS_DATA (sym)->as->type == AS_ASSUMED_RANK)
|| CLASS_DATA (sym)->attr.allocatable
|| CLASS_DATA (sym)->attr.class_pointer))
- var = build_fold_indirect_ref_loc (input_location, var);
+ var = build_fold_indirect_ref_loc (loc, var);
/* And the case where a non-dummy, non-result, non-function,
non-allotable and non-pointer classarray is present. This case was
previously covered by the first if, but with introducing the
&& (sym->assoc
|| !CLASS_DATA (sym)->attr.allocatable)
&& !CLASS_DATA (sym)->attr.class_pointer)
- var = build_fold_indirect_ref_loc (input_location, var);
+ var = build_fold_indirect_ref_loc (loc, var);
}
return var;
gomp_oacc_needs_data_present (tree decl)
{
gimplify_omp_ctx *ctx = NULL;
- bool ref_p = TREE_CODE (TREE_TYPE (decl)) == REFERENCE_TYPE;
if (gimplify_omp_ctxp->region_type != ORT_ACC_PARALLEL
&& gimplify_omp_ctxp->region_type != ORT_ACC_KERNELS
/* OpenACC reductions need a present_or_copy data clause.
Add one if necessary. Emit error when the reduction is
private. */
- if (DECL_P (decl) && ctx->region_type == ORT_ACC_PARALLEL
- || ctx->region_type == ORT_ACC_SERIAL)
+ if (DECL_P (decl) && (ctx->region_type == ORT_ACC_PARALLEL
+ || ctx->region_type == ORT_ACC_SERIAL))
{
n = splay_tree_lookup (ctx->variables, (splay_tree_key) decl);
if (n->value & (GOVD_PRIVATE | GOVD_FIRSTPRIVATE))
/* Find gang-private variables in a context. */
static int
-process_oacc_gangprivate_1 (splay_tree_node node, void *data)
+process_oacc_gangprivate_1 (splay_tree_node node, void * /* data */)
{
omp_context *ctx = (omp_context *) node->value;
unsigned level_total = 0;
vec<propagation_set *> prop_set;
prop_set.create (last_basic_block_for_fn (cfun));
- for (unsigned i = 0; i < last_basic_block_for_fn (cfun); i++)
+ for (int i = 0; i < last_basic_block_for_fn (cfun); i++)
prop_set.quick_push (0);
find_ssa_names_to_propagate (par, mask, worker_single, vector_single,
size_t offset = (dir > 0 ? offsetof (edge_def, dest)
: offsetof (edge_def, src));
edge e;
- edge_iterator (ei);
+ edge_iterator ei;
FOR_EACH_EDGE (e, ei, edges)
{
vec<edge, va_gc> *edges, size_t offset)
{
edge e;
- edge_iterator (ei);
+ edge_iterator ei;
int hi_back = depth;
pseudo_node_t node_back (0, depth);
int hi_child = depth;
fnpos = 1;
argpos = 3;
if (targetm.goacc.explode_args ())
- for (int i = 6; i < gimple_call_num_args (t); i++)
+ for (unsigned int i = 6; i < gimple_call_num_args (t); i++)
{
tree arg = gimple_call_arg (t, i);
if (TREE_CODE (arg) == INTEGER_CST
implicit_use_args[num_implicit_use_args++] = 4;
implicit_use_args[num_implicit_use_args++] = 5;
if (targetm.goacc.explode_args ())
- for (int i = 6; i < gimple_call_num_args (t); i++)
+ for (unsigned int i = 6; i < gimple_call_num_args (t); i++)
{
tree arg = gimple_call_arg (t, i);
if (TREE_CODE (arg) == INTEGER_CST