summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/CallingConvEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move TableGen's parser and entry point into a libraryPeter Collingbourne2011-10-011-1/+1
| | | | | | This is the first step towards splitting LLVM and Clang's tblgen executables. llvm-svn: 140951
* Unconstify InitsDavid Greene2011-07-291-5/+5
| | | | | | Remove const qualifiers from Init references, per Chris' request. llvm-svn: 136531
* [AVX] Constify InitsDavid Greene2011-07-291-5/+5
| | | | | | | Make references to Inits const everywhere. This is the final step before making them unique. llvm-svn: 136485
* Revert r134921, 134917, 134908 and 134907. They're causing failuresEric Christopher2011-07-111-5/+5
| | | | | | in multiple buildbots. llvm-svn: 134936
* [AVX] Make Inits FoldableDavid Greene2011-07-111-5/+5
| | | | | | | | | | | | | | | | | | Manage Inits in a FoldingSet. This provides several benefits: - Memory for Inits is properly managed - Duplicate Inits are folded into Flyweights, saving memory - It enforces const-correctness, protecting against certain classes of bugs The above benefits allow Inits to be used in more contexts, which in turn provides more dynamism to TableGen. This enhanced capability will be used by the AVX code generator to a fold common patterns together. llvm-svn: 134907
* In the calling convention logic, ValVT is always a legal type,Duncan Sands2010-11-041-2/+2
| | | | | | | and as such can be represented by an MVT - the more complicated EVT is not needed. Use MVT for ValVT everywhere. llvm-svn: 118245
* Inside the calling convention logic LocVT is always a simpleDuncan Sands2010-11-031-4/+4
| | | | | | | | | | value type, so there is no point in passing it around using an EVT. Use the simpler MVT everywhere. Rather than trying to propagate this information maximally in all the code that using the calling convention stuff, I chose to do a mainly low impact change instead. llvm-svn: 118167
* Fix eabi calling convention when a 64 bit value shadows r3.Rafael Espindola2010-08-061-0/+2
| | | | | | | | | | | Without this what was happening was: * R3 is not marked as "used" * ARM backend thinks it has to save it to the stack because of vaarg * Offset computation correctly ignores it * Offsets are wrong llvm-svn: 110446
* Add contexts to some of the MVT APIs. No functionality change yet, just the ↵Owen Anderson2009-08-121-2/+2
| | | | | | infrastructure work needed to get the contexts to where they need to be first. llvm-svn: 78759
* Rename MVT to EVT, in preparation for splitting SimpleValueType out into its ↵Owen Anderson2009-08-101-6/+6
| | | | | | own struct type. llvm-svn: 78610
* Add 'Indirect' LocInfo class and use to pass __m128 on win64. Also minore ↵Anton Korobeynikov2009-08-031-0/+4
| | | | | | fixes here and there (mostly __m64). llvm-svn: 77964
* Move types back to the 2.5 API.Owen Anderson2009-07-291-2/+2
| | | | llvm-svn: 77516
* Get rid of the Pass+Context magic.Owen Anderson2009-07-221-2/+2
| | | | llvm-svn: 76702
* Thread LLVMContext through MVT and related parts of SDISel.Owen Anderson2009-07-091-2/+2
| | | | llvm-svn: 75153
* Replace std::iostreams with raw_ostream in TableGen.Daniel Dunbar2009-07-031-3/+3
| | | | | | | | - Sorry, I can't help myself. - No intended functionality change. llvm-svn: 74742
* Rename PaddedSize to AllocSize, in the hope that thisDuncan Sands2009-05-091-1/+1
| | | | | | | will make it more obvious what it represents, and stop it being confused with the StoreSize. llvm-svn: 71349
* Use CallConvLower.h and TableGen descriptions of the calling conventionsBob Wilson2009-04-171-0/+9
| | | | | | for ARM. Patch by Sandeep Patel. llvm-svn: 69371
* Rename getABITypeSize to getTypePaddedSize, asDuncan Sands2009-01-121-1/+1
| | | | | | suggested by Chris. llvm-svn: 62099
* Wrap MVT::ValueType in a struct to get type safetyDuncan Sands2008-06-061-6/+6
| | | | | | | | | | | | | | | | and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). llvm-svn: 52044
* Add new CC lowering rule: provide a list of registers, which can be 'shadowed',Anton Korobeynikov2008-04-021-0/+42
| | | | | | | when some another register is used for argument passing. Currently is used on Win64. llvm-svn: 49079
* Introduce a new node for holding call argumentDuncan Sands2008-03-211-4/+4
| | | | | | | | | | | | | | | | | flags. This is needed by the new legalize types infrastructure which wants to expand the 64 bit constants previously used to hold the flags on 32 bit machines. There are two functional changes: (1) in LowerArguments, if a parameter has the zext attribute set then that is marked in the flags; before it was being ignored; (2) PPC had some bogus code for handling two word arguments when using the ELF 32 ABI, which was hard to convert because of the bogusness. As suggested by the original author (Nicolas Geoffray), I've disabled it for the moment. Tested with "make check" and the Ada ACATS testsuite. llvm-svn: 48640
* Increase ISD::ParamFlags to 64 bits. Increase the ByValSizeDale Johannesen2008-03-101-2/+2
| | | | | | | | | | field to 32 bits, thus enabling correct handling of ByVal structs bigger than 0x1ffff. Abstract interface a bit. Fixes gcc.c-torture/execute/pr23135.c and gcc.c-torture/execute/pr28982b.c in gcc testsuite (were ICE'ing on ppc32, quietly producing wrong code on x86-32.) llvm-svn: 48122
* Rename CCIfStruct to CCIfByVal and CCStructAssign to CCPassByVal. Remove ↵Evan Cheng2008-01-151-3/+6
| | | | | | unused parameters of CCStructAssign and add size and alignment requirement info. llvm-svn: 45997
* Revert my last commit. Not needed.Evan Cheng2008-01-151-20/+7
| | | | llvm-svn: 45994
* ByVal arguments are passed on stack. Make sure to allocate a slot using size ↵Evan Cheng2008-01-121-7/+20
| | | | | | and alignment information on the parameter attribute. llvm-svn: 45897
* remove attributions from utils.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45419
* Eliminate the recently introduced CCAssignToStackABISizeAlignDuncan Sands2007-11-141-12/+14
| | | | | | | | in favour of teaching CCAssignToStack that size 0 and/or align 0 means to use the ABI values. This seems a neater solution. It is safe since no legal value type has size 0. llvm-svn: 44107
* Add CCAssignToStackABISizeAlign for convenience inDale Johannesen2007-11-101-0/+9
| | | | | | | dealing with types whose size & alignment are different on different subtargets. Use it for x86 f80. llvm-svn: 43988
* propagate struct size and alignment of byval arguments to the DAGRafael Espindola2007-08-101-1/+3
| | | | llvm-svn: 40986
* Add the byval attributeRafael Espindola2007-07-061-1/+2
| | | | llvm-svn: 37940
* Refactoring of formal parameter flags. Enable properly use ofAnton Korobeynikov2007-03-071-2/+6
| | | | | | zext/sext/aext stuff. llvm-svn: 35008
* Use new SDIselParamAttr enumeration. This removes "magick" constantsAnton Korobeynikov2007-03-061-2/+2
| | | | | | from formal attributes' flags processing. llvm-svn: 34963
* rename some CCActionsChris Lattner2007-02-281-2/+2
| | | | llvm-svn: 34724
* implement CCPromoteToTypeChris Lattner2007-02-281-8/+13
| | | | llvm-svn: 34720
* reapplyChris Lattner2007-02-271-1/+2
| | | | llvm-svn: 34697
* *** empty log message ***Chris Lattner2007-02-271-0/+128
llvm-svn: 34696
OpenPOWER on IntegriCloud