r209180 - Using SmallString and correct addr var

Renato Golin renato.golin at linaro.org
Mon May 19 16:25:25 PDT 2014


Author: rengolin
Date: Mon May 19 18:25:25 2014
New Revision: 209180

URL: http://llvm.org/viewvc/llvm-project?rev=209180&view=rev
Log:
Using SmallString and correct addr var

Modified:
    cfe/trunk/lib/CodeGen/CGExpr.cpp
    cfe/trunk/test/CodeGen/named_reg_global.c

Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=209180&r1=209179&r2=209180&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp Mon May 19 18:25:25 2014
@@ -1778,11 +1778,13 @@ static LValue EmitCapturedFieldLValue(Co
 static LValue EmitGlobalNamedRegister(const VarDecl *VD,
                                       CodeGenModule &CGM,
                                       CharUnits Alignment) {
+  SmallString<64> Name("llvm.named.register.");
   AsmLabelAttr *Asm = VD->getAttr<AsmLabelAttr>();
-  llvm::Twine Name("llvm.named.register."+Asm->getLabel());
-  SmallString<256> DummyVec;
+  assert(Asm->getLabel().size() < 64-Name.size() &&
+      "Register name too big");
+  Name.append(Asm->getLabel());
   llvm::NamedMDNode *M =
-    CGM.getModule().getOrInsertNamedMetadata(Name.toStringRef(DummyVec));
+    CGM.getModule().getOrInsertNamedMetadata(Name);
   if (M->getNumOperands() == 0) {
     llvm::MDString *Str = llvm::MDString::get(CGM.getLLVMContext(),
                                               Asm->getLabel());

Modified: cfe/trunk/test/CodeGen/named_reg_global.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/named_reg_global.c?rev=209180&r1=209179&r2=209180&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/named_reg_global.c (original)
+++ cfe/trunk/test/CodeGen/named_reg_global.c Mon May 19 18:25:25 2014
@@ -13,8 +13,8 @@ unsigned long get_stack_pointer_addr() {
 }
 // CHECK: declare{{.*}} i[[bits]] @llvm.read_register.i[[bits]](metadata)
 
-// CHECK: define{{.*}} void @set_stack_pointer_addr(i[[bits]] %[[addr:[0-9a-z]+]]) #0 {
-// CHECK: [[sto:%[0-9]+]] = load i[[bits]]* %[[addr]]
+// CHECK: define{{.*}} void @set_stack_pointer_addr(i[[bits]] %addr) #0 {
+// CHECK: [[sto:%[0-9]+]] = load i[[bits]]* %
 // CHECK: call void @llvm.write_register.i[[bits]](metadata !0, i[[bits]] [[sto]])
 // CHECK: ret void
 void set_stack_pointer_addr(unsigned long addr) {





More information about the cfe-commits mailing list