Noteworthy changes in GCC for EGCS 1.1.
---------------------------------------

The compiler now implements global common subexpression elimination (gcse) as
well as global constant/copy propagation.  (link to gcse page).

More major improvements have been made to the alias analysis code.  A new
option to allow front-ends to provide alias information to the optimizers
has also been added (-fstrict-aliasing).  -fstrict-aliasing is off by default
now, but will be enabled by default in the future. (link to alias page)

Major changes continue in the exception handling support.  This release
includes some changes to reduce static overhead for exception handling.  It
also includes some major changes to the setjmp/longjmp based EH mechanism to
make it less pessimistic.  And finally, major infrastructure improvements
to the dwarf2 EH mechanism have been made to make our EH support extensible.

We have fixed the infamous security problems with temporary files. 

The "regmove" optimization pass has been nearly completely rewritten.  It now
uses much more information about the target to determine profitability of
transformations.

The compiler now recomputes register usage information immediately before
register allocation.  Previously such information was only not kept up to
date after instruction combination which led to poor register allocation
choices by our priority based register allocator.

The register reloading phase of the compiler has been improved to better
optimize spill code.  This primarily helps targets which generate lots of
spills (like the x86 ports and many register poor embedded ports).

A few changes in the heuristics used by the register allocator and scheduler
have been made which can significantly improve performance for certain
applications.

The compiler's branch shortening algorithms have been significantly improved
to work better on targets which align jump targets.

The compiler now supports the "ADDRESSOF" optimization which can significantly
reduce the overhead for certain inline calls (and inline calls in general).

The compiler now supports a code size optimization switch (-Os).  When enabled
the compiler will prefer optimizations which improve code size over those
which improve code speed.

The compiler has been improved to completely eliminate library calls which
compute constant values.  This is particularly useful on machines which
do not have integer mul/div or floating point support on-chip.

GCC now supports a "--help" option to print detailed help information.

cpplib has been greatly improved.  It is probably useable for some sites now
(major missing feature is trigraphs).

Memory footprint for the compiler has been significantly reduced for certain
pathalogical cases.

Build time improvements for targets which support lots of sched parameters
(alpha and mips primarily).

Compile time for certain programs using large constant initializers has been
improved (effects glibc significantly).

Plus an incredible number of infrastructure changes, warning fixes, bugfixes
and local optimizations.

Various improvements have been made to better support cross compilations.  They
are still not easy, but they are improving.

Target specific NEWS

    x86: Data in the static store is aligned per Intel recommendations.  Jump
         targets are aligned per Intel recommendations.  Improved epilogue
         sequences for Pentium chips.  Backend improvements which should help
         register allocation on all x86 variants.  Support for PPro conditional
         move instructions has been fixed and enabled.  Random changes
	 throughout the port to make generated code more Pentium friendly.
         Improved support for 64bit integer operations.

EGCS includes all gcc2 changes up to and including the June 9, 1998 snapshot.
