Thomas Pfau <[EMAIL PROTECTED]> wrote > Vorländer wrote: >> John E. Malmberg <[EMAIL PROTECTED]> wrote: >>> That sounds like a known bug in the VAX DECC optimizer, PYTHON on VAX >>> has a similar problem. If we can find the offending routine, it may be >>> possible to put a VAX specific DECC pragma around it to disable >>> optimization for that routine to fix it.
IIRC, it were some of the nested macros in that module that blew the optimizer. >> For the time being, a workaround would be to break out of the build, >> compile SHA.C by hand with /NOOPTIMIZE, and restart the build. >> I remember doing exactly that at some time to get perl to build. > > I compiled it manually with /NOOPTIMIZE and it completed > fairly quickly. > > I don't see any #pragma directives that control optimization in the > compiler help. How do you turn optimization on and off? $ cc/version Compaq C V6.5-001 on OpenVMS Alpha V7.3-2 $ help cc lang preproc #pragma ... #pragma optimize[_m|_nm] Sets the optimization characteristics of function definitions that follow the directive. It allows optimization-control options that are normally set on the command line for the entire compilation to be specified in the source file for individual functions. Syntax: #pragma optimize <settings> #pragma optimize save #pragma optimize restore #pragma optimize command_line Where <settings> is any combination of the following: o <level settings> Set the optimization level. Specify as: level=n Where n is an integer from 0 to 5. o <unroll settings> Control loop unrolling. Specify as: unroll=n Where n is a nonnegative integer. o <ansi-alias settings> Control ansi-alias assumptions. Specify one of the following: ansi_alias=on ansi_alias=off o <intrinsic settings> Control recognition of intrinsics. Specify one of the following: intrinsics=on intrinsics=off Use the save, restore, and command_line keywords as follows: o save -- Saves the current pointer size o restore -- Restores the current pointer size to its last saved state o command_line -- Sets the optimization settings to what was specified on the command line Example: #pragma optimize level=5 unroll=6 Usage Notes: o If the level=0 clause is present, it must be the only clause present. o The #pragma optimize directive must appear at file scope, outside any function body. o The #pragma environment save and restore operations include the optimization state. o The #pragma environment command_line directive resets the optimization state to that specified on the command line. o If #pragma optimize does not specify a setting for one of the optimization states, that state remains unchanged. o When a function definition is encountered, it is compiled using the optimization settings that are current at that point in the source. o When a function is compiled under level=0, the compiler will not inline that function. In general, when functions are inlined, the inlined code is optimized using the optimization controls in effect at the call site instead of using the optimization controls specified for the function being inlined. o When the OpenVMS command line specifies /NOOPT (or /OPTIMIZE=LEVEL=0), the #pragma optimize directive has no effect (except that its arguments are still validated). ... cu, Martin -- Your mouse has moved. | Martin Vorlaender | OpenVMS rules! Windows must be restarted | work: [EMAIL PROTECTED] for the change to take | http://www.pdv-systeme.de/users/martinv/ effect. Reboot now? [OK] | home: [EMAIL PROTECTED]