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: Expanding instructions with condition codes inter-deps


On 17/10/11 17:20, Andrew Pinski wrote:
On Mon, Oct 17, 2011 at 3:50 AM, Paulo J. Matos<paulo@matos-sorge.com> wrote:

addc_internal looks like:
(define_insn "addc_internal"
  [(set (match_operand:QI 0 "nonimmediate_operand" "=c")
        (plus:QI
          (plus:QI
            (ltu:QI (reg:CC RCC) (const_int 0))
            (match_operand:QI 1 "nonimmediate_operand" "%0"))
          (match_operand:QI 2 "general_operand" "cwmi")))
   (clobber (reg:CC RCC))]
  ""
  "addc\\t%0,%f2")

Try adding (use (reg:CC RCC)) to the pattern above.



Currently compiling that change into the code. I have a feeling that it will either confuse compare-elim.c or that it will be too strict and remove any possibility of optimization since with (use (reg:CC RCC)) we are not really saying that we are only interested in the carry flag instead of the whole thing. It will avoid anything clobbering RCC which is most of the instructions.


I will give it a spin and see what actually happens.

Thanks,

--
PMatos


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