<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://blog.gmane.org/gmane.comp.gcc.devel">
    <title>gmane.comp.gcc.devel</title>
    <link>http://blog.gmane.org/gmane.comp.gcc.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100724"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100723"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100722"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100721"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100720"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100719"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100717"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100713"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100712"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100711"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100710"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100709"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100708"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100707"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100706"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100705"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100704"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100703"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100702"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.devel/100701"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100724">
    <title>Re: optimizations with -mcpu=cortex-a8, -mtune=cortex-a8</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100724</link>
    <description>

gcc&lt; at &gt;gcc.gnu.org is the wrong mailing list for this sort of question.
It should be asked on gcc-help&lt; at &gt;gcc.gnu.org.  Please take any followups
there.  Thanks.

In this case it's fairly likely that the default CPU for your compiler
is something similar to cortex-a8.  The differences between CPUs are
often fairly subtle, and may not cause a change in the generated code
for most, or sometimes any, programs.

Ian

</description>
    <dc:creator>Ian Lance Taylor</dc:creator>
    <dc:date>2008-08-21T14:45:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100723">
    <title>Re: [PATCH] Update libtool to latest git tip</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100723</link>
    <description>
Why?  Regressions, or just no time?

Actual approval depends on your answer to this question, but the patch 
is technically okay.  Can you commit it to the src repository too? 
There is some regeneration to do there too.

Paolo

</description>
    <dc:creator>Paolo Bonzini</dc:creator>
    <dc:date>2008-08-21T14:29:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100722">
    <title>Re: Something general (beginner related)</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100722</link>
    <description>2008/8/20 Nils Pipenbrinck &lt;n.pipenbrinck&lt; at &gt;cubic.org&gt;:

We know and we agree and we would like this to improve. Believe me, it
was worse just 2 years ago. It is slowly improving but we need more
help.


Or even your own pass could be the pseudo-pass. This is a good place
to start improving documentation:

http://gcc.gnu.org/wiki/WritingANewPass

You do not need any approval to modify all this and you can always ask
in this list for some reviewers afterwards.


Yes, but hired developers are not paid to do this and volunteers are
typically interested on investing their limited free time in other
things. This is catch22 that you are already experiencing: If you are
a total newbie, you do not feel confident to write any documentation.
If you are experienced, you want to implement things rather than write
documentation that you do not need anymore.


http://gcc.gnu.org/wiki/GTY
http://gcc.gnu.org/wiki/Memory_management?highlight=%28gty%29
http://gcc.gnu.org/wiki/GCC_glossary?highlight=%28gty%29

We actually have lots of documentation but it is not very
inter-connected, complete or condensed. We appreciate any help on
this.

We would accept patches that just improve the comments in the
source-code (as long as they are correct and submitted properly).

Cheers,

Manuel.

</description>
    <dc:creator>Manuel López-Ibáñez</dc:creator>
    <dc:date>2008-08-21T10:33:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100721">
    <title>Re: How to use gcc source and try new optmization techniques</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100721</link>
    <description>Rohan,

Welcome to GCC and I hope you achieve what you want. I would recommend
you check our wiki:

http://gcc.gnu.org/wiki

which has some very useful links:

http://gcc.gnu.org/wiki/GettingStarted

It is a wiki, so feel free to correct mistakes, improve stuff and add
links. If you want to create a page for your project, please do so.

Seema, I see a link to the workshop but not a link to the GCC resource
center you linked. Would you like adding one under "Tutorials,
HOWTOs".

Cheers,

Manuel.


2008/8/21 Seema Ravandale &lt;ravandaless&lt; at &gt;gmail.com&gt;:

</description>
    <dc:creator>Manuel López-Ibáñez</dc:creator>
    <dc:date>2008-08-21T10:17:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100720">
    <title>Re: [graphite] Get graphite backend working again [scalar variable  handling]</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100720</link>
    <description>
You are correct. It is sufficient to substitute the SSA variables
wherever they appear, as it is done now.

Albert


</description>
    <dc:creator>Albert Cohen</dc:creator>
    <dc:date>2008-08-21T07:57:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100719">
    <title>optimizations with -mcpu=cortex-a8, -mtune=cortex-a8</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100719</link>
    <description>Hi,
     I came across the -mpcu=cortex-a8 option in the codesourcery gcc. When I added that to build the Linux kernel, I found that there are no differences in the kernel code with and without the options.  The following are the gcc options that where used to build the kernel. Am I missing something?

-nostdinc -isystem /data/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/include -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os   -fno-stack-protector -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork  -march=armv7a -mcpu=cortex-a8 -mtune=cortex-a8   -msoft-float -Uarm -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign     

Thanks,
-Romit

