blob: 72f077cf44ff2f1e66afc5fa74cdac1cb927f8e7 [file] [log] [blame]
Chris Lattnere2259872018-06-21 15:22:42 -07001//===- Function.h - MLIR Function Class -------------------------*- C++ -*-===//
Chris Lattnerc0c5e0f2018-06-21 09:49:33 -07002//
3// Copyright 2019 The MLIR Authors.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16// =============================================================================
17//
Chris Lattnere2259872018-06-21 15:22:42 -070018// Functions are the basic unit of composition in MLIR. There are three
19// different kinds of functions: external functions, CFG functions, and ML
20// functions.
Chris Lattnerc0c5e0f2018-06-21 09:49:33 -070021//
22//===----------------------------------------------------------------------===//
23
24#ifndef MLIR_IR_FUNCTION_H
25#define MLIR_IR_FUNCTION_H
26
Chris Lattnere2259872018-06-21 15:22:42 -070027#include "mlir/Support/LLVM.h"
Chris Lattnerc0c5e0f2018-06-21 09:49:33 -070028
Chris Lattnere2259872018-06-21 15:22:42 -070029namespace mlir {
30 /// This is the base class for all of the MLIR function types
31 class Function {
32 std::string name;
33 // TODO: type and lots of other stuff.
34 public:
35 explicit Function(StringRef name);
36
37 void print(raw_ostream &os);
38 void dump();
Chris Lattnerc0c5e0f2018-06-21 09:49:33 -070039 };
40} // end namespace mlir
41
42#endif // MLIR_IR_FUNCTION_H