[PATCH] D117356: InstructionCombining: avoid eliding mismatched alloc/free pairs
    Augie Fackler via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Jan 14 14:22:42 PST 2022
    
    
  
durin42 added a comment.
After splitting the ::operator::new flavors into their own families, I'm getting a weird failure from `new-delete-itanium.ll`. `test8` in that file should optimize to just `ret void` but instead a few calls are surviving:
  define void @test8() {
    %nt = alloca i8, align 1
    %naa = call align 8 dereferenceable_or_null(32) i8* @_ZnamSt11align_val_t(i64 32, i64 8) #5
    call void @_ZdaPvSt11align_val_t(i8* %naa, i64 8) #5
    %naja = call align 8 dereferenceable_or_null(32) i8* @_ZnajSt11align_val_t(i32 32, i32 8) #5
    call void @_ZdaPvSt11align_val_t(i8* %naja, i64 8) #5
    %nwat = call align 8 dereferenceable_or_null(32) i8* @_ZnwmSt11align_val_tRKSt9nothrow_t(i64 32, i64 8, i8* nonnull %nt) #5
    call void @_ZdlPvSt11align_val_tRKSt9nothrow_t(i8* %nwat, i64 8, i8* %nt) #5
    %naat = call align 8 dereferenceable_or_null(32) i8* @_ZnamSt11align_val_tRKSt9nothrow_t(i64 32, i64 8, i8* nonnull %nt) #5
    call void @_ZdaPvSt11align_val_tRKSt9nothrow_t(i8* %naat, i64 8, i8* %nt) #5
    %nwjat = call align 8 dereferenceable_or_null(32) i8* @_ZnwjSt11align_val_tRKSt9nothrow_t(i32 32, i32 8, i8* nonnull %nt) #5
    call void @_ZdlPvSt11align_val_tRKSt9nothrow_t(i8* %nwjat, i64 8, i8* %nt) #5
    %najat = call align 8 dereferenceable_or_null(32) i8* @_ZnajSt11align_val_tRKSt9nothrow_t(i32 32, i32 8, i8* nonnull %nt) #5
    call void @_ZdaPvSt11align_val_tRKSt9nothrow_t(i8* %najat, i64 8, i8* %nt) #5
    ret void
  }
I don't see anything obviously wrong in my code or the test, but I've also been staring at these mangled names so long today they're kind of blending together. If anyone sees something amiss that looks related please comment!
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117356/new/
https://reviews.llvm.org/D117356
    
    
More information about the llvm-commits
mailing list