[all-commits] [llvm/llvm-project] f3ead8: [MLIR][OpenMP] Removed the ambiguity in flush op a...

Kiran Kumar T P via All-commits all-commits at lists.llvm.org
Mon Sep 28 21:12:31 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f3ead88e9c6c352edb10cba43e62696fc852c7d6
      https://github.com/llvm/llvm-project/commit/f3ead88e9c6c352edb10cba43e62696fc852c7d6
  Author: Kiran Kumar T P <kirankumar.tp at amd.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/test/Dialect/OpenMP/ops.mlir
    M mlir/test/Target/openmp-llvm.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Removed the ambiguity in flush op assembly syntax

Summary:
========
Bugzilla Ticket No: Bug 46884 [https://bugs.llvm.org/show_bug.cgi?id=46884]

Flush op assembly syntax was ambiguous:

Consider the below test case:
flush operation is not having any arguments.
But the next statement token i.e "%2" is read as the argument for flush operation and then translator issues an error.
***************************************************************
$ cat -n flush.mlir
     1  llvm.func @_QQmain(%arg0: !llvm.i32) {
     2    %0 = llvm.mlir.constant(1 : i64) : !llvm.i64
     3    %1 = llvm.alloca %0 x !llvm.i32 {in_type = i32, name = "a"} : (!llvm.i64) -> !llvm.ptr<i32>
     4    omp.flush
     5    %2 = llvm.load %1 : !llvm.ptr<i32>
     6    llvm.return
     7  }

$ mlir-translate -mlir-to-llvmir flush.mlir
flush.mlir:5:6: error: expected ':'
  %2 = llvm.load %1 : !llvm.ptr<i32>
     ^
***************************************************************

Solution:
=========
Introduced begin ( `(` ) and end token ( `)` ) to determince the begin and end of variadic arguments.

The patch includes code changes and testcase modifications.

Reviewed By: Valentin Clement, Mehdi AMINI

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




More information about the All-commits mailing list