A compiler comprises an analysis unit that detects directives (options and
pragmas) from a user to the compiler, an optimization unit that is made
up of a processing unit (a global region allocation unit, a software
pipelining unit, a loop unrolling unit, a "if" conversion unit, and a
pair instruction generation unit) that performs individual optimization
processing designated by options and pragmas from a user, following the
directives and the like from the analysis unit, etc. The global region
allocation unit performs optimization processing, following designation
of the maximum data size of variables to be allocated to a global region,
designation of variables to be allocated to the global region, and
options and pragmas regarding designation of variables not to be
allocated in the global region.