# Changeset View

Changeset View

# Standalone View

Standalone View

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

Show First 20 Lines • Show All 878 Lines • ▼ Show 20 Line(s) | 844 | class InstrInfo { | |||
---|---|---|---|---|---|

879 | // generator has better support for complex operands and targets have | 879 | // generator has better support for complex operands and targets have | ||

880 | // migrated away from using positionally encoded operands. | 880 | // migrated away from using positionally encoded operands. | ||

881 | bit noNamedPositionallyEncodedOperands = 0; | 881 | bit noNamedPositionallyEncodedOperands = 0; | ||

882 | } | 882 | } | ||

883 | 883 | | |||

884 | // Standard Pseudo Instructions. | 884 | // Standard Pseudo Instructions. | ||

885 | // This list must match TargetOpcodes.h and CodeGenTarget.cpp. | 885 | // This list must match TargetOpcodes.h and CodeGenTarget.cpp. | ||

886 | // Only these instructions are allowed in the TargetOpcode namespace. | 886 | // Only these instructions are allowed in the TargetOpcode namespace. | ||

887 | let isCodeGenOnly = 1, isPseudo = 1, hasNoSchedulingInfo = 1, | 887 | // Ensure mayLoad and mayStore have a default value, so as not to break | ||

888 | Namespace = "TargetOpcode" in { | 888 | // targets that set guessInstructionProperties=0. Any local definition of | ||

889 | // mayLoad/mayStore takes precedence over these default values. | ||||

890 | let mayLoad = 0, mayStore = 0, isCodeGenOnly = 1, isPseudo = 1, | ||||

891 | hasNoSchedulingInfo = 1, Namespace = "TargetOpcode" in { | ||||

889 | def PHI : Instruction { | 892 | def PHI : Instruction { | ||

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

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

892 | let AsmString = "PHINODE"; | 895 | let AsmString = "PHINODE"; | ||

896 | let hasSideEffects = 1; | ||||

893 | } | 897 | } | ||

894 | def INLINEASM : Instruction { | 898 | def INLINEASM : Instruction { | ||

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

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

897 | let AsmString = ""; | 901 | let AsmString = ""; | ||

898 | let hasSideEffects = 0; // Note side effect is encoded in an operand. | 902 | let hasSideEffects = 0; // Note side effect is encoded in an operand. | ||

899 | } | 903 | } | ||

900 | def CFI_INSTRUCTION : Instruction { | 904 | def CFI_INSTRUCTION : Instruction { | ||

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

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

903 | let AsmString = ""; | 907 | let AsmString = ""; | ||

904 | let hasCtrlDep = 1; | 908 | let hasCtrlDep = 1; | ||

909 | let hasSideEffects = 1; | ||||

905 | let isNotDuplicable = 0; | 910 | let isNotDuplicable = 0; | ||

906 | } | 911 | } | ||

907 | def EH_LABEL : Instruction { | 912 | def EH_LABEL : Instruction { | ||

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

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

910 | let AsmString = ""; | 915 | let AsmString = ""; | ||

911 | let hasCtrlDep = 1; | 916 | let hasCtrlDep = 1; | ||

917 | let hasSideEffects = 1; | ||||

912 | let isNotDuplicable = 1; | 918 | let isNotDuplicable = 1; | ||

913 | } | 919 | } | ||

914 | def GC_LABEL : Instruction { | 920 | def GC_LABEL : Instruction { | ||

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

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

917 | let AsmString = ""; | 923 | let AsmString = ""; | ||

918 | let hasCtrlDep = 1; | 924 | let hasCtrlDep = 1; | ||

925 | let hasSideEffects = 1; | ||||

919 | let isNotDuplicable = 1; | 926 | let isNotDuplicable = 1; | ||

920 | } | 927 | } | ||

921 | def ANNOTATION_LABEL : Instruction { | 928 | def ANNOTATION_LABEL : Instruction { | ||

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

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

924 | let AsmString = ""; | 931 | let AsmString = ""; | ||

925 | let hasCtrlDep = 1; | 932 | let hasCtrlDep = 1; | ||

933 | let hasSideEffects = 1; | ||||

926 | let isNotDuplicable = 1; | 934 | let isNotDuplicable = 1; | ||

927 | } | 935 | } | ||

928 | def KILL : Instruction { | 936 | def KILL : Instruction { | ||

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

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

931 | let AsmString = ""; | 939 | let AsmString = ""; | ||

932 | let hasSideEffects = 0; | 940 | let hasSideEffects = 0; | ||

933 | } | 941 | } | ||

▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Line(s) | 989 | def COPY : Instruction { | |||

985 | let hasSideEffects = 0; | 993 | let hasSideEffects = 0; | ||

986 | let isAsCheapAsAMove = 1; | 994 | let isAsCheapAsAMove = 1; | ||

987 | let hasNoSchedulingInfo = 0; | 995 | let hasNoSchedulingInfo = 0; | ||

988 | } | 996 | } | ||

989 | def BUNDLE : Instruction { | 997 | def BUNDLE : Instruction { | ||

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

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

992 | let AsmString = "BUNDLE"; | 1000 | let AsmString = "BUNDLE"; | ||

1001 | let hasSideEffects = 1; | ||||

993 | } | 1002 | } | ||

994 | def LIFETIME_START : Instruction { | 1003 | def LIFETIME_START : Instruction { | ||

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

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

997 | let AsmString = "LIFETIME_START"; | 1006 | let AsmString = "LIFETIME_START"; | ||

998 | let hasSideEffects = 0; | 1007 | let hasSideEffects = 0; | ||

999 | } | 1008 | } | ||

1000 | def LIFETIME_END : Instruction { | 1009 | def LIFETIME_END : Instruction { | ||

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

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

1003 | let AsmString = "LIFETIME_END"; | 1012 | let AsmString = "LIFETIME_END"; | ||

1004 | let hasSideEffects = 0; | 1013 | let hasSideEffects = 0; | ||

1005 | } | 1014 | } | ||

1006 | def STACKMAP : Instruction { | 1015 | def STACKMAP : Instruction { | ||

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

1008 | let InOperandList = (ins i64imm:$id, i32imm:$nbytes, variable_ops); | 1017 | let InOperandList = (ins i64imm:$id, i32imm:$nbytes, variable_ops); | ||

1018 | let hasSideEffects = 1; | ||||

1009 | let isCall = 1; | 1019 | let isCall = 1; | ||

1010 | let mayLoad = 1; | 1020 | let mayLoad = 1; | ||

1011 | let usesCustomInserter = 1; | 1021 | let usesCustomInserter = 1; | ||

1012 | } | 1022 | } | ||

1013 | def PATCHPOINT : Instruction { | 1023 | def PATCHPOINT : Instruction { | ||

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

1015 | let InOperandList = (ins i64imm:$id, i32imm:$nbytes, unknown:$callee, | 1025 | let InOperandList = (ins i64imm:$id, i32imm:$nbytes, unknown:$callee, | ||

1016 | i32imm:$nargs, i32imm:$cc, variable_ops); | 1026 | i32imm:$nargs, i32imm:$cc, variable_ops); | ||

1027 | let hasSideEffects = 1; | ||||

1017 | let isCall = 1; | 1028 | let isCall = 1; | ||

1018 | let mayLoad = 1; | 1029 | let mayLoad = 1; | ||

1019 | let usesCustomInserter = 1; | 1030 | let usesCustomInserter = 1; | ||

1020 | } | 1031 | } | ||

1021 | def STATEPOINT : Instruction { | 1032 | def STATEPOINT : Instruction { | ||

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

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

1024 | let usesCustomInserter = 1; | 1035 | let usesCustomInserter = 1; | ||

Show All 18 Lines | 1049 | def LOCAL_ESCAPE : Instruction { | |||

1043 | let InOperandList = (ins ptr_rc:$symbol, i32imm:$id); | 1054 | let InOperandList = (ins ptr_rc:$symbol, i32imm:$id); | ||

1044 | let hasSideEffects = 0; | 1055 | let hasSideEffects = 0; | ||

1045 | let hasCtrlDep = 1; | 1056 | let hasCtrlDep = 1; | ||

1046 | } | 1057 | } | ||

1047 | def FAULTING_OP : Instruction { | 1058 | def FAULTING_OP : Instruction { | ||

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

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

1050 | let usesCustomInserter = 1; | 1061 | let usesCustomInserter = 1; | ||

1062 | let hasSideEffects = 1; | ||||

1051 | let mayLoad = 1; | 1063 | let mayLoad = 1; | ||

1052 | let mayStore = 1; | 1064 | let mayStore = 1; | ||

1053 | let isTerminator = 1; | 1065 | let isTerminator = 1; | ||

1054 | let isBranch = 1; | 1066 | let isBranch = 1; | ||

1055 | } | 1067 | } | ||

1056 | def PATCHABLE_OP : Instruction { | 1068 | def PATCHABLE_OP : Instruction { | ||

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

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

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