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]

Re: [PATCH] Teach SCCVN/FRE expression insertion, optimize type-punning through unions (final!)



+ 	*state_in = fs.reg;
+ 	*state_in = fs.offset;
Better to write to two different variables, maybe?

+     union loc fs;
+     for (;;)
+     {
+ 	*state_in = fs.offset;
+ 	*state_in = fs.reg;
Likewise, and also make them volatile?

+ 	    case 0:
+ 		*state_in = fs.reg;
+ 	    case 1:
+ 		*state_in = fs.offset;
Write to two variables here too?

Both stores need to be connected via VOPs - all the above testcases are for situations we would ICE if the dominance / avail checks were not done (and we would be happen to visit the loads in the wrong order).

My concern is, what if DSE removes the first store? If possible, I still think you should make the variable volatile.


Paolo


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