Open64: Difference between revisions
imported>Zerbu |
imported>BunnysBot |
||
| Line 15: | Line 15: | ||
}} | }} | ||
'''Open64''' is a [[free software|free]], [[open-source software|open-source]], optimizing [[compiler]] for the [[Itanium]] and [[x86-64]] [[microprocessor]] architectures. It derives from the [[Silicon Graphics|SGI]] compilers for | '''Open64''' is a [[free software|free]], [[open-source software|open-source]], optimizing [[compiler]] for the [[Itanium]] and [[x86-64]] [[microprocessor]] architectures. It derives from the [[Silicon Graphics|SGI]] compilers for SGI's [[MIPS architecture|MIPS]] processors, called ''MIPSPro''.<ref>{{Cite web |title=MIPSPro - TechPubs Wiki |url=https://tech-pubs.net/wiki/index.php/MIPSPro |access-date=2025-10-30 |website=tech-pubs.net}}</ref> It was initially released in 2000 as [[GNU GPL]] 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 (programming language)|C]]/[[C++]], as well as the [[Shared memory (interprocess communication)|shared memory]] programming model [[OpenMP]]. It can conduct high-quality [[interprocedural optimization|interprocedural analysis]], [[data-flow analysis]], data [[dependence analysis]], and array region analysis. Development has ceased, although other projects can use the project's source. | ||
== The infrastructure == | == The infrastructure == | ||
| Line 24: | Line 24: | ||
== Versions == | == Versions == | ||
The original version of Open64 that was released in 2002 was missing its very advanced [[software pipelining]] code generator, and had only a rudimentary code generator for Itanium | The original version of Open64 that was released in 2002 was missing its very advanced [[software pipelining]] code generator, and had only a rudimentary code generator for Itanium. The [http://portal.acm.org/citation.cfm?id=231385 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 [[fork (software development)|forks]], 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]]. The ORC effort ended in 2003, and the current official branch (which originated from the Intel ORC project) is managed by [[Hewlett-Packard]] and the [[University of Delaware]]'s Computer Architecture and Parallel Systems Laboratory (CAPSL). | Open64 exists in many [[fork (software development)|forks]], 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]]. The ORC effort ended in 2003, and the current official branch (which originated from the Intel ORC project) is managed by [[Hewlett-Packard]] and the [[University of Delaware]]'s Computer Architecture and Parallel Systems Laboratory (CAPSL). | ||
| Line 30: | Line 30: | ||
Other important branches include the compilers from [[Tensilica]] and the [[AMD]] x86 Open64 Compiler Suite.<ref>{{ cite web | title = x86 Open64 Compiler Suite | publisher = [[AMD]] | url = http://developer.amd.com/tools-and-sdks/cpu-development/x86-open64-compiler-suite/ | access-date = 12 November 2013 | url-status = dead | archive-url = https://web.archive.org/web/20131113100944/http://developer.amd.com/tools-and-sdks/cpu-development/x86-open64-compiler-suite/ | archive-date = 13 November 2013 }}</ref> | Other important branches include the compilers from [[Tensilica]] and the [[AMD]] x86 Open64 Compiler Suite.<ref>{{ cite web | title = x86 Open64 Compiler Suite | publisher = [[AMD]] | url = http://developer.amd.com/tools-and-sdks/cpu-development/x86-open64-compiler-suite/ | access-date = 12 November 2013 | url-status = dead | archive-url = https://web.archive.org/web/20131113100944/http://developer.amd.com/tools-and-sdks/cpu-development/x86-open64-compiler-suite/ | archive-date = 13 November 2013 }}</ref> | ||
[[Nvidia]] is also using an Open64 fork to optimize code in its [[CUDA]] toolchain.<ref>[ | [[Nvidia]] is also using an Open64 fork to optimize code in its [[CUDA]] toolchain.<ref>[https://www.capsl.udel.edu/conferences/open64/2008/Papers/101.doc NVIDIA’s Experience with Open64]</ref> | ||
Open64 is used as the backend for the [[NonStop (server computers)|HPE NonStop OS]] compilers on the x86-64 platform.<ref>{{cite web|url=http://blog.ecubesystems.com/john-reagan-interview-on-llvm-part-2/|title=John Reagan Interview on LLVM, part 2|date=2019-05-01|access-date=2020-12-21|website=ecubesystems.com|archive-date=2020-11-25|archive-url=https://web.archive.org/web/20201125080221/http://blog.ecubesystems.com/john-reagan-interview-on-llvm-part-2/|url-status=dead}}</ref> | Open64 is used as the backend for the [[NonStop (server computers)|HPE NonStop OS]] compilers on the x86-64 platform.<ref>{{cite web|url=http://blog.ecubesystems.com/john-reagan-interview-on-llvm-part-2/|title=John Reagan Interview on LLVM, part 2|date=2019-05-01|access-date=2020-12-21|website=ecubesystems.com|archive-date=2020-11-25|archive-url=https://web.archive.org/web/20201125080221/http://blog.ecubesystems.com/john-reagan-interview-on-llvm-part-2/|url-status=dead}}</ref> | ||
| Line 123: | Line 123: | ||
== Current development projects == | == Current development projects == | ||
Open64 is also used in a number of research projects, such as the [[Unified Parallel C]] (UPC) and [[speculative multithreading]] work at various universities. The 2010 Open64 Developers Forum describes projects done at [[Absoft Fortran Compilers|Absoft]], [[AMD]], [[Chinese Academy of Sciences]], [[Fudan University]], [[Hewlett-Packard|HP]], [[National Tsing Hua University]], [[Nvidia]], [[Tensilica]], [[Tsinghua University]], and [[University of Houston]].<ref>{{Cite web |url=http://dynopt.ece.udel.edu/open64/program.shtml |title=2010 Open64 Developers Forum, August 25, 2010 |access-date=September 6, 2010 |archive-date=June 12, 2010 |archive-url=https://web.archive.org/web/20100612125720/http://dynopt.ece.udel.edu/open64/program.shtml |url-status=dead }}</ref> The [[Chinese Academy of Sciences]] ported Open64 to the [[Loongson]] II platform.<ref>[ | Open64 is also used in a number of research projects, such as the [[Unified Parallel C]] (UPC) and [[speculative multithreading]] work at various universities. The 2010 Open64 Developers Forum describes projects done at [[Absoft Fortran Compilers|Absoft]], [[AMD]], [[Chinese Academy of Sciences]], [[Fudan University]], [[Hewlett-Packard|HP]], [[National Tsing Hua University]], [[Nvidia]], [[Tensilica]], [[Tsinghua University]], and [[University of Houston]].<ref>{{Cite web |url=http://dynopt.ece.udel.edu/open64/program.shtml |title=2010 Open64 Developers Forum, August 25, 2010 |access-date=September 6, 2010 |archive-date=June 12, 2010 |archive-url=https://web.archive.org/web/20100612125720/http://dynopt.ece.udel.edu/open64/program.shtml |url-status=dead }}</ref> The [[Chinese Academy of Sciences]] ported Open64 to the [[Loongson]] II platform.<ref>[https://www.capsl.udel.edu/conferences/open64/2009/Papers/102-Open64onMIPS2.pdf Open64 on MIPS: porting and enhancing Open64 for Loongson II]</ref> | ||
[[AMD]] has extended and productized Open64 with optimizations designed for x86 multi-core processor advancements and multi-threaded code development.<ref>{{cite web|url=http://blogs.amd.com/nigel-dessau/2009/06/22/sweet-suite/|archive-url=https://web.archive.org/web/20100906085610/http://blogs.amd.com/nigel-dessau/2009/06/22/sweet-suite/|url-status=dead|title= Sweet Suite, blog posting |author= Nigel Dessau, AMD CMO|date=June 22, 2009|archive-date=2010-09-06}}</ref> AMD supports Open64 as a complementary compiler to [[GNU Compiler Collection|GCC]].<ref>{{Cite web |url=http://developer.amd.com/tools/cpu-development/x86-open64-compiler-suite/ |title=AMD Open64 download page |access-date=2012-11-13 |archive-url=https://web.archive.org/web/20130313225744/http://developer.amd.com/tools/cpu-development/x86-open64-compiler-suite/ |archive-date=2013-03-13 |url-status=dead }}</ref> | [[AMD]] has extended and productized Open64 with optimizations designed for x86 multi-core processor advancements and multi-threaded code development.<ref>{{cite web|url=http://blogs.amd.com/nigel-dessau/2009/06/22/sweet-suite/|archive-url=https://web.archive.org/web/20100906085610/http://blogs.amd.com/nigel-dessau/2009/06/22/sweet-suite/|url-status=dead|title= Sweet Suite, blog posting |author= Nigel Dessau, AMD CMO|date=June 22, 2009|archive-date=2010-09-06}}</ref> AMD supports Open64 as a complementary compiler to [[GNU Compiler Collection|GCC]].<ref>{{Cite web |url=http://developer.amd.com/tools/cpu-development/x86-open64-compiler-suite/ |title=AMD Open64 download page |access-date=2012-11-13 |archive-url=https://web.archive.org/web/20130313225744/http://developer.amd.com/tools/cpu-development/x86-open64-compiler-suite/ |archive-date=2013-03-13 |url-status=dead }}</ref> | ||
The University of Houston's OpenUH project, which is based on Open64, released a new version of its compiler suite in November 2015.<ref> | The University of Houston's OpenUH project, which is based on Open64, released a new version of its compiler suite in November 2015.<ref>{{Cite web |url=http://web.cs.uh.edu/~openuh/download/ |title=OpenUH downloads page |access-date=2016-08-31 |archive-date=2016-10-28 |archive-url=https://web.archive.org/web/20161028010507/http://web.cs.uh.edu/~openuh/download/ |url-status=dead }}</ref> | ||
== See also == | == See also == | ||
| Line 141: | Line 141: | ||
* {{Official website}} | * {{Official website}} | ||
* [https://developer.amd.com/x86-open64-compiler-suite/ AMD Open64 page] | * [https://developer.amd.com/x86-open64-compiler-suite/ AMD Open64 page] | ||
* [ | * [https://upc.nersc.gov/ The Berkeley UPC-to-C translator] | ||
* [https://web.archive.org/web/20130515024142/http://www2.cs.uh.edu/~openuh/ OpenUH project at University of Houston] | * [https://web.archive.org/web/20130515024142/http://www2.cs.uh.edu/~openuh/ OpenUH project at University of Houston] | ||
Latest revision as of 00:18, 18 November 2025
Script error: No such module "Unsubst". Script error: No such module "Infobox".Template:Template other Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters".
Open64 is a free, open-source, optimizing compiler for the Itanium and x86-64 microprocessor architectures. It derives from the SGI compilers for SGI's MIPS processors, called MIPSPro.[1] It was initially released in 2000 as GNU GPL 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. It can conduct high-quality interprocedural analysis, data-flow analysis, data dependence analysis, 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, and VLIW architectures, including MIPS, x86, IA-64, ARM, and others.
Intermediate representation
A hierarchical intermediate representation (IR) with five main levels is used in this compiler to serve as the common interface among all the frontend and backend components. This IR is named WHIRL.
Versions
The original version of Open64 that was released in 2002 was missing its very advanced software pipelining code generator, and had only a rudimentary code generator for Itanium. The 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, 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. The ORC effort ended in 2003, and the current official branch (which originated from the Intel ORC project) is managed by Hewlett-Packard and the University of Delaware's Computer Architecture and Parallel Systems Laboratory (CAPSL).
Other important branches include the compilers from Tensilica and the AMD x86 Open64 Compiler Suite.[2]
Nvidia is also using an Open64 fork to optimize code in its CUDA toolchain.[3]
Open64 is used as the backend for the HPE NonStop OS compilers on the x86-64 platform.[4]
Open64 releases
| Version | Release date |
|---|---|
| 5.0 | 2011-11-11 |
| 4.2.4 | 2011-04-12 |
| 4.2.3 | 2010-04-09 |
| 4.2.1 | 2008-12-08 |
| 4.2 | 2008-10-01 |
| 4.1 | 2007-12-03 |
| 4.0 | 2007-06-15 |
| 3.1 | 2007-04-13 |
| 3.0 | 2006-11-22 |
| 2.0 | 2006-10-02 |
| 1.0 | 2006-09-22 |
| 0.16 | 2003-07-07 |
| 0.15 | 2002-11-30 |
| 0.14 | 2002-03-04 |
| 0.13 | 2002-01-10 |
AMD x86 Open64 releases
| Version | Release date |
|---|---|
| 4.5.2.1 | 2013-03-28 |
| 4.5.2 | 2012-08-08 |
| 4.5.1 | 2011-12-19 |
| 4.2.4 | 2010-06-29 |
| 4.2.3.2 | 2010-05-17 |
| 4.2.3.1 | 2010-01-29 |
| 4.2.3 | 2009-12-11 |
| 4.2.2.3 | 2009-11-23 |
| 4.2.2.2 | 2009-08-31 |
| 4.2.2.1 | 2009-06-03 |
| 4.2.2 | 2009-04-24 |
Current development projects
Open64 is also used in a number of research projects, such as the Unified Parallel C (UPC) and speculative multithreading work at various universities. The 2010 Open64 Developers Forum describes projects done at Absoft, AMD, Chinese Academy of Sciences, Fudan University, HP, National Tsing Hua University, Nvidia, Tensilica, Tsinghua University, and University of Houston.[5] The Chinese Academy of Sciences ported Open64 to the Loongson II platform.[6]
AMD has extended and productized Open64 with optimizations designed for x86 multi-core processor advancements and multi-threaded code development.[7] AMD supports Open64 as a complementary compiler to GCC.[8]
The University of Houston's OpenUH project, which is based on Open64, released a new version of its compiler suite in November 2015.[9]
See also
Script error: No such module "Portal".
References
<templatestyles src="Reflist/styles.css" />
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ NVIDIA’s Experience with Open64
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Open64 on MIPS: porting and enhancing Open64 for Loongson II
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
Script error: No such module "Check for unknown parameters".
External links
- Script error: No such module "Official website".Script error: No such module "Check for unknown parameters".
- AMD Open64 page
- The Berkeley UPC-to-C translator
- OpenUH project at University of Houston
Script error: No such module "Navbox". Template:Software in the Public Interest