Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===- SDNodeProperties.td - Common code for DAG isels -----*- tablegen -*-===//
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
class SDNodeProperty;
10
 
11
// Selection DAG Pattern Operations
12
class SDPatternOperator {
13
  list<SDNodeProperty> Properties = [];
14
}
15
 
16
//===----------------------------------------------------------------------===//
17
// Selection DAG Node Properties.
18
//
19
// Note: These are hard coded into tblgen.
20
//
21
def SDNPCommutative : SDNodeProperty;   // X op Y == Y op X
22
def SDNPAssociative : SDNodeProperty;   // (X op Y) op Z == X op (Y op Z)
23
def SDNPHasChain    : SDNodeProperty;   // R/W chain operand and result
24
def SDNPOutGlue     : SDNodeProperty;   // Write a flag result
25
def SDNPInGlue      : SDNodeProperty;   // Read a flag operand
26
def SDNPOptInGlue   : SDNodeProperty;   // Optionally read a flag operand
27
def SDNPMayStore    : SDNodeProperty;   // May write to memory, sets 'mayStore'.
28
def SDNPMayLoad     : SDNodeProperty;   // May read memory, sets 'mayLoad'.
29
def SDNPSideEffect  : SDNodeProperty;   // Sets 'HasUnmodelledSideEffects'.
30
def SDNPMemOperand  : SDNodeProperty;   // Touches memory, has assoc MemOperand
31
def SDNPVariadic    : SDNodeProperty;   // Node has variable arguments.
32
def SDNPWantRoot    : SDNodeProperty;   // ComplexPattern gets the root of match
33
def SDNPWantParent  : SDNodeProperty;   // ComplexPattern gets the parent