# Changeset View

Changeset View

# Standalone View

Standalone View

# llvm/include/llvm/Target/Target.td

Show First 20 Lines • Show All 1,115 Lines • ▼ Show 20 Lines | |||||

def COPY : StandardPseudoInstruction { | def COPY : StandardPseudoInstruction { | ||||

let OutOperandList = (outs unknown:$dst); | let OutOperandList = (outs unknown:$dst); | ||||

let InOperandList = (ins unknown:$src); | let InOperandList = (ins unknown:$src); | ||||

let AsmString = ""; | let AsmString = ""; | ||||

let hasSideEffects = 0; | let hasSideEffects = 0; | ||||

let isAsCheapAsAMove = 1; | let isAsCheapAsAMove = 1; | ||||

let hasNoSchedulingInfo = 0; | let hasNoSchedulingInfo = 0; | ||||

} | } | ||||

def TCOPY : StandardPseudoInstruction { | |||||

let OutOperandList = (outs unknown:$dst); | |||||

let InOperandList = (ins unknown:$src); | |||||

let AsmString = ""; | |||||

let hasSideEffects = 0; | |||||

let isAsCheapAsAMove = 1; | |||||

let isTerminator = 1; | |||||

} | |||||

def BUNDLE : StandardPseudoInstruction { | def BUNDLE : StandardPseudoInstruction { | ||||

arsenm: This shouldn't need isBranch or isIndirectBranch | |||||

let OutOperandList = (outs); | let OutOperandList = (outs); | ||||

nickdesaulniers: `COPY` also sets `hasNoSchedulingInfo` to `0`. Should `COPY_BR` do that as well? | |||||

Possibly, though I had trouble finding where to place its scheduling info. It seems like void: Possibly, though I had trouble finding where to place its scheduling info. It seems like `COPY`… | |||||

Last time I looked at adding a copy variant, the right solution was just isAsCheapAsAMove = 1. Otherwise it would have required adding the COPY_BR to every target's COPY handling arsenm: Last time I looked at adding a copy variant, the right solution was just isAsCheapAsAMove = 1. | |||||

let InOperandList = (ins variable_ops); | let InOperandList = (ins variable_ops); | ||||

let AsmString = "BUNDLE"; | let AsmString = "BUNDLE"; | ||||

let hasSideEffects = 0; | let hasSideEffects = 0; | ||||

} | } | ||||

def LIFETIME_START : StandardPseudoInstruction { | def LIFETIME_START : StandardPseudoInstruction { | ||||

let OutOperandList = (outs); | let OutOperandList = (outs); | ||||

let InOperandList = (ins i32imm:$id); | let InOperandList = (ins i32imm:$id); | ||||

let AsmString = "LIFETIME_START"; | let AsmString = "LIFETIME_START"; | ||||

▲ Show 20 Lines • Show All 522 Lines • Show Last 20 Lines |

This shouldn't need isBranch or isIndirectBranch