Coverage Report

Created: 2024-01-17 10:31

/src/llvm-project/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.h
Line
Count
Source (jump to first uncovered line)
1
//===-- SystemZSelectionDAGInfo.h - SystemZ SelectionDAG Info ---*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file defines the SystemZ subclass for SelectionDAGTargetInfo.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZSELECTIONDAGINFO_H
14
#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZSELECTIONDAGINFO_H
15
16
#include "llvm/CodeGen/SelectionDAGTargetInfo.h"
17
18
namespace llvm {
19
20
class SystemZSelectionDAGInfo : public SelectionDAGTargetInfo {
21
public:
22
0
  explicit SystemZSelectionDAGInfo() = default;
23
24
  SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, const SDLoc &DL,
25
                                  SDValue Chain, SDValue Dst, SDValue Src,
26
                                  SDValue Size, Align Alignment,
27
                                  bool IsVolatile, bool AlwaysInline,
28
                                  MachinePointerInfo DstPtrInfo,
29
                                  MachinePointerInfo SrcPtrInfo) const override;
30
31
  SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &DL,
32
                                  SDValue Chain, SDValue Dst, SDValue Byte,
33
                                  SDValue Size, Align Alignment,
34
                                  bool IsVolatile, bool AlwaysInline,
35
                                  MachinePointerInfo DstPtrInfo) const override;
36
37
  std::pair<SDValue, SDValue>
38
  EmitTargetCodeForMemcmp(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
39
                          SDValue Src1, SDValue Src2, SDValue Size,
40
                          MachinePointerInfo Op1PtrInfo,
41
                          MachinePointerInfo Op2PtrInfo) const override;
42
43
  std::pair<SDValue, SDValue>
44
  EmitTargetCodeForMemchr(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
45
                          SDValue Src, SDValue Char, SDValue Length,
46
                          MachinePointerInfo SrcPtrInfo) const override;
47
48
  std::pair<SDValue, SDValue> EmitTargetCodeForStrcpy(
49
      SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dest,
50
      SDValue Src, MachinePointerInfo DestPtrInfo,
51
      MachinePointerInfo SrcPtrInfo, bool isStpcpy) const override;
52
53
  std::pair<SDValue, SDValue>
54
  EmitTargetCodeForStrcmp(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
55
                          SDValue Src1, SDValue Src2,
56
                          MachinePointerInfo Op1PtrInfo,
57
                          MachinePointerInfo Op2PtrInfo) const override;
58
59
  std::pair<SDValue, SDValue>
60
  EmitTargetCodeForStrlen(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
61
                          SDValue Src,
62
                          MachinePointerInfo SrcPtrInfo) const override;
63
64
  std::pair<SDValue, SDValue>
65
  EmitTargetCodeForStrnlen(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain,
66
                           SDValue Src, SDValue MaxLength,
67
                           MachinePointerInfo SrcPtrInfo) const override;
68
};
69
70
} // end namespace llvm
71
72
#endif