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