Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

llvm-gcc

The Mac OS X port uses team plans to use the LLVM-GCC compiler (like the Apple's proprietary Apple JDK 6 does) until the JDK and HotSpot can be compiled completely with the LLVM Clang compiler.

-Os vs. -O3

Per Apple Mac OS X development policy, we use the -Os (size) optimization level, as opposed to instead of -O3. On Mac OS X, gcc, llvm-gcc, and clang all provide very good optimizations at -Os without reverting to excessive loop unrolling. Whole system testing has shown that cost of paging in larger binaries and instruction cache misses can outweigh the benefits of -O3.

The Java team's last evaluation of compiling HotSpot with -O3 vs. -Os in late 2010 showed statistically equivalent performance on several long running JVM benchmarks.

-mstackrealign

Mac OS X requires all stack frames to be 16-byte aligned in both 32 and 64-bit. Assembly stub functions within HotSpot do not natively perform this alignment in i386, so we make the compiler ensure that alignment is done at the call point.

...