[PATCH] D39440: [SimplifyCFG] Use a more generic name for the selects created by SpeculativelyExecuteBB to prevent long names from being created

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 30 18:16:33 PDT 2017


craig.topper created this revision.

Currently the selects are created with the names of their inputs concatenated together. It's possible to get cases that chain these selects together resulting in long names due to multiple levels of concatenation. Our internal branch of llvm managed to generate names over 100000 characters in length on a particular test due to an extreme compounding of the names.

This patch changes the name to a generic name that is not dependent on its inputs. I'm open to other suggestions.

As a small demonstration, here is what is currently in the output IR for merge-cond-stores-2.ll before this patch

  %1 = select i1 %tobool, i32 %0, i32 %or
  %.or4 = select i1 %tobool2, i32 %1, i32 %or4
  %.or4.or9 = select i1 %tobool7, i32 %.or4, i32 %or9
  %.or4.or9.or14 = select i1 %tobool12, i32 %.or4.or9, i32 %or14
  %.or4.or9.or14.or19 = select i1 %tobool17, i32 %.or4.or9.or14, i32 %or19
  %.or4.or9.or14.or19.or24 = select i1 %tobool22, i32 %.or4.or9.or14.or19, i32 %or24
  %.or4.or9.or14.or19.or24.or29 = select i1 %tobool27, i32 %.or4.or9.or14.or19.or24, i32 %or29
  %.or4.or9.or14.or19.or24.or29.or34 = select i1 %tobool32, i32 %.or4.or9.or14.or19.or24.or29, i32 %or34
  %.or4.or9.or14.or19.or24.or29.or34.or39 = select i1 %tobool37, i32 %.or4.or9.or14.or19.or24.or29.or34, i32 %or39
  %.or4.or9.or14.or19.or24.or29.or34.or39.or44 = select i1 %tobool42, i32 %.or4.or9.or14.or19.or24.or29.or34.or39, i32 %or44
  %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49 = select i1 %tobool47, i32 %.or4.or9.or14.or19.or24.or29.or34.or39.or44, i32 %or49
  %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54 = select i1 %tobool52, i32 %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49, i32 %or54
  %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54.or59 = select i1 %tobool57, i32 %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54, i32 %or59
  %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54.or59.or64 = select i1 %tobool62, i32 %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54.or59, i32 %or64
  %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54.or59.or64.or69 = select i1 %tobool67, i32 %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54.or59.or64, i32 %or69
  %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54.or59.or64.or69.or74 = select i1 %tobool72, i32 %.or4.or9.or14.or19.or24.or29.or34.or39.or44.or49.or54.or59.or64.or69, i32 %or74


https://reviews.llvm.org/D39440

Files:
  lib/Transforms/Utils/SimplifyCFG.cpp
  test/Transforms/SimplifyCFG/SpeculativeExec.ll
  test/Transforms/SimplifyCFG/guards.ll
  test/Transforms/SimplifyCFG/merge-cond-stores-2.ll
  test/Transforms/SimplifyCFG/multiple-phis.ll
  test/Transforms/SimplifyCFG/select-gep.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39440.120918.patch
Type: text/x-patch
Size: 4220 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171031/9c943e55/attachment.bin>


More information about the llvm-commits mailing list