[Bug tree-optimization/18587] build_v_may_defs and build_vuses should be hastables instead of varray
amacleod at redhat dot com
gcc-bugzilla@gcc.gnu.org
Thu Nov 25 19:39:00 GMT 2004
------- Additional Comments From amacleod at redhat dot com 2004-11-25 19:39 -------
Created an attachment (id=7609)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=7609&action=view)
patch to resolve the problem
First, we eliminate the linear search for duplicates when building VUSES
and VMAYDEFs. Instead, two bits are added to the var annotation and we
use those bits to determine whether a given var is already in the list
or not.
second we speed up the code which adds virtual operands for the
call clobbered bit vector at each call site. Every time we had a call,
we iterated through the bitvector and built up an operand vector for
those variables. Those variables dont change very often, so now we keep
a cache of the operand vector that is built. The next time we need the
clobbers for a call, we simply use the cache if it hasn't been
invalidated by adding or removing global variables.
The combined speedups from these two patches are pretty decent.
Average of two runs USER time for operand scanning phase on a 1.8Ghz P4.
orig patched
cplusplus-grammer.ii 22.58 sec 10.35 sec
tramp3d.ii 6.14 sec 4.03 sec
generate3.4.ii 1.69 sec 1.23 sec
all gcc .i files 6.72 sec 5.83 sec
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18587
More information about the Gcc-bugs
mailing list