• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Export Word
    • Attachments
    • Page Information

    Loading...
  1. Dashboard
  2. Port: MacOSX
  3. Main
  4. Mac OS X Port Development
  5. Compiler Errata

Compiler Errata

  • Created by Mike Swingler, last modified by Brian Beck on Jan 18, 2013

llvm-gcc

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

-Os vs. -O3

The Mac OS X port uses the -Os (size) optimization level, instead of -O3 (also as Apple's proprietary Java SE 6 does). 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.

This option works in GCC 4.0, but not in GCC 4.2. LLVM-GCC supports this option in Xcode 3.2.6 and Xcode 4.0.

SVN trunk builds of Clang support this, but no stable builds do.

Overview
Content Tools
ThemeBuilder
  • No labels

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.22
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 185, "requestCorrelationId": "8a9adb355b3d3960"}