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] |
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] |