-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathREADME
More file actions
107 lines (77 loc) · 3.47 KB
/
Copy pathREADME
File metadata and controls
107 lines (77 loc) · 3.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
README
-----------------------------------------------------------------------
The Open64 compiler suite includes optimizing compilers and runtime
support for C, C++ and FORTRAN 77/90/95. These compilers produce code
that follows the corresponding ABI on IA-32/Linux, x86_64/Linux and
IA-64/Linux and be compatible with the latest GCC revesion. This means
that objects produced by the Open64 compilers can link with objects
produced by other ABI compliant compilers.
The latest information and updates for the Open64 compilers will
eventually be found at https://github.com/open64-compiler/open64. The
latest code in development can be obtained via GIT at:
https://github.com/open64-compiler/open64
Please send problem reports to the mailing list described to the
BugZilla system at https://github.com/open64-compiler/open64
Language highlights:
C compatible with gcc, with gcc extensions
C++ compatible g++, with g++ extensions
FORTRAN 77/90/95 support
Optimization highlights:
Platform-independent optimizations:
Code Motion
Constant propagation
Dead code elimination
Expression simplification
Common subexpression elimination
Strength reduction
Partial redundency elimination
Loop optimizations, enabled at '-O3'
Interprocedural analysis and optimization, enabled with '-ipa'
Platform-dependent optimizations:
Software pipelining on IA-64
Control and Data speculation on IA-64
Integrated instruction scheduling with resource management
Other features
OpenMP support in C/C++/Fortran
Upcoming features
Advanced data prefetch
New alias analysis framework
New interprocedural analysis and optimization framework
More optimizations
Installation Information
The Open64 compiler is available in both binary and source-code form
on IA32/x86_64/IA-64. For more details about how to install compiler from
binary package or source, please refer the wiki page at:
https://github.com/open64-compiler/open64/wiki/How-to-build-Open64
Building on macOS (Apple Silicon)
Open64 targets x86_64 Linux and must be cross-compiled on macOS using
Docker with Rosetta emulation. A fully automated build script is included
in the repository:
./build-open64-docker.sh
The script handles all necessary workarounds (targ_info pre-generation
on ARM64, runtime library build flags, dependency installation, etc.) and
produces a reusable linux/amd64 Docker image tagged as
open64:x86_64-apple-silicon by default. The compiler itself is built as
x86_64 and continues to generate x86_64 binaries.
The Docker build directory and Open64 installation are bind-mounted on
the macOS host under:
~/work/open64/build
~/work/open64/opt/open64
~/work/open64/bin
To use a different host location:
OPEN64_HOST_WORK_ROOT=~/my-open64-work ./build-open64-docker.sh
To use a different image tag:
OPEN64_DOCKER_IMAGE=my-open64:latest ./build-open64-docker.sh
After the build completes, run the x86_64 Linux compiler through
Docker/Rosetta with the host installation mounted back into /opt/open64:
docker run --rm --platform linux/amd64 \
-v "$HOME/work/open64/opt/open64:/opt/open64:ro" \
-v "$PWD:/work" \
open64:x86_64-apple-silicon opencc -v
The script also creates wrapper commands that run the same Docker/Rosetta
command from the current macOS directory:
~/work/open64/bin/opencc -v
~/work/open64/bin/openCC -v
~/work/open64/bin/openf90 -v
Requirements: Docker Desktop for Mac with Rosetta emulation enabled.
Your Open64 Team