- – non_shared option
- Position-Independent Coding in Assembly Language
- –ansi option
- General Options for Compiler Drivers
- –Bsymbolic, compiling
- Compiling with –Bsymbolic
- –cckr option
- General Options for Compiler Drivers
- –g option
- General Options for Compiler Drivers
- –KPIC
- See also drivers
- Position-Independent Coding in Assembly Language
- –KPIC option
- Position-Independent Code
- General Options for Compiler Drivers
- –O0 compiler option
- Compiler Optimization Options
- –O1 compiler option
- Compiler Optimization Options
- –O2 compiler option
- Compiler Optimization Options
- –O3 compiler option
- Compiler Optimization Options
- example
- Examples of Full Optimization
- –xansi option
- General Options for Compiler Drivers
- a.out files
- Linking
- accom_mp preprocessor
- About the Compiler System
- acpp preprocessor
- About the Compiler System
- Ada
- optimization
- Adaź Programs
- address space
- Dynamic Loading Under Program Control
- addresses, optimization
- Example of Pointer Placement and Aliasing
- aliasing, optimization
- C Programs Only
- analyzer, parallel
- About the Compiler System
- ar command
- command syntax
- ar Syntax
- options
- Archiver Options
- ar command
- Using the Archiver to Create Libraries
- archive libraries
- Dynamic Shared Objects
- archiver. See ar command
- Using the Archiver to Create Libraries
- as1 assembler
- Linking Assembly Language Programs
- About the Compiler System
- assembler
- About the Compiler System
- Position-Independent Coding in Assembly Language
- assembly language programs
- linking
- Linking Assembly Language Programs
- position-independent coding
- Position-Independent Coding in Assembly Language
- bal operation
- Position-Independent Coding in Assembly Language
- basic block counting. See profiling
- Basic Block Counting
- BLOCK DATA
- Compiling with –Bsymbolic
- branch-and-link instruction
- Examples
- building ucode object library
- Building Ucode Object Libraries
- C++
- building DSOs
- Using DSOs With C++
- compiler
- About the Compiler System
- language definitions
- Creating a Header File for Multiple Languages
- ld options
- Using DSOs With C++
- cache mapping, improve
- Rearranging Procedures With cord
- cc compiler. See drivers
- About the Compiler System
- ccom_mp preprocessor
- About the Compiler System
- cfe preprocessor
- About the Compiler System
- About the Compiler System
- code generator
- About the Compiler System
- COFF
- Executable and Linking Format
- Common Object File Format
- Executable and Linking Format
- COMMON symbols
- Compiling with –Bsymbolic
- compiler drivers. See drivers
- About the Compiler System
- compiler front end
- About the Compiler System
- compiler options. See drivers
- General Options for Compiler Drivers
- compiler system
- components
- About the Compiler System
- overview
- About the Compiler System
- compiling with –Bsymbolic
- Compiling with –Bsymbolic
- conventions, syntax
- Conventions Used in This Guide
- copt optimizer
- About the Compiler System
- cord
- Rearranging Procedures With cord
- –feedback option
- Example Using cord
- –o out_file option
- cord Options
- –v option
- cord Options
- command options
- cord Options
- command syntax
- cord Syntax
- example
- Example Using cord
- feedback files
- cord Syntax
- .Counts file
- Obtaining Basic Block Counts
- .cpadd reg directive
- Position-Independent Coding in Assembly Language
- .cpload reg directive
- Position-Independent Coding in Assembly Language
- cpp preprocessor
- About the Compiler System
- .cprestore offset directive
- Position-Independent Coding in Assembly Language
- .cpword local-sym directive
- Position-Independent Coding in Assembly Language
- data type
- signed
- C Programs Only
- unsigned
- C Programs Only
- dbx. See debugging
- Header Files
- debugging
- and include files
- Header Files
- and optimization
- Loop Optimization
- driver options
- Debugging
- dis command
- Getting Information About Object Files
- Disassembling Object Files with dis
- command syntax
- Disassembling Object Files with dis
- options
- dis Options
- disassemble object file
- Getting Information About Object Files
- dlclose()
- Dynamic Loading Under Program Control
- dlerror()
- Dynamic Loading Under Program Control
- dlopen()
- Dynamic Loading Under Program Control
- dlsym()
- Dynamic Loading Under Program Control
- do while, optimization
- C Programs Only
- drivers
- – non_shared
- Position-Independent Code
- –KPIC
- Position-Independent Code
- Position-Independent Coding in Assembly Language
- –nocpp
- About the Compiler System
- –v option
- About the Compiler System
- as1 assembler
- Linking Assembly Language Programs
- bypassing
- About the Compiler System
- C++ compiler
- About the Compiler System
- cc compiler
- About the Compiler System
- cfe preprocessor
- About the Compiler System
- defaults
- Default Behavior for Compiler Drivers
- f77 compiler
- About the Compiler System
- file name suffixes
- Source File Naming Conventions
- input file suffixes
- Source File Naming Conventions
- options
- Position-Independent Coding in Assembly Language
- General Options for Compiler Drivers
- –KPIC
- Position-Independent Coding in Assembly Language
- Position-Independent Coding in Assembly Language
- –non_shared
- Position-Independent Coding in Assembly Language
- passing options to ld
- Invoking the Linker Manually
- pc compiler
- About the Compiler System
- DSOs
- About the Compiler System
- Object File Format and Dynamic Linking
- Dynamic Shared Objects
- Dynamic Shared Objects
- archive libraries
- DSOs vs. Archive Libraries
- building new DSOs
- Building DSOs
- C++
- Using DSOs With C++
- converting libraries
- Converting Libraries to DSOs
- creating DSOs
- Building DSOs
- dlclose()
- Dynamic Loading Under Program Control
- dlerror()
- Dynamic Loading Under Program Control
- dlopen()
- Dynamic Loading Under Program Control
- dlsym()
- Dynamic Loading Under Program Control
- dynamic loading diagnostics
- Dynamic Loading Under Program Control
- exporting symbols
- Controlling Symbols to be Exported or Loaded
- guidelines
- Guidelines for Using Shared Libraries
- hiding symbols
- Controlling Symbols to be Exported or Loaded
- libraries, shared
- Guidelines for Using Shared Libraries
- linking
- Linking to Dynamic Shared Objects
- loading dynamically
- Dynamic Loading Under Program Control
- mmap() system call
- Dynamic Loading Under Program Control
- munmap() system call
- Dynamic Loading Under Program Control
- naming conventions
- Creating DSOs
- QuickStart
- Taking Advantage of QuickStart
- QuickStart registry file
- Using Registry Files
- registry files
- Using Registry Files
- search path
- Searching for DSOs at Runtime
- shared libraries
- Guidelines for Using Shared Libraries
- starting quickly
- Taking Advantage of QuickStart
- unloading dynamically
- Dynamic Loading Under Program Control
- versioning
- The Versioning Mechanism of Silicon Graphics
- dynamic linking
- About the Compiler System
- Object File Format and Dynamic Linking
- Dynamic Loading Under Program Control
- Dynamic Shared Objects. See DSOs
- Linking to Dynamic Shared Objects
- ELF. See executable and linking format
- Executable and Linking Format
- elfdump command
- Listing Selected Parts of Object Files and Libraries With elfdump
- Getting Information About Object Files
- command syntax
- elfdump Syntax
- options
- elfump Options
- executable and linking format
- Executable and Linking Format
- About the Compiler System
- Object File Format and Dynamic Linking
- exporting symbols
- Controlling Symbols to be Exported or Loaded
- f77 compiler. See drivers
- About the Compiler System
- fcom preprocessor
- About the Compiler System
- file command
- Getting Information About Object Files
- Determining File Type With file
- command syntax
- file Syntax
- file type, determining
- Determining File Type With file
- files
- header
- Header Files
- include
- Header Files
- listing properties
- Getting Information About Object Files
- naming conventions
- Source File Naming Conventions
- floating point data
- pixstats Options
- format
- object file
- Object File Format and Dynamic Linking
- About the Compiler System
- Fortran
- optimization
- C and Fortran Programs
- global offset table
- Position-Independent Code
- global optimizer
- Global Optimizer
- GOT
- Position-Independent Code
- .gpword
- Position-Independent Coding in Assembly Language
- .gpword directive
- Position-Independent Coding in Assembly Language
- header files
- Header Files
- multiple languages
- Creating a Header File for Multiple Languages
- if-then-else statements
- optimization
- C and Fortran Programs
- include files
- Header Files
- debugging
- Header Files
- multiple languages
- Creating a Header File for Multiple Languages
- indirect
- calls, using
- Optimizing C and Fortran Programs
- function call
- Examples
- jump instruction
- Examples
- internationalization
- C++
- Creating a Header File for Multiple Languages
- multilanguage programs
- Specifying Libraries and DSOs
- jal operation
- Position-Independent Coding in Assembly Language
- ld
- –shared option
- Creating DSOs
- and assembly language programs
- Linking Assembly Language Programs
- C++
- Using DSOs With C++
- command syntax
- Linker Syntax
- DSOs
- Using DSOs With C++
- dynamic linking
- About the Compiler System
- Object File Format and Dynamic Linking
- example
- Linker Example
- libraries, default search path
- Specifying Libraries and DSOs
- libraries, specifying
- Linking Libraries
- link editor
- About the Compiler System
- multilanguage programs
- Linking Multilanguage Programs
- options
- Using DSOs With C++
- registry files
- Using Registry Files
- LD_BIND_NOW
- Runtime Symbol Resolution
- LD_LIBRARY_PATH
- Obtaining Basic Block Counts
- lib.so functions
- optimization
- C Programs Only
- libdl
- Dynamic Loading Under Program Control
- libraries
- and multilanguage programs
- Specifying Libraries and DSOs
- archive
- Dynamic Shared Objects
- global data
- Tuning Shared Library Code
- libdl
- Dynamic Loading Under Program Control
- locality
- Tuning Shared Library Code
- non-shared, converting to DSOs
- Converting Libraries to DSOs
- paging
- Tuning Shared Library Code
- routines to exclude
- Choosing Library Members
- routines to include
- Choosing Library Members
- self-contained
- Choosing Library Members
- shared
- Object File Format and Dynamic Linking
- About the Compiler System
- shared, static
- Linking to Dynamic Shared Objects
- Dynamic Shared Objects
- Dynamic Shared Objects
- specifying
- Linking Libraries
- static data
- Choosing Library Members
- tuning
- Tuning Shared Library Code
- linking
- dynamic. See ld
- About the Compiler System
- Object File Format and Dynamic Linking
- linking. See ld
- Linking Multilanguage Programs
- loader
- runtime. See rld
- Benefits of Using DSOs
- loading
- symbols
- Controlling Symbols to be Exported or Loaded
- local variables
- optimization
- C Programs Only
- loop unrolling
- Loop Unrolling
- machine instructions
- Getting Information About Object Files
- macro preprocessors
- About the Compiler System
- mmap() system call
- Dynamic Loading Under Program Control
- mon.out file. See profiling, pc sampling
- Obtaining pc Sampling
- multilanguage programs
- and ld
- Linking Multilanguage Programs
- and libraries
- Specifying Libraries and DSOs
- header files
- Creating a Header File for Multiple Languages
- multiprocessed executables, profiling
- Profiling Multiprocessed Executables
- munmap() system call
- Dynamic Loading Under Program Control
- naming source files
- Source File Naming Conventions
- nm command
- Getting Information About Object Files
- command syntax
- nm Syntax
- example
- nm Example
- example of undefined symbol
- Finding an Unresolved Symbol With ld
- undefined symbol
- Finding an Unresolved Symbol With ld
- nm command
- Listing Symbol Table Information: nm
- object code library
- building
- Building Ucode Object Libraries
- object file information
- disassemble
- Getting Information About Object Files
- format
- About the Compiler System
- Object File Format and Dynamic Linking
- listing section sizes
- Getting Information About Object Files
- Determining Section Sizes With size
- symbol table information
- Listing Symbol Table Information: nm
- Getting Information About Object Files
- tools
- Getting Information About Object Files
- using elfdump
- Listing Selected Parts of Object Files and Libraries With elfdump
- Getting Information About Object Files
- using odump
- Listing Selected Parts of COFF Files With odump
- Getting Information About Object Files
- odump command
- Getting Information About Object Files
- Listing Selected Parts of COFF Files With odump
- command syntax
- odump Syntax
- optimization
- –O0 compiler option
- Compiler Optimization Options
- –O1 compiler option
- Compiler Optimization Options
- –O2 compiler option
- Compiler Optimization Options
- –O3 compiler option
- Compiler Optimization Options
- Examples of Full Optimization
- Ada
- Adaź Programs
- addresses
- Example of Pointer Placement and Aliasing
- aliasing
- C Programs Only
- and debugging
- Loop Optimization
- and loop unrolling
- Loop Unrolling
- and register allocation
- Register Allocation
- C
- Optimizing C and Fortran Programs
- do while
- C Programs Only
- example
- Example of Pointer Placement and Aliasing
- Fortran
- Optimizing C and Fortran Programs
- C and Fortran Programs
- frequently used modules
- Optimizing Frequently Used Modules
- full
- Examples of Full Optimization
- function return values
- C Programs Only
- global
- Global Optimizer
- if-then-else statements
- C and Fortran Programs
- libc.so functions
- C Programs Only
- loop
- Loop Optimization
- machine-dependent
- Global Optimizer
- machine-independent
- Global Optimizer
- options
- Compiler Optimization Options
- pointers
- C Programs Only
- pragma inline
- Adaź Programs
- separate compilation units
- Optimizing Separate Compilation Units
- signed data types
- C Programs Only
- STDARG
- Example of Pointer Placement and Aliasing
- subscripts
- Example of Pointer Placement and Aliasing
- switch statements
- C and Fortran Programs
- tables
- C and Fortran Programs
- tips for improving
- Improving Global Optimization
- unions
- C Programs Only
- unsigned data type
- C Programs Only
- value parameters
- C Programs Only
- VARARG
- Example of Pointer Placement and Aliasing
- variables, global vs. local
- C Programs Only
- optimizer
- About the Compiler System
- copt optimizer
- About the Compiler System
- optimizing programs
- benefits
- Optimization and Debugging
- debugging
- Optimization and Debugging
- .option pic0 directive
- Position-Independent Coding in Assembly Language
- .option pic2 directive
- Position-Independent Coding in Assembly Language
- page size
- Tuning Shared Library Code
- paging
- alignment
- Tuning Shared Library Code
- paging, reduce
- Rearranging Procedures With cord
- parallel analyzer
- About the Compiler System
- parameters
- optimization
- C Programs Only
- pc compiler. See drivers
- About the Compiler System
- pc sampling. See profiling
- Obtaining pc Sampling
- pca analyzer
- About the Compiler System
- pfa analyzer
- About the Compiler System
- PIC. See position-independent code
- Object File Format and Dynamic Linking
- Position-Independent Coding in Assembly Language
- Building DSOs
- About the Compiler System
- pixie
- Using pixie
- –autopixie option
- pixie Options
- –counts option
- pixie Options
- –liblist option
- pixie Options
- –pids option
- pixie Options
- –verbose option
- pixie Options
- and prof –clock example
- Example Using prof –pixie –procedures –clock
- and prof –heavy example
- Example Using prof –pixie –heavy
- and prof –i example
- Example Using prof –pixie –invocations
- and prof –lines example
- Example Using prof –pixie –lines
- and prof –pids
- Summing Basic Block Count Results
- and prof –procedures example
- Example Using prof –pixie –procedures
- command options
- Using pixie
- command syntax
- Using pixie
- .Counts file
- Obtaining Basic Block Counts
- Summing Basic Block Count Results
- examples
- Obtaining Basic Block Counts
- output size
- Obtaining Basic Block Counts
- restricting output
- Obtaining Basic Block Counts
- setting search path
- Obtaining Basic Block Counts
- pixstats
- Using pixstats
- –disassemble option, example
- Examples Using pixstats
- –op option, example
- Examples Using pixstats
- command syntax
- Using pixstats
- example
- Examples Using pixstats
- profiling
- pixstats Options
- pointers
- optimization
- C Programs Only
- position-independent code
- Building DSOs
- Object File Format and Dynamic Linking
- Position-Independent Code
- About the Compiler System
- assembly language
- Position-Independent Coding in Assembly Language
- branch-and-link instruction
- Examples
- .cpadd reg directive
- Position-Independent Coding in Assembly Language
- .cpload reg directive
- Position-Independent Coding in Assembly Language
- .cprestore offset directive
- Position-Independent Coding in Assembly Language
- .cpword local-sym directive
- Position-Independent Coding in Assembly Language
- examples
- Examples
- indirect function call
- Examples
- indirect jump instruction
- Examples
- .option pic0 directive
- Position-Independent Coding in Assembly Language
- .option pic2 directive
- Position-Independent Coding in Assembly Language
- register t9
- Examples
- switch tables
- Position-Independent Coding in Assembly Language
- pragma inline
- optimization
- Adaź Programs
- preprocessing
- About the Compiler System
- preprocessors
- macro
- About the Compiler System
- procedures, rearrange
- Rearranging Procedures With cord
- prof
- –clock example
- Example Using prof –pixie –procedures –clock
- –heavy example
- Example Using prof –pixie –heavy
- –invocations example
- Example Using prof –pixie –invocations
- –lines example
- Example Using prof –pixie –lines
- –procedures example
- Example Using prof –pixie –procedures
- Also see profiling
- prof Syntax
- PROFDIR environment variable
- Creating Multiple Profile Data Files
- profiling
- Profiling With prof
- –clock option
- prof Options
- prof Defaults
- example
- Example Using prof –pixie –procedures –clock
- –dis option
- prof Options
- –dso option
- prof Defaults
- prof Options
- –exclude option
- Obtaining Basic Block Counts
- Obtaining pc Sampling
- prof Defaults
- prof Options
- –g option
- Obtaining Basic Block Counts
- –heavy option
- prof Defaults
- prof Options
- example
- Example Using prof –pixie –heavy
- –invocations option
- prof Options
- prof Defaults
- example
- Example Using prof –pixie –invocations
- –lines option
- prof Defaults
- prof Options
- example
- Example Using prof –pixie –lines
- –merge option
- prof Options
- prof Defaults
- –only option
- Obtaining Basic Block Counts
- Obtaining pc Sampling
- prof Options
- –p option
- Obtaining pc Sampling
- –pcsample option
- prof Options
- –pids option
- Summing Basic Block Count Results
- –pixie option
- prof Options
- –procedures option
- prof Options
- example
- Example Using prof –pixie –procedures
- –quit option
- prof Options
- Example Using prof –pixie –quit
- Obtaining Basic Block Counts
- –testcoverage option
- prof Options
- –zero option
- prof Options
- Also see prof
- Running the Profiler
- basic block counting
- Basic Block Counting
- command options
- prof Defaults
- command syntax
- prof Syntax
- floating point
- pixstats Options
- instruction distribution
- Examples Using pixstats
- multiple data files
- Creating Multiple Profile Data Files
- multiprocessed executables
- Profiling Multiprocessed Executables
- overview
- Overview of Profiling
- pc sampling
- pc Sampling
- example
- Example Using prof –pcsample
- pixstats
- pixstats Options
- procedure invocation example
- Examples of Basic Block Counting
- register usage
- Examples Using pixstats
- stall distribution
- Examples Using pixstats
- summing results
- Summing Basic Block Count Results
- QuickStart DSOs. See DSOs, QuickStart
- Taking Advantage of QuickStart
- Taking Advantage of QuickStart
- rearrange procedures
- Rearranging Procedures With cord
- reduce paging
- Rearranging Procedures With cord
- register
- allocation
- Register Allocation
- usage
- Examples Using pixstats
- register t9
- Examples
- registry file. See DSOs
- Using Registry Files
- relocation bits, removing
- Getting Information About Object Files
- remove
- relocation bits
- Getting Information About Object Files
- symbol table
- Getting Information About Object Files
- reorder procedures
- Rearranging Procedures With cord
- resolve text symbols
- Runtime Symbol Resolution
- return values, optimization
- C Programs Only
- rld
- Benefits of Using DSOs
- dynamic linking
- Dynamic Loading Under Program Control
- libdl
- Dynamic Loading Under Program Control
- search path
- Searching for DSOs at Runtime
- Obtaining Basic Block Counts
- runtime linker. See rld
- Benefits of Using DSOs
- scalar optimizer, copt
- About the Compiler System
- scalar variables
- word size
- C and Fortran Programs
- search path
- rld
- Searching for DSOs at Runtime
- Obtaining Basic Block Counts
- shared libraries, static
- Linking to Dynamic Shared Objects
- Dynamic Shared Objects
- shared library
- About the Compiler System
- Object File Format and Dynamic Linking
- shared objects, dynamic
- Dynamic Shared Objects
- signed data type
- optimization
- C Programs Only
- size command
- Determining Section Sizes With size
- Getting Information About Object Files
- Determining Section Sizes With size
- command syntax
- size Syntax
- example
- size Example
- source file names
- Source File Naming Conventions
- STDARG. See optimization
- Example of Pointer Placement and Aliasing
- strip command
- Removing Symbol Table and Relocation Bits with strip
- Getting Information About Object Files
- command syntax
- Removing Symbol Table and Relocation Bits with strip
- subscripts
- optimization
- Example of Pointer Placement and Aliasing
- switch statements
- optimization
- C and Fortran Programs
- switch tables
- Position-Independent Coding in Assembly Language
- symbol resolution
- Runtime Symbol Resolution
- symbol table
- removing
- Getting Information About Object Files
- symbol table information, listing
- Getting Information About Object Files
- symbols
- exporting
- Controlling Symbols to be Exported or Loaded
- loading
- Controlling Symbols to be Exported or Loaded
- syntax, conventions
- Conventions Used in This Guide
- tables, switch
- Position-Independent Coding in Assembly Language
- tools
- basic block counting
- Basic Block Counting
- optimization
- Compiler Optimization Options
- performance
- Using the Performance Tools
- procedure rearranger
- Rearranging Procedures With cord
- profiling
- Overview of Profiling
- ucode
- About the Compiler System
- type, determining for files
- Determining File Type With file
- typographical conventions
- Conventions Used in This Guide
- ucode
- object library, building
- Building Ucode Object Libraries
- object library, using
- Using Ucode Object Libraries
- tools
- About the Compiler System
- ugen code generator
- About the Compiler System
- ujoin
- About the Compiler System
- uld
- About the Compiler System
- umerge
- About the Compiler System
- unassigned data type
- optimization
- C Programs Only
- unions
- optimization
- C Programs Only
- uopt optimizer
- About the Compiler System
- upas preprocessor
- About the Compiler System
- VARARG. See optimization
- Example of Pointer Placement and Aliasing
- variables
- scalar
- C and Fortran Programs
- virtual address space
- Dynamic Loading Under Program Control
- .word directive
- Position-Independent Coding in Assembly Language
- word-size scalar variables
- C and Fortran Programs