[PATCH] D53986: [LTO] Fix a crash caused by accessing an empty ValueInfo

Tom Roeder via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 2 16:08:28 PDT 2018


tmroeder added a comment.

I can confirm that this version of the revision also fixes the bug I observed. I patched it in and built and re-ran the build step that failed.

However, the test case fails, at least for me:

  FAIL: LLVM :: ThinLTO/X86/alias_internal.ll (22171 of 28416)
  ******************** TEST 'LLVM :: ThinLTO/X86/alias_internal.ll' FAILED ********************
  Script:
  --
  : 'RUN: at line 4';   /usr/local/google/home/tmroeder/src/llvm/svn-build/release/bin/opt -module-summary /usr/local/google/home/tmroeder/src/llvm/svn/test/ThinLTO/X86/alias_internal.ll -o /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp1.bc
  : 'RUN: at line 5';   /usr/local/google/home/tmroeder/src/llvm/svn-build/release/bin/opt -module-summary /usr/local/google/home/tmroeder/src/llvm/svn/test/ThinLTO/X86/Inputs/alias_internal.ll -o /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp2.bc
  : 'RUN: at line 6';   /usr/local/google/home/tmroeder/src/llvm/svn-build/release/bin/llvm-lto2 run /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp1.bc /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp2.bc -o /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp.out -save-temps    -r /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp1.bc,a1,plx    -r /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp2.bc,a2,plx
  : 'RUN: at line 10';   cat /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp.out.index.dot | /usr/local/google/home/tmroeder/src/llvm/svn-build/release/bin/FileCheck /usr/local/google/home/tmroeder/src/llvm/svn/test/ThinLTO/X86/alias_internal.ll
  --
  Exit Code: 1
  
  Command Output (stderr):
  --
  /usr/local/google/home/tmroeder/src/llvm/svn/test/ThinLTO/X86/alias_internal.ll:11:14: error: CHECK-DAG: expected string not found in input
  ; CHECK-DAG: M0_12511626713252727690 -> M0_1505494552724110632 [style=dotted]; // alias
               ^
  <stdin>:1:1: note: scanning from here
  digraph Summary {
  ^
  <stdin>:22:2: note: possible intended match here
   M0_12511626713252727690 -> M0_12714169483090670833 [style=dotted]; // alias
   ^
  
  --

I reran the steps by hand without the FileCheck part of the pipe, and I get the following graph:

  $ cat /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp.out.index.dot
  digraph Summary {
    // Module: /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp2.bc
    subgraph cluster_1 {
      style = filled;
      color = lightgrey;
      label = "alias_internal.ll.tmp2.bc";
      node [style=filled,fillcolor=lightblue];
      M1_5602470142352873009 [shape="record",label="f|internal (inst: 1, ffl: 0000)}"]; // function
      M1_8129049334585965161 [style="dotted,filled",shape="box",label="a2"]; // alias
      // Edges:
      M1_8129049334585965161 -> M1_5602470142352873009 [style=dotted]; // alias
    }
    // Module: /usr/local/google/home/tmroeder/src/llvm/svn-build/release/test/ThinLTO/X86/Output/alias_internal.ll.tmp1.bc
    subgraph cluster_0 {
      style = filled;
      color = lightgrey;
      label = "alias_internal.ll.tmp1.bc";
      node [style=filled,fillcolor=lightblue];
      M0_12714169483090670833 [shape="record",label="f|internal (inst: 1, ffl: 0000)}"]; // function
      M0_12511626713252727690 [style="dotted,filled",shape="box",label="a1"]; // alias
      // Edges:
      M0_12511626713252727690 -> M0_12714169483090670833 [style=dotted]; // alias
    }
    // Cross-module edges:
  }

It looks like the sources match in both CHECK-DAG cases but that the destinations don't.


Repository:
  rL LLVM

https://reviews.llvm.org/D53986





More information about the llvm-commits mailing list