summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCall.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Canonicalize parameter and return types before computing ABI info. EliminatesJohn McCall2010-02-241-1/+1
| | | | | | | | | | | a common source of oddities and, in theory, removes some redundant ABI computations. Also fixes a miscompile I introduced yesterday by refactoring some code and causing a slightly different code path to be taken that didn't perform *parameter* type canonicalization, just normal type canonicalization; this in turn caused a bit of ABI code to misfire because it was looking for 'double' or 'float' but received 'const float'. llvm-svn: 97030
* Standardize the parsing of function type attributes in a way thatJohn McCall2010-02-051-0/+9
| | | | | | | | | | | | follows (as conservatively as possible) gcc's current behavior: attributes written on return types that don't apply there are applied to the function instead, etc. Only parse CC attributes as type attributes, not as decl attributes; don't accepet noreturn as a decl attribute on ValueDecls, either (it still needs to apply to other decls, like blocks). Consistently consume CC/noreturn information throughout codegen; enforce this by removing their default values in CodeGenTypes::getFunctionInfo(). llvm-svn: 95436
* Fill in the return value slot in CGExprAgg::VisitCallExpr. This takes us ↵Anders Carlsson2009-12-241-0/+2
| | | | | | halfway towards fixing PR5824. llvm-svn: 92142
* Add a ReturnValueSlot class. Change the argument order in EmitCall to match ↵Anders Carlsson2009-12-241-1/+17
| | | | | | the other overload better. llvm-svn: 92136
* Change CodeGenModule::ConstructTypeAttributes to return the calling conventionDaniel Dunbar2009-09-121-1/+17
| | | | | | to use, and allow the ABI implementation to override the calling convention. llvm-svn: 81593
* Add CallingConvention argument to CGFunctionInfo.Daniel Dunbar2009-09-111-1/+10
| | | | | | - Currently unused. llvm-svn: 81581
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-4/+4
| | | | llvm-svn: 81346
* Unbreak CGFunctionInfo::Profile method and reenable caching of ABIDaniel Dunbar2009-02-051-0/+1
| | | | | | information. llvm-svn: 63799
* Add asserts that the function signature matches the other arguments provideDaniel Dunbar2009-02-041-0/+2
| | | | | | to CGCall functions. llvm-svn: 63775
* Move ABIArgInfo into CGFunctionInfo, computed on creation.Daniel Dunbar2009-02-031-7/+25
| | | | | | - Still have to convert some consumers over. llvm-svn: 63610
* Memoize CGFunctionInfo construction.Daniel Dunbar2009-02-031-1/+15
| | | | llvm-svn: 63576
* Change CGFunctionInfo args iterator to not include the return type.Daniel Dunbar2009-02-021-6/+4
| | | | llvm-svn: 63571
* Thread CGFunctionInfo construction through CodeGenTypes.Daniel Dunbar2009-02-021-6/+2
| | | | | | - Inefficient & leaks memory currently, will be cleaned up subsequently. llvm-svn: 63567
* ABI handling API changes.Daniel Dunbar2009-02-021-8/+5
| | | | | | | | | | | - Lift CGFunctionInfo creation up to callers of EmitCall. - Move isVariadic bit out of CGFunctionInfo, take as argument to GetFunctionType instead. No functionality change. llvm-svn: 63550
* Kill off CGCallInfo, always use CGFunctionInfo for encapsulatingDaniel Dunbar2009-01-311-12/+2
| | | | | | function/call info. llvm-svn: 63466
* Large mechanical patch.Devang Patel2008-09-251-2/+2
| | | | | | | | | | | | | 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
* s/ParamAttrsWithIndex/FnAttributeWithIndex/gDevang Patel2008-09-241-2/+2
| | | | | | Rename to match changes done on llvm side. llvm-svn: 56537
* Move FunctionType conversion into CGCall.cpp:Daniel Dunbar2008-09-101-4/+4
| | | | | | | | | | | | | - 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
* Tweak CGCall functions:Daniel Dunbar2008-09-101-6/+9
| | | | | | | | - Move actual param attr list creation to CodeGenFunction::ConstructParamAttrList. - Make ReturnTypeUsesSret static. llvm-svn: 56038
* Factor CodeGenFunction::StartFunction out of GenerateCode andDaniel Dunbar2008-09-091-0/+7
| | | | | | StartObjCMethod. llvm-svn: 56030
* Change CodeGen to emit calls using (RValue,Type) list:Daniel Dunbar2008-09-091-1/+3
| | | | | | | | | | | | | | - 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/+76
- 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