This is the mail archive of the gcc-patches@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]

Re: Enable first scheduling pass for SH4


On Wed, 19 Nov 2003 18:20:20 -0500, Vladimir Makarov wrote:
On Thu, 13 Nov 2003 12:18:11 -0500, Vladimir Makarov <vmakarov@redhat.com>
wrote:
> So if you decide not to implement this approach, I would prefer the
> previous machine-depnendent approach. Just let me know and I'll look at
> the previous patch again and probably approve it.


Here is the link:
http://gcc.gnu.org/ml/gcc-patches/2003-09/msg00090.html

I can submit a follow-up patch if you want some changes.

Sanjiv,


I've examined the patch.  In whole, the patch is ok.  But I have some
minor comments:

The updated patch is attached alongwith the mail. Please commit if ok, as I don't have check in rights.

Thanks and Best Regards,
--Sanjiv.

o Shed1 is switched on for SH5 too.  Your hooks work for all
subtargets but sh4 is not mentioned there.  If the code is
to work for sh5 too (I am not sure about this.  I think it will
require additional benchmarking and tuning), you should be more
accurate in calculation of register pressure for sh5 because
values of DImode and DFmode can be placed in one register for sh5.
If it is not the code checking subtarget should be added (which is
a good practice in any case because new subtargets could be added
in future).

o PARAMS should be not used in forward function declarations (in
file sh.c) anymore.

o Variables regmode_weight, skip cycles, cached_can_issue_more
should be declared as static because they are used only in sh.c

o There are lot of places where indentation is incorrect (in
functions find_set_regmode_weight, find_insn_regmode_weight,
rank_for_reorder, and sh_dfa_new_cycle).  Like in the following
function.

+static short
+find_set_regmode_weight (x, mode)
+    rtx x;
+    enum machine_mode mode;
+{
+  if (GET_CODE (x) == CLOBBER
+      && register_operand (SET_DEST (x), mode))
+    return 1;
+  if (GET_CODE (x) == SET
+      && register_operand (SET_DEST (x), mode))
+    {
+      if (GET_CODE (SET_DEST (x)) == REG)
+        {
+          if (!reg_mentioned_p (SET_DEST (x), SET_SRC (x)))
+           return 1;
+         else
+           return 0;
+       }
^ Here
+       return 1;
^ and here
+    }
+    return 0;
+}

o Two blank spaces should be after period which is an end of a
sentence.  Like in the following comments

+   to REG_DEAD notes. This causes CHECK_DEAD_NOTES in sched1 to abort.
To ^                                                ^
o Changelog has one inaccurate entry (`added; should start with
capital letter).

* flow.c (recompute_reg_usage): added PROP_DEATH_NOTES flag
in call to update_life_info.

Please fix this and after that you can commit the patch.

Vlad

Attachment: ChangeLog.ISP1
Description: Binary data

Attachment: ISP1_20031125.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]