Matt Turner | 30 Jul 18:40 2015
Picon

Function attribute((optimize(...))) ignored on inline functions?

I'd like to tell gcc that it's okay to inline functions (such as
rintf(), to get the SSE4.1 roundss instruction) at particular call
sights without compiling the entire source file or calling function
with different CFLAGS.

I attempted this by making inline wrapper functions annotated with
attribute((optimize(...))), but it appears that the annotation does
not apply to inline functions? Take for example, ex.c:

#include <math.h>

static inline float __attribute__((optimize("-fno-trapping-math")))
rintf_wrapper_inline(float x)
{
   return rintf(x);
}

float
rintf_wrapper_inline_call(float x)
{
   return rintf(x);
}

float __attribute__((optimize("-fno-trapping-math")))
rintf_wrapper(float x)
{
   return rintf(x);
}

% gcc -O2 -msse4.1 -c ex.c
(Continue reading)

gccadmin | 30 Jul 00:35 2015
Picon

gcc-4.9-20150729 is now available

Snapshot gcc-4.9-20150729 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.9-20150729/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

 gcc-4.9-20150729.tar.bz2             Complete GCC

  MD5=5a1454cdf7dc3a3d41b2453550e02b2b
  SHA1=13f1b8421ec87b46bef75ae52867b747c3ced2a8

Diffs from 4.9-20150722 are available in the diffs/ subdirectory.

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

Mikael Pettersson | 29 Jul 09:59 2015
Picon

Could some ARM maintainer please look at PR66917?

It's a wrong-code regression in GCC 4.8 to 6.0 where it generates
NEON code with unaligned memory operands, causing alignment faults
at runtime.

gccadmin | 29 Jul 00:36 2015
Picon

gcc-5-20150728 is now available

Snapshot gcc-5-20150728 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/5-20150728/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 5 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-5-branch revision 226331

You'll find:

 gcc-5-20150728.tar.bz2               Complete GCC

  MD5=ceea4f29afc143ebf9e0dc1d874e4097
  SHA1=62cd27d674101aa43520dc51e58b4294abe29917

Diffs from 5-20150721 are available in the diffs/ subdirectory.

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

Paulo Matos | 28 Jul 17:40 2015

Expectations for 0/0

Hi,

What are the expectations for the 0/0 division?
Test execute.exp=arith-rand.c generates two integers, both being 0 and one of the testing blocks is:
      { signed int xx = x, yy = y, r1, r2;
    	if ((unsigned int) xx << 1 == 0 && yy == -1)
    	  continue;
    	r1 = xx / yy;
    	r2 = xx % yy;
    	if (ABS (r2) >= (unsigned int) ABS (yy) || (signed int) (r1 * yy + r2) != xx)
    	  abort ();
      }

Our routine returns : 
R1: 0xffffffff
R2: 0xf

Then it aborts because ABS (r2) >= (unsigned int) ABS (yy).
While I understand the results from our division routine might be peculiar, this division is also undefined.

The block skips the test for ((unsigned int) xx << 1 == 0 && yy == -1), should we skip it if they're both zero as
well? If not, what do you expect to get from 0/0 and 0%0?

Regards,

Paulo Matos

Paolo Carlini | 28 Jul 10:55 2015
Picon

[C++ Patch, preapproved] Prefer DECL_SOURCE_LOCATION to "+D" and "+#D" (2/n)

Hi,

other bits. Tested x86_64-linux.

Thanks,
Paolo.

//////////////////////
2015-07-28  Paolo Carlini  <paolo.carlini <at> oracle.com>

	* call.c (build_op_delete_call, convert_like_real, build_over_call):
	Use Use DECL_SOURCE_LOCATION and "%qD" in inform and pedwarn instead
	of "%q+D".
	* constexpr.c (explain_invalid_constexpr_fn): Likewise.
	* decl.c (duplicate_decls): Likewise for warning/warning_at.
	* except.c (maybe_noexcept_warning): Likewise.
	* friend.c (make_friend_class): Likewise for inform.
	* mangle.c (mangle_decl): Likewise for warning/warning_at.
	* method.c (process_subob_fn, walk_field_subobs,
	maybe_explain_implicit_delete): Likewise for inform.
	* parser.c (cp_parser_lambda_introducer): Likewise.
	* pt.c (check_specialization_namespace,
	maybe_process_partial_specialization): Likewise for permerror.
	(redeclare_class_template): Likewise for inform_n.
	(coerce_template_parms, tsubst_copy_and_build): Likewise for inform.
	* search.c (check_final_overrider): Likewise.
	* semantics.c (process_outer_var_ref): Likewise.
(Continue reading)

Uday Khedker | 27 Jul 19:14 2015
Picon

Preserving tree node fields for access in LTO?


