LLVM: include/llvm/Support/SaveAndRestore.h Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef LLVM_SUPPORT_SAVEANDRESTORE_H
16#define LLVM_SUPPORT_SAVEANDRESTORE_H
17
18#include
19
20namespace llvm {
21
22
25 SaveAndRestore(T &X, const T &NewValue) : X(X), OldValue(X) { X = NewValue; }
27 X = std::move(NewValue);
28 }
30 const T &get() { return OldValue; }
31
32private:
34 T OldValue;
35};
36
37
41
42}
43
44#endif
static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")
This is an optimization pass for GlobalISel generic memory operations.
SaveAndRestore(T &) -> SaveAndRestore< T >
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.
A utility class that uses RAII to save and restore the value of a variable.
Definition SaveAndRestore.h:23
SaveAndRestore(T &X, const T &NewValue)
Definition SaveAndRestore.h:25
const T & get()
Definition SaveAndRestore.h:30
~SaveAndRestore()
Definition SaveAndRestore.h:29
SaveAndRestore(T &X, T &&NewValue)
Definition SaveAndRestore.h:26
SaveAndRestore(T &X)
Definition SaveAndRestore.h:24