[all-commits] [llvm/llvm-project] 121921: [Hexagon] Update InstrInfo to include LD/ST offset...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Feb 20 14:29:07 PST 2024


  Branch: refs/heads/users/MaskRay/spr/driverbaremetal-replace-lclang_rtbuiltins-archa-with-an-absolute-path
  Home:   https://github.com/llvm/llvm-project
  Commit: 1219214a3bcc51022492928b8bb4ff4bdb75d0cb
      https://github.com/llvm/llvm-project/commit/1219214a3bcc51022492928b8bb4ff4bdb75d0cb
  Author: Sumanth Gundapaneni <sgundapa at quicinc.com>
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
    M llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
    A llvm/test/CodeGen/Hexagon/ldst_vector_offset.ll

  Log Message:
  -----------
  [Hexagon] Update InstrInfo to include LD/ST offsets of vector instructions (#82386)

The hook HexagonInstrInfo::isValidOffset() is updated to evaluate
offsets of missed LD/ST vector instructions.


  Commit: 96b17043507caec02a2ef440b369506122bdeb11
      https://github.com/llvm/llvm-project/commit/96b17043507caec02a2ef440b369506122bdeb11
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
    M flang/runtime/unit.cpp

  Log Message:
  -----------
  [flang][runtime] Don't write implied ENDFILE for REC=/POS= (#79637)

An implied ENDFILE record, which truncates an external file, should be
written to a sequential unit whenever the file is repositioned for a
BACKSPACE or REWIND statement if a WRITE statement has executed since
the last OPEN/BACKSPACE/REWIND.

But the REC= and POS= positioning specifiers don't apply to sequential
units (they're for direct and stream units, resp.), so don't truncate
the file when they're used.


  Commit: 78762357d449cfcd11426c8e152302a27f2e7d4d
      https://github.com/llvm/llvm-project/commit/78762357d449cfcd11426c8e152302a27f2e7d4d
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/Writer.cpp
    M lld/docs/ld.lld.1
    M lld/test/ELF/lto/codemodel.ll
    M lld/test/ELF/x86-64-section-layout.s

  Log Message:
  -----------
  [ELF] Support placing .lbss/.lrodata/.ldata after .bss

https://reviews.llvm.org/D150510 places .lrodata before .rodata to
minimize the number of permission transitions in the memory image.
However, this layout is less ideal for -fno-pic code (which is still
important).

Small code model -fno-pic code has R_X86_64_32S relocations with a range
of `[0,2**31)` (if we ignore the negative area). Placing `.lrodata`
earlier exerts relocation pressure on such code. Non-x86 64-bit
architectures generally have a similar `[0,2**31)` limitation if they
don't use PC-relative relocations.

If we place .lrodata later, we will need one extra PT_LOAD. Two layouts
are appealing:

* .bss/.lbss/.lrodata/.ldata (GNU ld)
* .bss/.ldata/.lbss/.lrodata

The GNU ld layout has the nice property that there is only one BSS
(except .tbss/.relro_padding). Add -z lrodata-after-bss to support
this layout.

Since a read-only PT_LOAD segment (for large data sections) may appear
after RW PT_LOAD segments. The placement of `_etext` has to be adjusted.

Pull Request: https://github.com/llvm/llvm-project/pull/81224


  Commit: 02a066342e1b5f06118c23805ba66ed0036383c3
      https://github.com/llvm/llvm-project/commit/02a066342e1b5f06118c23805ba66ed0036383c3
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
    M clang/test/Driver/baremetal-multilib.yaml
    M flang/runtime/unit.cpp
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/Writer.cpp
    M lld/docs/ld.lld.1
    M lld/test/ELF/lto/codemodel.ll
    M lld/test/ELF/x86-64-section-layout.s
    M llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
    A llvm/test/CodeGen/Hexagon/ldst_vector_offset.ll

  Log Message:
  -----------
  fix baremetal-multilib.yaml

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/109d56601acf...02a066342e1b

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list