OSDN Git Service

pf3gnuchains/gcc-fork.git
12 years agoPR target/34210 PR target/35508 * config.host (avr-*-*): Add avr cpu_type and avr...
hutchinsonandy [Mon, 7 Apr 2008 23:15:35 +0000 (23:15 +0000)]
PR target/34210 PR target/35508 * config.host (avr-*-*): Add avr cpu_type and avr tmake_file. * config/t-avr: New file. Build 16bit libgcc functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133993 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * Makefile.def: check-gold depends upon all-binutils.
ian [Mon, 7 Apr 2008 22:36:37 +0000 (22:36 +0000)]
* Makefile.def: check-gold depends upon all-binutils.
* Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133992 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Mon, 7 Apr 2008 22:10:41 +0000 (22:10 +0000)]
2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/25829 28655
* gfortran.dg/write_check2.f90: Update dg-error.
* gfortran.dg/io_constraints_1.f90: Udate dg-error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133991 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoFix bug Joern Rennecke reported.
wilson [Mon, 7 Apr 2008 22:09:07 +0000 (22:09 +0000)]
Fix bug Joern Rennecke reported.
* reload.c (push_secondary_reload): Add missing break to for loop.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133990 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Mon, 7 Apr 2008 22:07:44 +0000 (22:07 +0000)]
2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/25829 28655
* io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
round, sign, and id. (match_open_element): Match new tags.
(gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
for DEFAULT only. Update error messages. (match_dt_element): Fix match
tag for asynchronous. Update error messages. (gfc_free_inquire): Free
new expressions. (match_inquire_element): Match new tags.
(gfc_match_inquire): Add constraint for ID and PENDING.
(gfc_resolve_inquire): Resolve new tags.
* trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
mask for ID parameter.
* ioparm.def: Fix order of parameters for pending, round, and sign.
NOTE: These must line up with the definitions in libgfortran/io/io.h. or
things don't work.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133989 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Mon, 7 Apr 2008 22:05:52 +0000 (22:05 +0000)]
2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/25829 28655
* io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
and flags.status. (st_open): Initialize flags.async.
* io/list_read.c (read_charactor): Use delim_status instead of
flags.delim.
* io/read.c (read_x): Use pad_status instead of flags.pad.
* io/inquire.c (inquire_via_unit): Add new checks.
(inquire_via_filename): Likewise.
* io/io.h (st_parameter_inquire): Add new flags.
(st_parameter_dt): Likewise.
* io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
flags.async.
* io/transfer.c: Add delim and pad option arrays. (read_sf): Use
pad_status instead of flags.pad. (read_block): Likewise.
(data_transfer_init): Set flags.async and add checks.
* io/write.c (write_character): Use delim_status.
(list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
(namelist_write): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133988 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c++/35734
jason [Mon, 7 Apr 2008 20:50:21 +0000 (20:50 +0000)]
    PR c++/35734
        * class.c (type_has_user_nondefault_constructor): A template
        counts as a nondefault constructor.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133987 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
doko [Mon, 7 Apr 2008 20:08:33 +0000 (20:08 +0000)]
2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
            Xavier Grave  <grave@ipno.in2p3.fr>

        * Makefile.in: Add make ifeq define for mips/mipsel support.
        * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
        system-linux-mips.ads: New files.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133986 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR middle-end/PR28690
bergner [Mon, 7 Apr 2008 17:36:59 +0000 (17:36 +0000)]
PR middle-end/PR28690
* rtlanal.c: Update copyright years.
(commutative_operand_precedence): Give SYMBOL_REF's the same precedence
as REG_POINTER and MEM_POINTER operands.
* emit-rtl.c (gen_reg_rtx_and_attrs): New function.
(set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
* rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
* gcse.c: Update copyright years.
(pre_delete): Call gen_reg_rtx_and_attrs.
(hoist_code): Likewise.
(build_store_vectors): Likewise.
(delete_store): Likewise.
* loop-invariant.c (move_invariant_reg): Likewise.
Update copyright years.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133985 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
uros [Mon, 7 Apr 2008 16:54:00 +0000 (16:54 +0000)]
    * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
        control string instead of quoted.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133984 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
zadeck [Mon, 7 Apr 2008 15:40:43 +0000 (15:40 +0000)]
2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>

doc/rtl.texi: Rewrite of subreg section.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133982 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Kai Tietz <kai.tietz@onevision.com>
ktietz [Mon, 7 Apr 2008 12:44:14 +0000 (12:44 +0000)]
2008-04-07  Kai Tietz  <kai.tietz@onevision.com>

        PR/35842
        * config/i386/i386.c (legitimize_pic_address): Add treating
        of dllimport SYM_REF's.
        (legitimize_dllimport_symbol): Add prototype.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133981 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR/35842
ktietz [Mon, 7 Apr 2008 12:40:43 +0000 (12:40 +0000)]
PR/35842
* gcc.dg/torture/pr35842.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133980 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
doko [Mon, 7 Apr 2008 12:31:41 +0000 (12:31 +0000)]
2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>

        * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
        detect systems using GNU libc.
        * gsocket.h: ditto.
        * socket.c: ditto.
        * adaint.c: ditto.
        * link.c: ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133979 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
doko [Mon, 7 Apr 2008 12:30:03 +0000 (12:30 +0000)]
2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>

        * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
        constant constant for sysconf call.
        (bit_field): New packed boolean type used by cpu_set_t.
        (cpu_set_t): New type corresponding to the C type with
        the same name. Note that on the Ada side we use a bit
        field array for the affinity mask. There is not need
        for the C macro for setting individual bit.
        (pthread_setaffinity_np): New imported routine.
        * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
        on GNU/kFreeBSD.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133978 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
ebotcazou [Mon, 7 Apr 2008 09:47:43 +0000 (09:47 +0000)]
* fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
reference in constructor with non self-referential type.

ada/
* utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133977 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago Removal of Return with Depressed Stack Pointer support
ebotcazou [Mon, 7 Apr 2008 09:37:51 +0000 (09:37 +0000)]
Removal of Return with Depressed Stack Pointer support
* tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
(ECF_SP_DEPRESSED): Likewise.
(ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
* calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
(flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
(expand_call): Do not test ECF_SP_DEPRESSED.
* dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
* function.c (keep_stack_depressed): Delete.
(handle_epilogue_set): Likewise.
(update_epilogue_consts): Likewise.
(emit_equiv_load): Likewise.
(thread_prologue_and_epilogue_insns): Remove support for Return with
Depressed Stack Pointer.
* print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.

ada/
* gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
* decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
* utils.c (create_subprog_type): Remove returns_with_dsp parameter.
* trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
Return by Depressed Stack Pointer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133976 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-07 Johannes Singler <singler@ira.uka.de>
singler [Mon, 7 Apr 2008 08:27:34 +0000 (08:27 +0000)]
2008-04-07  Johannes Singler  <singler@ira.uka.de>

         * include/parallel/multiway_merge.h:
           Moved decisions to compiletime instead of runtime.
         * include/parallel/losertree.h:
           Removed obsolete variants, added variant that uses pointers
           in the loser tree.
         * include/parallel/types.h:
           Remove obsolete settings options from enum.
         * include/parallel/features.h:
           Remove obsolete compile-time switches.
         * include/parallel/compiletime_settings.h:
           Remove obsolete variant that copies back *after* sorting.
         * include/parallel/tags.h:
           Add one new tag for compile-time switch.
         * include/parallel/merge.h:
           Adapt to changes in multiway_merge.h.
         * include/parallel/multiway_mergesort.h:
           Adapt to changes in multiway_merge.h.
           Factor out splitting variants.
           Remove obsolete variant that copies back *after* sorting.
         * include/parallel/sort.h:
           Adapt to changes in multiway_mergesort.h.
         * testsuite/25_algorithms/sort/35588.cc:
           Added test case from / for PR 35588.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133975 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Mon, 7 Apr 2008 00:17:32 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133972 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-06 Richard Guenther <rguenther@suse.de>
rguenth [Sun, 6 Apr 2008 21:20:49 +0000 (21:20 +0000)]
2008-04-06  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/35400
* tree-vrp.c (vrp_evaluate_conditional): Only query value-range
information from SSA_NAMEs.

* gcc.dg/torture/pr35400.c: New testcase.
* g++.dg/torture/pr35400.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133967 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/avr/avr.h (avr_mega_p): Remove declaration.
aesok [Sun, 6 Apr 2008 20:54:32 +0000 (20:54 +0000)]
* config/avr/avr.h (avr_mega_p): Remove declaration.
(AVR_MEGA): Remove macro.
* config/avr/avr.c (avr_mega_p): Remove variable.
(avr_override_options): Remove inicializion of avr_mega_p.
Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
(print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
(avr_jump_mode): (Ditto.).
(avr_output_progmem_section_asm_op): (Ditto.).
(avr_asm_init_sections): (Ditto.).
(avr_asm_init_sections): (Ditto.).
(avr_rtx_costs): (Ditto.).
* config/avr/avr.md: (Ditto.).
* config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
'__AVR_MEGA__'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133966 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoIndex: gcc/fortran/trans-stmt.c
pault [Sun, 6 Apr 2008 19:37:45 +0000 (19:37 +0000)]
Index: gcc/fortran/trans-stmt.c
===================================================================
*** gcc/fortran/trans-stmt.c (revision 133728)
--- gcc/fortran/trans-stmt.c (working copy)
*************** gfc_trans_where_2 (gfc_code * code, tree
*** 3540,3547 ****

  /* Translate a simple WHERE construct or statement without dependencies.
     CBLOCK is the "then" clause of the WHERE statement, where CBLOCK->EXPR
!    is the mask condition, and EBLOCK if non-NULL is the "else" clause.
!    Currently both CBLOCK and EBLOCK are restricted to single assignments.  */

  static tree
  gfc_trans_where_3 (gfc_code * cblock, gfc_code * eblock)
--- 3540,3550 ----

  /* Translate a simple WHERE construct or statement without dependencies.
     CBLOCK is the "then" clause of the WHERE statement, where CBLOCK->EXPR
!    is the mask condition, and EBLOCK if non-NULL is the "then" clause of
!    the ELSWHERE.  As required by 7.5.3.2, the WHERE and ELSEWHERE are
!    executed with separate loops. It should be noted that the mask expression
!    is evaluated for both loops.  Currently both CBLOCK and EBLOCK are
!    restricted to single assignments.  */

  static tree
  gfc_trans_where_3 (gfc_code * cblock, gfc_code * eblock)
*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3561,3566 ****
--- 3564,3570 ----
    edst = eblock ? eblock->next->expr : NULL;
    esrc = eblock ? eblock->next->expr2 : NULL;

+   /*---------------First do the WHERE part.----------------*/
    gfc_start_block (&block);
    gfc_init_loopinfo (&loop);

*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3584,3619 ****
    gfc_add_ss_to_loop (&loop, tdss);
    gfc_add_ss_to_loop (&loop, tsss);

-   if (eblock)
-     {
-       /* Handle the else clause.  */
-       gfc_init_se (&edse, NULL);
-       gfc_init_se (&esse, NULL);
-       edss = gfc_walk_expr (edst);
-       esss = gfc_walk_expr (esrc);
-       if (esss == gfc_ss_terminator)
-  {
-    esss = gfc_get_ss ();
-    esss->next = gfc_ss_terminator;
-    esss->type = GFC_SS_SCALAR;
-    esss->expr = esrc;
-  }
-       gfc_add_ss_to_loop (&loop, edss);
-       gfc_add_ss_to_loop (&loop, esss);
-     }
-
    gfc_conv_ss_startstride (&loop);
    gfc_conv_loop_setup (&loop);

    gfc_mark_ss_chain_used (css, 1);
    gfc_mark_ss_chain_used (tdss, 1);
    gfc_mark_ss_chain_used (tsss, 1);
!   if (eblock)
!     {
!       gfc_mark_ss_chain_used (edss, 1);
!       gfc_mark_ss_chain_used (esss, 1);
!     }
!
    gfc_start_scalarized_body (&loop, &body);

    gfc_copy_loopinfo_to_se (&cse, &loop);
--- 3588,3600 ----
    gfc_add_ss_to_loop (&loop, tdss);
    gfc_add_ss_to_loop (&loop, tsss);

    gfc_conv_ss_startstride (&loop);
    gfc_conv_loop_setup (&loop);

    gfc_mark_ss_chain_used (css, 1);
    gfc_mark_ss_chain_used (tdss, 1);
    gfc_mark_ss_chain_used (tsss, 1);
!
    gfc_start_scalarized_body (&loop, &body);

    gfc_copy_loopinfo_to_se (&cse, &loop);
*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3622,3637 ****
    cse.ss = css;
    tdse.ss = tdss;
    tsse.ss = tsss;
-   if (eblock)
-     {
-       gfc_copy_loopinfo_to_se (&edse, &loop);
-       gfc_copy_loopinfo_to_se (&esse, &loop);
-       edse.ss = edss;
-       esse.ss = esss;
-     }

    gfc_conv_expr (&cse, cond);
!   gfc_add_block_to_block (&body, &cse.pre);
    cexpr = cse.expr;

    gfc_conv_expr (&tsse, tsrc);
--- 3603,3611 ----
    cse.ss = css;
    tdse.ss = tdss;
    tsse.ss = tsss;

    gfc_conv_expr (&cse, cond);
!   gfc_add_block_to_block (&block, &cse.pre);
    cexpr = cse.expr;

    gfc_conv_expr (&tsse, tsrc);
*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3643,3650 ****
--- 3617,3678 ----
    else
      gfc_conv_expr (&tdse, tdst);

+   /* Make the assignment on condition 'cond'.  */
+   tstmt = gfc_trans_scalar_assign (&tdse, &tsse, tdst->ts, false, false);
+   tmp = build3_v (COND_EXPR, cexpr, tstmt, build_empty_stmt ());
+   gfc_add_expr_to_block (&body, tmp);
+   gfc_add_block_to_block (&body, &cse.post);
+
+   gfc_trans_scalarizing_loops (&loop, &body);
+   gfc_add_block_to_block (&block, &loop.pre);
+   gfc_add_block_to_block (&block, &loop.post);
+   gfc_cleanup_loop (&loop);
+
+ /*---------------Now do the ELSEWHERE.--------------*/
    if (eblock)
      {
+       gfc_init_loopinfo (&loop);
+
+       /* Handle the condition.  */
+       gfc_init_se (&cse, NULL);
+       css = gfc_walk_expr (cond);
+       gfc_add_ss_to_loop (&loop, css);
+
+       /* Handle the then-clause.  */
+       gfc_init_se (&edse, NULL);
+       gfc_init_se (&esse, NULL);
+       edss = gfc_walk_expr (edst);
+       esss = gfc_walk_expr (esrc);
+       if (esss == gfc_ss_terminator)
+  {
+    esss = gfc_get_ss ();
+    esss->next = gfc_ss_terminator;
+    esss->type = GFC_SS_SCALAR;
+    esss->expr = esrc;
+  }
+       gfc_add_ss_to_loop (&loop, edss);
+       gfc_add_ss_to_loop (&loop, esss);
+
+       gfc_conv_ss_startstride (&loop);
+       gfc_conv_loop_setup (&loop);
+
+       gfc_mark_ss_chain_used (css, 1);
+       gfc_mark_ss_chain_used (edss, 1);
+       gfc_mark_ss_chain_used (esss, 1);
+
+       gfc_start_scalarized_body (&loop, &body);
+
+       gfc_copy_loopinfo_to_se (&cse, &loop);
+       gfc_copy_loopinfo_to_se (&edse, &loop);
+       gfc_copy_loopinfo_to_se (&esse, &loop);
+       cse.ss = css;
+       edse.ss = edss;
+       esse.ss = esss;
+
+       gfc_conv_expr (&cse, cond);
+       gfc_add_block_to_block (&body, &cse.pre);
+       cexpr = cse.expr;
+
        gfc_conv_expr (&esse, esrc);
        if (edss != gfc_ss_terminator && loop.temp_ss != NULL)
          {
*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3653,3672 ****
          }
        else
          gfc_conv_expr (&edse, edst);
      }

-   tstmt = gfc_trans_scalar_assign (&tdse, &tsse, tdst->ts, false, false);
-   estmt = eblock ? gfc_trans_scalar_assign (&edse, &esse, edst->ts, false, false)
-   : build_empty_stmt ();
-   tmp = build3_v (COND_EXPR, cexpr, tstmt, estmt);
-   gfc_add_expr_to_block (&body, tmp);
-   gfc_add_block_to_block (&body, &cse.post);
-
-   gfc_trans_scalarizing_loops (&loop, &body);
-   gfc_add_block_to_block (&block, &loop.pre);
-   gfc_add_block_to_block (&block, &loop.post);
-   gfc_cleanup_loop (&loop);
-
    return gfc_finish_block (&block);
  }

--- 3681,3700 ----
          }
        else
          gfc_conv_expr (&edse, edst);
+
+       /* Make the assignment on condition 'NOT.cond'.  */
+       estmt = gfc_trans_scalar_assign (&edse, &esse, edst->ts, false, false);
+       cexpr = fold_build1 (TRUTH_NOT_EXPR, boolean_type_node, cexpr);
+       tmp = build3_v (COND_EXPR, cexpr, estmt, build_empty_stmt ());
+       gfc_add_expr_to_block (&body, tmp);
+       gfc_add_block_to_block (&body, &cse.post);
+
+       gfc_trans_scalarizing_loops (&loop, &body);
+       gfc_add_block_to_block (&block, &loop.pre);
+       gfc_add_block_to_block (&block, &loop.post);
+       gfc_cleanup_loop (&loop);
      }

    return gfc_finish_block (&block);
  }

*************** gfc_trans_where (gfc_code * code)
*** 3698,3708 ****
   cblock->next->expr2, 0))
       return gfc_trans_where_3 (cblock, NULL);
   }
        else if (!eblock->expr
          && !eblock->block
          && eblock->next
          && eblock->next->op == EXEC_ASSIGN
!         && !eblock->next->next)
   {
            /* A simple "WHERE (cond) x1 = y1 ELSEWHERE x2 = y2 ENDWHERE"
        block is dependence free if cond is not dependent on writes
--- 3726,3739 ----
   cblock->next->expr2, 0))
       return gfc_trans_where_3 (cblock, NULL);
   }
+       /* Since gfc_trans_where_3 evaluates the condition expression
+   twice, do not use it if the condition is not a variable.  */
        else if (!eblock->expr
          && !eblock->block
          && eblock->next
          && eblock->next->op == EXEC_ASSIGN
!         && !eblock->next->next
!         && cblock->expr->expr_type == EXPR_VARIABLE)
   {
            /* A simple "WHERE (cond) x1 = y1 ELSEWHERE x2 = y2 ENDWHERE"
        block is dependence free if cond is not dependent on writes
Index: gcc/testsuite/gfortran.dg/where_1.f90
===================================================================
*** gcc/testsuite/gfortran.dg/where_1.f90 (revision 0)
--- gcc/testsuite/gfortran.dg/where_1.f90 (revision 0)
***************
*** 0 ****
--- 1,61 ----
+ ! { dg-do run }
+ ! { dg-options "-fdump-tree-original" }
+ ! Tests the fix for PR35759, in which the simple WHERE was logically
+ ! wrong.  7.5.3.2 requires that the WHERE and ELSEWHERE are execute in
+ ! separate loops, whereas gfortran was implementing them as a single
+ ! loop with an 'if' and 'else'.  Since the condition expression is
+ ! evaluated twice with the fix, the use of anything other than a
+ ! variable or parameter array for the condition will trigger the more
+ ! comprehensive implementation of WHERE.  This is checked by the
+ ! check of the declaration of temp.15 in the 'original' code.
+ !
+ ! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
+ !
+ program RG0023
+
+   integer UDA1L(6)
+   integer ::  UDA1R(6), expected(6) = (/2,0,5,0,3,0/)
+   LOGICAL LDA(5)
+   LOGICAL, parameter :: PDA(5) = (/ (i/2*2 .ne. I, i=1,5) /)
+
+   UDA1L(1:6) = 0
+   uda1r = (/1,2,3,4,5,6/)
+   lda = pda
+
+   WHERE (lda)                !          expected
+     UDA1L(1:5) = UDA1R(2:6)  !  uda1l = 2,0,4,0,6,0
+   ELSEWHERE
+     UDA1L(2:6) = UDA1R(6:2:-1) !uda1l = 2,0,5,0,3,0
+   ENDWHERE
+
+   if (any (uda1l /= expected)) call abort ()
+
+   uda1l = 0
+
+   WHERE (pda)                !          expected
+     UDA1L(1:5) = UDA1R(2:6)  !  uda1l = 2,0,4,0,6,0
+   ELSEWHERE
+     UDA1L(2:6) = UDA1R(6:2:-1) !uda1l = 2,0,5,0,3,0
+   ENDWHERE
+
+   if (any (uda1l /= expected)) call abort ()
+
+   uda1l = 0
+
+   WHERE (lfoo ())            !          expected
+     UDA1L(1:5) = UDA1R(2:6)  !  uda1l = 2,0,4,0,6,0
+   ELSEWHERE
+     UDA1L(2:6) = UDA1R(6:2:-1) !uda1l = 2,0,5,0,3,0
+   ENDWHERE
+
+   if (any (uda1l /= expected)) call abort ()
+
+ contains
+
+   function lfoo () result (ltmp)
+     logical ltmp(5)
+     ltmp = lda
+   end function lfoo
+ END
+ ! { dg-final { scan-tree-dump-times "temp.18\\\[5\\\]" 1 "original" } }
+ ! { dg-final { cleanup-tree-dump "original" } }

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133965 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-06 Tobias Schlter <tobi@gcc.gnu.org>
tobi [Sun, 6 Apr 2008 18:58:34 +0000 (18:58 +0000)]
2008-04-06  Tobias Schlter  <tobi@gcc.gnu.org>

PR fortran/35832
fortran/
* io.c (io_tag): Add field 'value'.  Split 'spec' field in
existing io_tags.
(match_etag, match_vtag, match_ltag): Split parsing in two steps
to give better error messages.
testsuite/
* gfortran.dg/io_constraints_2.f90: Adapt to new error message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133964 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-06 Richard Guenther <rguenther@suse.de>
rguenth [Sun, 6 Apr 2008 18:04:47 +0000 (18:04 +0000)]
2008-04-06  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/35842
* tree-ssa-address.c (fixed_address_object_p): Adjust to match
is_gimple_invariant_address.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133963 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-06 Tobias Burnus <burnus@net-b.de>
burnus [Sun, 6 Apr 2008 15:38:33 +0000 (15:38 +0000)]
2008-04-06  Tobias Burnus  <burnus@net-b.de>

        * io.c (check_io_constraints): Add constrains. ID= requires
        asynchronous= and asynchronous= must be init expression.

2008-04-06  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/f2003_io_1.f03: Make standard conform.
        * gfortran.dg/f2003_io_8.f03: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133962 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * decl.c (is_variable_size): Do not unconditionally return false
ebotcazou [Sun, 6 Apr 2008 13:38:41 +0000 (13:38 +0000)]
* decl.c (is_variable_size): Do not unconditionally return false
on non-strict alignment platforms.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133961 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agogcc/
fxcoudert [Sun, 6 Apr 2008 12:36:58 +0000 (12:36 +0000)]
gcc/
* gcc.c (default_compilers): Sync Fortran extensions list with
that in fortran/lang-specs.h.
* doc/invoke.texi: Likewise.
* dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
* dwarf2out.c (gen_compile_unit_die): Likewise.

gcc/fortran/
* f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133960 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
fxcoudert [Sun, 6 Apr 2008 12:18:56 +0000 (12:18 +0000)]
* parse.c (gfc_parse_file): Use gfc_dump_parse_tree.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133959 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * dump-parse-tree.c: Use fprintf, fputs and fputc instead of
fxcoudert [Sun, 6 Apr 2008 12:17:33 +0000 (12:17 +0000)]
* dump-parse-tree.c: Use fprintf, fputs and fputc instead of
gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
functions and make them static. Add new gfc_dump_parse_tree
function.
* gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
(gfc_status, gfc_status_char): Delete prototypes.
* error.c (gfc_status, gfc_status_char): Remove functions.
* scanner.c (gfc_new_file): Use printf instead of gfc_status.
* options.c (gfc_init_options): Rename verbose into dump_parse_tree.
(gfc_handle_module_path_options): Use gfc_fatal_error instead of
gfc_status and exit.
(gfc_handle_option): Rename verbose into dump_parse_tree.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133958 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * decl.c (rest_of_type_decl_compilation_no_defer): New local function
ebotcazou [Sun, 6 Apr 2008 10:22:23 +0000 (10:22 +0000)]
* decl.c (rest_of_type_decl_compilation_no_defer): New local function
used to process all the variants of the specified type.
(gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
(rest_of_type_decl_compilation): Likewise.
* utils.c (gnat_pushdecl): Propagate the name to all variants of type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133957 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
ebotcazou [Sun, 6 Apr 2008 09:57:49 +0000 (09:57 +0000)]
* gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133955 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR target/12329
uros [Sun, 6 Apr 2008 06:40:47 +0000 (06:40 +0000)]
    PR target/12329
        * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
        attribute is used for nested functions.

testsuite/ChangeLog:

        PR target/12329
        * gcc.target/i386/pr12329.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133954 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Sun, 6 Apr 2008 00:17:36 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133951 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * gnat.dg/pr35823.adb: Rename to size_attribute.adb.
ebotcazou [Sat, 5 Apr 2008 22:56:52 +0000 (22:56 +0000)]
* gnat.dg/pr35823.adb: Rename to size_attribute.adb.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133946 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sat, 5 Apr 2008 22:33:14 +0000 (22:33 +0000)]
2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/25829 28655
* gfortran.dg/f2003_io_1.f03: New test.
* gfortran.dg/f2003_io_2.f03: New test.
* gfortran.dg/f2003_io_3.f03: New test.
* gfortran.dg/f2003_io_4.f03: New test.
* gfortran.dg/f2003_io_5.f03: New test.
* gfortran.dg/f2003_io_6.f03: New test.
* gfortran.dg/f2003_io_7.f03: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133945 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sat, 5 Apr 2008 22:23:27 +0000 (22:23 +0000)]
2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR fortran/25829 28655
* dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
* gfortran.h (gfc_statement): Add ST_WAIT enumerator.
(gfc_open): Add pointers for decimal, encoding, round, sign,
asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
encoding, pending, round, sign, size, id.
(gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
asynchronous, blank, decimal, delim, pad, round, sign.
(gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
* trans-stmt.h (gfc_trans_wait): New function prototype.
* trans.c (gfc_trans_code): Add case for EXEC_WAIT.
* io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
(gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
tags. (gfc_resolve_open): Remove comment around check for allowed
values and ASYNCHRONOUS, update it.  Likewise for DECIMAL, ENCODING,
ROUND, and SIGN. (match_dt_element): Add matching for new tags.
(gfc_free_wait): New function. (gfc_resolve_wait): New function.
(match_wait_element): New function. (gfc_match_wait): New function.
* resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
(resolve_code): Add case for EXEC_WAIT.
* st.c (gfc_free_statement): Add case for EXEC_WAIT.
* trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
(gfc_build_io_library_fndecls): Add function declaration for st_wait.
(gfc_trans_open): Add mask bits for new I/O tags.
(gfc_trans_inquire): Add mask bits for new I/O tags.
(gfc_trans_wait): New translation function.
(build_dt): Add mask bits for new I/O tags.
* match.c (gfc_match_if) Add matcher for "wait".
* match.h (gfc_match_wait): Prototype for new function.
* ioparm.def: Add new I/O parameter definitions.
* parse.c (decode_statement): Add match for "wait" statement.
(next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133944 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sat, 5 Apr 2008 22:18:03 +0000 (22:18 +0000)]
2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/25829 28655
* gfortran.map: Add new symbol, _gfortran_st_wait.
* libgfortran.h (st_paramter_common): Add new I/O parameters.
* open.c (st_option decimal_opt[], st_option encoding_opt[],
st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
parameter option arrays. (edit_modes): Add checks for new parameters.
(new_unit): Likewise. (st_open): Likewise.
* list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
(eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
(parse_real): Handle decimal comma. (read_real): Handle decimal comma.
* read.c (read_a): Use decimal status flag to allow comma in place of a
decimal point. (read_f): Allow comma as acceptable character in float.
According to decimal flag, substitute a period for a comma.
(read_x): If decimal status flag is comma, disable the read_comma flag,
not allowing comma as a delimiter, an extension otherwise.
* io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
unit_async): New enumerators. Add all new I/O parameters.
* unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
(move_pos_offset, fd_alloc_w_at): Fix some whitespace.
(fd_sfree): Use new enumerator. (fd_read): Likewise.
(fd_write): Likewise. (fd_close): Fix whitespace.
(fd_open): Use new enumertors. (tempfile, regular_file,
open_external): Fix whitespace. (output_stream, error_stream): Set
method. (stream_offset): Fix whitespace.
* transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
based on new decimal_status flag. (data_transfer_init): Initialize new
parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
* format.c: (format_lex): Add format specifiers DP, DC, and D.
(parse_format_list): Parse the new specifiers.
* write.c (write_decimal): Use new sign enumerators to set the sign.
(write_complex): Handle decimal comma and semi-colon separator.
(nml_write_obj): Likewise.
* write_float.def: Revise sign enumerators. (calculate_sign): Use new
sign enumerators. (output_float): Likewise. Use new decimal_status flag
to set the decimal character to a point or a comma.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133943 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-05 Richard Guenther <rguenther@suse.de>
rguenth [Sat, 5 Apr 2008 18:04:07 +0000 (18:04 +0000)]
2008-04-05  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/35833
* gcc.dg/torture/pr35833.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133941 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
hubicka [Sat, 5 Apr 2008 12:25:32 +0000 (12:25 +0000)]
* emit-rtl.c (init_emit): xcalloc regno_pointer_align.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133933 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * tree-dump.c (dump_enable_all): Remove prototype; do not accept
hubicka [Sat, 5 Apr 2008 05:50:19 +0000 (05:50 +0000)]
* tree-dump.c (dump_enable_all): Remove prototype; do not accept
letter argument.
(dump_files): Update.
(enable_rtl_dump_file): Do not accept letter argument.
* tree-pass.h (dump_file_info): Remove letter argument.
* toplev.c (decode_d_option): Update -da handling.
* toplev.h (enable_rtl_dump_file): Update prototype.
* passes.c (register_one_dump_file): Do not accept IPA argument; work
it out based on pass type.
(register_dump_files_1): Likewise.
(init_optimization_passes): Update register_one_dump_file calls.
(execute_one_pass): Sanity check that IPA passes are called at IPA level
and RTL passes at RTL level.
(execute_pass_list): IPA pass can not be after or subpass of
GIMPLE/RTL pass.
(execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
disallov RTL subpasses of IPA subpasses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133930 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * tree-cfg.c (need_fake_edge_p): Return false for calls to
bje [Sat, 5 Apr 2008 03:50:18 +0000 (03:50 +0000)]
* tree-cfg.c (need_fake_edge_p): Return false for calls to
builtins that return exactly once and do not throw. Cache call to
call_expr_flags.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133929 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Sat, 5 Apr 2008 00:17:32 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133924 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoPR rtl-optimization/34916
hutchinsonandy [Fri, 4 Apr 2008 23:45:46 +0000 (23:45 +0000)]
PR rtl-optimization/34916
PR middle-end/35519
* combine.c (create_log_links): Do not create duplicate LOG_LINKS
between instruction pairs

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133920 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * doc/invoke.texi: Document -mbitops for SH.
kkojima [Fri, 4 Apr 2008 23:36:19 +0000 (23:36 +0000)]
* doc/invoke.texi: Document -mbitops for SH.
* config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
* config/sh/predicates.md (bitwise_memory_operand): New predicate.
* config/sh/sh.c (print_operand): Add %t operand code.
* config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
* config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
(extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
(extendqihi2): Likewise.
(movqi_i): Likewise.
(insv): Use bset, bclr and bst instructions for SH2A if possible.
(extv): Use bld instruction for SH2A if possible.
(extzv): Likewise.
(bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
(bset.b, bclr.b): Define peepholes.
* config/sh/sh.opt (mbitops): New option.

* gcc.target/sh/sh2a-band.c: New test.
* gcc.target/sh/sh2a-bclrmem.c: New test.
* gcc.target/sh/sh2a-bld.c: New test.
* gcc.target/sh/sh2a-bor.c: New test.
* gcc.target/sh/sh2a-bsetmem.c: New test.
* gcc.target/sh/sh2a-bxor.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133919 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago* MAINTAINERS (Write After Approval): Add myself.
hutchinsonandy [Fri, 4 Apr 2008 23:16:12 +0000 (23:16 +0000)]
* MAINTAINERS (Write After Approval): Add myself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133918 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * g++.dg/other/anon5.C: Don't depend on line number for error message.
janis [Fri, 4 Apr 2008 21:03:43 +0000 (21:03 +0000)]
* g++.dg/other/anon5.C: Don't depend on line number for error message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133913 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * gcc.dg/torture/builtin-modf-1.c: Use special options for
janis [Fri, 4 Apr 2008 21:02:55 +0000 (21:02 +0000)]
* gcc.dg/torture/builtin-modf-1.c: Use special options for
powerpc*-*-linux*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133912 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * gcc.dg/var-expand3.c: Skip for powerpc-linux if not on AltiVec HW.
janis [Fri, 4 Apr 2008 21:01:20 +0000 (21:01 +0000)]
* gcc.dg/var-expand3.c: Skip for powerpc-linux if not on AltiVec HW.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133911 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * gcc.dg/pr34856.c: Use -maltivec on powerpc linux.
janis [Fri, 4 Apr 2008 20:59:33 +0000 (20:59 +0000)]
* gcc.dg/pr34856.c: Use -maltivec on powerpc linux.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133910 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agogcc/
janis [Fri, 4 Apr 2008 20:18:52 +0000 (20:18 +0000)]
gcc/
PR target/35620
* config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
and view convert expression.

testsuite/
PR target/35620
* gcc.dg/dfp/pr35620.c: New test.
* gcc.dg/dfp/func-pointer.c: New test.
* gcc.dg/dfp/func-deref.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133909 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR target/35364
jakub [Fri, 4 Apr 2008 17:48:45 +0000 (17:48 +0000)]
PR target/35364
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.

* g++.dg/gomp/pr35364.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133905 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoChange UNSPEC_PCLMULQDQ to UNSPEC_PCLMUL.
hjl [Fri, 4 Apr 2008 17:22:48 +0000 (17:22 +0000)]
Change UNSPEC_PCLMULQDQ to UNSPEC_PCLMUL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133903 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agogcc/
hjl [Fri, 4 Apr 2008 16:10:52 +0000 (16:10 +0000)]
gcc/

2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>

* config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.

* config/i386/cpuid.h (bit_AES): New.
(bit_PCLMUL): Likewise.

* config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
(override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
SSE2 if AES or PCLMUL is enabled.
(ix86_builtins): Add IX86_BUILTIN_AESENC128,
IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
(bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
(bdesc_2arg): Add IX86_BUILTIN_AESENC128,
IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
(bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
(ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
__builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
__builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
__builtin_ia32_aeskeygenassist128 and
__builtin_ia32_pclmulqdq128.
* config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
(ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.

* config/i386/i386.h (TARGET_AES): New.
(TARGET_PCLMUL): Likewise.
(TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.

* config/i386/i386.md (UNSPEC_AESENC): New.
(UNSPEC_AESENCLAST): Likewise.
(UNSPEC_AESDEC): Likewise.
(UNSPEC_AESDECLAST): Likewise.
(UNSPEC_AESIMC): Likewise.
(UNSPEC_AESKEYGENASSIST): Likewise.
(UNSPEC_PCLMULQDQ): Likewise.

* config/i386/i386.opt (maes): New.
(mpclmul): Likewise.

* config/i386/sse.md (aesenc): New pattern.
(aesenclast): Likewise.
(aesdec): Likewise.
(aesdeclast): Likewise.
(aesimc): Likewise.
(aeskeygenassist): Likewise.
(pclmulqdq): Likewise.

* config/i386/wmmintrin.h: New.

* doc/extend.texi: Document AES and PCLMUL built-in function.

* doc/invoke.texi: Document -maes and -mpclmul.

gcc/testsuite/

2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>

* g++.dg/other/i386-2.C: Include <wmmintrin.h>.
* g++.dg/other/i386-3.C: Likewise.
* gcc.target/i386/sse-13.c: Likewise.
* gcc.target/i386/sse-14.c: Likewise.

* gcc.target/i386/aes-check.h: New.
* gcc.target/i386/aesdec.c: Likewise.
* gcc.target/i386/aesdeclast.c: Likewise.
* gcc.target/i386/aesenc.c: Likewise.
* gcc.target/i386/aesenclast.c: Likewise.
* gcc.target/i386/aesimc.c: Likewise.
* gcc.target/i386/aeskeygenassist.c: Likewise.
* gcc.target/i386/pclmulqdq.c: Likewise.
* gcc.target/i386/pclmul-check.h: Likewise.

* gcc.target/i386/i386.exp (check_effective_target_aes): New.
(check_effective_target_pclmul): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133902 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-03 Paolo Bonzini <bonzini@gnu.org>
bonzini [Fri, 4 Apr 2008 14:57:18 +0000 (14:57 +0000)]
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

* function.c (free_after_parsing): Replace with
cxx_push_function_context from C++ front-end.
(allocate_struct_function): Don't call langhook.
* langhooks.h (struct lang_hooks_for_functions): Delete.
(struct lang_hooks): Add back missing_noreturn_ok_p here, delete
member "function".
* langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
(LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
remove LANG_HOOKS_FUNCTION_INITIALIZER.
* tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.

* c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.

cp:
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

* decl.c (cxx_push_function_context): Delete.
(cxx_pop_function_context): Delete.
(start_preparsed_function): Merge cxx_push_function_context (!f->decl
code only).
* cp-objcp-common.h (LANG_HOOKS_FUNCTION_INIT,
LANG_HOOKS_FUNCTION_FINAL): Delete.
(LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): Rename to
LANG_HOOKS_MISSING_NORETURN_OK_P.
* cp-tree.h (cxx_push_function_context, cxx_pop_function_context):
Delete prototype.
* semantics.c (current_stmt_tree): Fix comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133900 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c/35440
jakub [Fri, 4 Apr 2008 13:07:27 +0000 (13:07 +0000)]
PR c/35440
* c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
for all types.

* gcc.dg/pr35440.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133897 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoFix typo
nickc [Fri, 4 Apr 2008 11:45:46 +0000 (11:45 +0000)]
Fix typo

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133895 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR binutils/4334
nickc [Fri, 4 Apr 2008 11:39:20 +0000 (11:39 +0000)]
    PR binutils/4334
        * acx.m4 (ACX_CHECK_CYGWIN_CAT_WORKS): New macro to check that
        cygwin builds are not running in textmode.

        * configure.ac: Run ACX_XHEXK_CYGWIN_CAT_WORKS for cygwin hosted
        builds.
        * configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133894 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-04 Richard Guenther <rguenther@suse.de>
rguenth [Fri, 4 Apr 2008 11:29:11 +0000 (11:29 +0000)]
2008-04-04  Richard Guenther  <rguenther@suse.de>

PR middle-end/35823
* fold-const.c (optimize_minmax_comparison): Use the correct
type for the constant in the simplified comparison.

* gnat.dg/pr35823.adb: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133893 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoPR other/35151
nickc [Fri, 4 Apr 2008 11:16:10 +0000 (11:16 +0000)]
PR other/35151
        * configure.ac: Combine rules for mingw32 and mingw64.
        * configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133892 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
uros [Fri, 4 Apr 2008 07:39:12 +0000 (07:39 +0000)]
* config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
Pass L2 size as "--param l2-cache-size" to the compiler.
(decode_l2_cache): New function to decode L2 cache parameters using
0x8000006 extended cpuid function.
(detect_caches_amd): Determine parameters of L2 cache using
decode_l2_caches function.
(decode_caches_intel): Decode L2 cache parameters.
(detect_caches_intel): Determine L2 cache parameters using
decode_caches_intel and decode_l2_caches functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133890 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
bwilson [Fri, 4 Apr 2008 03:55:15 +0000 (03:55 +0000)]
    * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
        secondary input reload for subword loads from the constant pool.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133889 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR target/35713
janis [Fri, 4 Apr 2008 00:20:48 +0000 (00:20 +0000)]
PR target/35713
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
  constants of the appropriate size for runtime calculations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133887 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Fri, 4 Apr 2008 00:17:42 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133885 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-03 Janis Johnson <janis187@us.ibm.com>
janis [Thu, 3 Apr 2008 23:49:35 +0000 (23:49 +0000)]
2008-04-03  Janis Johnson  <janis187@us.ibm.com>

gcc/
PR c/35712
* dfp.c (decimal_from_decnumber): Retain trailing zeroes for
  decimal-float literal constant zero.

testsuite/
PR c/35712
* gcc.dg/dfp/constants-zero.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133881 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c/35738
jakub [Thu, 3 Apr 2008 21:03:54 +0000 (21:03 +0000)]
PR c/35738
* c-parser.c (c_parser_omp_atomic): Call
default_function_array_conversion on the RHS.

* gcc.dg/gomp/pr35738.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133876 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR middle-end/35818
jakub [Thu, 3 Apr 2008 21:02:44 +0000 (21:02 +0000)]
PR middle-end/35818
* omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
call is_variable_sized if decl has incomplete type.

* gcc.dg/gomp/pr35818.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133875 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR fortran/35786
jakub [Thu, 3 Apr 2008 21:01:26 +0000 (21:01 +0000)]
PR fortran/35786
* openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
isn't a variable.

* gfortran.dg/gomp/pr35786-1.f90: New test.
* gfortran.dg/gomp/pr35786-2.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133874 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
hjl [Thu, 3 Apr 2008 20:02:54 +0000 (20:02 +0000)]
2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386-protos.h (ix86_aligned_p): Removed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133873 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
nemet [Thu, 3 Apr 2008 19:31:28 +0000 (19:31 +0000)]
* config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
iterators.
(u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and
leu.
(sgt<u>): Merge sgt and sgtu into new expander.
(sgt, sgtu): Remove expanders.
(*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new
pattern.
(*sgt_<mode>, *sgtu_<mode>): Remove patterns.
(*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
*sgtu_<mode>_mips16 into new pattern.
(*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
(sge<u>): Merge sge and sgeu into new expander.
(sge, sgeu): Remove expanders.
(*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
new pattern.
(*sge_<mode>, second *sge_<mode>): Remove patterns.
(slt<u>): Merge slt and sltu into new expander.
(slt, sltu): Remove expanders.
(*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new
pattern.
(*slt_<mode>, *sltu_<mode>): Remove patterns.
(*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
*sltu_<mode>_mips16 into new pattern.
(*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
(sle<u>): Merge sle and sleu into new expander.
(sle, sleu): Remove expanders.
(*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new
pattern.
(*sle_<mode>, *sleu_<mode>): Remove patterns.
(*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
*sleu_<mode>_mips16 into new pattern.
(*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.

testsuite/

* gcc.target/mips/scc-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133872 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-03 Jan Hubicka <jh@suse.cz>
hjl [Thu, 3 Apr 2008 12:49:27 +0000 (12:49 +0000)]
2008-04-03  Jan Hubicka  <jh@suse.cz>

PR tree-optimization/35795
* alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
* sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* ia64/ia64.c (ia64_output_mi_thunk): Likewise.
* m68k/m68k.c (m68k_output_mi_thunk): Likewise.
* score/score3.c (score3_output_mi_thunk): Likewise.
* score/score7.c (score7_output_mi_thunk): Likewise.
* mips/mips.c (mips_output_mi_thunk): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133868 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-03 Richard Guenther <rguenther@suse.de>
rguenth [Thu, 3 Apr 2008 09:33:27 +0000 (09:33 +0000)]
2008-04-03  Richard Guenther  <rguenther@suse.de>

* tree-vrp.c (extract_range_from_unary_expr): Handle all
conversions.  Simplify code.

* gcc.dg/tree-ssa/vrp43.c: New testcase.
* gcc.dg/tree-ssa/vrp44.c: Likewise.
* gcc.dg/tree-ssa/vrp45.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133866 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
kkojima [Thu, 3 Apr 2008 09:07:17 +0000 (09:07 +0000)]
* config/sh/sh.c (sh_output_mi_thunk): Free cfun.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133865 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c++/35741
jakub [Thu, 3 Apr 2008 07:43:46 +0000 (07:43 +0000)]
PR c++/35741
* semantics.c (finish_offsetof): Undo effect of convert_from_reference
before calling fold_offsetof.

* g++.dg/other/offsetof5.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133863 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agogcc/
rwild [Thu, 3 Apr 2008 06:12:27 +0000 (06:12 +0000)]
gcc/
2008-04-03  Tom Tromey  <tromey@redhat.com>
    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

* config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
* config/bfin/t-bfin-linux (generated_files): Add
linux-sysroot-suffix.h.
* doc/install.texi (Prerequisites): Require make 3.80.
* doc/sourcebuild.texi (Front End Directory): Document new
variable.
* Makefile.in (generated_files): New variable.
(ALL_HOST_OBJS): New variable.
($(ALL_HOST_OBJS)): New target.

gcc/java/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (java_OBJS): New variable.

gcc/objc/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (objc_OBJS): New variable.

gcc/objcp/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (obj-c++_OBJS): New variable.

gcc/cp/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (c++_OBJS): New variable.

gcc/fortran/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (fortran_OBJS): New variable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133862 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2007-03-09 Paolo Bonzini <bonzini@gnu.org>
bonzini [Thu, 3 Apr 2008 05:41:57 +0000 (05:41 +0000)]
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
(remap_block): Call id->transform_lang_insert_block instead
of langhook.
(optimize_inline_calls, unsave_expr_now, tree_function_versioning):
Set id.transform_lang_insert_block to NULL.
(clone_body): Move to cp/optimize.c
* tree-inline.h (struct copy_body_data): Change
transform_lang_insert_block to function pointer.
(copy_generic_body, copy_decl_no_change): Export.
* langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
* langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
(LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.

* c-tree.h (insert_block): Kill.
* c-decl.c (insert_block): Kill.

cp:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* optimize.c (clone_body): New, from tree-inline.c.

ada:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* gigi.h (insert_block): Kill.
* utils.c (insert_block): Kill.

java:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* java-tree.h (insert_block): Kill.
* decl.c (insert_block): Kill.

fortran:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* f95-lang.c (insert_block): Kill.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133861 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-03 Paolo Bonzini <bonzini@gnu.org>
bonzini [Thu, 3 Apr 2008 05:38:32 +0000 (05:38 +0000)]
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

* c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
* c-tree.h (c_push_function_context, c_pop_function_context): Remove
argument.
* c-decl.c (c_push_function_context, c_pop_function_context): Remove
argument, call {push,pop}_function_context from here.
* c-parser.c: Use c_{push,pop}_function_context.

* function.c (push_function_context_to): Move meat ...
(push_function_context): ... here.  Simplify.
* function.c (pop_function_context_from): Move meat ...
(pop_function_context): ... here.  Simplify.
* langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
leave_nested).
* langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
        LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
(LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
* tree.h (push_function_context_to, pop_function_context_from): Remove.

cp:
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

* method.c (synthesize_method): Use {push,pop}_function_context.
* name-lookup.c (push_to_top_level): Likewise.
* parser.c (cp_parser_late_parsing_for_member): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133860 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-03 Paolo Bonzini <bonzini@gnu.org>
bonzini [Thu, 3 Apr 2008 05:36:26 +0000 (05:36 +0000)]
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

PR rtl-optimization/35281
* gcc.target/i386/pr35281.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133859 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * expmed.c (extract_force_align_mem_bit_field): Remove.
bje [Thu, 3 Apr 2008 05:17:11 +0000 (05:17 +0000)]
* expmed.c (extract_force_align_mem_bit_field): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133858 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR middle-end/35800
hp [Thu, 3 Apr 2008 02:09:20 +0000 (02:09 +0000)]
PR middle-end/35800
* expr.h (try_casesi): Adjust prototype.
* expr.c (try_casesi): Take fallback label as extra parameter.
Use that for gen_casesi if default_label is NULL.
* stmt.c (expand_case): Pass fallback label to try_casesi,
make sure to fill gaps with a fallback label if default_label
is not present.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133857 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR middle-end/35800
hp [Thu, 3 Apr 2008 02:08:13 +0000 (02:08 +0000)]
PR middle-end/35800
* gcc.c-torture/execute/pr35800.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133856 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
dje [Thu, 3 Apr 2008 00:33:05 +0000 (00:33 +0000)]
2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>

        PR target/35801
        * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133855 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Thu, 3 Apr 2008 00:17:34 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133853 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * expmed.c (extract_split_bit_field): Remove if (0) code.
bje [Wed, 2 Apr 2008 19:56:03 +0000 (19:56 +0000)]
* expmed.c (extract_split_bit_field): Remove if (0) code.
* tree-ssa-structalias.c (do_sd_constraint): Likewise.
(do_ds_constraint): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133848 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agogcc:
jsm28 [Wed, 2 Apr 2008 19:42:53 +0000 (19:42 +0000)]
gcc:
* doc/cppopts.texi (-dU): Document.
* c-common.h (flag_dump_macros): Update comment.
* c-opts.c (handle_OPT_d): Handle -dU.
* c-ppoutput.c (macro_queue, define_queue, undef_queue,
dump_queued_macros, cb_used_define, cb_used_undef): New.
(init_pp_output): Handle -dU.
(cb_line_change): Call dump_queued_macros.
* toplev.c (decode_d_option): Accept -dU as preprocessor option.

gcc/testsuite:
* gcc.dg/cpp/cmdlne-dU-1.c, gcc.dg/cpp/cmdlne-dU-2.c,
gcc.dg/cpp/cmdlne-dU-3.c, gcc.dg/cpp/cmdlne-dU-4.c,
gcc.dg/cpp/cmdlne-dU-5.c, gcc.dg/cpp/cmdlne-dU-6.c,
gcc.dg/cpp/cmdlne-dU-7.c, gcc.dg/cpp/cmdlne-dU-8.c,
gcc.dg/cpp/cmdlne-dU-9.c, gcc.dg/cpp/cmdlne-dU-10.c,
gcc.dg/cpp/cmdlne-dU-11.c, gcc.dg/cpp/cmdlne-dU-12.c,
gcc.dg/cpp/cmdlne-dU-13.c, gcc.dg/cpp/cmdlne-dU-14.c,
gcc.dg/cpp/cmdlne-dU-15.c, gcc.dg/cpp/cmdlne-dU-16.c,
gcc.dg/cpp/cmdlne-dU-17.c, gcc.dg/cpp/cmdlne-dU-18.c,
gcc.dg/cpp/cmdlne-dU-19.c, gcc.dg/cpp/cmdlne-dU-20.c,
gcc.dg/cpp/cmdlne-dU-21.c, gcc.dg/cpp/cmdlne-dU-22.c: New tests.

libcpp:
* include/cpplib.h (struct cpp_callbacks): Add used_define,
used_undef and before_define.
(NODE_USED): Define.
* directives.c (do_define, do_undef, undefine_macros, do_ifdef,
do_ifndef, cpp_pop_definition): Handle new flag and use new
callbacks.
* expr.c (parse_defined): Handle new flag and use new callbacks.
* macro.c (enter_macro_context, _cpp_free_definition): Handle new
flag and use new callbacks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133847 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/avr/predicates.md (io_address_operand): New predicate.
aesok [Wed, 2 Apr 2008 19:21:01 +0000 (19:21 +0000)]
* config/avr/predicates.md (io_address_operand): New predicate.
* config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
* config/avr/avr.c (avr_io_address_p): Remove function.
(out_movqi_r_mr): Use 'io_address_operand' predicate instead of
'avr_io_address_p' function.
(out_movhi_r_mr): (Ditto.).
(out_movqi_mr_r): (Ditto.).
(out_movhi_mr_r): (Ditto.).
(avr_address_cost): (Ditto.).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133846 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
uros [Wed, 2 Apr 2008 19:07:27 +0000 (19:07 +0000)]
    * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
        Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
        in 32bit mode when XMM registers are available to avoid store
        forwarding stalls.
        (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
        corresponding post-reload splitters.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133845 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoPR bootstrap/35216
pogma [Wed, 2 Apr 2008 17:36:41 +0000 (17:36 +0000)]
PR bootstrap/35216
* scripts/makemake.tcl: Replace org/omg build with build of all its subpackages.
* sources.am: Regenerate.
* Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133842 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
hjl [Wed, 2 Apr 2008 14:32:02 +0000 (14:32 +0000)]
2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
__builtin_ia32_roundss.
(ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
__builtin_ia32_shufpd, __builtin_ia32_roundsd and
__builtin_ia32_roundss.
(ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
IX86_BUILTIN_SHUFPD here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133838 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
hjl [Wed, 2 Apr 2008 13:53:38 +0000 (13:53 +0000)]
2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.md (plogic): New.
(plogicprefix): Likewise.

* config/i386/mmx.md (mmx_<code><mode>3): New.
(mmx_and<mode>3): Removed.
(mmx_ior<mode>3): Likewise.
(mmx_xor<mode>3): Likewise.

* config/i386/sse.md (<code><mode>3): New.
(*<code><mode>3): Likewise.
(*<code><mode>3): Likewise.
(<code><mode>3): Likewise.
(*sse_<code><mode>3): Likewise.
(*sse2_<code><mode>3): Likewise.
(<code>tf3): Likewise.
(*<code>tf3): Likewise.
(and<mode>3): Likewise.
(*and<mode>3): Likewise.
(ior<mode>3): Removed.
(*ior<mode>3): Likewise.
(xor<mode>3): Likewise.
(*xor<mode>3): Likewise.
(*and<mode>3): Likewise.
(*ior<mode>3): Likewise.
(*xor<mode>3): Likewise.
(and<mode>3): Likewise.
(*sse_and<mode>3): Likewise.
(*sse2_and<mode>3): Likewise.
(andtf3): Likewise.
(*andtf3): Likewise.
(ior<mode>3): Likewise.
(*sse_ior<mode>3): Likewise.
(*sse2_ior<mode>3): Likewise.
(iortf3): Likewise.
(*iortf3): Likewise.
(xor<mode>3): Likewise.
(*sse_xor<mode>3): Likewise.
(*sse2_xor<mode>3): Likewise.
(xortf3): Likewise.
(*xortf3): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133837 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 2 Apr 2008 12:54:08 +0000 (12:54 +0000)]
2008-04-02  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/14495
PR tree-optimization/34793
* tree-vrp.c (struct switch_update): New structure.
(to_remove_edges, to_update_switch_stmts): New VECs.
(simplify_switch_using_ranges): New function.  Remove not taken
case labels and edges.
(simplify_stmt_using_ranges): Call it.
(identify_jump_threads): Mark edges we have queued for removal
so we don't thread them.
(execute_vrp): Remove edges queued for removal, update SWITCH_STMT
case label vector.
* tree-cfg.c (group_case_labels): Deal with missing default label.
(tree_verify_flow_info): Allow missing default label.
* stmt.c (emit_case_bit_tests): Deal with NULL default_label.
(emit_case_nodes): Likewise.
(expand_case): Do not rely on the default label to be present.
* expr.c (try_casesi): Deal with NULL default_label.
(do_tablejump): Likewise.

* gcc.dg/tree-ssa/vrp41.c: New testcase.
* gcc.dg/tree-ssa/vrp42.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133835 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 2 Apr 2008 12:51:37 +0000 (12:51 +0000)]
2008-04-02  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/14495
* tree-vrp.c (vrp_visit_cond_stmt): Do not handle
SWITCH_EXPR here ...
(vrp_visit_switch_stmt): ... but here (new function).
(find_case_label_index): New helper function.
(vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.

* gcc.dg/tree-ssa/vrp40.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133834 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Paolo Bonzini <bonzini@gnu.org>
bonzini [Wed, 2 Apr 2008 12:16:54 +0000 (12:16 +0000)]
2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

* fwprop.c: Fix ISO-C99ism.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133833 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Paolo Bonzini <bonzini@gnu.org>
bonzini [Wed, 2 Apr 2008 10:07:58 +0000 (10:07 +0000)]
2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

PR bootstrap/35752
* Makefile.in (objdir): Set it here.
* configure.ac: Not here.  Find dynamic linker characteristics.
* exec-tool.in: Use them.
* aclocal.m4: Regenerate.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133832 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
ebotcazou [Wed, 2 Apr 2008 10:06:57 +0000 (10:06 +0000)]
* decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
type has self-referential size, get the size from the initializing
expression directly if it is also a constant whose nominal type
has self-referential size.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133831 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Paolo Bonzini <bonzini@gnu.org>
bonzini [Wed, 2 Apr 2008 10:01:43 +0000 (10:01 +0000)]
2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

* expr.c (expand_var): Delete it.
* expr.h (expand_var): Delete prototype.
* function.c (expand_function_start): Use expand_decl instead.
* cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
langhook.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133830 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
bonzini [Wed, 2 Apr 2008 09:56:17 +0000 (09:56 +0000)]
2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>

PR rtl-optimization/35542
* fwprop.c (forward_propagate_and_simplify): Replace
loc_reg_mentioned_in_p with reg_mentioned_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133829 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Paolo Bonzini <bonzini@gnu.org>
bonzini [Wed, 2 Apr 2008 09:53:34 +0000 (09:53 +0000)]
2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

* fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
(propagate_rtx_1): Handle PR_HANDLE_MEM.
(propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
(varying_mem_p): Move above propagate_rtx.
(all_uses_available_at): Do not check MEMs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133828 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Rafael Espindola <espindola@google.com>
espindola [Wed, 2 Apr 2008 08:44:39 +0000 (08:44 +0000)]
2008-04-02  Rafael Espindola  <espindola@google.com>

* tree-vrp.c (extract_code_and_val_from_cond): Remove.
(register_edge_assert_for_2): Split the cond argument.
(register_edge_assert_for_1): Adjust for the change in
register_edge_assert_for_2.
(register_edge_assert_for): Split the cond argument.
(find_switch_asserts): Adjust for the change in
register_edge_assert_for.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133827 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Kai Tietz <kai.tietz@onvision.com>
ktietz [Wed, 2 Apr 2008 08:29:10 +0000 (08:29 +0000)]
2008-04-02  Kai Tietz  <kai.tietz@onvision.com>

* MAINTAINERS (Write After Approval): Add myself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133826 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2008-04-02 Kai Tietz <kai.tietz@onevision.com>
ktietz [Wed, 2 Apr 2008 07:57:02 +0000 (07:57 +0000)]
2008-04-02  Kai Tietz  <kai.tietz@onevision.com>

* gcc/config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
offsets for 64-bit mingw.
* gcc/config/i386/i386.c (ix86_pass_by_reference): Correct calling
abi for x86_64-pc-mingw.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133825 138bc75d-0d04-0410-961f-82ee72b054a4