Make LdClsCns not CSE-able

If you load the same class constant multiple times in a
tracelet, this will extend the lifetime of the LdClsCns, and reuse it
at sites past the CheckInit guard.  It can generate incorrect code if
the LdClsCns has a type more specialized than Cell (because if the
unlikely branch happens, later code will reuse the uninit value that
was loaded), and if the type is less specialized it keeps two GPRs
live longer than probably makes sense.
Esse commit está contido em:
Jordan DeLong
2013-05-22 16:05:17 -07:00
commit de Sara Golemon
commit d51ab6e272
+1 -1
Ver Arquivo
@@ -290,7 +290,7 @@ O(LdClsCached, D(Cls), CStr, C|E|N|Refs|Er|Mem) \
O(LdClsCachedSafe, D(Cls), CStr, C) \
O(LdClsCtx, D(Cls), S(Ctx), C) \
O(LdClsCctx, D(Cls), S(Cctx), C) \
O(LdClsCns, DParam, CStr CStr, C) \
O(LdClsCns, DParam, CStr CStr, NF) \
O(LookupClsCns, DParam, CStr CStr, E|Refs|Er|N|Mem) \
O(LdCns, DParam, CStr, NF) \
O(LookupCns, DParam, CStr, E|Refs|Er|N|Mem) \