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: [wwwdocs] Add beginners project


On Thursday 10 June 2004 21:22, Gerald Pfeifer wrote:
> On Thu, 10 Jun 2004, Steven Bosscher wrote:
> > This adds a project to use predicates where possible, as discussed
> > last month on gcc@.  OK?
>
> Looks fine, with small adjustments.

Like so?

This also removes two projects.  One is actively being worked
on and it's not even a beginner's project.  The work suggested
in the second removed project is probably not necessary anymore
according to Zack.

Gr.
Steven

Index: beginner.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/beginner.html,v
retrieving revision 1.46
diff -c -3 -p -r1.46 beginner.html
*** beginner.html	4 Feb 2004 07:40:30 -0000	1.46
--- beginner.html	10 Jun 2004 21:32:10 -0000
*************** the last millennium, and investigate.  A
*** 310,315 ****
--- 310,333 ----
  and patch them.</p>
  </li>
  
+ <li>Use predicates for RTL objects
+ 
+ <p>GCC has simple predicates to see if a given <code>rtx</code> is of some
+ specific class.  These predicates simply look at the <code>rtx_code</code>
+ of the given RTL object and return nonzero if the predicate is true.
+ For example, if an <code>rtx</code> represents a register, then
+ <code>REG_P (rtx)</code> is nonzero.</p>
+ 
+ <p>Unfortunately, lots of code in the middle-end and in the back-ends does
+ not use these predicates and instead compare the <code>rtx_code</code>
+ in place: <code>(GET_CODE (rtx) == REG)</code>.  Find all the places where
+ such comparisons can be replaced with a predicate.  Also, for many common
+ comparisons there is no predicate yet.  See which ones are worth having
+ a predicate for, and add them.  You can find a number of
+ <a href="http://gcc.gnu.org/ml/gcc/2004-05/msg00447.html";>suggestions</a>
+ in the mailing list archives.</p>
+ </li>
+ 
  <li>Disentangle the current web of header-header interdependencies.
  
  <p>This is a major undertaking, and you should be able to deal with
*************** already does this for <code>stdlib.h</co
*** 699,722 ****
  <p>The real mess is in the debug info generators.</p>
  </li>
  
- <li>Clean up the configure scripts.
- 
- <p>The horrible tests for assembler features particularly need to die,
- but there are plenty of other atrocities.  If you want a relatively
- easy one, find all the places that use <samp>test -a</samp> or
- <samp>-o</samp>, and make them use <samp>&amp;&amp;</samp> or
- <samp>||</samp> instead.</p>
- 
- <p>Check out autoconf 2.5x and see if it will
- help any.  Odds are it will.  If it has broken something we
- depend on, let the autoconf maintainers know.  Some changes are known
- to be needed to the GCC configure scripts to work with autoconf 2.5x.</p>
- 
- <p>Feed back gcc-private autoconf macros to the autoconf maintainers.
- We have several that would be widely useful, such as
- <code>GCC_NEED_DECLARATIONS</code> and the <code>mmap</code> tests.</p>
- </li>
- 
  <li>Run fixincludes on all targets.
  
  <p>We want all targets' headers to be handled the same way.  The
--- 717,722 ----
*************** them is in six categories:</p>
*** 807,821 ****
  </ol>
  </li>
  
- <li>Move the bootstrap logic up to the top level Makefile.  Cause
- libiberty to be 3-staged as well as the gcc directory.  Cause a blind
- "make" from the top level to do the Right Thing for native as well as
- cross compiles.
- 
- <p>This may be too big for anyone other than a Make expert to attempt,
- but if done it would be immensely useful.</p>
- </li>
- 
  </ul>
  
  <h2>Library infrastructure</h2>
--- 807,812 ----
*************** parallels, yet the code appears to.
*** 1072,1087 ****
  
  </li>
  
- <li>Teach the combiner to delete no-op moves it generates.
- 
- <p>This includes unrecognizable no-op moves.  You can get things like
- <samp>(set&nbsp;(cc0)&nbsp;(cc0))</samp>, or
- <samp>(set&nbsp;(pc)&nbsp;(pc))</samp>.  Neither of these is a valid
- insn, but throwing them out would win.  See the <a
- href="http://gcc.gnu.org/ml/gcc-patches/2000-07/msg00580.html";>discussion</a>
- on gcc-patches last year.</p>
- </li>
- 
  <li>Find all the places that simplify RTL and make them use
  <code>simplify-rtx.c</code>.
  
--- 1063,1068 ----


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