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