summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCall.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Handle returning complex types that get coerced. Fixes PR3131Anders Carlsson2008-11-251-1/+4
| | | | llvm-svn: 60058
* Migrate some stuff from NamedDecl::getName() to Chris Lattner2008-11-241-1/+1
| | | | | | NamedDecl::getNameAsString() to make it more explicit. llvm-svn: 59937
* Fix silly bug spotted by Daniel DunbarAnders Carlsson2008-11-151-1/+1
| | | | llvm-svn: 59358
* Handle complex return values.Anders Carlsson2008-11-151-1/+6
| | | | llvm-svn: 59345
* Lift out ABIInfo abstract base class.Daniel Dunbar2008-10-131-19/+97
| | | | | | | | - Currently still lives in CGCall.cpp but is intended to be the target specific place for hooking ABI information. - Select ABIInfo to use based on Target's prefix and pointer width. llvm-svn: 57445
* Implement support for the const and pure attributes.Anders Carlsson2008-10-051-0/+4
| | | | llvm-svn: 57142
* Now Attributes are divided in three groupsDevang Patel2008-09-261-4/+8
| | | | | | | | | | | - return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn Return attributes use 0 as the index. Function attributes use ~0U as the index. llvm-svn: 56705
* Large mechanical patch.Devang Patel2008-09-251-21/+21
| | | | | | | | | | | | | s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. llvm-svn: 56623
* Adjust whitespaces.Devang Patel2008-09-241-2/+2
| | | | llvm-svn: 56538
* s/ParamAttrsWithIndex/FnAttributeWithIndex/gDevang Patel2008-09-241-4/+4
| | | | | | Rename to match changes done on llvm side. llvm-svn: 56537
* Improve x86 ABI compatibility.Daniel Dunbar2008-09-171-1/+132
| | | | | | | | | | | | | | - Enables use of ABIArgInfo::Expand when needed. This greatly improves our x86 ABI compatibility. - As the infrastructure for target specific ABI handling isn't built yet, this change means ABI compatibility on other platforms is once again broken in a different way than before. - Upcoming: Figure out how to refactor ABI handling into targets. More documentation. llvm-svn: 56293
* Drop CodeGenTypes parameter to classifyArgumentType.Daniel Dunbar2008-09-171-14/+29
| | | | | | | | | Ensure that ABIArgInfo::Default implementation for aggregrate types is sensible (StructRet on return and ByVal on arguments). No functionality change. llvm-svn: 56289
* Add support for ABIArgInfo::ExpandDaniel Dunbar2008-09-171-42/+159
| | | | | | - No functionality change. llvm-svn: 56269
* Use ABIArgInfo for decisions about function arguments (not just returnDaniel Dunbar2008-09-111-29/+145
| | | | | | | | | | | | | value). - Added ABIArgInfo::ByVal (mostly supported) and ABIArgInfo::Expand (asserted out). - Added classifyArgumentType which currently just uses ABIArgInfo::Default or ByVal. This nearly matches old behavior, but we now set ByVal in a few situations we may have left it off before (on complex, for example). llvm-svn: 56086
* Bug fix, apply default argument promotion in message sends for whichDaniel Dunbar2008-09-111-0/+6
| | | | | | | | | no method declaration was found. - This was allowing arrays to pass "by value" among other things. Add assert in CodeGen that arguments cannot have array type. llvm-svn: 56080
* Implement ABIArgType::Coerce support.Daniel Dunbar2008-09-101-27/+40
| | | | | | | | - As a test, enable basic usage for some common x86-32 cases. This increases our x86-32 compliance (on other targets our compliance will just be broken in a different way). llvm-svn: 56051
* Add CodeGenTypes::GetFunctionType overload for getting the effectiveDaniel Dunbar2008-09-101-6/+17
| | | | | | | | | | | | type of a call. Change NeXT runtime to use this instead of trying to bitcasting internally (which doesn't respect the ABI). Fix subtle bug, use of ConvertTypeRecursive instead of ConvertType is bad inside GetFunctionType. llvm-svn: 56050
* Move FunctionType conversion into CGCall.cpp:Daniel Dunbar2008-09-101-6/+73
| | | | | | | | | | | | | - Added CodeGenTypes::GetFunctionType, taking a CGFunctionInfo. - Updated Obj-C runtimes to use this instead of rolling the llvm::FunctionType by hand. - Killed CodeGenTypes::{ConvertReturnType, DecodeArgumentTypes}. Add ABIArgInfo class to encapsulate ABI decision of how to lower types to LLVM. - Will move to target sometime soon. llvm-svn: 56047
* Add ABIArgInfo class to encapsulate ABI decision of how to lower typesDaniel Dunbar2008-09-101-38/+123
| | | | | | | to LLVM. - Will move to target sometime soon. llvm-svn: 56046
* Tweak CGCall functions again:Daniel Dunbar2008-09-101-6/+8
| | | | | | | | - Realized these functions will eventually need access to more data, moved to CodeGenModule. Eventually they should probably live together in some other helper class. llvm-svn: 56039
* Tweak CGCall functions:Daniel Dunbar2008-09-101-58/+63
| | | | | | | | - Move actual param attr list creation to CodeGenFunction::ConstructParamAttrList. - Make ReturnTypeUsesSret static. llvm-svn: 56038
* Add CodeGenFunction::ReturnTypeUsesSretDaniel Dunbar2008-09-091-0/+4
| | | | | | - Hook so NeXT runtime doesn't depend on ABI. llvm-svn: 56034
* Move ABI specific code for functions / calls to CGCall.cpp:Daniel Dunbar2008-09-091-0/+102
| | | | | | - Factor out EmitFunction{Pro,Epi}log llvm-svn: 56031
* Change CodeGen to emit calls using (RValue,Type) list:Daniel Dunbar2008-09-091-2/+1
| | | | | | | | | | | | | | - Add CodeGenFunction::EmitAnyExprToTemp o Like EmitAnyExpr, but emits aggregates to a temporary location if none is available. Seems like this should be simpler (even aside from using first class aggregates). - Killed CodeGenFunction::EmitCallArg (just append the pair) - Conversion of RValues to actual call arguments is now isolated in CodeGenFunction::EmitCall. llvm-svn: 55970
* Refactor parameter attribute handling:Daniel Dunbar2008-09-081-0/+117
- Add CGCall.h for dealing with ABI issues related to calls. - Add CGFunctionInfo and CGCallInfo for capturing ABI relevant information about functions and calls. - Isolate LLVM parameter attribute handling inside CGCall.cpp llvm-svn: 55963
OpenPOWER on IntegriCloud