Projects
openEuler:22.03:LTS:SP1
pin-gcc-client
_service:tar_scm_kernel_repo:0001-Pin-gcc-clien...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm_kernel_repo:0001-Pin-gcc-client-BugFix-for-SwitchOp-change-it-to-term.patch of Package pin-gcc-client
From 3206b8e596cedaa6cf00532b21f609649179908f Mon Sep 17 00:00:00 2001 From: huitailangzju <804544223@qq.com> Date: Mon, 27 Feb 2023 10:00:05 +0800 Subject: [PATCH 1/6] [Pin-gcc-client] BugFix for SwitchOp, change it to terminator operation diff --git a/include/Dialect/PluginOps.td b/include/Dialect/PluginOps.td index 0b5a138..71a1441 100644 --- a/include/Dialect/PluginOps.td +++ b/include/Dialect/PluginOps.td @@ -484,29 +484,6 @@ def AsmOp : Plugin_Op<"asm", [NoSideEffect]> { }]; } -def SwitchOp : Plugin_Op<"switch", [NoSideEffect]> { - let summary = "switch op."; - let description = [{TODO}]; - let successors = (successor - AnySuccessor:$defaultDestination, - VariadicSuccessor<AnySuccessor>:$caseDestinations - ); - let arguments = (ins UI64Attr:$id, AnyType:$index, UI64Attr:$address, AnyType:$defaultLabel, Variadic<AnyType>:$operands, - UI64Attr:$defaultaddr, ArrayAttr:$caseaddrs); - let results = (outs AnyType:$result); - let builders = [ - OpBuilderDAG<(ins "uint64_t":$id, "Value":$index, "uint64_t":$address, "Value":$defaultLabel, - "ArrayRef<Value>":$operands, "Block*":$defaultDestination, "uint64_t":$defaultaddr, - "ArrayRef<Block*>":$caseDestinations, "ArrayRef<uint64_t>":$caseaddrs)> - ]; - - let extraClassDeclaration = [{ - unsigned GetNumLabels() { return getNumOperands() - 2; }; - Block* GetDefautDest() { return defaultDestination();} - SmallVector<mlir::Block*> GetCaseDest() { return caseDestinations(); }; - }]; -} - def LabelOp : Plugin_Op<"label", [NoSideEffect]> { let summary = "Label op."; let description = [{TODO}]; @@ -575,6 +552,29 @@ def CatchOp : Plugin_Op<"catch", [NoSideEffect]> { class Plugin_TerminatorOp<string mnemonic, list<OpTrait> traits = []> : Plugin_Op<mnemonic, !listconcat(traits, [Terminator])>; +def SwitchOp : Plugin_TerminatorOp<"switch", [NoSideEffect]> { + let summary = "switch op."; + let description = [{TODO}]; + let successors = (successor + AnySuccessor:$defaultDestination, + VariadicSuccessor<AnySuccessor>:$caseDestinations + ); + let arguments = (ins UI64Attr:$id, AnyType:$index, UI64Attr:$address, AnyType:$defaultLabel, Variadic<AnyType>:$operands, + UI64Attr:$defaultaddr, ArrayAttr:$caseaddrs); + let results = (outs AnyType:$result); + let builders = [ + OpBuilderDAG<(ins "uint64_t":$id, "Value":$index, "uint64_t":$address, "Value":$defaultLabel, + "ArrayRef<Value>":$operands, "Block*":$defaultDestination, "uint64_t":$defaultaddr, + "ArrayRef<Block*>":$caseDestinations, "ArrayRef<uint64_t>":$caseaddrs)> + ]; + + let extraClassDeclaration = [{ + unsigned GetNumLabels() { return getNumOperands() - 2; }; + Block* GetDefautDest() { return defaultDestination();} + SmallVector<mlir::Block*> GetCaseDest() { return caseDestinations(); }; + }]; +} + def FallThroughOp : Plugin_TerminatorOp<"fallthrough", [NoSideEffect]> { let summary = "FallThroughOp"; let description = [{TODO}]; -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.