[PATCH] D107702: [MemCpyOpt] Optimize MemoryDef insertion

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 9 12:27:20 PDT 2021


aeubanks added a comment.

this does make memcpyopt not insanely slow for large functions

  import sys
  
  count = int(sys.argv[1])
  
  with open(sys.argv[2], 'w') as f:
      for i in xrange(count):
          f.write('@g{} = global [2 x i64] zeroinitializer\n'.format(i))
      f.write('define void @a() {\n')
      for i in xrange(count):
          f.write('  store [2 x i64] zeroinitializer, [2 x i64]* @g{}\n'.format(i))
      f.write('  ret void\n')
      f.write('}\n')

  $ python /tmp/a.py 100000 /tmp/a.ll
  $ opt -passes=memcpyopt -disable-output /tmp/a.ll

for a file with 100000 stores, it previously took 88s, with this patch it takes 1s


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D107702



More information about the llvm-commits mailing list