{"push_id":2437089517,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"5e07ab1358dcb1593656b256bc49cf13905940bd","before":"9cf87ecbc8372c0bcba2cf73fbb2a1267d86eb57","commits":[{"sha":"0a8b6a96e162d1a1c57968a09f4ff22197ecc258","author":{"name":"Andrew Woloszyn","email":"7ff9f49241a9b3deac2e2eca08ec98d2d0701584@google.com"},"message":"Replace an undefined double->float cast with infinity.\n\nThis was caught by UBSan. The given double would overflow\nthe underlying float, which is undefined. Instead test\nwith an explicit float::infinity.","distinct":true,"url":"https://api.github.com/repos/atgoo/SPIRV-Tools/commits/0a8b6a96e162d1a1c57968a09f4ff22197ecc258"},{"sha":"c4dc04639904479f4418a86d2d1641514047bbff","author":{"name":"Steven Perron","email":"e2fb3942e6f3edc4371777db2bd421f931f2943f@google.com"},"message":"Copy propagate arrays\n\nThe sprir-v generated from HLSL code contain many copyies of very large\narrays.  Not only are these time consumming, but they also cause\nproblems for drivers because they require too much space.\n\nTo work around this, we will implement an array copy propagation.  Note\nthat we will not implement a complete array data flow analysis in order\nto implement this.  We will be looking for very simple cases:\n\n1) The source must never be stored to.\n2) The target must be stored to exactly once.\n3) The store to the target must be a store to the entire array, and be a\ncopy of the entire source.\n4) All loads of the target must be dominated by the store.\n\nThe hard part is keeping all of the types correct.  We do not want to\nhave to do too large a search to update everything, which may not be\npossible, do we give up if we see any instruction that might be hard to\nupdate.\n\nAlso in types.h, the element decorations are not stored in an std::map.\nThis change was done so the hashing algorithm for a Struct is\nconsistent.  With the std::unordered_map, the traversal order was\nnon-deterministic leading to the same type getting hashed to different\nvalues.  See |Struct::GetExtraHashWords|.\n\nContributes to #1416.","distinct":true,"url":"https://api.github.com/repos/atgoo/SPIRV-Tools/commits/c4dc04639904479f4418a86d2d1641514047bbff"},{"sha":"5e07ab1358dcb1593656b256bc49cf13905940bd","author":{"name":"Steven Perron","email":"e2fb3942e6f3edc4371777db2bd421f931f2943f@google.com"},"message":"Handle more cases in copy propagate arrays.\n\nWhen we change the type of an object that gets stored, we do not want to\nchange the type of the memory location being stored to.  In order to\nstill be able to do the rewrite, we will decompose and rebuild the\nobject so it is the type that can be stored.\n\nFixes #1416.","distinct":true,"url":"https://api.github.com/repos/atgoo/SPIRV-Tools/commits/5e07ab1358dcb1593656b256bc49cf13905940bd"}]}
{"actor":{"display_login":"atgoo"}}