</description>
    <dc:creator>Dasgupta, Romit</dc:creator>
    <dc:date>2008-08-21T06:56:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100717">
    <title>Re: How to use gcc source and try new optmization techniques</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100717</link>
    <description>Hi Rohan,

I have already worked on cfg data structure, plugin "data flow pass" on cfg.
For this purpose, following links would be useful.

http://www.cse.iitb.ac.in/~uday/gcc-workshop/?file=downloads

more info can be available at

http://www.cse.iitb.ac.in/grc/

- Seema

On Thu, Aug 21, 2008 at 6:51 AM, Pranav Bhandarkar
&lt;pranav.bhandarkar&lt; at &gt;gmail.com&gt; wrote:

</description>
    <dc:creator>Seema Ravandale</dc:creator>
    <dc:date>2008-08-21T05:35:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100713">
    <title>Re: How to use gcc source and try new optmization techniques</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100713</link>
    <description>Hi,

I may not have correctly understood your questions but from what I
understand I think you mean to ask how you could easily plug in your
optimization pass into GCC so as to test your implementation of some
optimization.

Well, the way to do that would be to understand the pass structure and
decide where in the order of passes should your pass be inserted i.e
after which and before which other pass should your optimization pass
fit in. Look at passes.c to see how the order of passes is specified.

Once you have told the compiler when to execute your pass (primarily
through passes.c) and provided your optimization has been correctly
implemented in the context of GCC you should be good to go.

HTH,
Pranav

On Wed, Aug 20, 2008 at 7:45 PM, Rohan Sreeram &lt;rohan_sreeram&lt; at &gt;yahoo.com&gt; wrote:

</description>
    <dc:creator>Pranav Bhandarkar</dc:creator>
    <dc:date>2008-08-21T01:21:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100712">
    <title>How to use gcc source and try new optmization techniques</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100712</link>
    <description>Hi,

I am a student in Utah State University researching on compilers optimization techniques.
I wanted to know how I could use gcc for experimenting with optimization.

Here is what I intend to do:

1) Understand the control flow graphs being generated by GCC, which I could build using the -fdump-tree-cfg option.
2) Write code that could convert CFG to a different graph.
3) Use this new graph for optimization.
4) Use the optimized graph to generate machine code (say Intel architecture for now).

Please let me know how I could leverage the GCC code for this purpose, and if you any suggestions/comments for me you are most welcome ! :)

Thanks,
Rohan



      

</description>
    <dc:creator>Rohan Sreeram</dc:creator>
    <dc:date>2008-08-21T00:45:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100711">
    <title>Re: [graphite] Google Summer of Code 2008 is over - Thank you</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100711</link>
    <description>Hi Tobias,

On Wed, Aug 20, 2008 at 4:45 PM, Tobias Grosser
&lt;grosser&lt; at &gt;fim.uni-passau.de&gt; wrote:

I would like to say a big thank you for your contributions.  It was a
pleasure to work with you during this SOC, and I hope to have your
valuable opinion, remarks and patches for loop optimizations and
parallelization on top of the graphite infrastructure.

Sebastian

</description>
    <dc:creator>Sebastian Pop</dc:creator>
    <dc:date>2008-08-20T23:52:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100710">
    <title>gcc-4.2-20080820 is now available</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100710</link>
    <description>Snapshot gcc-4.2-20080820 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.2-20080820/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.2 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch revision 139353

You'll find:

gcc-4.2-20080820.tar.bz2              Complete GCC (includes all of below)

gcc-core-4.2-20080820.tar.bz2         C front end and core compiler

gcc-ada-4.2-20080820.tar.bz2          Ada front end and runtime

gcc-fortran-4.2-20080820.tar.bz2      Fortran front end and runtime

gcc-g++-4.2-20080820.tar.bz2          C++ front end and runtime

gcc-java-4.2-20080820.tar.bz2         Java front end and runtime

gcc-objc-4.2-20080820.tar.bz2         Objective-C front end and runtime

gcc-testsuite-4.2-20080820.tar.bz2    The GCC testsuite

Diffs from 4.2-20080813 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.2
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.

</description>
    <dc:creator>gccadmin&lt; at &gt;gcc.gnu.org</dc:creator>
    <dc:date>2008-08-20T22:43:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100709">
    <title>[graphite] Google Summer of Code 2008 is over - Thank you</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100709</link>
    <description>Hi gcc community, hi graphities,

since Monday Google Summer of Code 2008 is over and I would like to
write a little bit about my SOC project.

First of all I would like to thank Sebastian for being my mentor. It was
really fun to work with you. I never felt alone and always got great
mail or phone response, if I was not sure where to go. And also thanks
to all the other gcc and graphite people, that contributed to graphite
and helped me working on my GSoC project. I got many valuable mails and
bug reports helping me improving my code.

