Improvements to constant folding.

We can now do constant folding with all basic datatypes (the previous
implementation handled int32 well, but had limited, if any, coverage
for other datatypes.)

Reduced a bit of repeated code in the constant folding implementation
through template helper functions.
This commit is contained in:
Matt Pharr
2013-07-22 16:12:02 -07:00
parent abf43ad01d
commit 564e61c828
7 changed files with 267 additions and 270 deletions

View File

@@ -804,7 +804,7 @@ EnumType::GetDIType(llvm::DIDescriptor scope) const {
for (unsigned int i = 0; i < enumerators.size(); ++i) {
unsigned int enumeratorValue;
Assert(enumerators[i]->constValue != NULL);
int count = enumerators[i]->constValue->AsUInt32(&enumeratorValue);
int count = enumerators[i]->constValue->GetValues(&enumeratorValue);
Assert(count == 1);
llvm::Value *descriptor =