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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to