Andrew Pinski wrote on 04/10/07 01:43: > Yes clobbers for asm are strings and don't really need to be full > trees. This should help out more. though it does make it harder to > implement.
Hmm, could be. The problem is that __asm__ are so infrequent that I'm not sure it's worth the additional headache. > For "GS COND", you forgot about all the unorder conditionals which > don't happen that often but can. Good point. Thanks. > Most of the labels can go away with better handling of the CFG. Gotos > really should pointing to the basic block rather than labels. Remember that when we emit GIMPLE, we are not working with a CFG. One could argue that we would want to make the GOTO target a union of a label and block, but a label-to-block map is just as good, and easier to work with. > I also think we can improve our current gimplification which produces > sometimes ineffient gimplification which will change your numbers of > how many copies exist, see PRs 27798, 27800, 23401, 27810 (this one > especially as combine.i numbers show that). True. But remember that the stats were gathered inside the SSA verification routines, which happens during optimization. All those gimplification inefficiencies are quickly eliminated by the first few scalar cleanups. I very much doubt that you would see significantly different instruction distribution profiles if you made improvements in the gimplifier. > Also I noticed in your pdf, you have "PHI NODE" as 12%, we can improve > the memory usage for this statement by removing the usage of > TREE_CHAIN/TREE_TYPE, so we can save 4/8 bytes for those 12% without > doing much work. I can send a patch in the next week or so (I am busy > at a conference the next two days but I can start writting a patch > tomorrow). Well, if you want to do this patch for 4.3 and it gives us sufficient benefit, go for it. But it will have no effect on the tuples branch.