One Hat Cyber Team
Your IP :
216.73.216.135
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
include
/
llvm
/
CodeGen
/
GlobalISel
/
Edit File:
InlineAsmLowering.h
//===- llvm/CodeGen/GlobalISel/InlineAsmLowering.h --------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file /// This file describes how to lower LLVM inline asm to machine code INLINEASM. /// //===----------------------------------------------------------------------===// #ifndef LLVM_CODEGEN_GLOBALISEL_INLINEASMLOWERING_H #define LLVM_CODEGEN_GLOBALISEL_INLINEASMLOWERING_H #include "llvm/ADT/ArrayRef.h" #include <functional> namespace llvm { class CallBase; class MachineIRBuilder; class MachineOperand; class Register; class TargetLowering; class Value; class InlineAsmLowering { const TargetLowering *TLI; virtual void anchor(); public: /// Lower the given inline asm call instruction /// \p GetOrCreateVRegs is a callback to materialize a register for the /// input and output operands of the inline asm /// \return True if the lowering succeeds, false otherwise. bool lowerInlineAsm(MachineIRBuilder &MIRBuilder, const CallBase &CB, std::function<ArrayRef<Register>(const Value &Val)> GetOrCreateVRegs) const; /// Lower the specified operand into the Ops vector. /// \p Val is the IR input value to be lowered /// \p Constraint is the user supplied constraint string /// \p Ops is the vector to be filled with the lowered operands /// \return True if the lowering succeeds, false otherwise. virtual bool lowerAsmOperandForConstraint(Value *Val, StringRef Constraint, std::vector<MachineOperand> &Ops, MachineIRBuilder &MIRBuilder) const; protected: /// Getter for generic TargetLowering class. const TargetLowering *getTLI() const { return TLI; } /// Getter for target specific TargetLowering class. template <class XXXTargetLowering> const XXXTargetLowering *getTLI() const { return static_cast<const XXXTargetLowering *>(TLI); } public: InlineAsmLowering(const TargetLowering *TLI) : TLI(TLI) {} virtual ~InlineAsmLowering() = default; }; } // end namespace llvm #endif // LLVM_CODEGEN_GLOBALISEL_INLINEASMLOWERING_H
Simpan