[PATCH] D113520: [SROA] Maintain shadow/backing alloca when some slices are noncapturnig read-only calls to allow alloca partitioning/promotion

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 4 15:57:40 PST 2022


lebedev.ri reopened this revision.
lebedev.ri added a comment.

Ok, i'm not yet sure how to deal with this, but somehow we end up trying to re-promote the alloca's here:

  ; Function Attrs: argmemonly nofree nounwind willreturn
  declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #0
  
  define fastcc void @TraceLine(i64 %tmp) {
  entry:
    %LDir = alloca i64, align 8
    %NewDir1 = alloca i64, align 8
    %LDir.cast = bitcast i64* %LDir to i8*
    %NewDir1.cast = bitcast i64* %NewDir1 to i8*
    store i64 %tmp, i64* %LDir
  
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* %NewDir1.cast, i8* %LDir.cast, i64 8, i1 false)
    ;%reload = load i64, i64* %LDir
    ;store i64 %reload, i64* %NewDir1
  
    %call33 = call fastcc double @IntersectObjs(i64* %NewDir1)
    %call38 = call fastcc double @IntersectObjs(i64* %LDir)
    ret void
  }
  
  declare fastcc double @IntersectObjs(i64* nocapture readonly)
  
  ; uselistorder directives
  uselistorder double (i64*)* @IntersectObjs, { 1, 0 }
  
  attributes #0 = { argmemonly nofree nounwind willreturn }


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113520



More information about the llvm-commits mailing list