[PATCH] D36772: Unmerge GEPs to reduce register pressure on IndirectBr edges.

Hiroshi Yamauchi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 15 15:47:25 PDT 2017


yamauchi created this revision.

GEP merging can sometimes increase the number of live values and register
pressure across control edges and cause performance problems particularly if the
increased register pressure results in spills.

This change implements GEP unmerging around an IndirectBr in certain cases to
mitigate the issue. This is in the CodeGenPrepare pass (after all the GEP
merging has happened.)

With this patch, the Python interpreter loop runs faster by ~5%.


https://reviews.llvm.org/D36772

Files:
  lib/CodeGen/CodeGenPrepare.cpp
  test/Transforms/CodeGenPrepare/gep-unmerging.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36772.111271.patch
Type: text/x-patch
Size: 8266 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170815/4c5f4326/attachment.bin>


More information about the llvm-commits mailing list