summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/ParameterAttributes.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Split ParameterAttributes.h, putting the complicatedDale Johannesen2008-02-221-2/+2
| | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504
* Fix newly-introduced 4.3 warningsAnton Korobeynikov2008-02-201-1/+1
| | | | llvm-svn: 47375
* Add Alignment field to ParameterAttributes andDale Johannesen2008-02-191-1/+23
| | | | | | | treat more or less rationally in interface functions, subject to change. No functional change. llvm-svn: 47352
* Expand ParameterAttributes to 32 bits (in preparationDale Johannesen2008-02-191-10/+12
| | | | | | | for adding alignment info, not there yet). Clean up interfaces to reference ParameterAttributes consistently. llvm-svn: 47342
* Some micro-optimizations.Duncan Sands2008-02-161-4/+5
| | | | llvm-svn: 47219
* It turns out that in C++ it is legal to declare functionsDuncan Sands2008-01-211-6/+1
| | | | | | | | | | | | | that return an opaque type by value, as long as you don't call it or provide a body (you can take the address of it). So it is wrong to insist that sret parameters not be an opaque*. And I guess it is really up to codegen to complain if someone tries to call such a function. I'm also removing the analogous check from byval parameters, since I don't see why we shouldn't allow them as long as no-one tries to call the function or give it a body. llvm-svn: 46216
* Check that sret is only used on pointers to typesDuncan Sands2008-01-211-2/+2
| | | | | | with a size, like byval. llvm-svn: 46207
* I noticed that the trampoline straightening transformation couldDuncan Sands2008-01-141-0/+7
| | | | | | | | | drop attributes on varargs call arguments. Also, it could generate invalid IR if the transformed call already had the 'nest' attribute somewhere (this can never happen for code coming from llvm-gcc, but it's a theoretical possibility). Fix both problems. llvm-svn: 45973
* Allow the byval attribute for pointers to any type withDuncan Sands2008-01-131-2/+2
| | | | | | a size, not just structs. llvm-svn: 45938
* Small cleanup for handling of type/parameter attributeDuncan Sands2008-01-071-7/+9
| | | | | | incompatibility. llvm-svn: 45704
* The transform that tries to turn calls to bitcast functions intoDuncan Sands2008-01-061-45/+18
| | | | | | | | | direct calls bails out unless caller and callee have essentially equivalent parameter attributes. This is illogical - the callee's attributes should be of no relevance here. Rework the logic, which incidentally fixes a crash when removed arguments have attributes. llvm-svn: 45658
* Trying that again.Gordon Henriksen2008-01-031-1/+0
| | | | llvm-svn: 45529
* Fix a compile error on Windows.Gordon Henriksen2008-01-031-0/+2
| | | | llvm-svn: 45528
* Don't create a new ParamAttrsList (which copies the vector) just to Chris Lattner2008-01-031-6/+6
| | | | | | get a profile. llvm-svn: 45524
* move some code out of line, rearrange a bit.Chris Lattner2008-01-031-6/+10
| | | | llvm-svn: 45519
* Split param attr implementation out from Function.cpp into itsChris Lattner2008-01-021-0/+226
own file. Don't #include ParameterAttributes.h into any major public header files: just move methods out of line as appropriate. llvm-svn: 45517
OpenPOWER on IntegriCloud