This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

flush out tree-ssa-dse.c pending changes



I suspect long term we'll have a better DSE algorithm; however, until
then we might as well catch the low hanging fruit with the existing
DSE algorithm.

This patch restores DSE's ability to optimize away stores to objects in
static storage by examining V_MUST_DEF operands (which was lost when we
introduced V_MUST_DEF) and also allows DSE to optimize away stores with
multiple virtual outputs.

Handling V_MUST_DEF is by far the more useful of the two improvements;
it catches several cases in gengtype-lex that are not caught by any
existing optimizer plus a few randoms in other gcc files.

Handling multiple virtual outputs isn't as valuable, I only saw one case
in GCC itself where handling multiple virtual outputs resulted in any
change in the code we generate.

This will ever-so-slightly raise the bar for whatever new implementation
we choose for DSE in the future.

I've also added several tests to the testsuite.  Including one for
partial dead store elimination, which we do not currently perform.

Bootstrapped and regression tested on i686-pc-linux-gnu.


Attachment: PPP
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]