Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[flang][Lower] Convert OMP Map and related functions to evaluate::Expr #81626

Merged
merged 7 commits into from
Mar 20, 2024

Commits on Feb 22, 2024

  1. [flang][OpenMP] Implement flexible OpenMP clause representation

    Introduce a set of generic classes (templates) that represent OpenMP
    clauses in a language-agnostic manner. OpenMP clauses can contain
    expressions and data objects and the exact representation of each
    depends on the source language of the compiled program. To deal with
    this, the templates depend on two type parameters:
    - IdType: type that represent object's identity (in a way that
      satisfied OpenMP requirements), and
    - ExprType: type that can represent numeric values, as well as
      data references (e.g. x.y[1].z[2]).
    
    In addition to that, implement code instantiating these templates
    from flang's AST.
    
    This patch only introduces the new classes, they are not yet used
    anywhere.
    kparzysz committed Feb 22, 2024
    Configuration menu
    Copy the full SHA
    e16585a View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2024

  1. [flang][OpenMP] Convert unique clauses in ClauseProcessor

    Temporarily rename old clause list to `clauses2`, old clause iterator
    to `ClauseIterator2`.
    Change `findUniqueClause` to iterate over `omp::Clause` objects,
    modify all handlers to operate on 'omp::clause::xyz` equivalents.
    kparzysz committed Feb 23, 2024
    Configuration menu
    Copy the full SHA
    fafbd98 View commit details
    Browse the repository at this point in the history
  2. [flang][OpenMP] Convert repeatable clauses (except Map) in ClauseProc…

    …essor
    
    Rename `findRepeatableClause` to `findRepeatableClause2`, and make the
    new `findRepeatableClause` operate on new `omp::Clause` objects.
    
    Leave `Map` unchanged, because it will require more changes for it to
    work.
    kparzysz committed Feb 23, 2024
    Configuration menu
    Copy the full SHA
    655dce5 View commit details
    Browse the repository at this point in the history
  3. [flang][Lower] Convert OMP Map and related functions to evaluate::Expr

    The related functions are `gatherDataOperandAddrAndBounds` and
    `genBoundsOps`. The former is used in OpenACC as well, and it was
    updated to pass evaluate::Expr instead of parser objects.
    
    The difference in the test case comes from unfolded conversions
    of index expressions, which are explicitly of type integer(kind=8).
    
    Delete now unused `findRepeatableClause2` and `findClause2`.
    
    Add `AsGenericExpr` that takes std::optional. It already returns optional
    Expr. Making it accept an optional Expr as input would reduce the number
    of necessary checks when handling frequent optional values in evaluator.
    kparzysz committed Feb 23, 2024
    Configuration menu
    Copy the full SHA
    bf64cd3 View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2024

  1. Configuration menu
    Copy the full SHA
    87a0f19 View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2024

  1. Configuration menu
    Copy the full SHA
    8441244 View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2024

  1. Configuration menu
    Copy the full SHA
    17ea8de View commit details
    Browse the repository at this point in the history