[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-05-13 Thread amylaar at gcc dot gnu dot org

--- Additional Comments From amylaar at gcc dot gnu dot org  2005-05-13 
13:50 ---
An updated patch is here:
http://gcc.gnu.org/ml/gcc-patches/2005-05/msg01238.html

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20714


[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-05-13 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-05-13 
18:23 ---
Subject: Bug 20714

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-05-13 18:23:17

Modified files:
gcc: optabs.c ChangeLog 

Log message:
PR middle-end/20714:
* optabs.c (no_conflict_data): New struct.
(no_conflict_move_test): New function.
(emit_no_conflict_block): Use it.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.c.diff?cvsroot=gccr1=1.278r2=1.279
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.8768r2=2.8769



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20714


[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-05-13 Thread amylaar at gcc dot gnu dot org

--- Additional Comments From amylaar at gcc dot gnu dot org  2005-05-13 
18:30 ---
Fixed on mainline.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20714


[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-05-13 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

   Target Milestone|--- |4.1.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20714


[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-04-08 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-08 
17:42 ---
Subject: Bug 20714

CVSROOT:/cvs/gcc
Module name:gcc
Branch: sh-elf-4_1-branch
Changes by: [EMAIL PROTECTED]   2005-04-08 17:41:35

Modified files:
gcc/config/sh  : crt1.asm elf.h lib1funcs.asm libgcc-excl.ver 
 linux.h sh-protos.h sh.c sh.h sh.md shmedia.md 
 sshmedia.h t-sh64 ushmedia.h 
Added files:
gcc/config/sh  : divtab.c newlib.h superh.h superh64.h t-superh 

Log message:
2005-04-06  Jorn Rennecke [EMAIL PROTECTED]

PR middle-end/20793:
* integrate.c (allocate_initial_values): Update register liveness
information.

PR rtl-optimization/20769:
* bt-load.c (compute_defs_uses_and_gen): Check for the blockage
pattern emitted by expand_nl_goto_receiver.

PR rtl-optimization/20756:
* basic-block.h (PROP_DEAD_INSN): Define.
* flow.c (propagate_one_insn): Set during mark_set_regs call
for a dead insn.

PR middle-end/20714
* optabs.c (no_conflict_data): New struct.
(no_conflict_move_test): New function.
(emit_no_conflict_block): Use it.

Workaround for PR rtl-optimization/20413:
* sh.md (blt_media_i32, blt_media_i32+1): New splitters.

Merge of SuperH / STM SH specific patches, including fix for
PR target/20695:
* config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
when building with libgloss.
(sh*elf): Implement --without-fp option.
(sh64-superh-linux*): Don't multilib.
(sh*-*-linux): Use sh3 as basic multilib.
* config/sh/crt1.asm (SHmedia start): Add code to enable the MMU,
and to set up vbr.  Enable FPU before calling set_fpscr.
Load atexit address just before use.  Use __SH_FPU_ANY__.
(SH3*/SH4* start): Add code to set up vbr.  Use __SH_FPU_ANY__.
Set DN bit in fpscr.
* config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Merge into:
config/sh/sh.h (SH_ASM_SPEC, SUBTARGET_ASM_ISA_SPEC): Here.
* config/sh/lib1funcs.asm (HIDDEN_FUNC, HIDDEN_ALIAS): Define.
(FMOVD_WORKS): Don't define for __SH5__.
(ashiftrt_r4_0, ashiftrt_r4_1, ashiftrt_r4_2, ashiftrt_r4_3): Hide.
(ashiftrt_r4_4, ashiftrt_r4_5, ashiftrt_r4_6, ashiftrt_r4_7): Hide.
(ashiftrt_r4_8, ashiftrt_r4_9, ashiftrt_r4_10, ashiftrt_r4_11): Hide.
(ashiftrt_r4_12, ashiftrt_r4_13, ashiftrt_r4_14, ashiftrt_r4_15): Hide.
(ashiftrt_r4_16, ashiftrt_r4_17, ashiftrt_r4_18, ashiftrt_r4_19): Hide.
(ashiftrt_r4_20, ashiftrt_r4_21, ashiftrt_r4_22, ashiftrt_r4_23): Hide.
(ashiftrt_r4_24, ashiftrt_r4_25, ashiftrt_r4_26, ashiftrt_r4_27): Hide.
(ashiftrt_r4_28, ashiftrt_r4_29, ashiftrt_r4_30, ashiftrt_r4_31): Hide.
(ashiftrt_r4_32, ashrsi3, ashlsi3, lshrsi3, movmem, movstr): Hide.
(movstrSI64, movmemSI64, movstrSI60, movmemSI60): Hide.
(movstrSI56, movmemSI56, movstrSI52, movmemSI52): Hide.
(movstrSI48, movmemSI48, movstrSI44, movmemSI44): Hide.
(movstrSI40, movmemSI40, movstrSI36, movmemSI36): Hide.
(movstrSI32, movmemSI32, movstrSI28, movmemSI28): Hide.
(movstrSI24, movmemSI24, movstrSI20, movmemSI20): Hide.
(movstrSI16,movmemSI16, movstrSI12,movmemSI12): Hide.
(movstrSI8,movmemSI8, movstrSI4,movmemSI4): Hide.
(movmemSI0, movstrSI0): Remove.
(movmemSI4): Schedule last store into rts delay slot.
(movmem): Shorten code.  Provide ENDFUNC.
(movmem_i4_even, movmem_i4_odd, movmemSI12_i4, mulsi3): Hide.
(mulsi3): Provide ENDFUNC.
(sdivsi3_i4, sdivsi3_i4, udivsi3_i4, udivsi3, set_fpscr): Hide.
(SH5 sdivsi3): Reimplement, using:
(div_table): New, linear approximation table lookup for division seed.
(sdivsi3_2): New SH5 entry point.
(divdi3): Use hidden alias for udivdi3.
(moddi3): Use hidden alias for umoddi3.
(init_trampoline): Hide.  Provide exact ENDFUNC.
(ic_invalidate): Hide.  Re-implement SH4 version, using
(ic_invalidate_array): New global.
(GCC_shcompact_return_trampoline, GCC_nested_trampoline): Hide.
(GCC_push_shmedia_regs_nofpu): Only provide for __SH4_NOFPU__.
(GCC_pop_shmedia_regs_nofpu): Likewise.
* config/sh/libgcc-excl.ver (__mulsi3): Add.
* config/sh/linux.h (TARGET_DEFAULT): Include TARGET_OPT_DEFAULT.
* config/sh/sh-protos.h (sh_function_kind): New enum.
(sh_gen_truncate, replace_n_hard_rtx): Declare.
(function_symbol): Update declaration.
(shmedia_cleanup_truncate, sh_contains_memref_p): Declare.
* sh.c (cfgloop.h): Include.
(TARGET_ADJUST_UNROLL_MAX): Redefine.
(print_operand): Add '' and 'U' support.  Handle TRUNCATE and

[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-04-08 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-08 
18:28 ---
Subject: Bug 20714

CVSROOT:/cvs/gcc
Module name:gcc
Branch: sh-elf-4_1-branch
Changes by: [EMAIL PROTECTED]   2005-04-08 18:28:02

Modified files:
gcc: ChangeLog basic-block.h bt-load.c config.gcc 
 flow.c integrate.c loop.c optabs.c 

Log message:
2005-04-06  Jorn Rennecke [EMAIL PROTECTED]

PR middle-end/20793:
* integrate.c (allocate_initial_values): Update register liveness
information.

PR rtl-optimization/20769:
* bt-load.c (compute_defs_uses_and_gen): Check for the blockage
pattern emitted by expand_nl_goto_receiver.

PR rtl-optimization/20756:
* basic-block.h (PROP_DEAD_INSN): Define.
* flow.c (propagate_one_insn): Set during mark_set_regs call
for a dead insn.

PR middle-end/20714
* optabs.c (no_conflict_data): New struct.
(no_conflict_move_test): New function.
(emit_no_conflict_block): Use it.

Workaround for PR rtl-optimization/20413:
* sh.md (blt_media_i32, blt_media_i32+1): New splitters.

Merge of SuperH / STM SH specific patches, including fix for
PR target/20695:
* config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
when building with libgloss.
(sh*elf): Implement --without-fp option.
(sh64-superh-linux*): Don't multilib.
(sh*-*-linux): Use sh3 as basic multilib.
[config/sh/* changes elided]

2005-04-06  Andrew Stubbs [EMAIL PROTECTED]
Jorn Rennecke [EMAIL PROTECTED]

* config/sh/superh64.h, config/sh/superh.h: New files.
* config/sh/newlib.h, config/sh/t-superh: Likewise.
* config.gcc: Add support for sh*-superh-elf* and sh64-superh-linux*.

2005-04-06  Jorn Rennecke [EMAIL PROTECTED]
Richard Shann [EMAIL PROTECTED]

PR middle-end/20396:
* loop.c (combine_movables): Take TRULY_NOOP_TRUNCATION into account.
* optabs.c (expand_binop): Likewise.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcconly_with_tag=sh-elf-4_1-branchr1=2.8142r2=2.8142.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/basic-block.h.diff?cvsroot=gcconly_with_tag=sh-elf-4_1-branchr1=1.246r2=1.246.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/bt-load.c.diff?cvsroot=gcconly_with_tag=sh-elf-4_1-branchr1=2.32r2=2.32.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config.gcc.diff?cvsroot=gcconly_with_tag=sh-elf-4_1-branchr1=1.530r2=1.530.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcconly_with_tag=sh-elf-4_1-branchr1=1.623r2=1.623.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/integrate.c.diff?cvsroot=gcconly_with_tag=sh-elf-4_1-branchr1=1.273r2=1.273.20.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/loop.c.diff?cvsroot=gcconly_with_tag=sh-elf-4_1-branchr1=1.525r2=1.525.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/optabs.c.diff?cvsroot=gcconly_with_tag=sh-elf-4_1-branchr1=1.268r2=1.268.2.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20714


[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-04-08 Thread amylaar at gcc dot gnu dot org

--- Additional Comments From amylaar at gcc dot gnu dot org  2005-04-08 
19:07 ---
The patch has been posted here:
http://gcc.gnu.org/ml/gcc-patches/2005-04/msg00903.html

-- 
   What|Removed |Added

   Keywords||patch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20714


[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-04-01 Thread amylaar at gcc dot gnu dot org

--- Additional Comments From amylaar at gcc dot gnu dot org  2005-04-01 
15:20 ---
Created an attachment (id=8507)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8507action=view)
proposed patch

This implements a similar dependency check as in emit_libcall_block,
except that we might have to consider multiple sets / clobbers.
This also fixes the bogosity of checking only the first set for
setting part of target, and looking at the SET_DEST of USEs and CLOBBERs.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20714


[Bug middle-end/20714] emit_no_conflict_block does invalid reordering

2005-04-01 Thread amylaar at gcc dot gnu dot org


-- 
   What|Removed |Added

OtherBugsDependingO||20695
  nThis||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20714