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]

[PATCH] Merging BB and user labels (tree level)


I was looking at some fortran code and I noticed that we were merging
some Basic Blocks because it included an user label. I noted that on the
rtl level we merge the BBs and just move the user label to the beginning
of the BB we are merging into.


To get the "correct" output at -O0, I just enabled this when optimizing.

OK? Bootstrapped and tested on powerpc-darwin with no regressions.

Also checked to make sure at -O0, we don't merge basic blocks with user
labels.

I don't know if this is unsuitable for 4.0, but it should help compile
time and also code generation but I have not tested it on SPEC because
I don't have access to it.

Thanks,
Andrew Pinski

ChangeLog:
	* tree-cfg.c (tree_can_merge_blocks_p): Before checking if we have
	an user label in the second basic block, return true if we are
	optimizing.
	(tree_merge_blocks): Move user labels from the second basic block
	to the first basic block.

Attachment: fixmergeBB.diff.txt
Description: Text document


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