This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, generic] Fix for define_subst
- From: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- To: Richard Henderson <rth at redhat dot com>, Jakub Jelinek <jakub at redhat dot com>, ian dot bolton at arm dot com, gcc-patches List <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 26 Nov 2012 16:52:54 +0400
- Subject: Re: [PATCH, generic] Fix for define_subst
- References: <CAGs3Rfso4wjYrfjsCRpVRp4zgJhrk-gqr-kRd0myVUJvUqAHCA@mail.gmail.com>
Guys, this is a ping.
Thanks, K
On Thu, Nov 22, 2012 at 9:36 PM, Kirill Yukhin <kirill.yukhin@gmail.com> wrote:
> Hello,
> Here is copy-and-paste from issue raised by Ian (in the bottom).
>
> Fix is attached.
> ChangeLog entry:
> 2012-11-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
>
> * gensupport.c (add_c_test): Check if expr isn't NULL.
>
> Is it ok for trunk?
>
> === CUT HERE ===
> It looks like the recent VEC rewrite might have interacted badly with
> this patch.
>
> I am getting a segfault in genconditions.c when add_c_test is called
> for "desc".
>
> I think it is because the condition is not within a vector.
>
>
> Example of "desc" for working pattern:
>
> (define_insn ("*zero_extendqihi2_aarch64")
> [
> (set (match_operand:HI 0 ("register_operand") ("=r,r"))
> (zero_extend:HI (match_operand:QI 1 ("nonimmediate_operand")
> ("r,m"))))
> ] ("") ("@
> uxtb\t%w0, %w1
> ldrb\t%w0, %1")
> [
> (set_attr ("v8type") ("extend,load1"))
> (set_attr ("mode") ("HI"))
> ])
>
>
> Example of "desc" for broken one that uses define_subst:
>
> (define_insn ("*addsi3_aarch64_noextend")
> [
> (set (match_operand:SI 0 ("register_operand") ("=rk,rk,rk"))
> (plus:SI (match_operand:SI 1 ("register_operand") ("%rk,rk,rk"))
> (match_operand:SI 2 ("aarch64_plus_operand") ("I,r,J"))))
> ] "" ("@
> add\t%w0, %w1, %2
> add\t%w0, %w1, %w2
> sub\t%w0, %w1, #%n2")
> [
> (set_attr ("v8type") ("alu"))
> (set_attr ("mode") ("SI"))
> ])
>
>
> Note that there are no brackets around the "" condition. That's the issue,
> I
> think.
>
> === CUT HERE ===
>
> Thanks, K