summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add a convenience typedef for std::pair<unsigned, const TargetRegisterClass*>.Eric Christopher2011-06-301-7/+8
| | | | | | | | No functional change. Part of rdar://9119939 llvm-svn: 134198
* Thumb1 register to register MOV instruction is predicable.Jim Grosbach2011-06-3010-59/+67
| | | | | | | | | Fix a FIXME and allow predication (in Thumb2) for the T1 register to register MOV instructions. This allows some better codegen with if-conversion (as seen in the test updates), plus it lays the groundwork for pseudo-izing the tMOVCC instructions. llvm-svn: 134197
* Add comments to the FDE.Bill Wendling2011-06-301-5/+13
| | | | llvm-svn: 134196
* No, actually, we do need to be able to mangle substituted template names.John McCall2011-06-301-3/+10
| | | | llvm-svn: 134195
* Add more comments to the ASM output for the CIE's "moves".Bill Wendling2011-06-301-1/+20
| | | | llvm-svn: 134194
* Tweak error messages to match GCC. Should fix gcc.target/i386/pr30848.cJakob Stoklund Olesen2011-06-301-3/+3
| | | | llvm-svn: 134193
* Add module docstring to the auto-generated lldb.py file.Johnny Chen2011-06-301-2/+24
| | | | llvm-svn: 134192
* Add comments to the ASM output to help understand the compact unwind and CIE ↵Bill Wendling2011-06-301-6/+61
| | | | | | tables. llvm-svn: 134191
* _STD -> _VSTD to avoid macro clash on windowsHoward Hinnant2011-06-3058-1567/+1567
| | | | llvm-svn: 134190
* Create a isFullCopy predicate.Rafael Espindola2011-06-302-5/+4
| | | | llvm-svn: 134189
* ScheduleOpt: Prevectorize the innermost parallel loopTobias Grosser2011-06-301-7/+11
| | | | | | | Only prevectorize loops that are actually parallel and can be vectorized. Take the innermost loop that is eligible. llvm-svn: 134187
* ScheduleOpt: Add first version of prevectorizationTobias Grosser2011-06-302-1/+86
| | | | | | | We just strip-mine the innermost dimension by the vector width. This does not take into account if this dimension is parallel nor if it is constant. llvm-svn: 134186
* Fix off-by-one error in StringLiteral::getLocationOfByte.Hans Wennborg2011-06-302-1/+7
| | | | | | This fixes PR10223. llvm-svn: 134183
* Add r134057 back, but splice the predecessor after the successors phiRafael Espindola2011-06-305-11/+68
| | | | | | | | | nodes. Original message: Let simplify cfg simplify bb with only debug and lifetime intrinsics. llvm-svn: 134182
* ScheduleOpt: Use band forest to get the schedulesTobias Grosser2011-06-303-72/+163
| | | | | | | | | | | | isl introduced a new representation for the schedules it calculates. The new representation uses a forest of bands and is closer to the structure of the data as the old interface. Switch to the new interface, as it is nicer to use and as the old interface will soon be removed from isl. WARNING: This commit needs a version of isl that is more recent that the one included in CLooG. See: http://polly.grosser.es/get_started.html#islTrunk llvm-svn: 134181
* Buildsystem: Add -no-rttiTobias Grosser2011-06-302-0/+4
| | | | | | | Build Polly without run time type info (rtti), as otherwise Polly cannot be loaded into a LLVM that is built without rtti. llvm-svn: 134180
* CodeGeneration: Adapt to SCEVExpander changeTobias Grosser2011-06-301-1/+1
| | | | | Reported-By: Sebastian Pop <sebpop@gmail.com> llvm-svn: 134179
* Pseudo-ize the Thumb tTPsoft instruction.Jim Grosbach2011-06-304-28/+7
| | | | | | | It's just a call to a special helper function. Get rid of the T2 variant entirely, as it's identical to the Thumb1 version. llvm-svn: 134178
* indvars -disable-iv-rewrite: handle cloning binary operators that cannot ↵Andrew Trick2011-06-302-7/+45
| | | | | | overflow. llvm-svn: 134177
* Ifdef out the 'lldb::Encoding GetEncoding(uint32_t &count)' API fromJohnny Chen2011-06-301-1/+3
| | | | | | Python SWIG, since it cannot hanlde the (uint32_t &count) parameter. llvm-svn: 134176
* Pseudo-ize the t2LDMIA_RET instruction.Jim Grosbach2011-06-303-20/+13
| | | | | | | | It's just a t2LDMIA_UPD instruction with extra codegen properties, so it doesn't need the encoding information. As a side-benefit, we now correctly recognize for instruction printing as a 'pop' instruction. llvm-svn: 134173
* Pseudo-ize the Thumb tPOP_RET instruction.Jim Grosbach2011-06-303-11/+12
| | | | | | | It's just a tPOP instruction with additional code-gen properties, so it doesn't need encoding information. llvm-svn: 134172
* Move test/Sema/return.cpp into test/SemaCXX/return.cppHans Wennborg2011-06-302-10/+11
| | | | llvm-svn: 134171
* Perform lvalue-to-rvalue conversions on both operands of ->*John McCall2011-06-302-0/+30
| | | | | | and the RHS of .*. Noticed by Enea Zaffanella! llvm-svn: 134170
* svn propdel svn:eol-style test/Sema/return.cppHans Wennborg2011-06-300-0/+0
| | | | llvm-svn: 134169
* Replace an unreachable error path with an assertPeter Collingbourne2011-06-302-6/+3
| | | | | | | (SourceManager::createFileID cannot return an invalid file ID). Also update a comment to reflect this. llvm-svn: 134168
* Fix typoPeter Collingbourne2011-06-301-1/+1
| | | | llvm-svn: 134167
* Test for errors for returning a value from a ctor or dtor.Hans Wennborg2011-06-301-0/+10
| | | | | | This fell out when Chandler landed the patch in r134138. llvm-svn: 134163
* www: Fix typos.Tobias Grosser2011-06-302-2/+2
| | | | llvm-svn: 134158
* www/contributers: Add founding through Google Doctoral FellowshipTobias Grosser2011-06-302-6/+14
| | | | llvm-svn: 134156
* Patch by Petteri Räty, http://llvm.org/bugs/show_bug.cgi?id=8992Howard Hinnant2011-06-301-101/+134
| | | | llvm-svn: 134155
* www/get_started: Explain when PoCC is neededTobias Grosser2011-06-301-7/+11
| | | | llvm-svn: 134153
* www: How to use most recent version of islTobias Grosser2011-06-301-2/+23
| | | | | | | In some cases it is necessary to use a version of isl that is more recent than the one included with CLooG. Point out what is needed to get such a version. llvm-svn: 134152
* Remove dead code.Rafael Espindola2011-06-301-88/+0
| | | | llvm-svn: 134148
* Add support for weakly imported classes (GNU runtime).David Chisnall2011-06-301-5/+8
| | | | llvm-svn: 134140
* Fixed enum constant evaluation assertions.Abramo Bagnara2011-06-301-6/+13
| | | | llvm-svn: 134139
* Improve the wording of the warning when returning a value fromChandler Carruth2011-06-302-3/+13
| | | | | | | | a constructor or destructor. Patch by Hans Wennborg. llvm-svn: 134138
* Preserve that a TemplateName was arrived at by substitutingJohn McCall2011-06-3013-53/+246
| | | | | | | | | | | for a template template parameter. Uses to follow. I've also made the uniquing of SubstTemplateTemplateParmPacks use a ContextualFoldingSet as a minor space efficiency. llvm-svn: 134137
* Fix an obvious typo in an attribute's diagnostics.Chandler Carruth2011-06-301-1/+1
| | | | | | | | | | | Patch by Caitlin Sadowski. Unfortunately, this attribute doesn't seem to have a single test. It is only mentioned in comments in one test, and as a string literal in a copy of some Clang code checked in as a test for the Indexer. =[ It dates from 2009 r74280 as part of OpenCL 1.0. llvm-svn: 134136
* Restructure to be modular instead of a single big function;Jason Molenda2011-06-301-173/+265
| | | | | | | | should make it a little easier to use this as an example of how to fetch all the different bits of information about threads. llvm-svn: 134135
* The enum was moved to ISDOpcodes.h.Duncan Sands2011-06-301-1/+1
| | | | llvm-svn: 134134
* Centralize all of the type name code so that we always strip the leadingGreg Clayton2011-06-3018-93/+94
| | | | | | | | "struct ", "class ", and "union " from the start of any type names that are extracted from clang QualType objects. I had to fix test suite cases that were expecting the struct/union/class prefix to be there. llvm-svn: 134132
* Kill dead code.Jim Grosbach2011-06-301-1/+0
| | | | llvm-svn: 134131
* Size reducing SP adjusting t2ADDri needs to check predication.Jim Grosbach2011-06-301-1/+4
| | | | | | | tADDrSPi is not predicable, so we can't size-reduce a t2ADDri to it if the predicate is anything other than "always." llvm-svn: 134130
* Fix ARMSubtarget feature parsing.Evan Cheng2011-06-301-10/+7
| | | | llvm-svn: 134129
* createTargetMachine now takes a CPU string.Evan Cheng2011-06-302-4/+5
| | | | llvm-svn: 134128
* Fix the ridiculous SubtargetFeatures API where it implicitly expects CPU name toEvan Cheng2011-06-3068-236/+271
| | | | | | | | | | be the first encoded as the first feature. It then uses the CPU name to look up features / scheduling itineray even though clients know full well the CPU name being used to query these properties. The fix is to just have the clients explictly pass the CPU name! llvm-svn: 134127
* Recognize the xstorerng alias for VIA PadLock's xstore instruction.Joerg Sonnenberger2011-06-302-0/+6
| | | | llvm-svn: 134126
* Reapply r134047 now that the world is ready for it.Jakob Stoklund Olesen2011-06-303-138/+291
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch will sometimes choose live range split points next to interference instead of always splitting next to a register point. That means spill code can now appear almost anywhere, and it was necessary to fix code that didn't expect that. The difficult places were: - Between a CALL returning a value on the x87 stack and the corresponding FpPOP_RETVAL (was FpGET_ST0). Probably also near x87 inline assembly, but that didn't actually show up in testing. - Between a CALL popping arguments off the stack and the corresponding ADJCALLSTACKUP. Both are fixed now. The only place spill code can't appear is after terminators, see SplitAnalysis::getLastSplitPoint. Original commit message: Rewrite RAGreedy::splitAroundRegion, now with cool ASCII art. This function has to deal with a lot of special cases, and the old version got it wrong sometimes. In particular, it would sometimes leave multiple uses in the stack interval in a single block. That causes bad code with multiple reloads in the same basic block. The new version handles block entry and exit in a single pass. It first eliminates all the easy cases, and then goes on to create a local interval for the blocks with difficult interference. Previously, we would only create the local interval for completely isolated blocks. It can happen that the stack interval becomes completely empty because we could allocate a register in all edge bundles, and the new local intervals deal with the interference. The empty stack interval is harmless, but we need to remove a SplitKit assertion that checks for empty intervals. llvm-svn: 134125
* indvars -disable-iv-rewrite: handle an edge case involving identity phis.Andrew Trick2011-06-302-10/+40
| | | | llvm-svn: 134124
OpenPOWER on IntegriCloud