Richard Henderson | 1 Jul 2004 01:58
Picon
Favicon

Remove last_parm_insn

This variable is write-only.

r~

        * function.h (struct function): Remove x_last_parm_insn,
        inl_last_parm_insn.
        (last_parm_insn): Remove.
        * function.c (free_after_compilation): Don't clear them.
        (fixup_var_refs_insn, assign_parms): Don't set them.

Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.532
diff -c -p -d -r1.532 function.c
*** function.c	30 Jun 2004 22:30:29 -0000	1.532
--- function.c	30 Jun 2004 23:56:12 -0000
*************** free_after_compilation (struct function 
*** 446,457 ****
    f->x_tail_recursion_reentry = NULL;
    f->x_arg_pointer_save_area = NULL;
    f->x_parm_birth_insn = NULL;
-   f->x_last_parm_insn = NULL;
    f->x_parm_reg_stack_loc = NULL;
    f->fixup_var_refs_queue = NULL;
    f->original_arg_vector = NULL;
    f->original_decl_initial = NULL;
-   f->inl_last_parm_insn = NULL;
    f->epilogue_delay_list = NULL;
  }
(Continue reading)

Richard Henderson | 1 Jul 2004 02:02
Picon
Favicon

Remove rationalize_compound_expr

Function bodies are no longer made up of COMPOUND_EXPRs.

r~

        * tree-gimple.c (right_assocify_expr): Kill
        (rationalize_compound_expr): Kill.
        * tree-gimple.h: Likewise.
        * tree-inline.c (expand_call_inline): Don't call it.

Index: tree-gimple.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-gimple.c,v
retrieving revision 2.10
diff -c -p -d -r2.10 tree-gimple.c
*** tree-gimple.c	25 Jun 2004 18:30:09 -0000	2.10
--- tree-gimple.c	30 Jun 2004 23:59:36 -0000
*************** get_call_expr_in (tree t)
*** 524,599 ****
    return NULL_TREE;
  }

- 
- /* Given an _EXPR TOP, reorganize all of the nested _EXPRs with the same
-    code so that they only appear as the second operand.  This should only
-    be used for tree codes which are truly associative, such as
-    COMPOUND_EXPR and TRUTH_ANDIF_EXPR.  Arithmetic is not associative
-    enough, due to the limited precision of arithmetic data types.
- 
-    This transformation is conservative; the operand 0 of a matching tree
-    node will only change if it is also a matching node.  */
(Continue reading)

Richard Henderson | 1 Jul 2004 02:07
Picon
Favicon

Re: [PATCH] DWARF-2 unwinder off-by-one problem with signal frames

On Thu, Jul 01, 2004 at 12:13:13AM +0200, Ulrich Weigand wrote:
> However, if we assume that the platform *has* the information 
> required to decide whether the RA points to the begin or end of
> the trapping insn, one possible implementation would be a new
> flag in _Unwind_FrameState that MD_FALLBACK_FRAME_STATE_FOR
> could set to indicate the former case.  Common unwind-dw.c code
> would then simply need to consider that flag.

Is that actually going to be useful?  Many Linux targets are not
actually using MD_FALLBACK_FRAME_STATE_FOR anymore.  The unwind
information is coming directly from libc or the kernel.

r~

Richard Henderson | 1 Jul 2004 02:16
Picon
Favicon

Fix gimplify_modify_expr_to_memcpy

Gah.  A typo from yesterday.  No idea how I missed this.

r~

        * gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo.

