LLVM: include/llvm/Analysis/DemandedBits.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21#ifndef LLVM_ANALYSIS_DEMANDEDBITS_H

22#define LLVM_ANALYSIS_DEMANDEDBITS_H

23

29

30namespace llvm {

31

40

42public:

44 F(F), AC(AC), DT(DT) {}

45

46

47

48

49

50

51

52

53

54

56

57

59

60

62

63

65

67

68

69

71 const APInt &AOut,

74

75

76

78 const APInt &AOut,

81

82private:

83 void performAnalysis();

84 void determineLiveOperandBits(const Instruction *UserI,

85 const Value *Val, unsigned OperandNo,

88

92

93 bool Analyzed = false;

94

95

98

99

101};

102

103

106

108

109public:

110

112

113

114

116};

117

118

121

122public:

124

126

128};

129

130}

131

132#endif

This file implements a class to represent arbitrary precision integral constant values and operations...

This file defines the DenseMap class.

This header defines various interfaces for pass management in LLVM.

This file defines the SmallPtrSet class.

Class for arbitrary precision integers.

A cache of @llvm.assume calls within a function.

An analysis that produces DemandedBits for a function.

Definition DemandedBits.h:104

LLVM_ABI DemandedBits run(Function &F, FunctionAnalysisManager &AM)

Run the analysis pass over a function and produce demanded bits information.

DemandedBits Result

Provide the result type for this analysis pass.

Definition DemandedBits.h:111

LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)

static bool isRequired()

Definition DemandedBits.h:127

DemandedBitsPrinterPass(raw_ostream &OS)

Definition DemandedBits.h:123

Definition DemandedBits.h:41

LLVM_ABI void print(raw_ostream &OS)

LLVM_ABI APInt getDemandedBits(Instruction *I)

Return the bits demanded from instruction I.

static LLVM_ABI APInt determineLiveOperandBitsAdd(unsigned OperandNo, const APInt &AOut, const KnownBits &LHS, const KnownBits &RHS)

Compute alive bits of one addition operand from alive output and known operand bits.

DemandedBits(Function &F, AssumptionCache &AC, DominatorTree &DT)

Definition DemandedBits.h:43

LLVM_ABI bool isInstructionDead(Instruction *I)

Return true if, during analysis, I could not be reached.

static LLVM_ABI APInt determineLiveOperandBitsSub(unsigned OperandNo, const APInt &AOut, const KnownBits &LHS, const KnownBits &RHS)

Compute alive bits of one subtraction operand from alive output and known operand bits.

LLVM_ABI bool isUseDead(Use *U)

Return whether this use is dead by means of not having any demanded bits.

Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.

A set of analyses that are preserved following a run of a transformation pass.

SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.

A Use represents the edge between a Value definition and its users.

LLVM Value Representation.

This class implements an extremely fast bulk output stream that can only output to a stream.

This is an optimization pass for GlobalISel generic memory operations.

AnalysisManager< Function > FunctionAnalysisManager

Convenience typedef for the Function analysis manager.

A CRTP mix-in that provides informational APIs needed for analysis passes.

A special type used by analysis passes to provide an address that identifies that particular analysis...

A CRTP mix-in to automatically provide informational APIs needed for passes.