User ManualTable of ContentsTable of Contents3Preface9Contents of this Manual9Typographic Conventions11Terminology12A 3-minute Guide to Using the Apogee Compilers13Introduction to the Apogee Compilers15The Compilation System15Optimization19Control of Compiler Behavior21Invoking the Compilers23Compiler Invocation Command23Files23Fortran 90 File Names25Options25Control-Variables and Control-Programs33Control-Variables33Control-Groups35Control-Expressions36Control-Assignments37Control-Programs38Writing Pragma Directives39Control-Variable Definitions41Optimization Control-Variables41Introduction to Optimization41Control-Variable alias — Alias Analysis43Control-Variable callmod — Call Modification Analysis44Control-Variable cih — Cross-Iteration Hoisting45Control-Variable constp — Constant Propagation45Control-Variable copyp — Copy Propagation46Control-Variable domain — Optimization Domain46Control-Variable fcm — Forward Code Motion46Control-Variable flex — Optimization Flexibility47Control-Variable flow — Control Flow Optimization47Numerical Accuracy48Control-Variable fltedge — Floating Point Limits49Control-Variable fltfold — Floating Point Constant Folding50Control-Variable intedge — Integer Limits50Control-Variable ivrep — Induction Variable Replacement50Control-Variable memlimit — Scope of Main Optimizations51Control-Variable mopt — Main Optimizations51Control-Variable reg — Register Allocation52Control-Variable safeintr — Intrinsic Error Checking53Control-Variable sched — Scheduling53Control-Variable unroll — Loop Unrolling54Control-Variable unrollexact — Loop Unrolling Exactness54Control-Variable whole — Whole Program Compilation55Control-Variable xopt — Extra Optimizations55Control-Variable zone — Expansion of Zones56Inlining56Control-Group O — Optimization59Target Computer Control-Variables59Control-Variable cg — Target Computer Instruction Set60Control-Variable pipe — Target Computer Instruction Pipeline61Control-Group T — Target Computer62Diagnostic Control-Variables62Control-Variable diag — Diagnostic Output Level63Control-Variable quit — Diagnostic Quit Level64Control-Variable stddiag — Standard Diagnostics (FORTRAN only)64FORTRAN Source File Format64FORTRAN 77 Statement Format64Control-Variable fblank — FORTRAN Statement Blanks66Control-Variable fcols — FORTRAN Statement Columns66Control-Variable ftab — FORTRAN Tab Statements66Control-Group F — FORTRAN Statement Format67Control-Variable fcont — FORTRAN Continuation Lines68Control-Variable fstmt — FORTRAN Statement Buffer68Control-Variable case — FORTRAN Case Sensitivity69Control-Variable dline — FORTRAN Debug Lines69Fortran 90 Statement Format69Control-Variable sform — FORTRAN 90 Statement Format70FORTRAN 77 Compilation70Layout70Control-Variable cmul — Complex multiply72Control-Variable comname — COMMON Block Name Format72Control-Variable ftype — FORTRAN Types73Control-Variable implicit — Assumed Implicit None Statement76Control-Variable onetrip — One-Trip DO Loops in FORTRAN76Control-Variable save — SAVE Variables in FORTRAN77Control-Variable vms — VAX/VMS Compatibility80C/C++ Compilation81Control-Variable c — C/C++ Language Modes81Control-Variable char — Signedness of plain char in C/C++83wchar_t in C/C++84Control-Variable fltdbl — Single vs. Double Arithmetic85Control-Variable inclpath — Include File Searching85Control-Variable join — Combining Programs86C++ Compilation87C++ Dialect87Control-Variable tmpl — Template Instantiation Mode in C++87General Code Control90Control-Variable addr — Data Addressing Mode90Control-Variable alnref — Alignment of Indirect References90Control-Variable bss — Use of .bss section92Control-Variable flat — Flat Register Model92Control-Variable g — Symbolic Debugging95Control-Variable kap — Use of the KAP Preprocessor96Control-Variable prof — Profiling97Control-Variable relfunc — Routine Handling in Assembly Files97Control-Variable vast — Use of the VAST Preprocessor98Properties of Variables98Control-Variables volatile, defvol, ptrvol — Volatile Variables98Miscellaneous Controls99Control-Variable lmstat — Status of License Manager99Control-Variable progress — Status of Compilation100Control-Variable show — Output Values of Control-Variables101Control-Variable xref — Output a Cross-Reference Table101Reference Tables105Control-Variable Reference Table105Control-Group Reference Tables129Optimization Group (O)129Fortran Input Format Group (F)130Target Machine Group (T)131Programming Restrictions133Introduction to Programming Restrictions and Optimization133Required Restrictions135Uninitialized Variables135Overlapping String Moves136Side-effects Within a Zone136Assignable Actual Parameters (FORTRAN)137EQUIVALENCE/COMMON Cross-Typing (FORTRAN)137Default Restrictions138Out of Bound References/Wildness138Asynchronous Modifications/Volatility138SETJMP and LONGJMP (C)141Assigned GOTO Bounds (FORTRAN)141Dummy Argument Aliasing (FORTRAN)142Recursion (FORTRAN)142Compilation Restrictions143Interprocedural Optimizations and Compilation143Mixing C and Fortran, or FORTRAN-77 and Fortran 90143Using Fortran 90 MODULEs144Using the KAP Preprocessor144Using the VAST Preprocessor144Using the VAST -mi Option144Using control-variable whole144The Apogee-FORTRAN 77/90 Languages145Overview of Apogee-FORTRAN145ANSI FORTRAN-77 Features146ANSI FORTRAN-66 Features146MIL-STD 1753 Extensions146VAX FORTRAN Extensions147Cray FORTRAN Extensions149SUN FORTRAN Extensions149Additional Extensions150Transformation of Symbol Names150Intermixing C Modules with FORTRAN Modules151Control-Variables That Affect the FORTRAN Language154Fortran 90 Compilation Restrictions155The Apogee-C & Apogee-C++ Languages157C Language Definition157C++ Language Definition158Dialect158Boolean Type (bool)158Wide Characters (wchar_t)159Special Pragmas160Exception Handling161On-going Standardization Issues162Significant Comments165Predefined Symbols166Appendix A A 5-Minute VAST Guide167Introduction167Optimizing Small Programs with VAST168Optimizing Large Programs with VAST168Improving and Customizing VAST Performance169Additional Performance Improvement Techniques170Problems171A 5-Minute KAP Guide173Introduction173Optimizing Small Programs with KAP173Optimizing Large Programs with KAP174Improving and Customizing KAP Performance175Additional Performance Improvement Techniques177Problems177Apogee Compilers on SPARC Systems179Introduction179Operating System Issues180SPARC-specific control variables180SPARC-specific predefines181SPARC-specific command-line options182Compatibility183Appendix D Apogee Compilers on PowerPC Systems185Installation and License Management187Overview187Installation Features189Mounting the Apogee CD-ROM191Introduction191Procedure for Use191The Installation Process191Installing From a Local CD Drive192Installing From a Remote CD Drive193The Installation Directory194The FLEXlm License Manager198How the FLEXlm License Manager Works198The FLEXlm Log File199The FLEXlm License-file200SERVER Lines200DAEMON Lines201FEATURE Lines201License File Example202Managing/Merging License-Files202The FLEXlm Options File204RESERVE Line205NOLOG Line205INCLUDE Line205EXCLUDE Line206GROUP Line206FLEXlm Utilities206Troubleshooting Guide207General Debugging Hints207Problem Description Format207Problems208Index211Size: 470 KBPages: 223Language: EnglishOpen manual