stp/stp — pull request #122 by jamesjer (2014-06-23 18:03:54+00:00)
Title: Alias analysis fixes.

GCC complains about violations of the alias analysis rules, necessitating use of -fno-strict-aliasing when compiling to be sure that good code is generated. This patch fixes the violations so that -fstrict-aliasing is safe.

The first fix is trivial: remove a typecast from STP.cpp. The ToSATAIG class already inherits directly from ToSATBase, so the typecast isn't merely unnecessary and confusing to the alias analysis code, but actually wrong.

The second fix introduces a union and an anonymous struct to fix aliasing problems in the ABC code. If some compiler of interest does not like the anonymous struct, a more invasive change can be made by naming the struct and fixing up all references to the fCompl and Node fields. Note that the Kit_Float2Int and Kit_Int2Float definitions are simply removed, because they are unused and fixing them properly would require an invasive change.