We have added a new field (bool ptr_arith in struct tree_base) to the 
tree node. We are assigning values to this field in a gimple pass in 
non-LTO mode and would like to access them in LTO mode in our ipa 
passes. It appears that all fields of tree node are not preserved in LTO 
mode. Is there any way to tell GCC that a given field should be 
preserved so that it can be accessed in LTO mode?

Thanks and regards,

Uday.

------------------------------------------------------------------------
Dr. Uday Khedker, Professor
Department of Computer Science & Engg.
IIT Bombay, Powai, Mumbai 400 076, India. 	
Email : 	 uday <at> cse.iitb.ac.in
Homepage: 	 http://www.cse.iitb.ac.in/~uday
Phone : 	  91 (22) 2572 2545 x 7717, 91 (22) 2576 7717 (Direct)

Uday Khedker | 27 Jul 12:05 2015
Picon

Typecasting information in MEM[...] GIMPLE

We are interested in extracting the type of a tree node that appears 
within MEM_REF.

Given a C program:

     struct node * * pvar;
     struct node qvar;
     pvar = (struct node * *) malloc (sizeof (struct node *));
     *pvar = &qvar;

It is transformed into the following GIMPLE code:

     void * * pvar.1;
     void * pvar.0;
     pvar.0_1 = malloc (4);
     pvar = pvar.0_1;
     MEM[(struct node * *)pvar.0_1] = &qvar;

We wish to discover the type of the argument of MEM[...] in the last
GIMPLE statement. We can see from the GIMPLE dump that the argument's
type is "struct node * *". How do we extract this from the tree
definition of MEM[...]?

We speculate the following solution: Given a variable var (whose tree is 
tree_of_var) and a tree, say t,

     if (TREE_CODE(t) is MEM_REF) and (TREE_OPERAND(t, 0) is tree_of_var)
     then
         the type of the expression inside MEM[...] of tree t is
         POINTER_TYPE to TREE_TYPE(t).
(Continue reading)

gccadmin | 27 Jul 00:36 2015
Picon

gcc-6-20150726 is now available

Snapshot gcc-6-20150726 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/6-20150726/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 6 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 226237

You'll find:

 gcc-6-20150726.tar.bz2               Complete GCC

  MD5=b73af3b2a26a700429fe6a4ecc9db609
  SHA1=06b9b9a750cb21eabda0c6a1308e7bdc09564237

Diffs from 6-20150719 are available in the diffs/ subdirectory.

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

sindhu selvam | 24 Jul 19:31 2015
Picon

cannot find crti.o error, while building gcc cross compiler

I am trying to build a GCC (version 4.9.3)cross compiler on my windows
machine using Cygwin. I am using the source package that came along
with cygwin.

I have already built binutils version 2.25 and installed, this is
through cygwin as well.

binutils configuration used:

../binutils-x.y.z/configure --target=$TARGET --prefix="$PREFIX"
--with-sysroot --disable-nls --disable-werror

I then configured GCC with the following configuration

../gcc-x.y.z/configure --target=$TARGET --prefix="$PREFIX"
--disable-nls --enable-languages=c,c++ --without-headers
--disable-threads

Then the make all-gcc went through fine.

I am getting error when I try to run make all-target-libgcc

Following is the error that I encounter.

#  <at> multilib_flags <at>  is still needed because this may use
# /build/gcc/./gcc/xgcc -B/build/gcc/./gcc/
-B/usr/local/cross/x86_64-pc-linux-gnu/bin/
-B/usr/local/cross/x86_64-pc-linux-gnu/lib/ -isystem
/usr/local/cross/x86_64-pc-linux-gnu/include -isystem
/usr/local/cross/x86_64-pc-linux-gnu
(Continue reading)

Martin Jambor | 24 Jul 15:46 2015
Picon

Cauldron Accelerator BoF call for agenda proposals

Hello,

because Thomas Schwinge unfortunately cannot attend the Cauldron this
year, I have volunteered to take care of organizing an Accelerator BoF
at the event (at the moment conveniently scheduled for Sunday 10am).

This email is not only an invitation to participate but also a call
for agenda items.  Although it will certainly be possible to propose a
topic for discussion on the spot, giving me a heads-up beforehand
might help me to organize them better.  And this call is also meant to
give a chance to propose a topic to those who will not be coming to
Prague.

Therefore, if you already know what we should discuss at the BoF, let
me know.  If think you need a little bit of inspiration, you can look
at an old agenda proposal at
http://thread.gmane.org/gmane.comp.gcc.devel/131560

My proposed topics will be about reconciling "offloading via LTO" and
"HSA offloading" and about issues regarding OpenMP constructs
expansion for GPGPUs.

I'm looking forward to meeting many of you in Prague,

Martin


Gmane