Documentation issue: gccint: define_split "not" allowed to create pseudos

2016-03-14 Thread Dominik Vogt
(This is a copy of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70078) I'd like to clean up this documentation issue, but need some help: Dominik Vogt 2016-03-04 11:05:16 UTC > The section "Defining How to Split Instructions" in the gccint > manual claims > > The preparation-statements are simi

Re: define_split for specific split pass

2011-08-16 Thread Kirill Yukhin
gt; Hello, >> >> Is there any way to specify in define_split predicate that it should >> work in some particular pass only? I need to create split which works >> in pass_split_before_sched2 only. > > So split before RA?  try conventionalizing it on !reload_complete . > > Thanks, > Andrew Pinski >

Re: define_split for specific split pass

2011-08-16 Thread Andrew Pinski
On Tue, Aug 16, 2011 at 6:32 AM, Ilya Enkovich wrote: > Hello, > > Is there any way to specify in define_split predicate that it should > work in some particular pass only? I need to create split which works > in pass_split_before_sched2 only. So split before RA? try conventi

define_split for specific split pass

2011-08-16 Thread Ilya Enkovich
Hello, Is there any way to specify in define_split predicate that it should work in some particular pass only? I need to create split which works in pass_split_before_sched2 only. Thanks Ilya

Re: define_split

