[all-commits] [llvm/llvm-project] 39ecf9: [flang][hlfir] Separate -emit-fir and -emit-hlfir ...

Tom Eccles via All-commits all-commits at lists.llvm.org
Thu Jun 1 12:40:40 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 39ecf9d8a1533a434bb9544a1bc275c4d02e2efb
      https://github.com/llvm/llvm-project/commit/39ecf9d8a1533a434bb9544a1bc275c4d02e2efb
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2023-06-01 (Thu, 01 Jun 2023)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M flang/include/flang/Frontend/FrontendActions.h
    M flang/include/flang/Frontend/FrontendOptions.h
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M flang/test/Driver/driver-help.f90
    M flang/test/HLFIR/flang-experimental-hlfir-flag.f90

  Log Message:
  -----------
  [flang][hlfir] Separate -emit-fir and -emit-hlfir for flang-new

In review for https://reviews.llvm.org/D146278, @vzakhari asked to
separate -emit-fir and -emit-hlfir. This will allow FIR to be easily
outputted after the HLFIR passes have been run.

The new semantics are as follows:

| Action      | -flang-experimental-hlfir? | Result |
| =========== | ========================== | =============================== |
| -emit-hlfir | N                          | Outputs HLFIR                   |
| -emit-hlfir | Y                          | Outputs HLFIR                   |
| -emit-fir   | N                          | Outputs FIR, using old lowering |
| -emit-fir   | Y                          | Outputs FIR, lowering via HLFIR |

