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]

Re: Profiling on S390


I wrote:

>The quick fix would be to fall back on CLCL in all cases, like
>below.  I'll see if I can think of something better ...

I've disabled the CLC loop for now and always emit CLCL.  This is
not really a big deal performance-wise, and it actually was the
behaviour of all previous GCC versions, so it should be acceptable
for 3.3.  Maybe we can do something better for 3.4 ...


Bootstrapped/regtested on s390-ibm-linux and s390x-ibm-linux on
3.3 and head; applied to both.


ChangeLog:

      * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.


Index: gcc/config/s390/s390.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.c,v
retrieving revision 1.70.2.7
diff -c -p -r1.70.2.7 s390.c
*** gcc/config/s390/s390.c    10 Apr 2003 16:41:31 -0000    1.70.2.7
--- gcc/config/s390/s390.c    23 Apr 2003 12:55:31 -0000
*************** s390_expand_cmpstr (target, op0, op1, le
*** 2794,2800 ****
          emit_move_insn (target, const0_rtx);
      }

!   else if (TARGET_MVCLE)
      {
        enum machine_mode double_mode = TARGET_64BIT ? TImode : DImode;
        enum machine_mode single_mode = TARGET_64BIT ? DImode : SImode;
--- 2794,2800 ----
          emit_move_insn (target, const0_rtx);
      }

!   else /* if (TARGET_MVCLE) */
      {
        enum machine_mode double_mode = TARGET_64BIT ? TImode : DImode;
        enum machine_mode single_mode = TARGET_64BIT ? DImode : SImode;
*************** s390_expand_cmpstr (target, op0, op1, le
*** 2813,2818 ****
--- 2813,2821 ----
        emit_insn ((*gen_result) (target));
      }

+ #if 0
+   /* Deactivate for now as profile code cannot cope with
+      CC being live across basic block boundaries.  */
    else
      {
        rtx addr0, addr1, count, blocks, temp;
*************** s390_expand_cmpstr (target, op0, op1, le
*** 2878,2883 ****
--- 2881,2887 ----

        emit_insn ((*gen_result) (target));
      }
+ #endif
  }

  /* In the name of slightly smaller debug output, and to cater to


Mit freundlichen Gruessen / Best Regards

Ulrich Weigand

--
  Dr. Ulrich Weigand
  Linux for S/390 Design & Development
  IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
  Phone: +49-7031/16-3727   ---   Email: Ulrich dot Weigand at de dot ibm dot com


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