Next:
Polaris Philosophy
Polaris Developer's Document
June 1, 1995
Center for Supercomputing Research and Development
University of Illinois at Urbana-Champaign.
Polaris Philosophy
We Must Make Strong Compilers
We Must Analyze Real Programs
Overall organization of Polaris
Base / projects
The Polaris scanner
Usage of Polaris with Delta
Usage of Polaris with KAP
KAP specialty directives
Example source file with directives:
Directing the compilation with switches
A Compendium of Polaris Switches
general switches
switches for the simplifier
scanner switch
inlining
program normalization
dead-coding
range propagation
constant / expression propagation
induction
privatization
reduction recognition
ddtest
postpass general
postpass - reduction translation
postpass - runtime testing
instrumentation
printing - general
printing after passes
Conventions of the base
Naming conventions
Ownership
Passing objects by pointer / reference
Memory leaks
Use of virtual functions
Program Representation
Data Structure discussion
discussions of each major structure (including Workspaces, DDGraph)
Data Structure diagrams
Data structure incremental consistency
Collection hierarchy
Key usage within Collections
Properties
Key Comparison
Why is external meaning important?
A comparison between Databases and KeyDatabases
Restrictions on key objects
Statement list conventions
Polaris Assertions and their meanings
AssertParallel
AssertPrivate
AssertLastValue and AssertDynLastValue
AssertLoopLabel
AssertReduction
AssertFirstValue
AssertRangeWritten
AssertPrivateRefs
AssertReadOnlyRefs
AssertInstrument
AssertInline and AssertNoInline
AssertSerial
AssertSafeCondition
AssertInduction
AssertMayMod and AssertNoMod
AssertParallelCondition
AssertRelation
AssertRunTimeTest
AssertSchedule
ProgramUnit tag
Use of Expressions
assign()/pull()
Calculating range expressions
replace()
Statement::iterate_expressions()
arg_list(), Iterator with
expr_simplify()
Statement::simplify_expressions()
Shape information / Intrinsics
Fortran90 support
Debugging
GDB
p_assert mechanism
fingerprinting
Software Engineering considerations
System design considerations to facilitate development work by a group
Code Examples
instrumenter
simplify()ing the rhs of a statement (two ways)
adding a switch to Polaris
adding a directive/assertion to Polaris
Terminology
Adding a new assertion
A Description of the Polaris Listing
Dependence Graph Statistics
Scheduling Summary
Switches burst page
Source code listing
Switch file extraction
About this document ...
Jay Hoeflinger
Mon Apr 21 11:52:18 CDT 1997