[PATCH] D146987: [Assignment Tracking] Enable by default

Jeremy Morse via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 20 07:34:21 PDT 2023


jmorse added a comment.

Seeing how this has been in and out quite a bit, I figure it's worth explaning my understanding of what's failing and why. Just so it doesn't look like we're needlessly fuzzing other peoples CI. Three kinds of failures so far:

- The usual edge cases for things we hadn't accounted for, like VLAs,
- Various difficulties with variadic variable locations: these got enabled fairly late in testing so there have been a number of unexpected interactions,
- The front end can be more creative with how it stores variables in allocas than initially expected, resulting in unexpected edge cases when updating the sizes of assignments due to DSE/SROA etc, and our verifier conditions are very strict.

The former is expected, the middle annoying, but the latter is the riskiest as it's not something we'd anticipated at all, so has the greatest potential pop up randomly. If there's futher breakage then I think our preferred approach is relaxing the verifier conditions: this doesn't lead to producing incorrect variable locations (AFAIUI), it means describing nonexistant portions of variables (that other passes will drop) or producing overlapping fragments that make some portions of variables needlessly "optimised out". Which isn't a regression versus the existing implementation of tracking partially-promoted variables.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146987/new/

https://reviews.llvm.org/D146987



More information about the cfe-commits mailing list