[Bug c/56572] New: GCC generates non-optimal transactional code when inlining nested transaction.

2013-03-08 Thread srdjan.stipic at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56572



 Bug #: 56572

   Summary: GCC generates non-optimal transactional code when

inlining nested transaction.

Classification: Unclassified

   Product: gcc

   Version: trans-mem

Status: UNCONFIRMED

  Severity: minor

  Priority: P3

 Component: c

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: srdjan.sti...@gmail.com





GCC generates non-optimal transactional code

when inlining function that has transactional code.

This affects gcc-4.7 and gcc-4.8 (gcc version 4.8.0 20130222 (experimental)).



// example

int a;



static inline void f() {

  __transaction_atomic {

++a;

  }

}



void g() {

  __transaction_atomic {

f();

  }

}



void h() {

  __transaction_atomic {

__transaction_atomic {

  ++a;

}

  }  

}



Generated code:



g():

subq$8, %rsp

movl$41, %edi

xorl%eax, %eax

call_ITM_beginTransaction

movl$41, %edi

xorl%eax, %eax

call_ITM_beginTransaction

movl$a, %edi

call_ITM_RfWU4

leal1(%rax), %esi

movl$a, %edi

call_ITM_WaWU4

call_ITM_commitTransaction

call_ITM_commitTransaction

addq$8, %rsp

ret

h():

subq$8, %rsp

movl$41, %edi

xorl%eax, %eax

call_ITM_beginTransaction

movl$a, %edi

call_ITM_RfWU4

leal1(%rax), %esi

movl$a, %edi

call_ITM_WaWU4

call_ITM_commitTransaction

addq$8, %rsp

ret





The bug:

The functions g() and h() should have the __same__ asm.

The problem is that GCC doesn't remove __nested__

_ITM_beginTransaction()/_ITM_commitTransaction

that are known at compile time.



Compiled with:



gcc-4.7 -v -O2 -fgnu-tm -c example.c 

Using built-in specs.

COLLECT_GCC=gcc

Target: x86_64-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro

4.7.2-5ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs

--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr

--program-suffix=-4.7 --enable-shared --enable-linker-build-id

--with-system-zlib --libexecdir=/usr/lib --without-included-gettext

--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7

--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu

--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object

--enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686

--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu

--host=x86_64-linux-gnu --target=x86_64-linux-gnu

Thread model: posix

gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-5ubuntu1) 

COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64'

'-pthread'

 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -imultiarch x86_64-linux-gnu

-D_REENTRANT example.c -quiet -dumpbase example.c -mtune=generic -march=x86-64

-auxbase example -O2 -version -fgnu-tm -fstack-protector -o /tmp/ccKJdU1H.s

GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu)

compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,

MPC version 0.9

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu

ignoring nonexistent directory

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include

#include ... search starts here:

#include ... search starts here:

 /usr/lib/gcc/x86_64-linux-gnu/4.7/include

 /usr/local/include

 /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed

 /usr/include/x86_64-linux-gnu

 /usr/include

End of search list.

GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu)

compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,

MPC version 0.9

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

Compiler executable checksum: fbb4af59dce4dce949ee30395742b8d0

COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64'

'-pthread'

 as -v --64 -o example.o /tmp/ccKJdU1H.s

GNU assembler version 2.22.90 (x86_64-linux-gnu) using BFD version (GNU

Binutils for Ubuntu) 2.22.90.20120924

COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/

LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/

COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64'

'-pthread'


[Bug c/56573] New: GCC generates non-optimal transactional code when inlining nested transaction.

2013-03-08 Thread srdjan.stipic at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56573



 Bug #: 56573

   Summary: GCC generates non-optimal transactional code when

inlining nested transaction.

Classification: Unclassified

   Product: gcc

   Version: trans-mem

Status: UNCONFIRMED

  Severity: minor

  Priority: P3

 Component: c

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: srdjan.sti...@gmail.com





Created attachment 29621

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29621

Minimal test case.



GCC generates non-optimal transactional code

when inlining function that has transactional code.

This affects gcc-4.7 and gcc-4.8 (gcc version 4.8.0 20130222 (experimental)).



// example

int a;



static inline void f() {

  __transaction_atomic {

++a;

  }

}



void g() {

  __transaction_atomic {

f();

  }

}



void h() {

  __transaction_atomic {

__transaction_atomic {

  ++a;

}

  }  

}



Generated code:



g():

subq$8, %rsp

movl$41, %edi

xorl%eax, %eax

call_ITM_beginTransaction

movl$41, %edi

xorl%eax, %eax

call_ITM_beginTransaction

movl$a, %edi

call_ITM_RfWU4

leal1(%rax), %esi

movl$a, %edi

call_ITM_WaWU4

call_ITM_commitTransaction

call_ITM_commitTransaction

addq$8, %rsp

ret

h():

subq$8, %rsp

movl$41, %edi

xorl%eax, %eax

