This is the mail archive of the gcc-patches@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: ipa-icf::merge TLC


On 02/25/2015 06:15 PM, Jan Hubicka wrote:
On 2015.02.25 at 09:38 +0100, Jan Hubicka wrote:
this patch reorganize sem_function::merge and sem_variable::merge.
I read the code in detail and found several issues that are fixed in the
following patch.

I gave your patch a quick spin. It breaks Chromium. Its protocol buffer
compiler gets miscompiled:

I see (I remember running into simiarly looking ICE last time I tried Chromium).
Is there any chance you can look into what gets wrong?  I added enough of sanity checking
code so I do not see how merging itself can lead to wrong codes without ICEing,
but the patch makes considerably more merging to happen (old code had bug where it
tried to merge but didn't), so we may run into another previously latent issue.
Martin has 3 correctness ipa-icf patches in a way, so perhaps one of them ;)

Honza

Hello.

I've just updated chromium to latest version, but unfortunately I cannot reproduce the memory corruption.
Which build flags do you use Markus for Chromium? Can you please run valgrind to spot the problematic function?
Moreover, I would appreciate if you will be able to find corresponding merge operation (-fdump-ipa-icf)

Thank you,
Martin


  RULE Generating C++ and Python code from copresence/proto/enums.proto
FAILED: cd ../../components; python ../tools/protoc_wrapper/protoc_wrapper.py --include "" --protobuf "../out/Release/gen/protoc_out/components/copresence/proto/enums.pb.h" -
-proto-in-dir copresence/proto --proto-in-file "enums.proto" "--use-system-protobuf=0" -- ../out/Release/protoc --cpp_out ../out/Release/gen/protoc_out/components/copresence/
proto --python_out ../out/Release/pyproto/components/copresence/proto
*** Error in `../out/Release/protoc': double free or corruption (out): 0x00007ffd966468b0 ***
======= Backtrace: =========
/lib/libc.so.6(+0x7265e)[0x7fe09058065e]
/lib/libc.so.6(+0x77f1d)[0x7fe090585f1d]
/lib/libc.so.6(+0x7874b)[0x7fe09058674b]
../out/Release/protoc[0x45f5e1]
../out/Release/protoc[0x462caf]
../out/Release/protoc[0x462d1c]
../out/Release/protoc[0x46685c]
../out/Release/protoc[0x4677d5]
../out/Release/protoc[0x4679c3]
../out/Release/protoc[0x467b15]
../out/Release/protoc[0x479d89]
../out/Release/protoc[0x4aa058]
../out/Release/protoc[0x4aa0af]
../out/Release/protoc[0x46b217]
../out/Release/protoc[0x4a4832]
../out/Release/protoc[0x4a86cf]
../out/Release/protoc[0x4a890e]
../out/Release/protoc[0x4a0827]
../out/Release/protoc[0x4678fd]
../out/Release/protoc[0x467b15]
../out/Release/protoc[0x40c926]
../out/Release/protoc[0x403131]
/lib/libc.so.6(__libc_start_main+0xf0)[0x7fe09052e6d0]
../out/Release/protoc[0x4037f9]
======= Memory map: ========
00400000-004eb000 r-xp 00000000 00:13 36244132                           /var/tmp/chromium/src/out/Release/protoc
004ec000-004ef000 r--p 000eb000 00:13 36244132                           /var/tmp/chromium/src/out/Release/protoc
004ef000-004f0000 rw-p 000ee000 00:13 36244132                           /var/tmp/chromium/src/out/Release/protoc
01ab0000-01b03000 rw-p 00000000 00:00 0                                  [heap]
7fe09027f000-7fe09030d000 r-xp 00000000 00:0f 2540736                    /lib64/libm-2.21.90.so
7fe09030d000-7fe09050c000 ---p 0008e000 00:0f 2540736                    /lib64/libm-2.21.90.so
7fe09050c000-7fe09050d000 r--p 0008d000 00:0f 2540736                    /lib64/libm-2.21.90.so
7fe09050d000-7fe09050e000 rw-p 0008e000 00:0f 2540736                    /lib64/libm-2.21.90.so
7fe09050e000-7fe09066e000 r-xp 00000000 00:0f 2541268                    /lib64/libc-2.21.90.so
7fe09066e000-7fe09086d000 ---p 00160000 00:0f 2541268                    /lib64/libc-2.21.90.so
7fe09086d000-7fe090871000 r--p 0015f000 00:0f 2541268                    /lib64/libc-2.21.90.so
7fe090871000-7fe090873000 rw-p 00163000 00:0f 2541268                    /lib64/libc-2.21.90.so
7fe090873000-7fe090877000 rw-p 00000000 00:00 0
7fe090877000-7fe09088f000 r-xp 00000000 00:0f 2541131                    /lib64/libpthread-2.21.90.so
7fe09088f000-7fe090a8e000 ---p 00018000 00:0f 2541131                    /lib64/libpthread-2.21.90.so
7fe090a8e000-7fe090a8f000 r--p 00017000 00:0f 2541131                    /lib64/libpthread-2.21.90.so
7fe090a8f000-7fe090a90000 rw-p 00018000 00:0f 2541131                    /lib64/libpthread-2.21.90.so
7fe090a90000-7fe090a94000 rw-p 00000000 00:00 0
7fe090a94000-7fe090ab6000 r-xp 00000000 00:0f 2541267                    /lib64/ld-2.21.90.so
7fe090ad2000-7fe090ad7000 rw-p 00000000 00:00 0
7fe090ad7000-7fe090aee000 r-xp 00000000 00:0f 72800                      /lib64/libgcc_s.so.1
7fe090aee000-7fe090aef000 rw-p 00016000 00:0f 72800                      /lib64/libgcc_s.so.1
7fe090aef000-7fe090af0000 rw-p 00000000 00:00 0
7fe090af0000-7fe090c7b000 r-xp 00000000 00:0f 3018239                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.0.0/libstdc++.so.6.0.21
7fe090c7b000-7fe090c7c000 ---p 0018b000 00:0f 3018239                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.0.0/libstdc++.so.6.0.21
7fe090c7c000-7fe090c86000 r--p 0018b000 00:0f 3018239                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.0.0/libstdc++.so.6.0.21
7fe090c86000-7fe090c8a000 rw-p 00195000 00:0f 3018239                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.0.0/libstdc++.so.6.0.21
7fe090c8a000-7fe090c8d000 rw-p 00000000 00:00 0
7fe090cb3000-7fe090cb5000 rw-p 00000000 00:00 0
7fe090cb5000-7fe090cb6000 r--p 00021000 00:0f 2541267                    /lib64/ld-2.21.90.so
7fe090cb6000-7fe090cb7000 rw-p 00022000 00:0f 2541267                    /lib64/ld-2.21.90.so
7fe090cb7000-7fe090cb8000 rw-p 00000000 00:00 0
7ffd96628000-7ffd96649000 rw-p 00000000 00:00 0                          [stack]
7ffd967e4000-7ffd967e6000 r--p 00000000 00:00 0                          [vvar]
7ffd967e6000-7ffd967e8000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

--
Markus


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