Modify the LLVM assembly output so that it uses references to represent function attributes.

This makes the LLVM assembly look better. E.g.:

     define void @foo() #0 { ret void }
     attributes #0 = { nounwind noinline ssp }

llvm-svn: 175605
diff --git a/llvm/test/Transforms/IPConstantProp/user-with-multiple-uses.ll b/llvm/test/Transforms/IPConstantProp/user-with-multiple-uses.ll
index 402ea41..ccbd91b 100644
--- a/llvm/test/Transforms/IPConstantProp/user-with-multiple-uses.ll
+++ b/llvm/test/Transforms/IPConstantProp/user-with-multiple-uses.ll
@@ -4,7 +4,7 @@
 ; IPSCCP should propagate the 0 argument, eliminate the switch, and propagate
 ; the result.
 
-; CHECK: define i32 @main() noreturn nounwind {
+; CHECK: define i32 @main() #0 {
 ; CHECK-NEXT: entry:
 ; CHECK-NEXT: %call2 = tail call i32 @wwrite(i64 0) nounwind
 ; CHECK-NEXT: ret i32 123
@@ -28,3 +28,6 @@
 return:
   ret i32 0
 }
+
+; CHECK: attributes #0 = { noreturn nounwind }
+; CHECK: attributes #1 = { nounwind readnone }