{"author":"Arseny Kapoulkine","author_email":"arseny.kapoulkine@gmail.com","author_time":1711402865,"commit_time":1711402865,"committer":"GitHub","committer_email":"noreply@github.com","hash":"514c43201d33daca7c10042ff1b9d2750c9a8bda","message":"Fix issues with pointer provenance in load/store through ALU (#3916)\n\n* Track pointer provenance in load/store through ALU\r\n\r\nPreviously load/store could be incorrectly rendered into\r\nld.global/st.global when the input was an ALU op that performed an\r\naddress computation with DEFINE_LOCAL on one of the arguments.\r\n\r\n* Simplify the load provenance workaround\r\n\r\nThe issue is that we can render the same code twice, and on the second\r\nrun the opstream is already modified so that vin[0] isn't a DEFINE_*,\r\nwhich overwrites initially correct .shared wth .global.\r\n\r\n* Add a couple tests for basic local use\r\n\r\n* Skip local tests on LLVM since it doesn't implement DEFINE_LOCAL","parents":["d651835ef593758840f501055b6c044dbbf35d50"],"tree_hash":"87ea69f4b0593f68757416923d3c0d5d640bae5e"}