call_ITM_beginTransaction

movl$a, %edi

call_ITM_RfWU4

leal1(%rax), %esi

movl$a, %edi

call_ITM_WaWU4

call_ITM_commitTransaction

addq$8, %rsp

ret





The bug:

The functions g() and h() should have the __same__ asm.

The problem is that GCC doesn't remove __nested__

_ITM_beginTransaction()/_ITM_commitTransaction

that are known at compile time.



Compiled with:



gcc-4.7 -v -O2 -fgnu-tm -c example.c 

Using built-in specs.

COLLECT_GCC=gcc

Target: x86_64-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro

4.7.2-5ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs

--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr

--program-suffix=-4.7 --enable-shared --enable-linker-build-id

--with-system-zlib --libexecdir=/usr/lib --without-included-gettext

--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7

--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu

--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object

--enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686

--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu

--host=x86_64-linux-gnu --target=x86_64-linux-gnu

Thread model: posix

gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-5ubuntu1) 

COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64'

'-pthread'

 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -imultiarch x86_64-linux-gnu

-D_REENTRANT example.c -quiet -dumpbase example.c -mtune=generic -march=x86-64

-auxbase example -O2 -version -fgnu-tm -fstack-protector -o /tmp/ccKJdU1H.s

GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu)

compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,

MPC version 0.9

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu

ignoring nonexistent directory

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include

#include ... search starts here:

#include ... search starts here:

 /usr/lib/gcc/x86_64-linux-gnu/4.7/include

 /usr/local/include

 /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed

 /usr/include/x86_64-linux-gnu

 /usr/include

End of search list.

GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu)

compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,

MPC version 0.9

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

Compiler executable checksum: fbb4af59dce4dce949ee30395742b8d0

COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64'

'-pthread'

 as -v --64 -o example.o /tmp/ccKJdU1H.s

GNU assembler version 2.22.90 (x86_64-linux-gnu) using BFD version (GNU

Binutils for Ubuntu) 2.22.90.20120924

COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/

LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/

COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' 

[Bug c/56140] New: GCC inlines incorrect function in __transaction_relaxed

2013-01-29 Thread srdjan.stipic at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56140



 Bug #: 56140

   Summary: GCC inlines incorrect function in

__transaction_relaxed

Classification: Unclassified

   Product: gcc

   Version: trans-mem

Status: UNCONFIRMED

  Severity: minor

  Priority: P3

 Component: c

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: srdjan.sti...@gmail.com





Created attachment 29301

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29301

Test case.



BUG: GCC inlines tm_clone function in serial irrevocable transaction.

This is incorrect and causes the slowdown of irrevocable transactions.

The correct behavior it to inline non-instrumented function.



The bug is present in 4.7.2 and 4.8 (gcc version 4.8.0 20130129)

when compiling with -O1, -O2, -O3.



// examle.c

int a;



__attribute__((noinline))

void g() {

  asm();

}



__attribute__((noinline))

void f1() {

  a++;

}



inline

void f2() {

  a++;

}



int main() {

  __transaction_relaxed {

g();  // start transaction in irrevocable mode

f1();

f2(); // BUG: compiler inlines tm_clone of f2()

  // BUG FIX: compiler should inline original f2()

  }

  return 0;

}



Generated code:



g():

ret

f1():

addl$1, a(%rip)

ret

f2():

addl$1, a(%rip)

ret

main:

subq$8, %rsp

movl$74, %edi

xorl%eax, %eax

call_ITM_beginTransaction

callg()

callf1()

movl$a, %edi

call_ITM_RfWU4

leal1(%rax), %esi

movl$a, %edi

call_ITM_WaWU4

call_ITM_commitTransaction

xorl%eax, %eax

addq$8, %rsp

ret

a:

.zero4





Compiled with:



~# gcc-4.7 -v -O1 example.c -fgnu-tm -c

Using built-in specs.

COLLECT_GCC=gcc-4.7

Target: x86_64-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro

4.7.2-5ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs

--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr

--program-suffix=-4.7 --enable-shared --enable-linker-build-id

--with-system-zlib --libexecdir=/usr/lib --without-included-gettext

--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7

--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu

--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object

--enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686

--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu

--host=x86_64-linux-gnu --target=x86_64-linux-gnu

Thread model: posix

gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-5ubuntu1) 

COLLECT_GCC_OPTIONS='-v' '-O1' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64'

'-pthread'

 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -imultiarch x86_64-linux-gnu

-D_REENTRANT example.c -quiet -dumpbase example.c -mtune=generic -march=x86-64

-auxbase example -O1 -version -fgnu-tm -fstack-protector -o /tmp/ccC3mWQQ.s

GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu)

compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,

MPC version 0.9

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu

ignoring nonexistent directory

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include

#include ... search starts here:

#include ... search starts here:

 /usr/lib/gcc/x86_64-linux-gnu/4.7/include

 /usr/local/include

 /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed

 /usr/include/x86_64-linux-gnu

 /usr/include

