1. Sep 15, 2020
    • Simon Pilgrim's avatar
      collectBitParts - use const references. NFCI. · 4ff4708d
      Simon Pilgrim authored
      Fixes clang-tidy warnings first noticed on D87452.
      4ff4708d
    • Rahman Lavaee's avatar
      Let -basic-block-sections=labels emit basicblock metadata in a new... · 7841e21c
      Rahman Lavaee authored
      Let -basic-block-sections=labels emit basicblock metadata in a new .bb_addr_map section, instead of emitting special unary-encoded symbols.
      
      This patch introduces the new .bb_addr_map section feature which allows us to emit the bits needed for mapping binary profiles to basic blocks into a separate section.
      The format of the emitted data is represented as follows. It includes a header for every function:
      
      |  Address of the function                      |  -> 8 bytes (pointer size)
      |  Number of basic blocks in this function (>0) |  -> ULEB128
      
      The header is followed by a BB record for every basic block. These records are ordered in the same order as MachineBasicBlocks are placed in the function. Each BB Info is structured as follows:
      
      |  Offset of the basic block relative to function begin |  -> ULEB128
      |  Binary size of the basic block                       |  -> ULEB128
      |  BB metadata                                          |  -> ULEB128  [ MBB.isReturn() OR MBB.hasTailCall() << 1  OR  MBB.isEHPad() << 2 ]
      
      The new feature will replace the existing "BB labels" functionality with -basic-block-sections=labels.
      The .bb_addr_map section scrubs the specially-encoded BB symbols from the binary and makes it friendly to profilers and debuggers.
      Furthermore, the new feature reduces the binary size overhead from 70% bloat to only 12%.
      
      For more information and results please refer to the RFC: https://lists.llvm.org/pipermail/llvm-dev/2020-July/143512.html
      
      Reviewed By: MaskRay, snehasish
      
      Differential Revision: https://reviews.llvm.org/D85408
      7841e21c
    • Tim Keith's avatar
      [flang] Fix analyzed form of type-bound assignment · ce6dd973
      Tim Keith authored
      Change the analyzed form of type-bound assignment to match that of call
      statements. Resolve the binding name to a specific subprogram when
      possible by using `GetBindingResolution`. Otherwise leave it as a
      type-bound procedure call.
      
      Differential Revision: https://reviews.llvm.org/D87541
      ce6dd973
    • Fangrui Song's avatar
      [ELF] Define a reportRangeError() overload for thunks and tidy up recent PPC64 thunk range errors · 94921e9f
      Fangrui Song authored
      Prefer `errorOrWarn` to `fatal` for recoverable errors and graceful degradation
      when --noinhibit-exec is specified.
      
      Mention the destination symbol, otherwise the diagnostic is not really actionable.
      Two errors are not tested but the patch does not intend to add the coverage.
      
      Reviewed By: grimar
      
      Differential Revision: https://reviews.llvm.org/D87486
      94921e9f
    • cgyurgyik's avatar
      [libc] Decouple string functions. · c92d1aa4
      cgyurgyik authored
      This revision removes dependencies that exist between different string functions. This allows for the libc user to use a specific function X of this library without also depending on Y and Z.
      
      Reviewed By: sivachandra
      
      Differential Revision: https://reviews.llvm.org/D87421
      c92d1aa4
    • Tim Keith's avatar
      [flang] Correctly detect overlapping integer cases · ed0abc8a
      Tim Keith authored
      Integer case values were being compared as unsigned by operator<
      on evaluate::value::Integer. Change that to signed so that overlap
      can be detected correctly.
      
      Explicit CompareUnsigned and BLT are still available if unsigned
      comparison is needed.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=47309
      
      Differential Revision: https://reviews.llvm.org/D87595
      ed0abc8a
  2. Sep 14, 2020