integrate.c (copy_decl_for_inlining): Remove invisible reference handling.

* integrate.c (copy_decl_for_inlining): Remove invisible reference
        handling.
        * tree-inline.c (setup_one_parameter): Likewise.

From-SVN: r85057
This commit is contained in:
Jason Merrill 2004-07-22 15:01:03 -04:00 committed by Jason Merrill
parent 92976927ec
commit 669d6ecca2
3 changed files with 11 additions and 41 deletions

View File

@ -1,3 +1,9 @@
2004-07-22 Jason Merrill <jason@redhat.com>
* integrate.c (copy_decl_for_inlining): Remove invisible reference
handling.
* tree-inline.c (setup_one_parameter): Likewise.
2004-07-22 Brian Booth <bbooth@redhat.com>
* tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.

View File

@ -116,36 +116,14 @@ copy_decl_for_inlining (tree decl, tree from_fn, tree to_fn)
/* Copy the declaration. */
if (TREE_CODE (decl) == PARM_DECL || TREE_CODE (decl) == RESULT_DECL)
{
tree type;
int invisiref = 0;
/* See if the frontend wants to pass this by invisible reference. */
if (TREE_CODE (decl) == PARM_DECL
&& DECL_ARG_TYPE (decl) != TREE_TYPE (decl)
&& POINTER_TYPE_P (DECL_ARG_TYPE (decl))
&& TREE_TYPE (DECL_ARG_TYPE (decl)) == TREE_TYPE (decl))
{
invisiref = 1;
type = DECL_ARG_TYPE (decl);
}
else
type = TREE_TYPE (decl);
tree type = TREE_TYPE (decl);
/* For a parameter or result, we must make an equivalent VAR_DECL, not a
new PARM_DECL. */
copy = build_decl (VAR_DECL, DECL_NAME (decl), type);
if (!invisiref)
{
TREE_ADDRESSABLE (copy) = TREE_ADDRESSABLE (decl);
TREE_READONLY (copy) = TREE_READONLY (decl);
TREE_THIS_VOLATILE (copy) = TREE_THIS_VOLATILE (decl);
}
else
{
TREE_ADDRESSABLE (copy) = 0;
TREE_READONLY (copy) = 1;
TREE_THIS_VOLATILE (copy) = 0;
}
TREE_ADDRESSABLE (copy) = TREE_ADDRESSABLE (decl);
TREE_READONLY (copy) = TREE_READONLY (decl);
TREE_THIS_VOLATILE (copy) = TREE_THIS_VOLATILE (decl);
}
else
{

View File

@ -693,7 +693,6 @@ setup_one_parameter (inline_data *id, tree p, tree value, tree fn,
{
tree init_stmt;
tree var;
tree var_sub;
/* If the parameter is never assigned to, we may not need to
create a new variable here at all. Instead, we may be able
@ -724,23 +723,10 @@ setup_one_parameter (inline_data *id, tree p, tree value, tree fn,
function. */
var = copy_decl_for_inlining (p, fn, VARRAY_TREE (id->fns, 0));
/* See if the frontend wants to pass this by invisible reference. If
so, our new VAR_DECL will have REFERENCE_TYPE, and we need to
replace uses of the PARM_DECL with dereferences. */
if (TREE_TYPE (var) != TREE_TYPE (p)
&& POINTER_TYPE_P (TREE_TYPE (var))
&& TREE_TYPE (TREE_TYPE (var)) == TREE_TYPE (p))
{
insert_decl_map (id, var, var);
var_sub = build1 (INDIRECT_REF, TREE_TYPE (p), var);
}
else
var_sub = var;
/* Register the VAR_DECL as the equivalent for the PARM_DECL;
that way, when the PARM_DECL is encountered, it will be
automatically replaced by the VAR_DECL. */
insert_decl_map (id, p, var_sub);
insert_decl_map (id, p, var);
/* Declare this new variable. */
TREE_CHAIN (var) = *vars;