[all-commits] [llvm/llvm-project] e14f93: [Docs] Reflect the slow migration from guard to wi...

Philip Reames via All-commits all-commits at lists.llvm.org
Tue Oct 29 12:46:28 PDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e14f935ce2c9b65e137c16d2383299975f17f2d4
      https://github.com/llvm/llvm-project/commit/e14f935ce2c9b65e137c16d2383299975f17f2d4
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [Docs] Reflect the slow migration from guard to widenable condition which is currently in progress.


  Commit: 2460989eabb8adca4b7973aa23997b5ec832219b
      https://github.com/llvm/llvm-project/commit/2460989eabb8adca4b7973aa23997b5ec832219b
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2019-10-29 (Tue, 29 Oct 2019)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/atomic-non-integer-fp128.ll
    M llvm/test/CodeGen/X86/atomic-non-integer.ll
    M llvm/test/CodeGen/X86/atomic-unordered.ll
    M llvm/test/CodeGen/X86/combineIncDecVector-crash.ll

  Log Message:
  -----------
  [SelectionDAG] Enable lowering unordered atomics loads w/LoadSDNode (and stores w/StoreSDNode) by default

Enable the new SelectionDAG representation for unordered loads and stores introduced in r371441 by default.  As a reminder, the new lowering changes the representation of an unordered atomic load from an AtomicSDNode - which is essentially a black box which gets passed through without combines messing with it - to a LoadSDNode w/a atomic marker on the MMO. The later parallels the way we handle volatiles, and I've audited the code to ensure that every location which checks one checks the other.

This has been fairly heavily fuzzed, and I examined diffs in a reasonable large corpus of assembly by hand, so I'm reasonable sure this is correct for the common case.  Late in the review for this, it was discovered that I hadn't correctly handled cases which could be legalized into CAS operations.  This points out that there's a strong bias in the IR of the frontend I'm working with towards only legal atomics.  If there are problems with this patch, the most likely area will be legalization.

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


Compare: https://github.com/llvm/llvm-project/compare/7c1d536c21c7...2460989eabb8


More information about the All-commits mailing list