HOME

TheInfoList



OR:

Open64 is a free,
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
, optimizing
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
for the
Itanium Itanium (; ) is a discontinued family of 64-bit computing, 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). The Itanium architecture originated at Hewlett-Packard (HP), and was later jointly dev ...
and
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
microprocessor A microprocessor is a computer processor (computing), processor for which the data processing logic and control is included on a single integrated circuit (IC), or a small number of ICs. The microprocessor contains the arithmetic, logic, a ...
architectures. It derives from the SGI compilers for the MIPS
R10000 The R10000, code-named "T5", is a RISC microprocessor implementation of the MIPS IV instruction set architecture (ISA) developed by MIPS Technologies, Inc. (MTI), then a division of Silicon Graphics, Inc. (SGI). The chief designers are Chris Ro ...
processor, called ''MIPSPro''. It was initially released in 2000 as
GNU GPL The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
software under the name Pro64. The following year, University of Delaware adopted the project and renamed the compiler to Open64. It now mostly serves as a research platform for compiler and computer architecture research groups. Open64 supports Fortran 77/95 and C/ C++, as well as the shared memory programming model
OpenMP OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, ...
. It can conduct high-quality interprocedural analysis,
data-flow analysis Data-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program. It forms the foundation for a wide variety of compiler optimizations and program verification techn ...
, data
dependence analysis In compiler theory, dependence analysis produces execution-order constraints between statements/instructions. Broadly speaking, a statement ''S2'' depends on ''S1'' if ''S1'' must be executed before ''S2''. Broadly, there are two classes of depend ...
, and array region analysis. Development has ceased, although other projects can use the project's source.


The infrastructure

Its major components are the frontend for C/C++ (using GCC) and Fortran 77/90 (using the CraySoft front-end and libraries), Interprocedural analysis (IPA), loop nest optimizer (LNO), global optimizer (WOPT), and code generator (CG). Despite being initially written for a single computer architecture, Open64 has proven that it can generate efficient code for CISC,
RISC In electronics and computer science, a reduced instruction set computer (RISC) is a computer architecture designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a comp ...
, and
VLIW Very long instruction word (VLIW) refers to instruction set architectures that are designed to exploit instruction-level parallelism (ILP). A VLIW processor allows programs to explicitly specify instructions to execute in parallel computing, para ...
architectures, including MIPS,
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
,
IA-64 IA-64 (Intel Itanium architecture) is the instruction set architecture (ISA) of the discontinued Itanium family of 64-bit Intel microprocessors. The basic ISA specification originated at Hewlett-Packard (HP), and was subsequently implemented by ...
,
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between ...
, and others.


Intermediate representation

A hierarchical
intermediate representation An intermediate representation (IR) is the data structure or code used internally by a compiler or virtual machine to represent source code. An IR is designed to be conducive to further processing, such as optimization and translation. A "good" ...
(IR) with five main levels is used in this compiler to serve as the common interface among all the
frontend and backend In software development, frontend refers to the presentation layer that users interact with, while backend involves the data management and processing behind the scenes, and full-stack development refers to mastering both. In the client–server mo ...
components. This IR is named WHIRL.


Versions

