
Photon C++
Compiler
for SGI Systems
Make your objects travel at the speed of C
Productivity
Features
Performance
System Requirements
Demo License
KAI Home Page
Photon C++ contains optimizations targeted specifically at
object-oriented programs.
With Photon C++ you can write and maintain a modular,
object-oriented program and still have good performance.
Object-oriented design with emphasis on modularity and software
reuse can increase programmer productivity.
When performance considerations
require the programmer to compromise the object-oriented design,
productivity usually plummets, because the high performance form
is more time consuming to implement, less reusable, and less
maintainable.
With Photon C++, the speed of object-oriented kernels
approaches the speed of hand-coded C kernels.
Full Syntax and SGI C++ Compatibility
Photon C++ supports the latest C++ syntax features including a
full implementation of templates and exceptions.
Photon C++ is link compatible with both of the SGI C++ compilers: DCC and NCC.
You can use all of your existing C++ class libraries with Photon C++, without
recompilation.
Photon C++ understands the common command line options used
with either SGI compiler, so it is easy to integrate into your make scripts.
Industrial Strength Front-End
- Follows evolving standard
- Handles all language lawyer issues
- Passes all major test suites
- Used by many compiler and tool vendors
Complete C++ Implementation
- Exceptions: full implementation without disabling optimization
- Templates: usable implementation, complete with automatic instantiation
- Inlining: robust implementation, inlining almost any routine into almost any call site
- Class libraries: compatible implementation with SGI's C++ class libraries
Language Specific Optimizations
- Targets short lifetime objects
- Targets structured programming
- Advanced pointer de-aliasing
- Operates at a high level of abstraction
- Reduces clutter in back-end optimizations
- Designed by C++ experts
Usability
- Source level debugging
- Handles templates and global constructors automatically
- No modification of source code
- No special flags to the compiler or linker
- Spreads template instantiation overhead across compile and link
- Reduced code bloat when source debugging enabled
- Extensive user control of inlining
- By-name selective inlining
- Automatic inlining
- Code size limitation
Performance
- Object-oriented C++ programs approach the performance of
hand-coded C
- Used on itself, Photon C++ reduces compilation time by 1/3
Dialect Compatibility
- C++ dialect support:
- near draft standard C++
- Cfront
- C dialect support:
- Command line compatibility with SGI C++ compilers
Benchmark Descriptions:
- Whole CASE Tool: Photon C++ Compiler itself.
Optimizations in Photon C++ are written in object-oriented style.
- Whole Numeric Program: Eon is
an object-oriented ray tracing program.
- Numeric Kernels: OOPACK is a
set of 4 object-oriented numeric kernels.
- CASE Tool Kernels: String manipulation
kernels using the draft standard string class.
Interpretation of the Graph:
- Each bar represents the C-style performance.
- The solid portion of a bar represents the OOP-style performance.
- The unfilled portion of the the bar represents
the performance penalty for using OOP-style coding with a particular compiler.
Benchmark Results:
- Photon C++ provides significantly higher performance than other C++ compilers.
- Photon C++ performance meets or approaches the performance of best hand-coded C.
Benchmark Details:
- All runs made on SGI Indigo with an R3000 CPU under Irix 5.3
- Photon -- Photon C++ compiler. Options: +K3 -O2
- Cfront -- SGI's Cfront-based C++ compiler. Options: -O2
- Gnu ---- GNU C++ compiler (GCC 2.6.1). Options: -O2
- Delta --- SGI's Delta C++ compiler, with the delta feature turned off. Options: -O2
32-bit Version
- Operating System: Irix 5.3
- Other Software: SGI Delta C++ (DCC) and /usr/bin/cc
- Disk Space: 3.5 Mbytes
64-bit Version
- Operating System: Irix 6.1
- Other Software: SGI C++ (CC version 4.0 or higher) and /usr/bin/cc
- Disk Space: 7 Mbytes
KAI offers an evaluation program for Photon C++.
To activate this version of Photon C++, you must
contact KAI to receive a license code-key.
Before contacting KAI, be sure to get the internet network
address of the machine that will run Photon C++. If you don't know the
internet network address, simply start the Photon C++ installation process,
and the installation script will display the internet network address
very early in the installation process.
Visit our website, http://www.kai.com, to checkout the latest
information on Photon C++.
Copyright © 1995 by Kuck & Associates, Inc. All rights reserved.
KAI and Photon C++ are trademarks of Kuck & Associates, Inc.
Irix and Indigo are trademarks of Silicon Graphics, Inc.