brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 2582c33 Raw
39 lines · c
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file provides the LoweringPrepareCXXABI class, which is the base class10// for ABI specific functionalities that are required during LLVM lowering11// prepare.12//13//===----------------------------------------------------------------------===//14 15#ifndef CIR_DIALECT_TRANSFORMS__LOWERINGPREPARECXXABI_H16#define CIR_DIALECT_TRANSFORMS__LOWERINGPREPARECXXABI_H17 18#include "mlir/IR/Value.h"19#include "clang/AST/ASTContext.h"20#include "clang/CIR/Dialect/Builder/CIRBaseBuilder.h"21#include "clang/CIR/Dialect/IR/CIRDialect.h"22 23namespace cir {24 25class LoweringPrepareCXXABI {26public:27  static LoweringPrepareCXXABI *createItaniumABI();28 29  virtual ~LoweringPrepareCXXABI() {}30 31  virtual mlir::Value lowerDynamicCast(CIRBaseBuilderTy &builder,32                                       clang::ASTContext &astCtx,33                                       cir::DynamicCastOp op) = 0;34};35 36} // namespace cir37 38#endif // CIR_DIALECT_TRANSFORMS__LOWERINGPREPARECXXABI_H39