The original version of Open64 that was released in 2002 was missing its very advanced
software pipelining In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining. Software pipelining is a type of out-of-order execution, except that the reordering is done by a compiler (or in the ...
code generator, and had only a rudimentary code generator for Itanium. The entire original MIPSPro compiler, with this code generator, is available under a commercial license as the Blackbird compiler from Reservoir Labs. Th
Showdown Paper
documents the code generator that was not included in Open64. The very advanced compiler from Tilera, for its 64-core TILE64 chip, is based on Blackbird. Open64 exists in many
forks In cutlery or kitchenware, a fork (from 'pitchfork') is a Eating utensil, utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with whic ...
, each of which has different features and limitations. The "classic" Open64 branch is the Open Research Compiler (ORC), which produces code only for the Itanium (IA-64), and was funded by
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
. The ORC effort ended in 2003, and the current official branch (which originated from the Intel ORC project) is managed by
Hewlett-Packard The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company. It was founded by Bill Hewlett and David Packard in 1939 in a one-car garage in Palo Alto, California ...
and the
University of Delaware The University of Delaware (colloquially known as UD, UDel, or Delaware) is a Statutory college#Delaware, privately governed, state-assisted Land-grant university, land-grant research university in Newark, Delaware, United States. UD offers f ...
's Computer Architecture and Parallel Systems Laboratory (CAPSL). Other important branches include the compilers from Tensilica and the
AMD Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
x86 Open64 Compiler Suite.
Nvidia Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
is also using an Open64 fork to optimize code in its
CUDA In computing, CUDA (Compute Unified Device Architecture) is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated gene ...
toolchain. Open64 is used as the backend for the HPE NonStop OS compilers on the x86-64 platform.


Open64 releases


AMD x86 Open64 releases


Current development projects

Open64 is also used in a number of research projects, such as the
Unified Parallel C Unified Parallel C (UPC) is an extension of the C programming language designed for high-performance computing on large-scale parallel machines, including those with a common global address space ( SMP and NUMA) and those with distributed me ...
(UPC) and
speculative multithreading Thread Level Speculation (TLS), also known as Speculative Multi-threading, or Speculative Parallelization, is a technique to speculatively execute a section of computer code that is anticipated to be executed later in parallel with the normal ex ...
work at various universities. The 2010 Open64 Developers Forum describes projects done at Absoft,
AMD Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
,
Chinese Academy of Sciences The Chinese Academy of Sciences (CAS; ) is the national academy for natural sciences and the highest consultancy for science and technology of the People's Republic of China. It is the world's largest research organization, with 106 research i ...
,
Fudan University Fudan University (FDU) is a public university, national public university in Yangpu, Shanghai, Yangpu, Shanghai, China. It is affiliated with the Ministry of Education (China), Ministry of Education and is co-funded with the Shanghai Municipal ...
, HP,
National Tsing Hua University National Tsing Hua University (NTHU) is a public research university in Hsinchu, Taiwan. It was first founded in Beijing. After the Chinese Civil War, president Mei Yiqi and other academics relocated with the retreating Nationalist government to ...
,
Nvidia Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
, Tensilica,
Tsinghua University Tsinghua University (THU) is a public university in Haidian, Beijing, China. It is affiliated with and funded by the Ministry of Education of China. The university is part of Project 211, Project 985, and the Double First-Class Constructio ...
, and
University of Houston The University of Houston (; ) is a Public university, public research university in Houston, Texas, United States. It was established in 1927 as Houston Junior College, a coeducational institution and one of multiple junior colleges formed in ...
. The
Chinese Academy of Sciences The Chinese Academy of Sciences (CAS; ) is the national academy for natural sciences and the highest consultancy for science and technology of the People's Republic of China. It is the world's largest research organization, with 106 research i ...
ported Open64 to the
Loongson Loongson () is the name of a family of general-purpose, MIPS architecture-compatible, later in-house LoongArch architecture central processing unit, microprocessors, as well as the name of the Chinese Fabless manufacturing, fabless company (Loo ...
II platform.
AMD Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
has extended and productized Open64 with optimizations designed for x86 multi-core processor advancements and multi-threaded code development. AMD supports Open64 as a complementary compiler to GCC. The University of Houston's OpenUH project, which is based on Open64, released a new version of its compiler suite in November 2015.OpenUH downloads page
/ref>


See also

*
GNU Compiler Collection The GNU Compiler Collection (GCC) is a collection of compilers from the GNU Project that support various programming languages, Computer architecture, hardware architectures, and operating systems. The Free Software Foundation (FSF) distributes ...
*
List of compilers This page is intended to list all current compilers, compiler generators, Interpreter (computing), interpreters, translators, tool foundations, Assembler (computing), assemblers, automatable command line interfaces (Shell (computing), shells), et ...
*
GPGPU General-purpose computing on graphics processing units (GPGPU, or less often GPGP) is the use of a graphics processing unit (GPU), which typically handles computation only for computer graphics, to perform computation in applications traditiona ...


References


External links

*
AMD Open64 page

The Berkeley UPC-to-C translator

OpenUH project at University of Houston
{{Software in the Public Interest C (programming language) compilers C++ compilers Compilers Fortran compilers Free and open source compilers 2002 software