|
Jlm
|
#include <GetElementPtr.hpp>


Public Member Functions | |
| ~GetElementPtrOperation () noexcept override | |
| GetElementPtrOperation (const std::vector< std::shared_ptr< const rvsdg::BitType >> &offsetTypes, std::shared_ptr< const rvsdg::Type > pointeeType) | |
| GetElementPtrOperation (const GetElementPtrOperation &other)=default | |
| GetElementPtrOperation (GetElementPtrOperation &&other) noexcept=default | |
| bool | operator== (const Operation &other) const noexcept override |
| std::string | debug_string () const override |
| std::unique_ptr< Operation > | copy () const override |
| const rvsdg::Type & | GetPointeeType () const noexcept |
Public Member Functions inherited from jlm::rvsdg::SimpleOperation | |
| ~SimpleOperation () noexcept override | |
| SimpleOperation (std::vector< std::shared_ptr< const jlm::rvsdg::Type >> operands, std::vector< std::shared_ptr< const jlm::rvsdg::Type >> results) | |
| size_t | narguments () const noexcept |
| const std::shared_ptr< const rvsdg::Type > & | argument (size_t index) const noexcept |
| size_t | nresults () const noexcept |
| const std::shared_ptr< const rvsdg::Type > & | result (size_t index) const noexcept |
Public Member Functions inherited from jlm::rvsdg::Operation | |
| virtual | ~Operation () noexcept |
| virtual bool | operator== (const Operation &other) const noexcept=0 |
| bool | operator!= (const Operation &other) const noexcept |
Static Public Member Functions | |
| static std::unique_ptr< llvm::ThreeAddressCode > | Create (const Variable *baseAddress, const std::vector< const Variable * > &offsets, std::shared_ptr< const rvsdg::Type > pointeeType, std::shared_ptr< const rvsdg::Type > resultType) |
| static rvsdg::Output * | Create (rvsdg::Output *baseAddress, const std::vector< rvsdg::Output * > &offsets, std::shared_ptr< const rvsdg::Type > pointeeType, std::shared_ptr< const rvsdg::Type > resultType) |
Static Private Member Functions | |
| static void | CheckPointerType (const rvsdg::Type &type) |
| template<class T > | |
| static std::vector< std::shared_ptr< const rvsdg::BitType > > | CheckAndExtractOffsetTypes (const std::vector< T * > &offsets) |
| static std::vector< std::shared_ptr< const rvsdg::Type > > | CreateOperandTypes (const std::vector< std::shared_ptr< const rvsdg::BitType >> &indexTypes) |
Private Attributes | |
| std::shared_ptr< const rvsdg::Type > | PointeeType_ |
This operation is the equivalent of LLVM's getelementptr instruction.
FIXME: We currently do not support vector of pointers for the baseAddress.
Definition at line 23 of file GetElementPtr.hpp.
|
overridedefaultnoexcept |
|
inline |
Definition at line 29 of file GetElementPtr.hpp.
|
default |
|
defaultnoexcept |
|
inlinestaticprivate |
Definition at line 132 of file GetElementPtr.hpp.
|
inlinestaticprivate |
Definition at line 122 of file GetElementPtr.hpp.
|
overridevirtual |
Implements jlm::rvsdg::Operation.
Definition at line 42 of file GetElementPtr.cpp.
|
inlinestatic |
Creates a GetElementPtr three address code.
FIXME: We should not explicitly hand in the resultType parameter, but rather compute it from the pointeeType and the offsets. See LLVM's GetElementPtr instruction for reference.
| baseAddress | The base address for the pointer calculation. |
| offsets | The offsets from the base address. |
| pointeeType | The type the base address points to. |
| resultType | The result type of the operation. |
Definition at line 69 of file GetElementPtr.hpp.
|
inlinestatic |
Creates a GetElementPtr RVSDG node.
FIXME: We should not explicitly hand in the resultType parameter, but rather compute it from the pointeeType and the offsets. See LLVM's GetElementPtr instruction for reference.
| baseAddress | The base address for the pointer calculation. |
| offsets | The offsets from the base address. |
| pointeeType | The type the base address points to. |
| resultType | The result type of the operation. |
Definition at line 100 of file GetElementPtr.hpp.
|
inlinestaticprivate |
Definition at line 150 of file GetElementPtr.hpp.
|
overridevirtual |
Implements jlm::rvsdg::Operation.
Definition at line 36 of file GetElementPtr.cpp.
|
inlinenoexcept |
Definition at line 50 of file GetElementPtr.hpp.
|
overridenoexcept |
Definition at line 14 of file GetElementPtr.cpp.
|
private |
Definition at line 158 of file GetElementPtr.hpp.