This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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>&&</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 (cc0) (cc0))</samp>, or
- <samp>(set (pc) (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 ----