[all-commits] [llvm/llvm-project] fc97d2: [flang] Add UNSIGNED (#113504)

Peter Klausler via All-commits all-commits at lists.llvm.org
Wed Dec 18 07:02:59 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fc97d2e68b03bc2979395e84b645e5b3ba35aecd
      https://github.com/llvm/llvm-project/commit/fc97d2e68b03bc2979395e84b645e5b3ba35aecd
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2024-12-18 (Wed, 18 Dec 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/docs/Extensions.md
    A flang/docs/Unsigned.md
    M flang/docs/index.md
    M flang/include/flang/Common/Fortran-consts.h
    M flang/include/flang/Common/Fortran-features.h
    M flang/include/flang/Common/Fortran.h
    M flang/include/flang/Evaluate/complex.h
    M flang/include/flang/Evaluate/expression.h
    M flang/include/flang/Evaluate/fold.h
    M flang/include/flang/Evaluate/integer.h
    M flang/include/flang/Evaluate/real.h
    M flang/include/flang/Evaluate/tools.h
    M flang/include/flang/Evaluate/type.h
    M flang/include/flang/ISO_Fortran_binding.h
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h
    M flang/include/flang/Optimizer/Dialect/CanonicalizationPatterns.td
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/include/flang/Optimizer/Dialect/FIRTypes.td
    M flang/include/flang/Optimizer/Support/Utils.h
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Runtime/cpp-type.h
    M flang/include/flang/Runtime/matmul-instances.inc
    M flang/include/flang/Runtime/numeric.h
    M flang/include/flang/Runtime/reduce.h
    M flang/include/flang/Runtime/reduction.h
    M flang/include/flang/Semantics/expression.h
    M flang/lib/Common/Fortran-features.cpp
    M flang/lib/Common/default-kinds.cpp
    M flang/lib/Evaluate/expression.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/fold-logical.cpp
    M flang/lib/Evaluate/fold-matmul.h
    M flang/lib/Evaluate/fold-reduction.h
    M flang/lib/Evaluate/formatting.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Evaluate/target.cpp
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Evaluate/type.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/ConvertConstant.cpp
    M flang/lib/Lower/ConvertExpr.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Lower/ConvertType.cpp
    M flang/lib/Lower/IO.cpp
    M flang/lib/Lower/Mangler.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Reduction.cpp
    M flang/lib/Optimizer/Builder/Runtime/Transformational.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Dialect/FIRType.cpp
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Parser/type-parsers.h
    M flang/lib/Semantics/check-arithmeticif.cpp
    M flang/lib/Semantics/check-case.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/scope.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/module/iso_c_binding.f90
    M flang/module/iso_fortran_env.f90
    M flang/module/iso_fortran_env_impl.f90
    M flang/runtime/Float128Math/random.cpp
    M flang/runtime/descriptor-io.h
    M flang/runtime/dot-product.cpp
    M flang/runtime/edit-input.cpp
    M flang/runtime/edit-input.h
    M flang/runtime/edit-output.cpp
    M flang/runtime/edit-output.h
    M flang/runtime/extrema.cpp
    M flang/runtime/findloc.cpp
    M flang/runtime/io-api-minimal.cpp
    M flang/runtime/matmul.cpp
    M flang/runtime/numeric.cpp
    M flang/runtime/product.cpp
    M flang/runtime/random-templates.h
    M flang/runtime/random.cpp
    M flang/runtime/reduce.cpp
    M flang/runtime/reduction-templates.h
    M flang/runtime/reduction.cpp
    M flang/runtime/sum.cpp
    M flang/runtime/tools.h
    M flang/runtime/type-code.cpp
    M flang/runtime/type-info.cpp
    A flang/test/Evaluate/fold-unsigned.f90
    M flang/test/Lower/Intrinsics/shifta.f90
    M flang/test/Lower/allocatable-polymorphic.f90
    A flang/test/Lower/unsigned-ops.f90
    M flang/test/Semantics/complex01.f90
    M flang/test/Semantics/typeinfo01.f90
    M flang/test/Semantics/typeinfo08.f90
    A flang/test/Semantics/unsigned-errors.f90
    M flang/unittests/Evaluate/real.cpp

  Log Message:
  -----------
  [flang] Add UNSIGNED (#113504)

Implement the UNSIGNED extension type and operations under control of a
language feature flag (-funsigned).

This is nearly identical to the UNSIGNED feature that has been available
in Sun Fortran for years, and now implemented in GNU Fortran for
gfortran 15, and proposed for ISO standardization in J3/24-116.txt.

See the new documentation for details; but in short, this is C's
unsigned type, with guaranteed modular arithmetic for +, -, and *, and
the related transformational intrinsic functions SUM & al.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list