finit-local-zero and default initialization
Jerry DeLisle
jvdelisle@verizon.net
Wed Jun 6 01:03:00 GMT 2007
Asher Langton wrote:
> On 6/5/07, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote:
>> On Tue, Jun 05, 2007 at 04:50:43PM -0700, Asher Langton wrote:
>> > I'm planning to add support for -finit-local-zero (PR20441), as well
>> > as for arbitrary default initializations specified at compile-time.
>> > One request from within LLNL has been for a way to control the default
>> > initialization values at runtime, via some simple library routines
>> > (set_default_integer, get_default_integer, etc.). This would be very
>> > useful for debugging large codes without recompiling an entire
>> > project. Any comments, suggestions, or objections?
>> >
>>
>> I think the compile time options would be quite useful.
>> Can you describe the runtime method? Would
>>
>> program test
>> integer i
>> print *, i
>> end progrma test
>>
>> compile to (pseudocode of course)
>>
>> if (getenv(RUNTIME_INITIALIZE))
>> i = set_default_integer()
>>
>> print i
>> end
>
> The default initializations would be done only if specified at compile
> time. The runtime option would just change the values used for
> default initialization. So if default initialization was specified at
> compile time, the compiled code would be something like:
>
> i = get_default_integer()
> print i
> end
>
> By default, get_default_integer() would evaluate to 0, but a different
> value could be specified at compile time (via a compiler flag) or at
> runtime by calling set_default_integer. Then a user could write a
> driver program to do something like:
>
> set_default_integer (-2147483648)
> call massive_program
> set_default_integer (2147483647)
> call massive_program
>
> This would help to reveal problems arising from incorrectly initialized
> values.
>
I like this approach, no runtime penalty if default initialization flag not
given at compile time.
Jerry
More information about the Fortran
mailing list