This is the mail archive of the
mailing list for the GCC project.
Re: [PING*2][PATCH] Extend mode-switching to support toggle (1/2)
- From: Joern Rennecke <joern dot rennecke at embecosm dot com>
- To: Oleg Endo <oleg dot endo at t-online dot de>
- Cc: Christian Bruel <christian dot bruel at st dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Jeff Law <law at redhat dot com>, Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- Date: Tue, 10 Jun 2014 15:03:00 +0100
- Subject: Re: [PING*2][PATCH] Extend mode-switching to support toggle (1/2)
- Authentication-results: sourceware.org; auth=none
- References: <535E0C86 dot 400 at st dot com> <537089D8 dot 8040106 at st dot com> <53708F1D dot 1080308 at st dot com> <CAMqJFCpxG2RyOZ0NsYiBV5PUU4A+8kWaq22am+GR=e22i-uf0g at mail dot gmail dot com> <5370BB9D dot 1090803 at st dot com> <CAMqJFCovAjbuJK6puakdUZu-mDdUdWS92exwLdz3fKGO+goMZA at mail dot gmail dot com> <1399934352 dot 2344 dot 26 dot camel at yam-132-YW-E178-FTW> <CAMqJFCrBAmXuBe6JVifM-wEvN05Ny8AEsbBT0TfmHistSWfr-Q at mail dot gmail dot com> <1400017263 dot 2344 dot 34 dot camel at yam-132-YW-E178-FTW>
On 13 May 2014 22:41, Oleg Endo <firstname.lastname@example.org> wrote:
> Right. I was thinking to add FPSCR.SZ mode switching to SH, in order to
> do float vector moves. For that SZ and PR need to be switched both at
> the same time (only SH4A has both, fpchg and fschg). So basically I'd
> add another mode entity, which would emit SZ mode changes in addition to
> the PR mode changes. But then adjacent FPSCR-changing insns could be
> combined ... any idea/suggestion how to accomplish that?
If they are sufficiently adjacent, you can use a peephole2 pattern for this.
I see Cristian's patch addresses this in a different way - keeping size and
precision in the same entity, and emitting toggles as appropriate.
The problem get's a bit more interesting if you have some instruction patterns
that care about one setting but not the other.
Describing this exactly allows lazy code motion to be a bit more lazy, but OTOH
it can make it harder to combine mode switching instructions if you
still want to