[PATCH] D40146: [JumpThreading] Preservation of DT and LVI across the pass

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 4 17:18:49 PST 2018

rnk added a comment.

CReduce got this reduction, but I think you can go further:

  struct a {
    int b;
  class c {
    c(bool) : d() {}
    ~c() {}
    bool e() { return d; }
    bool d;
  class f : a {
    c g();
    c h();
    c i();
  enum { j };
  c f::h() {
    switch (b)
    case j: {
      auto a(i());
      if (a.e())
        return a;
      return 0;
  c f::i() {
      auto b(g());
      if (b.e())
        return b;
    return 0;

Use the command line `clang -cc1 idl_parser.cpp -S -emit-llvm -O2 -o t.ll`.



More information about the llvm-commits mailing list