charmxi: Encapsulate epidx static member within static method
authorRamprasad Venkataraman <ramv@illinois.edu>
Tue, 27 Mar 2012 15:49:54 +0000 (10:49 -0500)
committerRamprasad Venkataraman <ramv@illinois.edu>
Tue, 27 Mar 2012 16:08:17 +0000 (11:08 -0500)
commit21b413860f5dc017fc3e0a62765fc4306753b4c1
treea421e8aa4828051c87c207b9cfa5bea11b30c777
parent31523d896e844b811f27b179eff32187925d4524
charmxi: Encapsulate epidx static member within static method

Originally, any charm entity (chare,group,array etc) would have
a CkIndex_Foo class that held all the entry point indices. These
were simply stored as static member variables of the CkIndex class
and accessed directly throughout the generated code. The variable
was initialized in the entity's CkIndex_Foo::__register() method.

This commit hides the variable behind a static method that has a
similarly mangled name and does not take any arguments. This method
will almost certainly be inlined by the compiler. The ep index is
initialized in place via a call to CkRegisterEp(). We still ensure
identical registration sequence on all PEs by calling all these static
methods from the CkIndex_Foo::__register() method.

This is a preliminary step enroute to support for template entry methods.
src/xlat-i/xi-symbol.C
src/xlat-i/xi-symbol.h