[all-commits] [llvm/llvm-project] d1fa7a: [AArch64] [Windows] Properly add :lo12: reloc spec...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Tue Jan 12 13:59:59 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d1fa7afc7aefd822698fe86431d8184b1e8b6683
      https://github.com/llvm/llvm-project/commit/d1fa7afc7aefd822698fe86431d8184b1e8b6683
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-01-12 (Tue, 12 Jan 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
    M llvm/test/CodeGen/AArch64/cfguard-checks.ll
    M llvm/test/CodeGen/AArch64/dllimport.ll
    M llvm/test/CodeGen/AArch64/mingw-refptr.ll
    M llvm/test/CodeGen/AArch64/stack-protector-target.ll
    M llvm/test/CodeGen/AArch64/win-tls.ll
    M llvm/test/CodeGen/AArch64/win_cst_pool.ll
    M llvm/test/CodeGen/AArch64/windows-extern-weak.ll

  Log Message:
  -----------
  [AArch64] [Windows] Properly add :lo12: reloc specifiers when generating assembly

This makes sure that assembly output actually can be assembled.

Set the correct MCExpr relocations specifier VK_PAGEOFF - and also
set VK_PAGE consistently even though it's not visible in the assembly
output.

Differential Revision: https://reviews.llvm.org/D94365


  Commit: 02f1d28ed6b8f33445dae3beed8b6cc8dada4312
      https://github.com/llvm/llvm-project/commit/02f1d28ed6b8f33445dae3beed8b6cc8dada4312
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-01-12 (Tue, 12 Jan 2021)

  Changed paths:
    M libcxx/src/chrono.cpp
    M libcxx/test/std/utilities/time/time.clock/time.clock.steady/now.pass.cpp

  Log Message:
  -----------
  [libcxx] Avoid overflows in the windows __libcpp_steady_clock_now()

As freq.QuadValue can be in the range of 10000000 to 19200000,
the multiplication before division makes the calculation overflow
and wrap to negative values every 16-30 minutes.

Instead count the whole seconds separately before adding the
scaled fractional seconds.

Add a testcase for steady_clock to check that the values returned for
now() compare as bigger than the zero time origin; this
corresponds to a testcase in Qt [1] [2] (that failed spuriously
due to this).

[1] https://bugreports.qt.io/browse/QTBUG-89539
[2] https://code.qt.io/cgit/qt/qtbase.git/tree/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp?id=f8de5e54022b8b7471131b7ad55c83b69b2684c0#n569

Differential Revision: https://reviews.llvm.org/D93456


Compare: https://github.com/llvm/llvm-project/compare/68ff52ffead2...02f1d28ed6b8


More information about the All-commits mailing list