Oracle Solaris Studio
   HOME

TheInfoList



OR:

Oracle Developer Studio, formerly named Oracle Solaris Studio, Sun Studio, Sun WorkShop, Forte Developer, and SunPro Compilers, is Oracle Corporation's flagship software development product for the Solaris 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, w ...
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 i ...
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 tha ...
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 b ...
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 Augus ...
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 develope ...
* 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 intr ...
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 ...
)


Components

The Oracle Developer software suite includes: * C, C++, and Fortran compilers and support libraries * dbx and frontends * lint * A
NetBeans NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
-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. ...
* 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'' 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 follo ...
* 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 Function (computer science), functions of small or medium length. IPO differs ...
analysis *
Loop optimization In compiler theory, loop optimization is the process of increasing execution speed and reducing the overheads associated with loops. It plays an important role in improving cache performance and making effective use of parallel processing capabi ...
s *
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), a 1983 electronic rock ...
*
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 imp ...
* Scalar replacement *
Strength reduction In compiler construction, strength reduction is a compiler optimization where expensive operations are replaced with equivalent but less expensive operations. The classic example of strength reduction converts "strong" multiplications inside a loo ...
*
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, ...
, with -xvector=simd


OpenMP

The
OpenMP OpenMP (Open Multi-Processing) 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 syst ...
shared memory parallelization API is native to all three compilers.


Code coverage

Tcov, a source
code coverage In computer science, test coverage is a percentage measure of the degree to which the source code of a program is executed when a particular test suite is run. A program with high test coverage has more of its source code executed during testing, ...
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 w ...
to add instrumentation. The tcov utility gives information on how often a program 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 In compiler construction, a basic block is a straight-line code sequence with no branches in except to the entry and no branches out except at the exit. This restricted form makes a basic block highly amenable to analysis. Compilers usually deco ...
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 softwar ...
'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 A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross c ...
; 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