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]

Improve get_expr_expr_value in dominator optimzier


In the process of evaluating the jump threading code I stumbled
across cases where we were failing to detect and utilize some
equivalances created by conditionals.  When evaluating whether or
not a COND_EXPR in a parent block creates an equivalence in a child
block, we can/should ignore loop backedges into the child block.

Failure to identify and record such equivalences results in either
jumps not being threaded as often as they should.

When compiling combine.i on i686-pc-linux-gnu fixing this results in
the elimination of roughly 500,000 runtime compare/branches.  This is
a tiny percentage of the number of runtime branches.  More importantly
to me right now is that it introduces more predictability into the
jump threading code which makes it easier to evaluate the behavior
of the jump threading code.

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


Attachment: ZZZ
Description: Text document


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