{"push_id":2126975298,"size":1,"distinct_size":1,"ref":"refs/heads/lg-pointcloud","head":"7fc5cc08a3a3c25b21b492924d23fa24be385be1","before":"2c213b5d8c4e45ad8a327844eb93a01a76cd8294","commits":[{"sha":"7fc5cc08a3a3c25b21b492924d23fa24be385be1","author":{"name":"Larry Gritz","email":"e3c4aae4c6bce9f7c9606fdddd16a46f7061620e@larrygritz.com"},"message":"oslc: Fix param write analysis bug for token/value optional arguments\n\nFunctions that take optional argument lists in token/value form, like\n`texture` or `pointcloud_search` needed to mark just those value\nreferences as \"writeable\" that are (for example, the one following\n\"alpha\" for texture calls, but all of the optional value slots for\npointcloud_search).\n\nThe logic on the oslc side here was broken -- it worked when the token\nwas a string literal, but when it was a variable whose value wouldn't be\nknown until runtime, it was failing to mark it as writeable, whereas the\ncorrect thing to do is to conservatively conclude that it *might* be\nwritten to (we don't know yet) and mark it as such.\n\nThe cascade of errors could lead to incorrect runtime optimization, if\nthe only used output of the function call was one of these parameters\nthat failed to be marked as an output, so so the whole function call\nmight be subject to the \"useless op elision\" optimization wherein ops\nwhose writes are never subsequently read can be eliminated entirely.","distinct":true,"url":"https://api.github.com/repos/lgritz/OpenShadingLanguage/commits/7fc5cc08a3a3c25b21b492924d23fa24be385be1"}]}
{"actor":{"display_login":"lgritz"}}