LLVM 22.0.0git
TransactionAcceptOrRevert.h
Go to the documentation of this file.
1//===- TransactionAcceptOrRevert.h ------------------------------*- C++ -*-===//
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// This is a region pass that checks the region cost before/after vectorization
10// and accepts the state of Sandbox IR if the cost is better, or otherwise
11// reverts it.
12//
13
14#ifndef LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_TRANSACTIONACCEPTORREVERT_H
15#define LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_TRANSACTIONACCEPTORREVERT_H
16
17#include "llvm/SandboxIR/Pass.h"
19
20namespace llvm::sandboxir {
21
23public:
24 TransactionAcceptOrRevert() : RegionPass("tr-accept-or-revert") {}
25 bool runOnRegion(Region &Rgn, const Analyses &A) final;
26};
27
28} // namespace llvm::sandboxir
29
30#endif // LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_TRANSACTIONACCEPTORREVERT_H
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
A pass that runs on a sandbox::Region.
Definition: Pass.h:84
The main job of the Region is to point to new instructions generated by vectorization passes.
Definition: Region.h:96
bool runOnRegion(Region &Rgn, const Analyses &A) final
\Returns true if it modifies R.