Mercurial > hg > truffle
comparison make/aix/makefiles/ppc64.make @ 14460:8a9bb7821e28
Merge
author | kvn |
---|---|
date | Wed, 19 Feb 2014 12:08:49 -0800 |
parents | b83f7d608548 |
children |
comparison
equal
deleted
inserted
replaced
14360:e8ef156f0bc9 | 14460:8a9bb7821e28 |
---|---|
1 # | |
2 # Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. | |
3 # Copyright 2012, 2013 SAP AG. All rights reserved. | |
4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
5 # | |
6 # This code is free software; you can redistribute it and/or modify it | |
7 # under the terms of the GNU General Public License version 2 only, as | |
8 # published by the Free Software Foundation. | |
9 # | |
10 # This code is distributed in the hope that it will be useful, but WITHOUT | |
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
13 # version 2 for more details (a copy is included in the LICENSE file that | |
14 # accompanied this code). | |
15 # | |
16 # You should have received a copy of the GNU General Public License version | |
17 # 2 along with this work; if not, write to the Free Software Foundation, | |
18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
19 # | |
20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
21 # or visit www.oracle.com if you need additional information or have any | |
22 # questions. | |
23 # | |
24 # | |
25 | |
26 # Produce 64 bits object files. | |
27 CFLAGS += -q64 | |
28 | |
29 # Balanced tuning for recent versions of the POWER architecture (if supported by xlc). | |
30 QTUNE=$(if $(CXX_SUPPORTS_BALANCED_TUNING),balanced,pwr5) | |
31 | |
32 # Try to speed up the interpreter: use ppc64 instructions and inline | |
33 # glue code for external functions. | |
34 OPT_CFLAGS += -qarch=ppc64 -qtune=$(QTUNE) -qinlglue | |
35 | |
36 # We need variable length arrays | |
37 CFLAGS += -qlanglvl=c99vla | |
38 # Just to check for unwanted macro redefinitions | |
39 CFLAGS += -qlanglvl=noredefmac | |
40 | |
41 # Suppress those "implicit private" warnings xlc gives. | |
42 # - The omitted keyword "private" is assumed for base class "...". | |
43 CFLAGS += -qsuppress=1540-0198 | |
44 | |
45 # Suppress the following numerous warning: | |
46 # - 1540-1090 (I) The destructor of "..." might not be called. | |
47 # - 1500-010: (W) WARNING in ...: Infinite loop. Program may not stop. | |
48 # There are several infinite loops in the vm, suppress. | |
49 CFLAGS += -qsuppress=1540-1090 -qsuppress=1500-010 | |
50 | |
51 # Suppress | |
52 # - 540-1088 (W) The exception specification is being ignored. | |
53 # caused by throw() in declaration of new() in nmethod.hpp. | |
54 CFLAGS += -qsuppress=1540-1088 | |
55 | |
56 # Turn off floating-point optimizations that may alter program semantics | |
57 OPT_CFLAGS += -qstrict | |
58 | |
59 # Disable aggressive optimizations for functions in sharedRuntimeTrig.cpp | |
60 # and sharedRuntimeTrans.cpp on ppc64. | |
61 # -qstrict turns off the following optimizations: | |
62 # * Performing code motion and scheduling on computations such as loads | |
63 # and floating-point computations that may trigger an exception. | |
64 # * Relaxing conformance to IEEE rules. | |
65 # * Reassociating floating-point expressions. | |
66 # When using '-qstrict' there still remains one problem | |
67 # in javasoft.sqe.tests.api.java.lang.Math.sin5Tests when run in compile-all | |
68 # mode, so don't optimize sharedRuntimeTrig.cpp at all. | |
69 OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT) | |
70 OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT) | |
71 | |
72 # xlc 10.01 parameters for ipa compile. | |
73 QIPA_COMPILE=$(if $(CXX_IS_V10),-qipa) | |
74 | |
75 # Xlc 10.1 parameters for aggressive optimization: | |
76 # - qhot=level=1: Most aggressive loop optimizations. | |
77 # - qignerrno: Assume errno is not modified by system calls. | |
78 # - qinline: Inline method calls. No suboptions for c++ compiles. | |
79 # - qxflag=ASMMIDCOALFIX: Activate fix for -O3 problem in interpreter loop. | |
80 # - qxflag=asmfastsync: Activate fix for performance problem with inline assembler with memory clobber. | |
81 QV10_OPT=$(if $(CXX_IS_V10),-qxflag=ASMMIDCOALFIX -qxflag=asmfastsync) | |
82 QV10_OPT_AGGRESSIVE=$(if $(CXX_IS_V10),-qhot=level=1 -qignerrno -qinline) | |
83 QV10_OPT_CONSERVATIVE=$(if $(CXX_IS_V10),-qhot=level=1 -qignerrno -qinline) | |
84 | |
85 # Disallow inlining for synchronizer.cpp, but perform O3 optimizations. | |
86 OPT_CFLAGS/synchronizer.o = $(OPT_CFLAGS) -qnoinline | |
87 | |
88 # Set all the xlC V10.1 options here. | |
89 OPT_CFLAGS += $(QIPA_COMPILE) $(QV10_OPT) $(QV10_OPT_AGGRESSIVE) | |
90 | |
91 export OBJECT_MODE=64 | |
92 | |
93 # Also build launcher as 64 bit executable. | |
94 LAUNCHERFLAGS += -q64 |