1. Dec 08, 2023
    • Thurston Dang's avatar
      [hwasan] Add fixed_shadow_base flag (#73980) · ea991a11
      Thurston Dang authored
      
      
      When set to non-zero, the HWASan runtime will map the shadow base at the
      specified constant address.
      
      This is particularly useful in conjunction with the existing compiler
      option
      'hwasan-mapping-offset', which bakes a hardcoded constant address into
      the instrumentation.
      
      ---------
      
      Co-authored-by: default avatarThurston Dang <thurston@google.com>
      ea991a11
    • Jay Foad's avatar
      [AArch64][SME2] Add REQUIRES to new test · fb2b907f
      Jay Foad authored
      fb2b907f
    • Tom Honermann's avatar
      [Clang] Mark WG14 N2939 (Identifier Syntax Fixes) as available in Clang 15 (#74666) · 53b46890
      Tom Honermann authored
      WG14 N2939 (Identifier Syntax Fixes) corrects a grammar issue in the C
      standard but does not otherwise change intended behavior. This change
      updates the C23 status to note this paper as implemented as of Clang 15;
      the release in which support for N2836 (Identifier Syntax using Unicode
      Standard Annex 31) was implemented.
      53b46890
    • jyu2-git's avatar
      [OpenMP] Fix runtime problem due to wrong map size. (#74692) · 0113722d
      jyu2-git authored
      Currently we are missing set up-boundary address for FinalArraySection
      as highests elements in partial struct data.
      
      Currently for:
      \#pragma omp target map(D.a) map(D.b[:2])
      The size is:
        %a = getelementptr inbounds %struct.DataTy, ptr %D, i32 0, i32 0
        %b = getelementptr inbounds %struct.DataTy, ptr %D, i32 0, i32 1
        %arrayidx = getelementptr inbounds [2 x float], ptr %b, i64 0, i64 0
        %2 = getelementptr float, ptr %arrayidx, i32 1
        %3 = ptrtoint ptr %2 to i64
        %4 = ptrtoint ptr %a to i64
        %5 = sub i64 %3, %4
      %6 = sdiv exact i64 %5, ptrtoint (ptr getelementptr (i8, ptr null, i32
      1) to i64)
      
      Where %2 is wrong for (D.b[:2]) is pointer to first element of array
      section. It should pointe to last element of array section.
        
      The fix is to emit the pointer to the last element of array section and
      use this pointer as the highest element in partial struct data.
      
      After change IR:
        %a = getelementptr inbounds %struct.DataTy, ptr %D, i32 0, i32 0
        %b = getelementptr inbounds %struct.DataTy, ptr %D, i32 0, i32 1
        %arrayidx = getelementptr inbounds [2 x float], ptr %b, i64 0, i64 0
        %b1 = getelementptr inbounds %struct.DataTy, ptr %D, i32 0, i32 1
        %arrayidx2 = getelementptr inbounds [2 x float], ptr %b1, i64 0, i64 1
        %1 = getelementptr float, ptr %arrayidx2, i32 1
        %2 = ptrtoint ptr %1 to i64
        %3 = ptrtoint ptr %a to i64
        %4 = sub i64 %2, %3
      %5 = sdiv exact i64 %4, ptrtoint (ptr getelementptr (i8, ptr null, i32
      1) to i64)
      0113722d
    • Daniel Grumberg's avatar
    • Maksim Levental's avatar
      db3bc494
    • alex-t's avatar
      AlignmentFromAssumptions should only track pointer operand users (#73370) · d8cd7fc1
      alex-t authored
      AlignmentFromAssumptions uses SCEV to update the load/store alignment.
      It tracks down the use-def chains for the pointer which it takes from
      the assumption cache until it reaches the load or store instruction. It
      mistakenly adds to the worklist the users of the load result
      irrespective of the fact that the load result has no connection with the
      original pointer, moreover, it is not a pointer at all in most cases.
      Thus the def-use chain contains irrelevant load users. When it is a
      store instruction the algorithm attempts to adjust its alignment to the
      alignment of the original pointer. The problem appears when the load and
      store memory operand pointers belong to different address spaces and
      possibly have different sizes.
      The 4bf015c0 was an attempt to address a
      similar problem. The truncation or zero extension was added to make
      pointers the same size. That looks strange to me because the z...
      d8cd7fc1
    • Dinar Temirbulatov's avatar
      [AArch64][SME2] Add _x2/_x4 svqrshr builtins. (#74100) · 5416309d
      Dinar Temirbulatov authored
      Patch by: Kerry McLaughlin <kerry.mclaughlin@arm.com>
      5416309d
    • Nick Desaulniers's avatar
      [libc] fix -Wshift-count-overflow in UInt.h (#74649) · 1ee6a1e3
      Nick Desaulniers authored
      Not that I'm very good at SFINAE, but it seems that conversion operators
      are
      perhaps difficult to compose with SFINAE. I saw an example that used one
      layer
      of indirection to have an explicit return type that could then be used
      with
      enable_if_t.
      
      Link: https://stackoverflow.com/a/7604580
      Fixes: #74623
      1ee6a1e3
    • Nikita Popov's avatar
      [AsmParser] Gracefully handle non-existent GV summary reference · dfd36aa7
      Nikita Popov authored
      If the module summary references a global variable that does not
      exist, throw a nice error instead of asserting.
      
      Fixes https://github.com/llvm/llvm-project/issues/74726.
      dfd36aa7
  2. Dec 07, 2023