-
Enhancement
-
Resolution: Fixed
-
P4
-
9
For force inlining, JDK-8076212 uses always_inline attribute to them.
JDK-8151593 added ALWAYSINLINE macro for force inlining.
For consistency, and for other compiler support, AllocateHeap() and
ReallocateHeap() should use ALWAYSINLINE.
I used ALWAYSINLINE to them, but I got error message as below;
------------------------------
Building target 'images' in configuration 'linux-x86_64-normal-server-release'
In file included from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/utilities/array.hpp:29:0,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/memory/universe.hpp:29,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/code/oopRecorder.hpp:28,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/asm/codeBuffer.hpp:28,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/asm/assembler.hpp:28,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/precompiled/precompiled.hpp:29:
/home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/memory/allocation.inline.hpp:72:20: エラー: always_inline function might not be inlinable [-Werror=attributes]
ALWAYSINLINE char* ReallocateHeap(char *old, size_t size, MEMFLAGS flag,
^
------------------------------
According to GCC manual [1], non-static inline function is always compiled
on its own in the usual fashion.
However, we can compile as inline function with "inline" and "always_inline".
always_inline attribute does not imply inlining [2].
GCC testcase [3] uses both "inline" and "always_inline" actually.
[1] https://gcc.gnu.org/onlinedocs/gcc/Inline.html
[2] https://chromiumcodereview.appspot.com/14820003/
[3] https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/testsuite/gcc.dg/vmx/gcc-bug-i.c?view=markup&pathrev=178730
For consistency, and for other compiler support, AllocateHeap() and
ReallocateHeap() should use ALWAYSINLINE.
I used ALWAYSINLINE to them, but I got error message as below;
------------------------------
Building target 'images' in configuration 'linux-x86_64-normal-server-release'
In file included from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/utilities/array.hpp:29:0,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/memory/universe.hpp:29,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/code/oopRecorder.hpp:28,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/asm/codeBuffer.hpp:28,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/asm/assembler.hpp:28,
from /home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/precompiled/precompiled.hpp:29:
/home/ysuenaga/OpenJDK/hs-rt/hotspot/src/share/vm/memory/allocation.inline.hpp:72:20: エラー: always_inline function might not be inlinable [-Werror=attributes]
ALWAYSINLINE char* ReallocateHeap(char *old, size_t size, MEMFLAGS flag,
^
------------------------------
According to GCC manual [1], non-static inline function is always compiled
on its own in the usual fashion.
However, we can compile as inline function with "inline" and "always_inline".
always_inline attribute does not imply inlining [2].
GCC testcase [3] uses both "inline" and "always_inline" actually.
[1] https://gcc.gnu.org/onlinedocs/gcc/Inline.html
[2] https://chromiumcodereview.appspot.com/14820003/
[3] https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/testsuite/gcc.dg/vmx/gcc-bug-i.c?view=markup&pathrev=178730
- relates to
-
JDK-8076212 AllocateHeap() and ReallocateHeap() should be inlined.
-
- Resolved
-
-
JDK-8151593 Cleanup definition/usage of INLINE/NOINLINE macros and add xlC support
-
- Resolved
-