What I really liked was the good integration in the graphite team, so
that from the first days I felt like home. I got all support I needed
and our weekly (except exceptions) phone conferences helped me to get to
know the team better. Now I know some of you by hearing your
voice, but it would be even better to see you once in real live!

I also would like to thank Laurent for the CompileFarm account. A very
useful service for gcc development.

In the last weeks I realized a little problem in my graphite work.
As I worked so well with the graphite folks, I just completely forgot to
use the gcc mailing lists and to get in touch with the countless gcc
developers. So I apologize for this and will try to change this now.

As a starter I would like to inform you, what I have done during the
last 4 months:

What I wanted to do:
====================

[…]

At the moment the general shape of the GRAPHITE framework is quite clear
and people have started to work on different areas. While they reached
new areas of development, it became quite clear, that the GRAPHITE
frontend, the translation from GIMPLE to GRAPHITE has some serious
drawbacks, which stop people to continue their development fast and
efficiently.

During Summer of Code I would like to solve these problems and build a
solid basis for further graphite development.

[…]

More on my proposal at:
http://students.fim.uni-passau.de/~grosser/gcc_soc/

What is done:
=============

     1. SCoP detection
     -----------------
We scan the CFG to detect all parts, that we can
        transform to the polyhedral representation (GRAPHITE). 

              * This pass works and is verified by the graphite and
                polyhedron test suites.
              * We detect conditions containing (&lt;=, &lt;, &gt;, &gt;=), perfect
                loop nests with single exit, and allow parameters in
                loop borders and conditons.

     2. GIMPLE =&gt; GRAPHITE
     ---------------------

        Now the control flow of the detected SCoPs is translated to the
        polyhedral representation. This means loop borders and
        conditions are inserted into a matrix, that tells us for which
        values of the loop indeces the bbs are executed. 

              * Works for all detected SCoPs

     3. Cloog Output
     ---------------
        Cloog is the library we use to regenerate the CFG. We insert the
        polyhedral model and get an ast, describing the loop structure
        after applied optimizations. Cloog is also able to optimize in
        control structures (e.g. move conditions out of loops)  so even
        without optimizations passes we get optimizations. 

              * Works for all detected SCoPs

     4. Loop blocking 
     ----------------

              * I wrote a first experimental pass, to show how graphite
                transformations work.

So GRAPHITE has now a front end, that is able to detect most of the
common loop nests and get them into the graphite representation. In
Polyhedron e.g. we detect already 411 SCoPs with 536 loops and 1303 bbs.
These are 15% of all loops (3587).

And there is many space for improvements.

What is left to be done:
========================

     1. SCoP detection 
     -----------------
              * Conditional statements containing “||” or “&amp;&amp;”.
              * Switch statements.
              * Loops with multiple exits.
              * Iterative optimization to maximize SCoP size.

     2. GIMPLE =&gt; GRAPHITE
     ---------------------
              * Conditional statements containing “||” or “&amp;&amp;”.
              * Switch statements.
              * Loops with multiple exits.
              * Allow scev parameter detection in SCoPs, that are not
                surrounded by a loop.

     3. Graphite middle end
     ----------------------
        Here we reach hardly touched ground, where a large number of
        optimizations are possible. For example:

              * Dependency detection
              * Loop splitting
              * Loop fusing
              * …
              * Automatic parallization
﻿
I will keep on working on graphite, the next weeks on the import and
after that heading to some of the open tasks.

So even if Google Summer of Code has finished. I do not want to say
“Goodbye”, but “Hello” to you.
I am looking forward to work with you on gcc and graphite!

See you

Tobi


</description>
    <dc:creator>Tobias Grosser</dc:creator>
    <dc:date>2008-08-20T21:45:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100708">
    <title>Re: Better GCC diagnostics</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100708</link>
    <description>
The error mechanism in Ada is very extensive, probably would be quite
a bit of work to find out how to interface effectively to this API,
but something that would be nice to do in the long run.


</description>
    <dc:creator>Robert Dewar</dc:creator>
    <dc:date>2008-08-20T19:52:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100707">
    <title>Re: Creating own Backend: Segmentation fault in mark_jump_label_1</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100707</link>
    <description>

Um, yes.  Sorry, and thanks for the correction.

Ian

</description>
    <dc:creator>Ian Lance Taylor</dc:creator>
    <dc:date>2008-08-20T17:34:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100706">
    <title>Re: Creating own Backend: Segmentation fault in mark_jump_label_1</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100706</link>
    <description>
I think you meant to say "We can answer precise and detailed ...".


</description>
    <dc:creator>Joe Buck</dc:creator>
    <dc:date>2008-08-20T17:19:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100705">
    <title>RE: [graphite] Use of loops_mappings (SVN r138161)</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100705</link>
    <description>
