The bcwriter does not want ConstantPointerRef's to be indexed, and the asmwriter never did!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10885 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-01-15 18:47:15 +00:00
parent 7be08bfae1
commit 8c202cdbda
2 changed files with 28 additions and 10 deletions

View File

@ -321,11 +321,16 @@ void SlotCalculator::purgeFunction() {
SC_DEBUG("end purgeFunction!\n");
}
int SlotCalculator::getSlot(const Value *D) const {
std::map<const Value*, unsigned>::const_iterator I = NodeMap.find(D);
if (I == NodeMap.end()) return -1;
return (int)I->second;
int SlotCalculator::getSlot(const Value *V) const {
std::map<const Value*, unsigned>::const_iterator I = NodeMap.find(V);
if (I != NodeMap.end())
return (int)I->second;
// Do not number ConstantPointerRef's at all. They are an abomination.
if (const ConstantPointerRef *CPR = dyn_cast<ConstantPointerRef>(V))
return getSlot(CPR->getValue());
return -1;
}
@ -333,6 +338,10 @@ int SlotCalculator::getOrCreateSlot(const Value *V) {
int SlotNo = getSlot(V); // Check to see if it's already in!
if (SlotNo != -1) return SlotNo;
// Do not number ConstantPointerRef's at all. They are an abomination.
if (const ConstantPointerRef *CPR = dyn_cast<ConstantPointerRef>(V))
return getOrCreateSlot(CPR->getValue());
if (!isa<GlobalValue>(V))
if (const Constant *C = dyn_cast<Constant>(V)) {
// If we are emitting a bytecode file, do not index the characters that

View File

@ -321,11 +321,16 @@ void SlotCalculator::purgeFunction() {
SC_DEBUG("end purgeFunction!\n");
}
int SlotCalculator::getSlot(const Value *D) const {
std::map<const Value*, unsigned>::const_iterator I = NodeMap.find(D);
if (I == NodeMap.end()) return -1;
return (int)I->second;
int SlotCalculator::getSlot(const Value *V) const {
std::map<const Value*, unsigned>::const_iterator I = NodeMap.find(V);
if (I != NodeMap.end())
return (int)I->second;
// Do not number ConstantPointerRef's at all. They are an abomination.
if (const ConstantPointerRef *CPR = dyn_cast<ConstantPointerRef>(V))
return getSlot(CPR->getValue());
return -1;
}
@ -333,6 +338,10 @@ int SlotCalculator::getOrCreateSlot(const Value *V) {
int SlotNo = getSlot(V); // Check to see if it's already in!
if (SlotNo != -1) return SlotNo;
// Do not number ConstantPointerRef's at all. They are an abomination.
if (const ConstantPointerRef *CPR = dyn_cast<ConstantPointerRef>(V))
return getOrCreateSlot(CPR->getValue());
if (!isa<GlobalValue>(V))
if (const Constant *C = dyn_cast<Constant>(V)) {
// If we are emitting a bytecode file, do not index the characters that