Use lambdas for nesting edsc constructs.
authorNicolas Vasilache <ntv@google.com>
Mon, 20 May 2019 20:32:35 +0000 (13:32 -0700)
committerMehdi Amini <joker.eph@gmail.com>
Mon, 20 May 2019 20:50:28 +0000 (13:50 -0700)
commitfdbbb3c2744a4cf5194c675c35197a9fc529a75c
treeed5b55cd991b5e860a68ef324c47be598bd006fa
parent70f85c0bbf25797f2b29c155540ed3a31b7bfafa
Use lambdas for nesting edsc constructs.

    Using ArrayRef introduces issues with the order of evaluation between a constructor and
    the arguments of the subsequent calls to the `operator()`.
    As a consequence the order of captures is not well-defined can go wrong with certain compilers (e.g. gcc-6.4).
    This CL fixes the issue by using lambdas in lieu of ArrayRef.

--

PiperOrigin-RevId: 249114775
18 files changed:
mlir/examples/Linalg/Linalg1/include/linalg1/Common.h
mlir/examples/Linalg/Linalg1/lib/Common.cpp
mlir/examples/Linalg/Linalg3/lib/TensorOps.cpp
mlir/examples/Linalg/Linalg3/lib/Transforms.cpp
mlir/examples/Linalg/Linalg4/lib/Transforms.cpp
mlir/examples/toy/Ch5/mlir/LateLowering.cpp
mlir/g3doc/Tutorials/Linalg/Ch-2.md
mlir/g3doc/Tutorials/Linalg/DeclarativeBuilders.md
mlir/include/mlir/EDSC/Builders.h
mlir/include/mlir/Linalg/Utils/Utils.h
mlir/lib/EDSC/Builders.cpp
mlir/lib/EDSC/Intrinsics.cpp
mlir/lib/Linalg/IR/LinalgOps.cpp
mlir/lib/Linalg/Transforms/LowerToLoops.cpp
mlir/lib/Linalg/Transforms/Tiling.cpp
mlir/lib/Linalg/Utils/Utils.cpp
mlir/lib/Transforms/LowerVectorTransfers.cpp
mlir/test/EDSC/builder-api-test.cpp