Commit Graph

2 Commits

Author SHA1 Message Date
Stephen Canon
d3c7f02f78 Resolve merge conflicts for github main -> next automerger. 2021-08-06 12:33:00 -04:00
Erik Eckstein
6a9d08793a SILCombine: a peephole optimization to optimize alloc_stack of enums.
Replaces an alloc_stack of an enum by an alloc_stack of the payload if only one enum case (with payload) is stored to that location.

For example:

  %loc = alloc_stack $Optional<T>
  %payload = init_enum_data_addr %loc
  store %value to %payload
  ...
  %take_addr = unchecked_take_enum_data_addr %loc
  %l = load %take_addr

is transformed to

  %loc = alloc_stack $T
  store %value to %loc
  ...
  %l = load %loc

https://bugs.swift.org/browse/SR-12710
2020-06-10 09:23:37 +02:00