Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!shadooby!samsung!brutus.cs.uiuc.edu!apple!motcsd!hpda!hpcuhb!hpcllla!daryl From: daryl@hpcllla.HP.COM (Daryl Odnert) Newsgroups: comp.sys.hp Subject: Re: Possible HP-UX compiler optimizer bug (found while making Perl) Message-ID: <3770035@hpcllla.HP.COM> Date: 14 Nov 89 01:52:05 GMT References: <4413@fmeed1.UUCP> Organization: Hewlett-Packard Calif. Language Lab Lines: 35 Peter Schroeder writes: > I have had problems too with using the -O flag and could fix them by > going to +O1. What am I actually loosing by not getting the +O2 optimizations? On the s800, Level one optimization is "local" optimization. Local optimizations are limited in scope to a single basic block of code (i.e. straight-line sequence of instructions.) Level two optimization (what you get when you use -O) is "global" optimization. In this case, the compiler considers the entire procedure to enable optimizations that cross basic block boundaries. Typically, the most important level 2 optimizations (that don't get done at level 1) are the loop optimizations, coloring register allocation, and register promotion of variables. > cc: Ncolor: Out of memory: get_wbset. (6284) > cc: Local dataflow: Out of memory. (6270) > > What do these mean? I noticed in the man page for cc that for the 300 > series you can set various obscure limits inside cc with command line > switches (and we used those at times to compile very large things) but > apparently these switches are not supported on the 800 (which is what > I am using, version 3.1). Are the hidden switches that could help me > to get around problems of the above kind? These messages mean the compiler is running out of virtual memory. (Surprise, surprise :-) How much swap space do you have configured on your system? You may be able to fix this problem by increasing your swap space. No, there are no hidden switches on the s800 to help you expand the optimizer's data structures. Regards, Daryl Odnert daryl@hpda.hp.com HP California Language Lab