clang 24.0.0git
CIRABIRewriteContext.cpp File Reference
#include "CIRABIRewriteContext.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/Dominance.h"
#include "clang/CIR/Dialect/Builder/CIRBaseBuilder.h"
#include "clang/CIR/Dialect/IR/CIRAttrs.h"
#include "clang/CIR/Dialect/IR/CIRDataLayout.h"
#include "clang/CIR/Dialect/IR/CIRDialect.h"
#include "clang/CIR/Dialect/IR/CIRTypes.h"
#include "clang/CIR/MissingFeatures.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/MathExtras.h"
#include <algorithm>
#include <array>
#include <utility>

Go to the source code of this file.

Functions

static mlir::LogicalResult prepareOneNonByvalParameter (cir::FuncOp funcOp, unsigned argNo, const ArgClassification &ac, mlir::BlockArgument blockArg, mlir::DominanceInfo &dom, SmallPtrSetImpl< mlir::Operation * > &claimedSlots)
 Bring funcOp's non-byval indirect parameter argNo into the shape the rest of the rewrite assumes.

Function Documentation

◆ prepareOneNonByvalParameter()

mlir::LogicalResult prepareOneNonByvalParameter ( cir::FuncOp funcOp,
unsigned argNo,
const ArgClassification & ac,
mlir::BlockArgument blockArg,
mlir::DominanceInfo & dom,
SmallPtrSetImpl< mlir::Operation * > & claimedSlots )
static

Bring funcOp's non-byval indirect parameter argNo into the shape the rest of the rewrite assumes.

claimedSlots carries the slots funcOp's earlier non-byval indirect parameters took. The shape itself, and the cases reported rather than repaired, are documented on CIRABIRewriteContext::prepareNonByvalParameters in the header.

Definition at line 1366 of file CIRABIRewriteContext.cpp.

Referenced by cir::CIRABIRewriteContext::prepareNonByvalParameters().