A patch for bbc will follow.

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


  Commit: 81ea6b7e4b6c374c026dcf1ce742db36de2e56d4
      https://github.com/llvm/llvm-project/commit/81ea6b7e4b6c374c026dcf1ce742db36de2e56d4
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2023-06-01 (Thu, 01 Jun 2023)

  Changed paths:
    M flang/test/HLFIR/boxchar_emboxing.f90
    M flang/test/HLFIR/c_ptr_byvalue.f90
    M flang/test/HLFIR/call_with_poly_dummy.f90
    M flang/test/HLFIR/extents-of-shape-of.f90
    R flang/test/HLFIR/flang-experimental-hlfir-flag.f90
    A flang/test/HLFIR/hlfir-flags.f90
    M flang/test/HLFIR/mul_transpose.f90
    M flang/test/HLFIR/optional_dummy.f90
    M flang/test/Lower/HLFIR/all.f90
    M flang/test/Lower/HLFIR/allocatable-and-pointer-components.f90
    M flang/test/Lower/HLFIR/allocatable-and-pointer-status-change.f90
    M flang/test/Lower/HLFIR/allocatable-and-pointer-subparts.f90
    M flang/test/Lower/HLFIR/allocatables-and-pointers.f90
    M flang/test/Lower/HLFIR/any.f90
    M flang/test/Lower/HLFIR/array-ctor-as-elemental-nested.f90
    M flang/test/Lower/HLFIR/array-ctor-as-elemental.f90
    M flang/test/Lower/HLFIR/array-ctor-as-inlined-temp.f90
    M flang/test/Lower/HLFIR/array-ctor-as-runtime-temp.f90
    M flang/test/Lower/HLFIR/array-ctor-character.f90
    M flang/test/Lower/HLFIR/array-ctor-derived.f90
    M flang/test/Lower/HLFIR/array-ctor-index.f90
    M flang/test/Lower/HLFIR/assignment-intrinsics.f90
    M flang/test/Lower/HLFIR/associate-construct.f90
    M flang/test/Lower/HLFIR/binary-ops.f90
    M flang/test/Lower/HLFIR/c_ptr-constant-init.f90
    M flang/test/Lower/HLFIR/calls-assumed-shape.f90
    M flang/test/Lower/HLFIR/calls-character-singleton-result.f90
    M flang/test/Lower/HLFIR/calls-constant-expr-arg-polymorphic.f90
    M flang/test/Lower/HLFIR/calls-constant-expr-arg.f90
    M flang/test/Lower/HLFIR/calls-f77.f90
    M flang/test/Lower/HLFIR/calls-optional.f90
    M flang/test/Lower/HLFIR/concat.f90
    M flang/test/Lower/HLFIR/constant-derived.f90
    M flang/test/Lower/HLFIR/constant.f90
    M flang/test/Lower/HLFIR/conversion-ops.f90
    M flang/test/Lower/HLFIR/convert-variable.f90
    M flang/test/Lower/HLFIR/descriptor-inquiries.f90
    M flang/test/Lower/HLFIR/designators-component-ref.f90
    M flang/test/Lower/HLFIR/designators.f90
    M flang/test/Lower/HLFIR/dummy-argument-optional.f90
    M flang/test/Lower/HLFIR/elemental-array-ops.f90
    M flang/test/Lower/HLFIR/elemental-intrinsics.f90
    M flang/test/Lower/HLFIR/elemental-user-procedure-ref-polymorphic.f90
    M flang/test/Lower/HLFIR/elemental-user-procedure-ref.f90
    M flang/test/Lower/HLFIR/expr-addr.f90
    M flang/test/Lower/HLFIR/expr-as-inquired.f90
    M flang/test/Lower/HLFIR/expr-value.f90
    M flang/test/Lower/HLFIR/function-return.f90
    M flang/test/Lower/HLFIR/ignore-rank-unlimited-polymorphic.f90
    M flang/test/Lower/HLFIR/implicit-call-mismatch.f90
    M flang/test/Lower/HLFIR/implicit-type-conversion.f90
    M flang/test/Lower/HLFIR/internal-procedures.f90
    M flang/test/Lower/HLFIR/intrinsic-assumed-type.f90
    M flang/test/Lower/HLFIR/intrinsic-module-procedures.f90
    M flang/test/Lower/HLFIR/intrinsic-subroutines.f90
    M flang/test/Lower/HLFIR/matmul.f90
    M flang/test/Lower/HLFIR/null.f90
    M flang/test/Lower/HLFIR/parent-component-ref.f90
    M flang/test/Lower/HLFIR/procedure-designators.f90
    M flang/test/Lower/HLFIR/product.f90
    M flang/test/Lower/HLFIR/statement-functions.f90
    M flang/test/Lower/HLFIR/structure-constructor.f90
    M flang/test/Lower/HLFIR/substrings.f90
    M flang/test/Lower/HLFIR/sum.f90
    M flang/test/Lower/HLFIR/transformational.f90
    M flang/test/Lower/HLFIR/transpose.f90
    M flang/test/Lower/HLFIR/unary-ops.f90
    M flang/test/Lower/HLFIR/vector-subscript-as-value.f90
    M flang/test/Lower/HLFIR/vector-subscript-lhs.f90
    M flang/test/Lower/HLFIR/where.f90
    M flang/tools/bbc/bbc.cpp

  Log Message:
  -----------
  [flang][hlfir] Separate -emit-fir and -emit-hlfir for bbc

In review for https://reviews.llvm.org/D146278, @vzakhari asked to
separate -emit-fir and -emit-hlfir. This will allow FIR to be easily
outputted after the HLFIR passes have been run.

The new semantics are as follows:

| Action      | -hlfir? | Result                          |
| =========== | ======= | =============================== |
| -emit-hlfir | N       | Outputs HLFIR                   |
| -emit-hlfir | Y       | Outputs HLFIR                   |
| -emit-fir   | N       | Outputs FIR, using old lowering |
| -emit-fir   | Y       | Outputs FIR, lowering via HLFIR |

This is tested in flang/test/HLFIR/hlfir-flags.f90

Depends on: D151088

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


Compare: https://github.com/llvm/llvm-project/compare/01ef213b855d...81ea6b7e4b6c


More information about the All-commits mailing list