Review Request: 6896043: Zero fixes

Andrew John Hughes gnu_andrew at member.fsf.org
Wed Dec 2 06:22:57 PST 2009


2009/11/25 Gary Benson <gbenson at redhat.com>:
> That's an IcedTea patch.  On Fedora, everything is built -g -O2, and
> the debuginfo is stripped out and stored into a separate package.  The
> header files, etc, are likewise separated into another package, and
> the end result is, for example, zlib, zlib-devel, and zlib-debuginfo.
> If you just want to use zlib then all you install is zlib.  If you
> want to build an application against it then you need to install
> zlib-devel, and if you want to debug an application that uses zlib
> then you install zlib-debuginfo.
>
> Cheers,
> Gary
>
> Vladimir Kozlov wrote:
>> Your options have -g debug option but you build -DPRODUCT.
>>
>> Vladimir
>>
>> Gary Benson wrote:
>> > Andrew Haley wrote:
>> > > If you really want these functions to be inline, you have to
>> > > specify it.  Having said that, if you define a member function
>> > > within a class definition, then it is inline.
>> >
>> > I never thought to check that the inline statement was actually
>> > doing anything, but apparently it isn't:
>> >
>> >   ...
>> >   #31 CppInterpreter::main_loop (recurse=<value optimized out>, __the_thread__=0x617d80) at hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:110
>> >   #32 0x00007ffff70d4aff in ZeroEntry::invoke () at hotspot/src/cpu/zero/vm/entry_zero.hpp:54
>> >   #33 Interpreter::invoke_method () at hotspot/src/cpu/zero/vm/interpreter_zero.hpp:28
>> >   #34 CppInterpreter::main_loop (recurse=<value optimized out>, __the_thread__=0x617d80) at hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:110
>> >   #35 0x00007ffff72d3173 in ZeroEntry::invoke () at hotspot/src/cpu/zero/vm/entry_zero.hpp:54
>> >   #36 Interpreter::invoke_method () at hotspot/src/cpu/zero/vm/interpreter_zero.hpp:28
>> >   #37 StubGenerator::call_stub (call_wrapper=<value optimized out>, result=0x7ffff6d30f78, result_type=T_INT, method=0x7ffff02f8e98, entry_point=0x7ffff41371a0,
>> >     parameters=<value optimized out>, parameter_words=1, __the_thread__=0x617d80) at hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp:67
>> >   ...
>> >
>> > First things first: I'll remove the addition of the inline statements
>> > from the webrev.  Secondly, Andrew, do you have any idea why these
>> > functions aren't being inlined?  I'd expect the backtrace to look like
>> > this:
>> >     ...
>> >   #35 CppInterpreter::main_loop (recurse=<value optimized out>, __the_thread__=0x617d80) at hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:110
>> >   #36 CppInterpreter::main_loop (recurse=<value optimized out>, __the_thread__=0x617d80) at hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:110
>> >   #37 StubGenerator::call_stub (call_wrapper=<value optimized out>, result=0x7ffff6d30f78, result_type=T_INT, method=0x7ffff02f8e98, entry_point=0x7ffff41371a0,
>> >     parameters=<value optimized out>, parameter_words=1, __the_thread__=0x617d80) at hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp:67
>> >   ...
>> >
>> > The files are being compiled with these options:
>> >
>> >   g++ -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DAMD64 -DZERO_LIBARCH=\"amd64\" -DPRODUCT -I. -I../generated/adfiles -I../generated/jvmtifiles -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/asm -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/c1 -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/ci -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/classfile -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/code -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/compiler -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/gc_implementation -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/gc_implementation/g1 -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parNew -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/gc_implementation/shared -I/home/gary/work/icedte
>> a6/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/gc_interface -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/interpreter -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/memory -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/oops -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/prims -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/runtime -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/services -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/shark -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/utilities -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/cpu/zero/vm -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/os/linux/vm -I/home/gary/work/icedtea6/openjdk-ecj/hotspot/src/os_cpu/linux_zero/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"14.0-b16\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BU
>> ILD_USER="\"gary\"" -DHOTSPOT_LIB_ARCH=\"amd64\" -DJRE_RELEASE_VERSION="\"1.6.0_0-b17\"" -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -DSHARK -I/usr/lib64/libffi-3.0.5/include   -I/home/gary/work/llvm/llvm-2.6/include -I/home/gary/work/llvm/llvm-2.6/include   -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS   -fPIC -Woverloaded-virtual -DSHARK_LLVM_VERSION=26 -fpic -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -m64 -pipe -g -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=1 -Werror -Wpointer-arith -Wsign-compare    -c -o vframe_hp.o /home/gary/work/icedtea6/openjdk-ecj/hotspot/src/share/vm/runtime/vframe_hp.cpp
>> >
>> > Cheers,
>> > Gary
>
> --
> http://gbenson.net/
>


Thanks to Andrew Haley, the behaviour is generally available in
OpenJDK by setting DEBUG_BINARIES=true:

http://hg.openjdk.java.net/jdk7/jdk7/hotspot/rev/5d4dd2f5f6a10

For the record, I believe this is the final push of Gary's webrev:
http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/8e7adf982378
-- 
Andrew :-)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


More information about the hotspot-compiler-dev mailing list