[all-commits] [llvm/llvm-project] 0c8f4c: AMDGPU/GlobalISel Add test for non-leaf complex pa...

petar-avramovic via All-commits all-commits at lists.llvm.org
Mon Sep 14 03:11:37 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 0c8f4cd657346fcb25e99a3d2c93a7a12080d667
      https://github.com/llvm/llvm-project/commit/0c8f4cd657346fcb25e99a3d2c93a7a12080d667
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2020-09-14 (Mon, 14 Sep 2020)

  Changed paths:
    A llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fract.f64.mir

  Log Message:
  -----------
  AMDGPU/GlobalISel Add test for non-leaf complex patterns

GlobalIsel emitter does not import patterns where complex sub-operand
of a non-leaf complex pattern is referenced more then once. Multiple
references of complex patterns with same name and same sub-operands
represent the same operand. Document this with a test.


  Commit: 416346d1ca503262983c954ddc861ff4f91347a3
      https://github.com/llvm/llvm-project/commit/416346d1ca503262983c954ddc861ff4f91347a3
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2020-09-14 (Mon, 14 Sep 2020)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-fract.f64.mir
    M llvm/test/TableGen/GlobalISelEmitter.td
    M llvm/test/TableGen/GlobalISelEmitterSkippedPatterns.td
    M llvm/utils/TableGen/GlobalISelEmitter.cpp

  Log Message:
  -----------
  AMDGPU/GlobalISel/Emitter Recognize additional 'same operand checks'

The "name" of a non-leaf complex pattern (MY_PAT $op1, $op2) is
"MY_PAT:op1:op2" and the ones with same "name" represent same operand.
Add 'same operand check' for this case.

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


  Commit: 6e2a86ed5abfdb75ba9c08ea94ed8dbd41e75c9e
      https://github.com/llvm/llvm-project/commit/6e2a86ed5abfdb75ba9c08ea94ed8dbd41e75c9e
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2020-09-14 (Mon, 14 Sep 2020)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/Utils.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    A llvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll

  Log Message:
  -----------
  AMDGPU/GlobalISel Check for NoNaNsFPMath in isKnownNeverSNaN

Check for NoNaNsFPMath function attribute in isKnownNeverSNaN.
Function attributes are in held in 'TargetMachine.Options'.
Among other things, this allows selection of some patterns imported
in D87351 since G_FCANONICALIZE is not generated when isKnownNeverSNaN
returns true in lowerFMinNumMaxNum.

However we notice some incorrect results since function attributes are
not correctly written in TargetMachine.Options when next function is
processed. Take a look at @v_test_no_global_nnans_med3_f32_pat0_srcmod0,
it has "no-nans-fp-math"="false" but TargetMachine.Options still has it
set to true since first function in test file had this attribute set to
true. This will be fixed in D87511.

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


Compare: https://github.com/llvm/llvm-project/compare/00e5676cf647...6e2a86ed5abf


More information about the All-commits mailing list