[PATCH] D11955: [WinEHPrepare] Update demotion logic

Joseph Tremoulet via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 11 12:16:09 PDT 2015


JosephTremoulet created this revision.
JosephTremoulet added reviewers: majnemer, rnk.
JosephTremoulet added a subscriber: llvm-commits.

Update the demotion logic in WinEHPrepare to avoid creating new cleanups by
walking predecessors as necessary to insert stores for EH-pad PHIs.

Also avoid creating stores for EH-pad PHIs that have no uses.

The store/load placement is still pretty naive.  Likely future improvements
(at least for optimized compiles) include:
 - Share loads for related uses as possible
 - Coalesce non-interfering use/def-related PHIs
 - Store at definition point rather than each PHI pred for non-interfering
   lifetimes.


http://reviews.llvm.org/D11955

Files:
  lib/CodeGen/WinEHPrepare.cpp
  test/CodeGen/WinEH/wineh-demotion.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11955.31847.patch
Type: text/x-patch
Size: 26511 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150811/76ad0b80/attachment.bin>


More information about the llvm-commits mailing list