|
LLVM 24.0.0git
|
#include "NVPTX.h"#include "NVPTXUtilities.h"#include "llvm/ADT/Sequence.h"#include "llvm/IR/Attributes.h"#include "llvm/IR/Function.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/Module.h"#include "llvm/InitializePasses.h"#include "llvm/Pass.h"#include "llvm/Support/Debug.h"#include <optional>#include <queue>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "nvptx-promote-param-align" |
Functions | |
| INITIALIZE_PASS (NVPTXPromoteParamAlignLegacyPass, "nvptx-promote-param-align", "Promote alignment of parameters and return values (NVPTX)", false, false) static bool layoutAttrsMatch(AttributeSet CalleeAttrs | |
| return !CalleeAttrs | getByValType ()||CalleeAttrs.getAlignment() |
| static bool | callSiteMatchesCalleeABI (const CallBase &CB, const Function &F) |
| static bool | canPromoteParamAlign (Function &F) |
| static bool | propagateAlignmentToLoads (Value *Val, Align NewAlign, const DataLayout &DL) |
| static MaybeAlign | getPromotedParamAlign (Align CurrentAlign) |
| static bool | promoteParamAlign (Function &F) |
| static bool | setByValParamABIAlign (Function &F) |
| static bool | propagateByValParamLoadAlign (Function &F) |
| static bool | promoteParamAlignModule (Module &M) |
Variables | |
| AttributeSet | CallAttrs |
| #define DEBUG_TYPE "nvptx-promote-param-align" |
Definition at line 40 of file NVPTXPromoteParamAlign.cpp.
Definition at line 75 of file NVPTXPromoteParamAlign.cpp.
References llvm::all_of(), CallAttrs, F, llvm::CallBase::getAttributes(), I, and llvm::seq().
Referenced by promoteParamAlign().
Definition at line 90 of file NVPTXPromoteParamAlign.cpp.
References llvm::all_of(), and F.
Referenced by promoteParamAlign().
| return !CalleeAttrs getByValType | ( | ) |
References CallAttrs.
|
static |
Definition at line 164 of file NVPTXPromoteParamAlign.cpp.
Referenced by promoteParamAlign().
| INITIALIZE_PASS | ( | NVPTXPromoteParamAlignLegacyPass | , |
| "nvptx-promote-param-align" | , | ||
| "Promote alignment of parameters and return values (NVPTX)" | , | ||
| false | , | ||
| false | ) |
Definition at line 171 of file NVPTXPromoteParamAlign.cpp.
References assert(), callSiteMatchesCalleeABI(), canPromoteParamAlign(), llvm::dbgs(), DL, llvm::dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), F, getPromotedParamAlign(), llvm::getPTXParamTypeAlign(), llvm::Attribute::getWithStackAlignment(), llvm::Type::isEmptyTy(), LLVM_DEBUG, and llvm::shouldPassAsArray().
Referenced by promoteParamAlignModule().
Definition at line 293 of file NVPTXPromoteParamAlign.cpp.
References Changed, F, promoteParamAlign(), propagateByValParamLoadAlign(), and setByValParamABIAlign().
Referenced by llvm::NVPTXPromoteParamAlignPass::run().
|
static |
Definition at line 110 of file NVPTXPromoteParamAlign.cpp.
References assert(), llvm::cast(), Changed, llvm::commonAlignment(), DL, llvm::dyn_cast(), llvm::APInt::getLimitedValue(), llvm::APInt::getZero(), I, llvm::isa(), llvm::Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Value::users().
Referenced by propagateByValParamLoadAlign().
Definition at line 274 of file NVPTXPromoteParamAlign.cpp.
References Changed, DL, F, llvm::getDeviceByValParamAlign(), llvm::Type::isEmptyTy(), and propagateAlignmentToLoads().
Referenced by promoteParamAlignModule().
Definition at line 247 of file NVPTXPromoteParamAlign.cpp.
References Changed, DL, F, llvm::getPTXParamTypeAlign(), llvm::Attribute::getWithAlignment(), and llvm::Type::isEmptyTy().
Referenced by promoteParamAlignModule().
| AttributeSet CallAttrs |
Definition at line 65 of file NVPTXPromoteParamAlign.cpp.
Referenced by llvm::AArch64TTIImpl::areInlineCompatible(), callSiteMatchesCalleeABI(), llvm::AArch64TargetLowering::fallBackToDAGISel(), getByValType(), llvm::AArch64TTIImpl::getInlineCallPenalty(), and getSMToggleCondition().