[all-commits] [llvm/llvm-project] 2bbd32: [ELF] Allow getErrPlace() to work before Out::buff...

Alexander Richardson via All-commits all-commits at lists.llvm.org
Fri Dec 13 04:22:59 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2bbd32f5e8f0f62d895966e2623d9bdb9778b50b
      https://github.com/llvm/llvm-project/commit/2bbd32f5e8f0f62d895966e2623d9bdb9778b50b
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2019-12-13 (Fri, 13 Dec 2019)

  Changed paths:
    M lld/ELF/Target.cpp
    M lld/test/ELF/mips-jalr-non-functions.s

  Log Message:
  -----------
  [ELF] Allow getErrPlace() to work before Out::bufferStart is set

Summary:
So far it seems like the only test affected by this change is the one I
recently added for R_MIPS_JALR relocations since the other test cases that
use this function early (unknown-relocation-*) do not have a valid input
section for the relocation offset.

Reviewers: ruiu, grimar, MaskRay, espindola

Reviewed By: ruiu, MaskRay

Subscribers: emaste, sdardis, jrtc27, atanasyan, llvm-commits

Tags: #llvm

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


  Commit: be15dfa88fb1ed94d12f374797f98ede6808f809
      https://github.com/llvm/llvm-project/commit/be15dfa88fb1ed94d12f374797f98ede6808f809
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2019-12-13 (Fri, 13 Dec 2019)

  Changed paths:
    M llvm/include/llvm/CodeGen/ISDOpcodes.h
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
    M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [NFC] Use EVT instead of bool for getSetCCInverse()

Summary:
The use of a boolean isInteger flag (generally initialized using
VT.isInteger()) caused errors in our out-of-tree CHERI backend
(https://github.com/CTSRD-CHERI/llvm-project).

In our backend, pointers use a separate ValueType (iFATPTR) and therefore
.isInteger() returns false. This meant that getSetCCInverse() was using the
floating-point variant and generated incorrect code for us:
`(void *)0x12033091e < (void *)0xffffffffffffffff` would return false.

Committing this change will significantly reduce our merge conflicts
for each upstream merge.

Reviewers: spatel, bogner

Reviewed By: bogner

Subscribers: wuzish, arsenm, sdardis, nemanjai, jvesely, nhaehnle, hiraditya, kbarton, jrtc27, atanasyan, jsji, llvm-commits

Tags: #llvm

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


Compare: https://github.com/llvm/llvm-project/compare/e91420e17da3...be15dfa88fb1


More information about the All-commits mailing list