1*0b57cec5SDimitry Andric//===- ThreadSafetyTIL.h ---------------------------------------*- C++ --*-===// 2*0b57cec5SDimitry Andric// 3*0b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*0b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 5*0b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*0b57cec5SDimitry Andric// 7*0b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 8*0b57cec5SDimitry Andric// 9*0b57cec5SDimitry Andric// This file defines the list of core opcodes for the Thread Safety 10*0b57cec5SDimitry Andric// Typed Intermediate language. Please see ThreadSafetyTIL.h for more 11*0b57cec5SDimitry Andric// information. 12*0b57cec5SDimitry Andric// 13*0b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 14*0b57cec5SDimitry Andric 15*0b57cec5SDimitry Andric 16*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Future) 17*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Undefined) 18*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Wildcard) 19*0b57cec5SDimitry Andric 20*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Literal) 21*0b57cec5SDimitry AndricTIL_OPCODE_DEF(LiteralPtr) 22*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Variable) 23*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Function) 24*0b57cec5SDimitry AndricTIL_OPCODE_DEF(SFunction) 25*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Code) 26*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Field) 27*0b57cec5SDimitry Andric 28*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Apply) 29*0b57cec5SDimitry AndricTIL_OPCODE_DEF(SApply) 30*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Project) 31*0b57cec5SDimitry Andric 32*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Call) 33*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Alloc) 34*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Load) 35*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Store) 36*0b57cec5SDimitry AndricTIL_OPCODE_DEF(ArrayIndex) 37*0b57cec5SDimitry AndricTIL_OPCODE_DEF(ArrayAdd) 38*0b57cec5SDimitry Andric 39*0b57cec5SDimitry AndricTIL_OPCODE_DEF(UnaryOp) 40*0b57cec5SDimitry AndricTIL_OPCODE_DEF(BinaryOp) 41*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Cast) 42*0b57cec5SDimitry Andric 43*0b57cec5SDimitry AndricTIL_OPCODE_DEF(SCFG) 44*0b57cec5SDimitry AndricTIL_OPCODE_DEF(BasicBlock) 45*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Phi) 46*0b57cec5SDimitry Andric 47*0b57cec5SDimitry Andric// Terminator instructions 48*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Goto) 49*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Branch) 50*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Return) 51*0b57cec5SDimitry Andric 52*0b57cec5SDimitry Andric// pseudo-terms 53*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Identifier) 54*0b57cec5SDimitry AndricTIL_OPCODE_DEF(IfThenElse) 55*0b57cec5SDimitry AndricTIL_OPCODE_DEF(Let) 56*0b57cec5SDimitry Andric 57