I think we got confused about the existing implementation. The concern
was that a transform could affect multiple GBBs/loops, but everything is
done
to individual GBBs so that is not the case. 


We should remove the loops_mapping instead since the existing
implementation
is simpler. I tired to remove the loops_mapping and use the GBB_LOOPS
instead
and all the tests pass.

- Jan


</description>
    <dc:creator>Sjodin, Jan</dc:creator>
    <dc:date>2008-08-20T16:30:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100704">
    <title>Re: Better GCC diagnostics</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100704</link>
    <description>
Well, clearly, the preprocessor and handling of #include is very
C/C++ specific, and not used by Ada or Fortran.

As for diagnostics, Ada does use its own mechanism, mainly because it's
much more powerful than the one in libcpp, and handles e.g. multiple
locations related to cascaded generic package instantiations (C++ templates),
as well as many other goodies already described by Robert is previous messages.
It has also handled column info from day one (and we would not want any
of the e.g. -fshow-column stuff: why would you *not* want to display
column information ? :-)

So from GNAT's point of view, what's the point in duplicating all this
work done and written in Ada in another less capable language (which would also
make it more painful for GNAT developers to use), in particular if this
capability is only available in very recent GCC versions.

Arno

</description>
    <dc:creator>Arnaud Charlet</dc:creator>
    <dc:date>2008-08-20T16:09:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100703">
    <title>Re: Better GCC diagnostics</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100703</link>
    <description>2008/8/20 Arnaud Charlet &lt;charlet&lt; at &gt;adacore.com&gt;:

Not just that, probably Fortran/Ada are already duplicating stuff that
is in libcpp or they are implementing their own version of stuff that
C/C++ are lacking (caret diagnostics? character encodings?).

Cheers,

Manuel.

</description>
    <dc:creator>Manuel López-Ibáñez</dc:creator>
    <dc:date>2008-08-20T16:00:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100702">
    <title>Re: Better GCC diagnostics</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100702</link>
    <description>
Agreed. Other modules may find these APIs very handy.
Currently many features are only available very deep or hidden inside
libcpp implementation that could be useful in other contexts (such
as e.g. getting source file dependency information).

Arno

</description>
    <dc:creator>Arnaud Charlet</dc:creator>
    <dc:date>2008-08-20T15:54:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100701">
    <title>Re: Better GCC diagnostics</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100701</link>
    <description>2008/8/20 Tom Tromey &lt;tromey&lt; at &gt;redhat.com&gt;:

It is essentially. However, all the internal things are exposed all
over the place for no good reason.

This is in gcc/c-lex.c

 /* #define callback for DWARF and DWARF2 debug info.  */
 static void
 cb_define (cpp_reader *pfile, source_location loc, cpp_hashnode *node)
 {
-  const struct line_map *map = linemap_lookup (line_table, loc);
-  (*debug_hooks-&gt;define) (SOURCE_LINE (map, loc),
+  (*debug_hooks-&gt;define) (location_source_line (location_manager, loc),
                          (const char *) cpp_macro_definition (pfile, node));
 }

This is in tree.h

-expanded_location
-expand_location (source_location loc)
-{
-  expanded_location xloc;
-  if (loc == 0)
-    {
-      xloc.file = NULL;
-      xloc.line = 0;
-      xloc.column = 0;
-      xloc.sysp = 0;
-    }
-  else
-    {
-      const struct line_map *map = linemap_lookup (line_table, loc);
-      xloc.file = map-&gt;to_file;
-      xloc.line = SOURCE_LINE (map, loc);
-      xloc.column = SOURCE_COLUMN (map, loc);
-      xloc.sysp = map-&gt;sysp != 0;
-    };
-  return xloc;
-}
+#define expand_location(LOC) location_expand (location_manager, (LOC))
+

Moreover, the location_manager probably should be separated from CCP.

If we want to implement re-opening files and reading strings given
locations, then opening/reading files should also be moved out of CCP
to its own module/namespace/object.

Cheers,

Manuel.

</description>
    <dc:creator>Manuel López-Ibáñez</dc:creator>
    <dc:date>2008-08-20T15:52:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.devel/100700">
    <title>Re: Better GCC diagnostics</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.devel/100700</link>
    <description>
Manuel&gt; If I ever get the time, I would like to abstract our line-map
Manuel&gt; implementation within a "location_manager" object and API but
Manuel&gt; I don't think this conflicts directly with your work.

I am curious to know how this would be different from what we have
now.

I think the line-map API is rather ugly, personally, but it seems to
me that a "struct line_maps" is essentially a location manager object.

Tom

</description>
    <dc:creator>Tom Tromey</dc:creator>
    <dc:date>2008-08-20T15:17:49</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.comp.gcc.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.gcc.devel</link>
  </textinput>
</rdf:RDF>
