This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Thu, 2005-02-24 at 03:15, Steven Bosscher wrote:You are write here that if some expr doesn't get into hash table, it will not get optimized. But since plus expressions on x86 also clobber CC as shown belowOn Feb 24, 2005 11:13 AM, Tarun Kawatra <tarun@cse.iitb.ac.in> wrote: Does GCSE look into stuff in PARALLELs at all? From gcse.c:
Shrug. The code in hash_scan_set seems to be doing something reasonable.
The problem I saw wasn't with finding expressions to gcse, it was with inserting them later. The insertion would create a cc reg clobber, so we don't bother adding it to the hash table. I didn't look any further, but it seemed reasonable that if it isn't in the hash table, then it isn't going to be optimized.
(insn 40 61 42 2 (parallel [
(set (reg/v:SI 74 [ c ])
(plus:SI (reg:SI 86)
(reg:SI 85)))
(clobber (reg:CC 17 flags))
]) 138 {*addsi_1} (nil)
(nil))Thanks -tarun
It seems that switching the x86 backend from using cc0 to using a cc hard register has effectively crippled the RTL gcse pass for it.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |