This is the mail archive of the gcc@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: GCC mini-summit - benchmarks


On Mon, Apr 23, 2007 at 09:49:04AM -0700, Steve Ellcey wrote:
> Jim Wilson wrote:
> 
> > Kenneth Hoste wrote:
> > > I'm not sure what 'tests' mean here... Are test cases being extracted
> > > from the SPEC CPU2006 sources? Or are you refering to the validity tests
> > > of the SPEC framework itself (to check whether the output generated by
> > > some binary conforms with their reference output)?
> > 
> > The claim is that SPEC CPU2006 has source code bugs that cause it to
> > fail when compiled by gcc.  We weren't given a specific list of problem.
> 
> HJ, can you give us the specifics on the SPEC 2006 failures you were
> seeing?
> 
> I remember the perlbench failure, it was IA64 specific, and was due to
> the SPEC config file spec_config.h that defines the attribute keyword to
> be null, thus eliminating all attributes.  On IA64 Linux, in the
> /usr/include/bits/setjmp.h header file, the __jmp_buf buffer is defined
> to have an aligned attribute on it.  If the buffer isn't aligned the
> perlbench program fails.
> 
> I believe another problem was an uninitialized local variable in a 
> Fortran program, but I don't recall which program or which variable
> that was.


This is what I sent to SPEC.


H.J.
----
465.tonto in SPEC CPU 2006 has many checks for pointers like:

	ENSURE(NOT associated(self%ex),"SHELL1:copy_1 ... ex not destroyed")

It calls the "associated" intrinsic on a pointer to check if a
pointer is pointing to some data.

According to Fortran standard, associated should be used on
initialized pointers. The behavor of calling associated on
uninitialized pointers is undefined or compiler dependent.

Tonto tries to initialize pointers in structures by calling
nullify_ptr_part_ on stack variables to ensure that pointers
in stack variables are properly initialized. However, not all
pointers in stack variables are initialized. As the result,
the binary compiled by gcc 4.2 failed at runtime with

Error in routine SHELL1:copy_1 ... ex not destroyed

I am enclosing a patch which adds those missing calls of
nullify_ptr_part_.

Thanks.


H.J.


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