mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 06:32:24 +00:00
Remove dead file (was only used by the C backend)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232397 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
44f89d36e3
commit
bf71e29ec5
@ -1,94 +0,0 @@
|
||||
//==- llvm/Analysis/ConstantsScanner.h - Iterate over constants -*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This class implements an iterator to walk through the constants referenced by
|
||||
// a method. This is used by the Bitcode & Assembly writers to build constant
|
||||
// pools.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_ANALYSIS_CONSTANTSSCANNER_H
|
||||
#define LLVM_ANALYSIS_CONSTANTSSCANNER_H
|
||||
|
||||
#include "llvm/IR/InstIterator.h"
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class Constant;
|
||||
|
||||
class constant_iterator : public std::iterator<std::forward_iterator_tag,
|
||||
const Constant, ptrdiff_t> {
|
||||
const_inst_iterator InstI; // Method instruction iterator
|
||||
unsigned OpIdx; // Operand index
|
||||
|
||||
bool isAtConstant() const {
|
||||
assert(!InstI.atEnd() && OpIdx < InstI->getNumOperands() &&
|
||||
"isAtConstant called with invalid arguments!");
|
||||
return isa<Constant>(InstI->getOperand(OpIdx));
|
||||
}
|
||||
|
||||
public:
|
||||
constant_iterator(const Function *F) : InstI(inst_begin(F)), OpIdx(0) {
|
||||
// Advance to first constant... if we are not already at constant or end
|
||||
if (InstI != inst_end(F) && // InstI is valid?
|
||||
(InstI->getNumOperands() == 0 || !isAtConstant())) // Not at constant?
|
||||
operator++();
|
||||
}
|
||||
|
||||
constant_iterator(const Function *F, bool) // end ctor
|
||||
: InstI(inst_end(F)),
|
||||
OpIdx(0) {}
|
||||
|
||||
bool operator==(const constant_iterator &x) const {
|
||||
return OpIdx == x.OpIdx && InstI == x.InstI;
|
||||
}
|
||||
bool operator!=(const constant_iterator &x) const { return !(*this == x); }
|
||||
|
||||
pointer operator*() const {
|
||||
assert(isAtConstant() && "Dereferenced an iterator at the end!");
|
||||
return cast<Constant>(InstI->getOperand(OpIdx));
|
||||
}
|
||||
pointer operator->() const { return **this; }
|
||||
|
||||
constant_iterator &operator++() { // Preincrement implementation
|
||||
++OpIdx;
|
||||
do {
|
||||
unsigned NumOperands = InstI->getNumOperands();
|
||||
while (OpIdx < NumOperands && !isAtConstant()) {
|
||||
++OpIdx;
|
||||
}
|
||||
|
||||
if (OpIdx < NumOperands) return *this; // Found a constant!
|
||||
++InstI;
|
||||
OpIdx = 0;
|
||||
} while (!InstI.atEnd());
|
||||
|
||||
return *this; // At the end of the method
|
||||
}
|
||||
|
||||
onstant_iterator operator++(int) { // Postincrement
|
||||
constant_iterator tmp = *this;
|
||||
++*this;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
bool atEnd() const { return InstI.atEnd(); }
|
||||
};
|
||||
|
||||
inline constant_iterator constant_begin(const Function *F) {
|
||||
return constant_iterator(F);
|
||||
}
|
||||
|
||||
inline constant_iterator constant_end(const Function *F) {
|
||||
return constant_iterator(F, true);
|
||||
}
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user