Re: Tutorial Proposal for GCC Summit

2010-08-19 Thread Diego Novillo

On 10-08-18 12:50 , Uday Khedker wrote:


Looking forward to getting some feedback. I would also be happy to
modify the tutorial based on the feedback.


Thank you very much for organizing this tutorial.  I think it's an 
excellent idea.  In the context of the GCC Summit, I believe your 
presentation may be useful as a way of finding areas not covered by the 
original material.


The GCC Summit audience will have deep understanding of the various 
topics in the tutorial.  But an overview of the whole system is still 
useful.


I would also suggest proposing a similar tutorial for next year's CGO. 
GROW 2011 will be co-located with CGO 2011.  A tutorial like this one 
seems like a very good fit for it.



Diego.


gcc-4.5-20100819 is now available

2010-08-19 Thread gccadmin
Snapshot gcc-4.5-20100819 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.5-20100819/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

 gcc-4.5-20100819.tar.bz2 Complete GCC (includes all of below)

  MD5=a02d6eddca205f13b3b6b6a15a481dce
  SHA1=36c03200e3187bab49916b59e367d3d15f397cb7

 gcc-core-4.5-20100819.tar.bz2C front end and core compiler

  MD5=b79f033fb58a18fc575fd1ed91c61d5b
  SHA1=fdc8d2e7f41648d6e954393ec95c27611a2c7901

 gcc-ada-4.5-20100819.tar.bz2 Ada front end and runtime

  MD5=4166047c3384d95ae1d78aaa7deb1d1e
  SHA1=b11f3d1da4577b063bbe262b3ea5e74f672c1675

 gcc-fortran-4.5-20100819.tar.bz2 Fortran front end and runtime

  MD5=e1ce1e787dbc4964ad6b3cfd060f81f4
  SHA1=2d78bc40741ce6213cede37ed610543141f08c20

 gcc-g++-4.5-20100819.tar.bz2 C++ front end and runtime

  MD5=62dd31dea8461a07296cb278702c2bd3
  SHA1=49fd99747b2d51b063920f8ba2ad5798226d3dff

 gcc-java-4.5-20100819.tar.bz2Java front end and runtime

  MD5=ddee2511ee4fa1140102fadd0a11da0f
  SHA1=37329dd23640988db0ba3fc902841b713f4658b1

 gcc-objc-4.5-20100819.tar.bz2Objective-C front end and runtime

  MD5=982ab678c2325922c73fc6ed5a0d0dc9
  SHA1=2aac61d70eb7ced382cb93445f30b6664afbc34e

 gcc-testsuite-4.5-20100819.tar.bz2   The GCC testsuite

  MD5=0b6987c0a83cc2dfad160a74940aafda
  SHA1=3a2b0af6385dc439418fd9144a8c0863299a5ba1

Diffs from 4.5-20100812 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.5
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.


Re: Irreducible loops in generated code

2010-08-19 Thread Zdenek Dvorak
Hi,

> > I'm working on decompiling x86-64 binary programs, using branches to rebuild
> > a control-flow graph and looking for loops. I've found a significant number
> > of irreducible loops in gcc-produced code (irreducible loops are loops with
> > more than one entry point), especially in -O3 optimized binaries, even when
> > the source code is "well" structured. My experiments are done mainly on the
> > SPEC CPU-2006 benchmarks.
> >
> > My question is: where do these irreducible loops come from? Which
> > optimization pass leads to irreducible regions? Thanks in advance for any
> > pointer.
> 
> Questions right back at you: What compiler version are you using? Got
> a specific exampe (test case)?
> 
> In older releases of GCC4, jump threading sometimes resulted in
> irreducible regions, but more recent GCCs carefully try to avoid them.

I am not sure that is actually true.  Afaik, we only avoid this on gimple,
while rtl jump threading does not care,

Zdenek


Could we use VIEW_CONVERT_EXPR to build ADDR_EXPR ?

2010-08-19 Thread Fang, Changpeng
Hi, 

 I am working on bug 45260 and found that the problem is related to 
VIEW_CONVERT_EXPR.

In the prefetching pass, we generate the base address for the prefetching:
tree-ssa-loop-prefetch.c (issue_prefetch_ref):

addr_base = build_fold_addr_expr_with_type (ref->mem, ptr_type_node);
+ gcc_assert (is_gimple_address (addr_base));

Here ref->mem is a COMPONENT_REF and contains a VIEW_CONVERT_EXPR. When I put
an assert after  build_fold_addr_expr_with_type, I found that the addr_base is 
not a gimple
address at all. The direct reason is that the TREE_OPERAND of the 
VIEW_CONVERT_EXPR
is a SSA_NAME.

My questions are:

(1) Can we generate address expression for COMPONENT_REF and contains 
VIEW_CONVERT
  expression (is it legal to do so)?

(2) The assert in the bug actually occurs  in verify_expr in tree-cfg.c, is 
this assert valid?

I need to understand whether the bug is in the VIEW_CONVERT_EXPR generation or 
in build_fold_addr_expr_with_type.

Thanks for your inputs.

Changpeng

  


Re: Could we use VIEW_CONVERT_EXPR to build ADDR_EXPR ?

2010-08-19 Thread Andrew Pinski
On Thu, Aug 19, 2010 at 4:55 PM, Fang, Changpeng  wrote:
> My questions are:
>
> (1) Can we generate address expression for COMPONENT_REF and contains 
> VIEW_CONVERT
>      expression (is it legal to do so)?

No you should not generate addresses for VCEs that contain a SSA_NAME.
 I think you should check if get_base_address is a
is_gimple_addressable inside gather_memory_references_ref.

Thanks,
Andrew Pinski


Re: Could we use VIEW_CONVERT_EXPR to build ADDR_EXPR ?

2010-08-19 Thread Richard Kenner
> No you should not generate addresses for VCEs that contain a SSA_NAME.

True, because it should be an ADDR_EXPR of the SSA_NAME and the a convert
to the appropriate pointer type.

But the question here was trickier: there was a COMPONENT_REF of the VCE
of an SSA_NAME.  I don't know the answer to that one.