[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc-bugs
Subject:    [Bug target/51708] SH Target: SHAD / SHLD constant not CSE-ed
From:       "olegendo at gcc dot gnu.org" <gcc-bugzilla () gcc ! gnu ! org>
Date:       2012-09-30 23:11:09
Message-ID: bug-51708-4-tKE397PObs () http ! gcc ! gnu ! org/bugzilla/
[Download RAW message or body]


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

--- Comment #2 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-09-30 23:11:09 UTC ---
In order to 'force' the constant load to be CSE-ed the constant load and
dynamic shift patterns have to be emitted in the respective expanders, so that
the CSE pass can see the constant load.
It would be even better to check whether the shift insn is in a loop when
deciding whether to use a dynamic shift insn or not.  It is better to convert
all non 1/2/8/16 shifts that are buried inside loops to dynamic shifts.  If
there are enough registers available every shift would become a 1 insn
operation.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic