[llvm] r174132 - Remove some dead code, improve some asserts, and other assorted changes. No functionality change.

Bill Wendling isanbard at gmail.com
Thu Jan 31 17:04:28 PST 2013


Author: void
Date: Thu Jan 31 19:04:27 2013
New Revision: 174132

URL: http://llvm.org/viewvc/llvm-project?rev=174132&view=rev
Log:
Remove some dead code, improve some asserts, and other assorted changes. No functionality change.

Modified:
    llvm/trunk/lib/IR/AttributeImpl.h
    llvm/trunk/lib/IR/Attributes.cpp

Modified: llvm/trunk/lib/IR/AttributeImpl.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/AttributeImpl.h?rev=174132&r1=174131&r2=174132&view=diff
==============================================================================
--- llvm/trunk/lib/IR/AttributeImpl.h (original)
+++ llvm/trunk/lib/IR/AttributeImpl.h Thu Jan 31 19:04:27 2013
@@ -38,14 +38,9 @@ class AttributeImpl : public FoldingSetN
   void operator=(const AttributeImpl &) LLVM_DELETED_FUNCTION;
   AttributeImpl(const AttributeImpl &) LLVM_DELETED_FUNCTION;
 public:
-  AttributeImpl(LLVMContext &C, Constant *Kind)
-    : Context(C), Kind(Kind) {}
-  AttributeImpl(LLVMContext &C, Constant *Kind, ArrayRef<Constant*> Vals)
+  AttributeImpl(LLVMContext &C, Constant *Kind,
+                ArrayRef<Constant*> Vals = ArrayRef<Constant*>())
     : Context(C), Kind(Kind), Vals(Vals.begin(), Vals.end()) {}
-  explicit AttributeImpl(LLVMContext &C, Attribute::AttrKind data);
-  AttributeImpl(LLVMContext &C, Attribute::AttrKind data,
-                ArrayRef<Constant*> values);
-  AttributeImpl(LLVMContext &C, StringRef data);
 
   LLVMContext &getContext() { return Context; }
 

Modified: llvm/trunk/lib/IR/Attributes.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Attributes.cpp?rev=174132&r1=174131&r2=174132&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Attributes.cpp (original)
+++ llvm/trunk/lib/IR/Attributes.cpp Thu Jan 31 19:04:27 2013
@@ -90,16 +90,16 @@ ArrayRef<Constant*> Attribute::getAttrib
 
 /// This returns the alignment field of an attribute as a byte alignment value.
 unsigned Attribute::getAlignment() const {
-  if (!hasAttribute(Attribute::Alignment))
-    return 0;
+  assert(hasAttribute(Attribute::Alignment) &&
+         "Trying to get alignment from non-alignment attribute!");
   return pImpl->getAlignment();
 }
 
 /// This returns the stack alignment field of an attribute as a byte alignment
 /// value.
 unsigned Attribute::getStackAlignment() const {
-  if (!hasAttribute(Attribute::StackAlignment))
-    return 0;
+  assert(hasAttribute(Attribute::StackAlignment) &&
+         "Trying to get alignment from non-alignment attribute!");
   return pImpl->getStackAlignment();
 }
 
@@ -204,6 +204,7 @@ std::string Attribute::getAsString() con
       if (I != E) Result += ' ';
     }
     if (Vals.size() > 1) Result += ')';
+    return Result;
   }
 
   llvm_unreachable("Unknown attribute");
@@ -227,22 +228,6 @@ bool Attribute::operator<(Attribute A) c
 // AttributeImpl Definition
 //===----------------------------------------------------------------------===//
 
-AttributeImpl::AttributeImpl(LLVMContext &C, Attribute::AttrKind kind)
-  : Context(C) {
-  Kind = ConstantInt::get(Type::getInt64Ty(C), kind);
-}
-AttributeImpl::AttributeImpl(LLVMContext &C, Attribute::AttrKind kind,
-                             ArrayRef<Constant*> values)
-  : Context(C) {
-  Kind = ConstantInt::get(Type::getInt64Ty(C), kind);
-  Vals.reserve(values.size());
-  Vals.append(values.begin(), values.end());
-}
-AttributeImpl::AttributeImpl(LLVMContext &C, StringRef kind)
-  : Context(C) {
-  Kind = ConstantDataArray::getString(C, kind);
-}
-
 bool AttributeImpl::hasAttribute(Attribute::AttrKind A) const {
   if (ConstantInt *CI = dyn_cast<ConstantInt>(Kind))
     return CI->getZExtValue() == A;
@@ -282,6 +267,9 @@ bool AttributeImpl::operator!=(StringRef
 }
 
 bool AttributeImpl::operator<(const AttributeImpl &AI) const {
+  // This sorts the attributes with Attribute::AttrKinds coming first (sorted
+  // relative to their enum value) and then strings.
+
   if (!Kind && !AI.Kind) return false;
   if (!Kind && AI.Kind) return true;
   if (Kind && !AI.Kind) return false;
@@ -409,9 +397,9 @@ unsigned AttributeSetNode::getStackAlign
 std::string AttributeSetNode::getAsString() const {
   std::string Str = "";
   for (SmallVectorImpl<Attribute>::const_iterator I = AttrList.begin(),
-         E = AttrList.end(); I != E; ++I) {
-    if (I != AttrList.begin()) Str += " ";
+         E = AttrList.end(); I != E; ) {
     Str += I->getAsString();
+    if (++I != E) Str += " ";
   }
   return Str;
 }
@@ -951,6 +939,7 @@ uint64_t AttrBuilder::Raw() const {
 // AttributeFuncs Function Defintions
 //===----------------------------------------------------------------------===//
 
+/// \brief Which attributes cannot be applied to a type.
 AttributeSet AttributeFuncs::typeIncompatible(Type *Ty, uint64_t Index) {
   AttrBuilder Incompatible;
 





More information about the llvm-commits mailing list