End of search list.

GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu)

compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,

MPC version 0.9

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

Compiler executable checksum: fbb4af59dce4dce949ee30395742b8d0

COLLECT_GCC_OPTIONS='-v' '-O1' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64'

'-pthread'

 as -v --64 -o example.o /tmp/ccC3mWQQ.s

GNU assembler version 2.22.90 (x86_64-linux-gnu) using BFD version (GNU

Binutils for Ubuntu) 2.22.90.20120924

COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/

LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/

COLLECT_GCC_OPTIONS='-v' '-O1' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64'

'-pthread'


[Bug c/56108] New: Asm statement in transaction_relaxed crashes compiler.

2013-01-25 Thread srdjan.stipic at gmail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56108

 Bug #: 56108
   Summary: Asm statement in transaction_relaxed crashes compiler.
Classification: Unclassified
   Product: gcc
   Version: trans-mem
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: srdjan.sti...@gmail.com


Created attachment 29273
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29273
Minimal test case.

Asm statement in transaction_relaxed crashes compiler.

Example:

// file: min.c
int main() {
  __transaction_relaxed{ asm(); }
  return 0;
}

Compiler error:

~# gcc -fgnu-tm min.c -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object
--enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) 
COLLECT_GCC_OPTIONS='-fgnu-tm' '-v' '-mtune=generic' '-march=x86-64' '-pthread'
 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -imultiarch x86_64-linux-gnu
-D_REENTRANT min.c -quiet -dumpbase min.c -mtune=generic -march=x86-64 -auxbase
min -version -fgnu-tm -fstack-protector -o /tmp/cckJBrnc.s
GNU C (Ubuntu/Linaro 4.7.2-2ubuntu1) version 4.7.2 (x86_64-linux-gnu)
compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu
ignoring nonexistent directory
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
GNU C (Ubuntu/Linaro 4.7.2-2ubuntu1) version 4.7.2 (x86_64-linux-gnu)
compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: efa32fef7aa241fa03ac6d7ad2a4a2cf
min.c: In function ‘main’:
min.c:1:5: internal compiler error: in expand_block_tm, at trans-mem.c:2375
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.7/README.Bugs for instructions.
Preprocessed source stored into /tmp/ccPdFHFN.out file, please attach this to
your bugreport.


[Bug c/54646] New: gcc-4.7 crashes during compilation

2012-09-20 Thread srdjan.stipic at gmail dot com

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54646

 Bug #: 54646
   Summary: gcc-4.7 crashes during compilation
Classification: Unclassified
   Product: gcc
   Version: trans-mem
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: srdjan.sti...@gmail.com


Created attachment 28239
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28239
compiler generated file (copy of the input program)

gcc-4.7 crashes during compilation of the following program:

int a;

int main() {
  int i;
  for (i = 0; i  1; ++i) {
__transaction_atomic {
  ++a;
}
  }
  return 0;
}

Machine:

uname -a
Linux srdjan-Latitude-E6410 3.2.0-30-generic #48-Ubuntu SMP Fri Aug 24 16:52:48
UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Program is compiled with:

gcc-4.7 -save-temps -v -O3 -fgnu-tm gccbug.c
Using built-in specs.
COLLECT_GCC=gcc-4.7
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.7.0-7ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7
--libdir=/usr/lib --enable-nls --disable-bootstrap --with-sysroot=/
--enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror
--with-arch-32=i686 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.0 (Ubuntu/Linaro 4.7.0-7ubuntu3) 
COLLECT_GCC_OPTIONS='-save-temps' '-v' '-O3' '-fgnu-tm' '-mtune=generic'
'-march=x86-64' '-pthread'
 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -E -quiet -v -imultiarch
x86_64-linux-gnu -D_REENTRANT gccbug.c -mtune=generic -march=x86-64 -fgnu-tm
-O3 -fpch-preprocess -fstack-protector -o gccbug.i
ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu
ignoring nonexistent directory
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-save-temps' '-v' '-O3' '-fgnu-tm' '-mtune=generic'
'-march=x86-64' '-pthread'
 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -fpreprocessed gccbug.i -quiet -dumpbase
gccbug.c -mtune=generic -march=x86-64 -auxbase gccbug -O3 -version -fgnu-tm
-fstack-protector -o gccbug.s
GNU C (Ubuntu/Linaro 4.7.0-7ubuntu3) version 4.7.0 (x86_64-linux-gnu)
compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C (Ubuntu/Linaro 4.7.0-7ubuntu3) version 4.7.0 (x86_64-linux-gnu)
compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 354a288ebaaed8d49a2cf74c30c06d62
gccbug.c: In function ‘main’:
gccbug.c:3:5: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.7/README.Bugs for instructions.
Preprocessed source stored into /tmp/cczqotdH.out file, please attach this to
your bugreport.