forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			75 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===-- SystemZSelectionDAGInfo.h - SystemZ SelectionDAG Info ---*- C++ -*-===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| //
 | |
| // This file defines the SystemZ subclass for SelectionDAGTargetInfo.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZSELECTIONDAGINFO_H
 | |
| #define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZSELECTIONDAGINFO_H
 | |
| 
 | |
| #include "llvm/CodeGen/SelectionDAGTargetInfo.h"
 | |
| 
 | |
| namespace llvm {
 | |
| 
 | |
| class SystemZTargetMachine;
 | |
| 
 | |
| class SystemZSelectionDAGInfo : public SelectionDAGTargetInfo {
 | |
| public:
 | |
|   explicit SystemZSelectionDAGInfo() = default;
 | |
| 
 | |
|   SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, const SDLoc &DL,
 | |
|                                   SDValue Chain, SDValue Dst, SDValue Src,
 | |
|                                   SDValue Size, unsigned Align, bool IsVolatile,
 | |
|                                   bool AlwaysInline,
 | |
|                                   MachinePointerInfo DstPtrInfo,
 | |
|                                   MachinePointerInfo SrcPtrInfo) const override;
 | |
| 
 | |
|   SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &DL,
 | |
|                                   SDValue Chain, SDValue Dst, SDValue Byte,
 | |
|                                   SDValue Size, unsigned Align, bool IsVolatile,
 | |
|                                   MachinePointerInfo DstPtrInfo) const override;
 | |
| 
 | |
|   std::pair<SDValue, SDValue>
 | |
|   EmitTargetCodeForMemcmp(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
 | |
|                           SDValue Src1, SDValue Src2, SDValue Size,
 | |
|                           MachinePointerInfo Op1PtrInfo,
 | |
|                           MachinePointerInfo Op2PtrInfo) const override;
 | |
| 
 | |
|   std::pair<SDValue, SDValue>
 | |
|   EmitTargetCodeForMemchr(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
 | |
|                           SDValue Src, SDValue Char, SDValue Length,
 | |
|                           MachinePointerInfo SrcPtrInfo) const override;
 | |
| 
 | |
|   std::pair<SDValue, SDValue> EmitTargetCodeForStrcpy(
 | |
|       SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dest,
 | |
|       SDValue Src, MachinePointerInfo DestPtrInfo,
 | |
|       MachinePointerInfo SrcPtrInfo, bool isStpcpy) const override;
 | |
| 
 | |
|   std::pair<SDValue, SDValue>
 | |
|   EmitTargetCodeForStrcmp(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
 | |
|                           SDValue Src1, SDValue Src2,
 | |
|                           MachinePointerInfo Op1PtrInfo,
 | |
|                           MachinePointerInfo Op2PtrInfo) const override;
 | |
| 
 | |
|   std::pair<SDValue, SDValue>
 | |
|   EmitTargetCodeForStrlen(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
 | |
|                           SDValue Src,
 | |
|                           MachinePointerInfo SrcPtrInfo) const override;
 | |
| 
 | |
|   std::pair<SDValue, SDValue>
 | |
|   EmitTargetCodeForStrnlen(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
 | |
|                            SDValue Src, SDValue MaxLength,
 | |
|                            MachinePointerInfo SrcPtrInfo) const override;
 | |
| };
 | |
| 
 | |
| } // end namespace llvm
 | |
| 
 | |
| #endif
 |