This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, i386]: Extend TARGET_READ_MODIFY{,_WRITE} peepholes to all integer modes
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 29 Apr 2016 13:23 +0200
- Subject: Re: [PATCH, i386]: Extend TARGET_READ_MODIFY{,_WRITE} peepholes to all integer modes
- Authentication-results: sourceware.org; auth=none
- References: <CAFULd4bqYNLd0P4Vb7Oi3F0Y2ieDNG0peGqeD9kww7s6jkSCMw at mail dot gmail dot com> <3799415 dot uPfXC5v7Nr at polaris> <CAFULd4Zwd7=zzi2Tfd2Bvy6B7Sfx2HFU3atF50rrAfRr-23F+A at mail dot gmail dot com>
> Attached patch was actually tested on a couple of cases. It generates
> the same assembly as before.
Note that you could just remove the second ":W" in the define_insn pattern.
That's better, but not quite it because this segfaults at -O2:
#0 memory_operand (op=0xabababababababab, mode=mode@entry=VOIDmode)
at /home/eric/svn/gcc/gcc/recog.c:1360
#1 0x00000000014388b1 in get_attr_memory (insn=insn@entry=0x7ffff697b8c0)
at /home/eric/svn/gcc/gcc/config/i386/i386.md:2120
#2 0x0000000001636fb8 in insn_default_latency_generic (insn=0x7ffff697b8c0)
at /home/eric/svn/gcc/gcc/config/i386/i386.md:27394
#3 0x00000000017f9695 in insn_cost (insn=0x7ffff697b8c0)
at /home/eric/svn/gcc/gcc/haifa-sched.c:1415
#4 0x00000000017feb75 in dep_cost_1 (link=link@entry=0x2e962e8,
dw=dw@entry=0)
at /home/eric/svn/gcc/gcc/haifa-sched.c:1468
#5 0x0000000001800d7a in dep_cost (link=0x2e962e8)
at /home/eric/svn/gcc/gcc/haifa-sched.c:1523
#6 priority (insn=0x7ffff697b8c0) at /home/eric/svn/gcc/gcc/haifa-
sched.c:1674
#7 0x0000000001800e6f in set_priorities (head=<optimized out>,
tail=<optimized out>) at /home/eric/svn/gcc/gcc/haifa-sched.c:7209
#8 0x0000000000f689e3 in compute_priorities ()
at /home/eric/svn/gcc/gcc/sched-rgn.c:3022
#9 0x0000000000f6bc46 in schedule_region (rgn=0)
at /home/eric/svn/gcc/gcc/sched-rgn.c:3115
#10 schedule_insns () at /home/eric/svn/gcc/gcc/sched-rgn.c:3513
#11 0x0000000000f6c4de in schedule_insns ()
(gdb) frame 1
#1 0x00000000014388b1 in get_attr_memory (insn=insn@entry=0x7ffff697b8c0)
at /home/eric/svn/gcc/gcc/config/i386/i386.md:2120
2120 (match_test "TARGET_AVX")
(gdb) p debug_rtx(insn)
(insn 779 927 928 2 (parallel [
(set (mem/v:DI (reg/f:DI 7 sp) [0 S8 A8])
(unspec:DI [
(const_int 0 [0])
] UNSPEC_PROBE_STACK))
(clobber (reg:CC 17 flags))
]) c52104y.adb:57 1005 {probe_stack_di}
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))
$1 = void
--
Eric Botcazou