diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-06-05 03:00:09 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-06-05 03:00:09 +0000 |
commit | a3661146ea15bcdf71a1d962b3c301fb1167bad6 (patch) | |
tree | bdc7ac2d18cd29ffb7e28eadab48d026999735e6 /clang/lib/CodeGen | |
parent | 811d259bb1535916d3ade11123fda22a664c2669 (diff) | |
download | bcm5719-llvm-a3661146ea15bcdf71a1d962b3c301fb1167bad6.tar.gz bcm5719-llvm-a3661146ea15bcdf71a1d962b3c301fb1167bad6.zip |
Heed ABIArgInfo::getInReg() for return values.
The 'inreg' attribute can also be applied to function return values in
LLVM IR. The SPARC v9 backend is using the flag when returning structs
containing 32-bit floats.
llvm-svn: 183290
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGCall.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp index 9a8edccdef0..3c079cd58bb 100644 --- a/clang/lib/CodeGen/CGCall.cpp +++ b/clang/lib/CodeGen/CGCall.cpp @@ -1054,8 +1054,11 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI, RetAttrs.addAttribute(llvm::Attribute::SExt); else if (RetTy->hasUnsignedIntegerRepresentation()) RetAttrs.addAttribute(llvm::Attribute::ZExt); - break; + // FALL THROUGH case ABIArgInfo::Direct: + if (RetAI.getInReg()) + RetAttrs.addAttribute(llvm::Attribute::InReg); + break; case ABIArgInfo::Ignore: break; |