Index: gimplify.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gimplify.c,v
retrieving revision 2.37
diff -c -p -d -u -r2.37 gimplify.c
--- gimplify.c	30 Jun 2004 18:11:13 -0000	2.37
+++ gimplify.c	1 Jul 2004 00:08:58 -0000
 <at>  <at>  -2334,7 +2335,7  <at>  <at>  gimplify_modify_expr_to_memcpy (tree *ex
   args = tree_cons (NULL, t, args);

   to_ptr = build_fold_addr_expr (to);
-  args = tree_cons (NULL, to, args);
+  args = tree_cons (NULL, to_ptr, args);
   t = implicit_built_in_decls[BUILT_IN_MEMCPY];
   t = build_function_call_expr (t, args);

Richard Henderson | 1 Jul 2004 02:20
Picon
Favicon

Allow lhs forms in gimple call arguments

Rationale is that

  (1) Passing nested variable sized components would force the creation
      of variable sized temporaries.  Which is bad, since we abort.

  (2) Components may be Large.  Large temporaries are also bad, though
      they don't cause aborts.

Nice tidy scalar is_gimple_reg_type types are still forced into
temporaries so the optimizers can do nice things with them.

Tested on i686-linux.

r~

        * gimplify.c (gimplify_compound_lval): Take fallback argument
        instead of want_lvalue.
        (gimplify_call_expr): Take want_value argument instead of test
        function.  Gimplify arguments to val only if reg_type; otherwise
        allow lvalue forms.
        (gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr
        calls.
        * tree-gimple.c: Update GIMPLE grammer.  Use true/false not 1/0.
        Tidy commentary globally.
        (get_call_expr_in): Remove RETURN_EXPR handling.  Tidy.
        * tree-gimple.h (is_gimple_call_addr): Mark extern.

Index: gimplify.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gimplify.c,v
(Continue reading)

Sebastian Pop | 1 Jul 2004 02:20
Picon
Favicon

[patch] Lno branch merge -- scalar evolutions analyzer

Hello,

This patch brings the analyzer of scalars evolutions into mainline.
The patch does not include new switches for enabling the analyzer.
These switches were used mainly for debugging purposes, and will be
merged together with the part of the testsuite that exercises this
analyzer.

Bootstrapped on i686-pc-linux-gnu.

Sebastian

PS: It seems like my original mail has been lost...  Here is a smaller
mail and the link to the patch on a web-server:

  http://www.cri.ensmp.fr/~pop/gcc/scev.diff

2004-06-30  Sebastian Pop  <pop <at> cri.ensmp.fr>

	* Makefile.in (SCEV_H): New.
	(OBJS-common): Add tree-scalar-evolution.o and tree-ssa-loop-niter.o.
	(tree-ssa-loop-niter.o, tree-scalar-evolution.o): New.
	(tree-gimple.o): Adjust indentation.
	* basic-block.h (edge_source, edge_destination): New functions.
	* cfgloop.c (superloop_at_depth): New function.
	* cfgloop.h (struct loop): Add nb_iterations and bounds fields.
	(current_loops): Declare.
	(find_common_loop): Remove extra space.
	(superloop_at_depth): Declare.
	(loop_from_num, outer_loop, inner_loop, next_loop, loop_num, 
(Continue reading)

Richard Henderson | 1 Jul 2004 02:40
Picon
Favicon

Remove immediate_size_expand

This variable controled emitting rtl during type layout.
In the modern world, this is *always* wrong.  We spent a
good deal of effort trying to prevent it.

r~

        * tree.h (immediate_size_expand): Delete.
        * stor-layout.c (immediate_size_expand): Delete.
        (variable_size): Don't look at it.
        * c-decl.c (push_parm_decl): Don't frob immediate_size_expand.
        (start_function): Likewise.
        * cfgexpand.c (construct_exit_block): Likewise.
        * function.c (init_function_start, expand_function_end): Likewise.
        * tree-optimize.c (tree_rest_of_compilation): Likewise.
cp/
        * decl.c (start_preparsed_function): Don't set immediate_size_expand.
        * method.c (use_thunk): Likewise.
fortran/
        * trans-decl.c (gfc_generate_function_code): Don't set
        immediate_size_expand.
        (gfc_generate_constructors): Likewise.

Index: c-decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v
retrieving revision 1.521
diff -c -p -d -u -r1.521 c-decl.c
--- c-decl.c	30 Jun 2004 18:05:00 -0000	1.521
+++ c-decl.c	1 Jul 2004 00:30:28 -0000
 <at>  <at>  -3028,11 +3028,6  <at>  <at>  push_parm_decl (tree parm)
(Continue reading)

Richard Henderson | 1 Jul 2004 03:04
Picon
Favicon

Re: fix g++.dg/init/new4.C

On Wed, Jun 30, 2004 at 04:52:59PM -0400, Richard Kenner wrote:
> How did you test Ada?

I looked at the bug boxes and traced them back to something else.

> Does it bootstrap for you?

Not even close.

>     My initial reaction was to ignore the "VLA headaches" comment and
>     generate one anyway.  This runs afoul of the middle-end data layout
>     routines that think they know better and generate an error for building
>     a VLA type outside of a function context.
> 
> Ada does that all the time.  What problems were you running into?

variable_size would error.

Looking at this more afterward it seems as if I could have set
cfun->x_dont_save_pending_sizes_p and it would have done what I
wanted.  I'll probably clean that up soon.

r~

Richard Kenner | 1 Jul 2004 03:12
Picon

Re: fix g++.dg/init/new4.C

    > How did you test Ada?

    I looked at the bug boxes and traced them back to something else.

;-)

    > Does it bootstrap for you?

    Not even close.

Hmm... I'm going to check that it still does for me before I change
anything else.  I've heard it doesn't on x86.  I'm on x86_64.  What
target ar you using?

    variable_size would error.

    Looking at this more afterward it seems as if I could have set
    cfun->x_dont_save_pending_sizes_p and it would have done what I
    wanted.  I'll probably clean that up soon.

I thought you were talking about *outside* function context?

And ada doesn't set that at all (though I think it clearly should).

Richard Henderson | 1 Jul 2004 03:12
Picon
Favicon

Remove x_whole_function_mode_p

This variable is now always true.

r~

        * function.h (struct function): Remove x_whole_function_mode_p.
        * c-decl.c (store_parm_decls): Don't set it.
        * tree-optimize.c (tree_rest_of_compilation): Likewise.
        * passes.c (rest_of_compilation): Don't check it.
        * stmt.c (expand_fixup): Likewise.
        * function.c (fixup_var_refs_insn): Remove unused variable.
fortran/
        * trans-decl.c (gfc_generate_function_code): Don't set
        x_whole_function_mode_p.
        (gfc_generate_constructors): Likewise.

Index: c-decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v
retrieving revision 1.522
diff -c -p -d -r1.522 c-decl.c
*** c-decl.c	1 Jul 2004 00:38:35 -0000	1.522
--- c-decl.c	1 Jul 2004 01:04:44 -0000
*************** store_parm_decls (void)
*** 6151,6159 ****
  	}
      }

-   /* This function is being processed in whole-function mode.  */
-   cfun->x_whole_function_mode_p = 1;
- 
(Continue reading)


Gmane