2010-11-10 Thread Andrew Stubbs
On 09/11/10 22:54, Michael Meissner wrote: The split pass would then break this back into three insns: (insn ... (set (reg:SF ACC_REGISTER) (mult:SF (reg:SF 124) (reg:SF 125 (insn ... (set (reg:SF ACC_REGISTER)

Re: define_split

2010-11-10 Thread Paolo Bonzini
On 11/10/2010 12:47 AM, Joern Rennecke wrote: I remember that it has been there even before the GNU GCC project started using cvs. Fortunately, we still have the translated history from RCS going backeven further... but the earliest mention of find_split_point in combine.c is shown as having

Re: define_split

2010-11-09 Thread Joern Rennecke
Quoting Michael Meissner : Generally you need to tighten the pattern conditions to make sure it doesn't match. Sometimes the only sane and effective way of tightening the pattern conditions is to have an insn condition of "0". At which point the define_insn_and_split becomes syntactic sugar (p

Re: define_split

2010-11-09 Thread Joern Rennecke
Quoting Michael Meissner : So whether the passes in between combine and the split pass care, is a different question. I didn't recall that combine had this split feature. I remember that it has been there even before the GNU GCC project started using cvs. Fortunately, we still have the tran

Re: define_split

2010-11-09 Thread Michael Meissner
On Tue, Nov 09, 2010 at 01:38:17PM -0500, Joern Rennecke wrote: > Quoting Paolo Bonzini : > > >On 11/09/2010 05:38 PM, Joern Rennecke wrote: > >>A define_insn will be recognized in all contexts. > >>Having an insn pattern for an insn that does not actually exist can cause > >>all kinds of unintend

Re: define_split

2010-11-09 Thread Michael Meissner
On Tue, Nov 09, 2010 at 09:38:28AM +0200, roy rosen wrote: > I still don't understand the difference between your two examples: > If you write a define_split then whenever during combine it gets into > a pattern which matches the define_split then it splits. > > What is

Re: define_split

2010-11-09 Thread Joern Rennecke
Quoting Paolo Bonzini : On 11/09/2010 05:38 PM, Joern Rennecke wrote: A define_insn will be recognized in all contexts. Having an insn pattern for an insn that does not actually exist can cause all kinds of unintended consequences as the optimizers try to generate and recognize 'optimized' patt

Re: define_split

2010-11-09 Thread Paolo Bonzini
On 11/09/2010 05:38 PM, Joern Rennecke wrote: A define_insn will be recognized in all contexts. Having an insn pattern for an insn that does not actually exist can cause all kinds of unintended consequences as the optimizers try to generate and recognize 'optimized' patterns, or when reload does

Re: define_split

2010-11-09 Thread Joern Rennecke
Quoting Paolo Bonzini : As I understand it, this will also give combine the ability to do two->two (and two->N) transformations, though indirectly through the temporary insn. Given this, could you explain further the benefits of combiner-split define_split vs. define_insn_and_spli

Re: define_split

2010-11-09 Thread Paolo Bonzini
though indirectly through the temporary insn. Given this, could you explain further the benefits of combiner-split define_split vs. define_insn_and_split. Paolo

Re: define_split

2010-11-09 Thread Joern Rennecke
Quoting roy rosen : What is the difference when writing define_insn_and_split? From what I understood from the docs then if there is such an insn then the split does not occur so it would simply match it as an insn without splitting and at the end would print the #? Can you please elaborate? T

Re: define_split

2010-11-08 Thread roy rosen
2010/11/8 Michael Meissner : > On Thu, Oct 28, 2010 at 09:11:44AM +0200, roy rosen wrote: >> Hi all, >> >> I am trying to use define_split, but it seems to me that I don't >> understand how it is used. >> It says in the gccint.pdf (which I use as my tutorial (

Re: define_split

2010-11-08 Thread Michael Meissner
On Thu, Oct 28, 2010 at 09:11:44AM +0200, roy rosen wrote: > Hi all, > > I am trying to use define_split, but it seems to me that I don't > understand how it is used. > It says in the gccint.pdf (which I use as my tutorial (is there > anything better or more up to date?))

Re: define_split

2010-11-02 Thread Joern Rennecke
Quoting Ian Lance Taylor : Can you give us some examples of useful combine-split patterns? sh.md: ;; combiner splitter for test-and-branch on single bit in register. This ;; is endian dependent because the non-paradoxical subreg looks different ;; on big endian. (define_split [(set (pc

Re: define_split

2010-11-02 Thread Ian Lance Taylor
nsn, and >> then write a define_split (or a define_insn_and_split) which splits up >> the insn just before register allocation or just before instruction >> scheduling. > > Although such patterns are justified in some cases, adding them willy-nilly > can make your port

Re: define_split

2010-11-02 Thread Joern Rennecke
Quoting Ian Lance Taylor : That said, this is not a very interesting use of splits these days and it could probably be removed without doing any noticeable harm. These days most people just write the complex pattern using define_insn, and then write a define_split (or a define_insn_and_split

Re: define_split

2010-10-29 Thread Ian Lance Taylor
should specify how to split a pattern into multiple insns" and "[t]he insn combiner phase also splits putative insns." The first case, the case in which the combiner does not split insns, is the primary use case for define_split. I believe that we could remove the combiner's

Re: define_split

2010-10-28 Thread roy rosen
2010/10/29 Ian Lance Taylor : > roy rosen writes: > >> I am trying to use define_split, but it seems to me that I don't >> understand how it is used. >> It says in the gccint.pdf (which I use as my tutorial (is there >> anything better or more up to date?)) >

Re: define_split

2010-10-28 Thread Ian Lance Taylor
roy rosen writes: > I am trying to use define_split, but it seems to me that I don't > understand how it is used. > It says in the gccint.pdf (which I use as my tutorial (is there > anything better or more up to date?)) Assuming you built gccint.pdf from the gcc sources that

define_split

2010-10-28 Thread roy rosen
Hi all, I am trying to use define_split, but it seems to me that I don't understand how it is used. It says in the gccint.pdf (which I use as my tutorial (is there anything better or more up to date?)) that the combiner only uses the define_split if it doesn't find any define_insn to m

Re: having trouble with define_split

2009-01-10 Thread Denis Chertykov
ween all integer and fixed point types working > as well as SA to SF conversion. > > I want to convert the fixed point types smaller than SA to float by > using define_split to convert to SA then to SF. I am first trying to > get QQ->SF working, one of the things I tried

having trouble with define_split

2009-01-08 Thread Sean D'Epagnier
conversion. I want to convert the fixed point types smaller than SA to float by using define_split to convert to SA then to SF. I am first trying to get QQ->SF working, one of the things I tried is: (define_expand "fractqqsf2" [(set (match_operand:SF 0 &quo

Re: A question regarding define_split pattern

2008-04-15 Thread Ian Lance Taylor
"Mohamed Shafi" <[EMAIL PROTECTED]> writes: > I have the following define_insn and define_splt pattern > > (define_insn "movhi_const" > [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") > (match_operand:HI 1 &qu

A question regarding define_split pattern

2008-04-15 Thread Mohamed Shafi
Hello all, I have the following define_insn and define_splt pattern (define_insn "movhi_const" [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r") (match_operand:HI 1 "immediate_operand" "L,K,N,O,i"))] ) (define_s