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] | |
It may be a case where one function f() calls no clobbering functions, while a second function g() does. So the CC state for the same decl is considered different for f() and g().This is done by reset_cc_flags pass and I am now starting to wonder why it is needed at all? What is the semantic of CALL_CLOBBERED on static variables and why it differs on individual functions? (I can see that perhaps function that is known to never reach functions that might clobber the variable might want to have this flag clear unlike other function that does call something clobbering it. But I am surprised we do that especially because I've temporarily disabled IPA AA passes for now)
Well, perhaps this will give us another incentive to move to a global dense DECL_UID space. But in the meantime, we may need to move to this. Dan may have other ideas as he worked on this before.I will benchmark it on the testcase suggested and prepare version with inline functions unless we can come with better solution to this problem. If this flag really needs to be local to functions I am affraid I don't have better answer than this patch even if it turns out to be costy :(
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |