[PATCH] D83101: [Scalarizer] ExtractElement handling w/ constant extract index

mattias.v.eriksson@ericsson.com via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 18 06:56:45 PDT 2020


materi added a comment.

We have seen some issues with missing symbols during linking that I think are caused by this patch. The origin of this is downstream fuzz testing.

The global variable `aglobal` is renamed:

  $ cat global.ll
  @aglobal = dso_local global i16 0, align 1
  @b = dso_local local_unnamed_addr global i16 0, align 1
  
  define dso_local void @c() local_unnamed_addr {
  entry:
    %d.sroa.0.1.vec.extract = extractelement <4 x i16*> <i16* @aglobal, i16* @aglobal, i16* @aglobal, i16* @aglobal>, i32 1
    %0 = ptrtoint i16* %d.sroa.0.1.vec.extract to i16
    store i16 %0, i16* @b, align 1
    ret void
  }
  
  $ opt -scalarizer global.ll -S
  ; ModuleID = 'global.ll'
  source_filename = "global.ll"
  
  @d.sroa.0.1.vec.extract = dso_local global i16 0, align 1
  @b = dso_local local_unnamed_addr global i16 0, align 1
  
  define dso_local void @c() local_unnamed_addr {
  entry:
    %0 = ptrtoint i16* @d.sroa.0.1.vec.extract to i16
    store i16 %0, i16* @b, align 1
    ret void
  }


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D83101



More information about the llvm-commits mailing list