1. Jun 29, 2021
  2. Jun 26, 2021
  3. Jun 25, 2021
  4. Jun 24, 2021
    • Jan Kratochvil's avatar
      llvm-dwarfdump: Fix DWARF-5 DW_FORM_implicit_const (used by GCC) · e8a39720
      Jan Kratochvil authored
      Differential Revision: https://reviews.llvm.org/D98195
      
      (cherry picked from commit 4289a7f1)
      e8a39720
    • Jan Kratochvil's avatar
      [nfc] llvm-dwarfdump: DWARFAbbreviationDeclaration::AttributeSpec -> DWARFAttribute · 02b775a5
      Jan Kratochvil authored
      `AttributeSpec` does not contain values while `DWARFAttribute` already
      does. Therefore one no longer needs to pass `uint64_t *OffsetPtr`.
      
      Differential Revision: https://reviews.llvm.org/D98194
      
      (cherry picked from commit ba8907bf)
      02b775a5
    • Xun Li's avatar
      [Coroutine] Properly deal with byval and noalias parameters · edd770b4
      Xun Li authored
      This patch is to address https://bugs.llvm.org/show_bug.cgi?id=48857.
      Previous attempts can be found in D104007 and D101980.
      A lot of discussions can be found in those two patches.
      To summarize the bug:
      When Clang emits IR for coroutines, the first thing it does is to make a copy of every argument to the local stack, so that uses of the arguments in the function will all refer to the local copies instead of the arguments directly.
      However, in some cases we find that arguments are still directly used:
      When Clang emits IR for a function that has pass-by-value arguments, sometimes it emits an argument with byval attribute. A byval attribute is considered to be local to the function (just like alloca) and hence it can be easily determined that it does not alias other values. If in the IR there exists a memcpy from a byval argument to a local alloca, and then from that local alloca to another alloca, MemCpyOpt will optimize out the first memcpy because byval argument's content will not change. This causes issues because after a coroutine suspension, the byval argument may die outside of the function, and latter uses will lead to memory use-after-free.
      This is only a problem for arguments with either byval attribute or noalias attribute, because only these two kinds are considered local. Arguments without these two attributes will be considered to alias coro_suspend and hence we won't have this problem. So we need to be able to deal with these two attributes in coroutines properly.
      For noalias arguments, since coro_suspend may potentially change the value of any argument outside of the function, we simply shouldn't mark any argument in a coroutiune as noalias. This can be taken care of in CoroEarly pass.
      For byval arguments, if such an argument needs to live across suspensions, we will have to copy their value content to the frame, not just the pointer.
      
      Differential Revision: https://reviews.llvm.org/D104184
      
      (cherry picked from commit 3522167e)
      edd770b4
    • Vy Nguyen's avatar
      [llvm] Fix thinko in getVendorSignature(), where expected values of ECX and... · 1a9f4b3a
      Vy Nguyen authored
      [llvm] Fix thinko in getVendorSignature(), where expected values of  ECX and EDX were flipped for the AMD case.
      
      Follow up to D97504
      
      Differential Revision: https://reviews.llvm.org/D98322
      
      (cherry picked from commit 64d2c326)
      1a9f4b3a
    • Vy Nguyen's avatar
      Reland 293e8fa1 · 88c67730
      Vy Nguyen authored
          [llvm-exegesis] Disable the LBR check on AMD
      
          https://bugs.llvm.org/show_bug.cgi?id=48918
      
          The bug reported a hang (or very very slow runtime) on a Zen2. Unfortunately, we don't have the hardware right now to debug it and I was not able to reproduce the bug on a HSW.
          Theory we've got is that the lbr-checking code could be confused on AMD.
      
          Differential Revision: https://reviews.llvm.org/D97504
      
      New change:
       - Surround usages of x86 helper in llvm-exegesis/X86/Target.cpp with ifdef
       - Fix bug which caused the caller of getVendorSignature to not have a copy of EAX that it expected.
      
      (cherry picked from commit f8b01d54)
      88c67730
  5. Jun 23, 2021
  6. Jun 22, 2021
  7. Jun 17, 2021
  8. Jun 16, 2021
  9. Jun 15, 2021