Sun Studio Compiler Suite
   HOME

TheInfoList



OR:

Oracle Developer Studio, formerly named Oracle Solaris Studio, Sun Studio, Sun WorkShop, Forte Developer, and SunPro Compilers, is
Oracle Corporation Oracle Corporation is an American multinational computer technology corporation headquartered in Austin, Texas. In 2020, Oracle was the third-largest software company in the world by revenue and market capitalization. The company sells da ...
's flagship software development product for the
Solaris Solaris may refer to: Arts and entertainment Literature, television and film * ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem ** ''Solaris'' (1968 film), directed by Boris Nirenburg ** ''Solaris'' (1972 film), directed by ...
and
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s. It includes optimizing C, C++, and Fortran
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
s, libraries, and performance analysis and debugging tools, for Solaris on SPARC and x86 platforms, and Linux on x86/x64 platforms, including multi-core systems. Oracle Developer Studio is downloadable and usable at no charge; however, there are many security and functionality patch updates which are only available with a support contract from Oracle. Version 12.4 adds partial support for the
C++11 C++11 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++11 replaced the prior version of the C++ standard, called C++03, and was later replaced by C++14. The name follows the tradition of naming language versions by ...
language standard. All C++11 features are supported except for concurrency and atomic operations, and user-defined literals. Version 12.6 supports the
C++14 C++14 is a version of the ISO/IEC 14882 standard for the C++ programming language. It is intended to be a small extension over C++11, featuring mainly bug fixes and small improvements, and was replaced by C++17. Its approval was announced on August ...
language standard.


Languages

* C *
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
* Fortran


Supported architectures

*
SPARC SPARC (Scalable Processor Architecture) is a reduced instruction set computer (RISC) instruction set architecture originally developed by Sun Microsystems. Its design was strongly influenced by the experimental Berkeley RISC system developed ...
* i86pc (
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 Intel 8086 microprocessor and its 8088 variant. The 8086 was introd ...
and
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mod ...
)


Components

The Oracle Developer software suite includes: * C, C++, and Fortran compilers and support libraries * dbx and frontends *
lint Lint may refer to: * Fibrous coat of thick hairs covering the seeds of the cotton plant * Lint (material), an accumulation of fluffy fibers that collect on fabric Places * Lint, Belgium, a municipality located in Antwerp, Belgium * Linț, a vill ...
* A
NetBeans NetBeans is an integrated development environment (IDE) for Java (programming language), Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Microsoft Windows, Windows, ...
-based IDE *
Performance Analyzer Performance Analyzer is a commercial utility software for software performance analysis for x86 or SPARC machines. It has both a graphical user interface and a command line interface. It is available for both Linux and Solaris operating systems. It ...
* Thread analyzer * Sun performance library * Distributed make


Compiler optimizations

A common
optimizing Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
backend is used for code generation. A high-level intermediate representation called ''
Sun IR The Sun is the star at the center of the Solar System. It is a nearly perfect ball of hot plasma, heated to incandescence by nuclear fusion reactions in its core. The Sun radiates this energy mainly as light, ultraviolet, and infrared radia ...
'' is used, and high-level optimizations done in the ''iropt'' (intermediate representation optimizer) component are operated at the Sun IR level. Major optimizations include: *
Copy propagation In compiler theory, copy propagation is the process of replacing the occurrences of targets of direct assignments with their values. A direct assignment is an instruction of the form x = y, which simply assigns the value of y to x. From the follow ...
* Constant folding and constant propagation *
Dead code elimination In compiler theory, dead-code elimination (also known as DCE, dead-code removal, dead-code stripping, or dead-code strip) is a compiler optimization to remove code which does not affect the program results. Removing such code has several benefits: ...
*
Interprocedural optimization Interprocedural optimization (IPO) is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or medium length. IPO differs from other compiler optimiz ...
analysis * Loop optimizations *
Automatic parallelization Automatic may refer to: Music Bands * Automatic (band), Australian rock band * Automatic (American band), American rock band * The Automatic, a Welsh alternative rock band Albums * Automatic (Jack Bruce album), ''Automatic'' (Jack Bruce a ...
*
Profile-guided optimization Profile-guided optimization (PGO, sometimes pronounced as ''pogo''), also known as profile-directed feedback (PDF), and feedback-directed optimization (FDO) is a compiler optimization technique in computer programming that uses profiling to impr ...
*
Scalar replacement Scalar may refer to: *Scalar (mathematics), an element of a field, which is used to define a vector space, usually the field of real numbers *Scalar (physics), a physical quantity that can be described by a single element of a number field such a ...
* Strength reduction *
Automatic vectorization Automatic vectorization, in parallel computing, is a special case of automatic parallelization, where a computer program is converted from a scalar implementation, which processes a single pair of operands at a time, to a vector implementation, wh ...
, with -xvector=simd


OpenMP

The OpenMP shared memory parallelization API is native to all three compilers.


Code coverage

Tcov Tcov is a source code coverage analysis and statement-by-statement profiling tool for software written in Fortran, C and C++. Tcov generates exact counts of the number of times each statement in a program is executed and annotates source code ...
, a source code coverage analysis and statement-by-statement profiling tool, comes as a standard utility. Tcov generates exact counts of the number of times each statement in a program is executed and annotates
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
to add instrumentation. The tcov utility gives information on how often a
program Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * Program, a part of planning Arts and entertainment Audio * Progra ...
executes segments of code. It produces a copy of the source file, annotated with execution frequencies. The code can be annotated at the basic block level or the source line level. As the statements in a basic block are executed the same number of times, a count of basic block executions equals the number of times each statement in the block is executed. The tcov utility does not produce any time-based data.


GCCFSS

The GCC for SPARC Systems (GCCFSS) compiler uses
GNU Compiler Collection The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free software ...
's (GCC) front end with the Oracle Developer Studio compiler's code-generating back end. Thus, GCCFSS is able to handle GCC-specific compiler directives, while it is also able to take advantage of the compiler optimizations in the compiler's back end. This greatly facilitates the porting of GCC-based applications to SPARC systems. GCCFSS 4.2 adds the ability to be used as a cross compiler; SPARC binaries can be generated on an x86 (or x64) machine running Solaris.


Research platform

Before its cancellation, the
Rock Rock most often refers to: * Rock (geology), a naturally occurring solid aggregate of minerals or mineraloids * Rock music, a genre of popular music Rock or Rocks may also refer to: Places United Kingdom * Rock, Caerphilly, a location in Wales ...
would have been the first general-purpose processor to support ''hardware
transactional memory In computer science and engineering, transactional memory attempts to simplify concurrent programming by allowing a group of load and store instructions to execute in an atomic way. It is a concurrency control mechanism analogous to database transa ...
'' (HTM). The Oracle Developer Studio compiler is used by a number of research projects, including ''Hybrid Transactional Memory'' (HyTM) and ''Phased Transactional Memory'' (PhTM), to investigate support and possible HTM optimizations.


History

– Source:


References


External links


Oracle Developer Studio home page
on Oracle Developer Network
Product documentation

Cool Tools - GCC for SPARC Systems

Oracle Studio Forums

Application Performance Tuning on Sun Platform
(archived Jan 29, 2008)



{{Oracle Sun Microsystems software C++ compilers C (programming language) compilers Fortran compilers compilers and interpreters computer libraries