summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Changed disabled code into a flag.Bill Wendling2011-07-251-1/+7
| | | | llvm-svn: 135924
* Remove dead variable.Bill Wendling2011-07-251-1/+0
| | | | llvm-svn: 135923
* After we've modified the prolog to save volatile registers, generate the compactBill Wendling2011-07-252-5/+250
| | | | | | | | | | | unwind encoding for that function. This simply crawls through the prolog looking for machine instrs marked as "frame setup". It can calculate from these what the compact unwind should look like. This is currently disabled because of needed linker support. But initial tests look good. llvm-svn: 135922
* Move some ELF directives into ELF asm parser.Jim Grosbach2011-07-255-15/+78
| | | | | | | | | | | | | | The .local, .hidden, .internal, and .protected are not legal for all supported file formats (in particular, they're invalid for MachO). Move the parsing for them into the ELF assembly parser since that's the format they're for. Similarly, .weak is used by COFF and ELF, but not MachO, so move the parsing to the COFF and ELF asm parsers. Previously, using any of these directives on Darwin would result in an assertion failure in the parser; now we get a diagnostic as we should. rdar://9827089 llvm-svn: 135921
* Added clang_getCursorReferenceNameRange to libclang to to retrieve parts ofDouglas Gregor2011-07-2511-228/+439
| | | | | | a cursor reference, from Erik Verbruggen! llvm-svn: 135920
* Builds llvmc and its examples with CMake.Oscar Fuentes2011-07-257-1/+64
| | | | | | Patch by arrowdodger! llvm-svn: 135919
* Fixes VS support for llvmc mcc16 llvmc example.Oscar Fuentes2011-07-251-3/+6
| | | | | | Patch by arrowdodger! llvm-svn: 135918
* Tidy up. 80 columns.Jim Grosbach2011-07-251-5/+10
| | | | llvm-svn: 135917
* new flag -P to type synth add lets you type a Python class interactivelyEnrico Granata2011-07-2513-20/+375
| | | | | | | | added a final newline to fooSynthProvider.py new option to automatically save user input in InputReaderEZ checking for NULL pointers in several new places llvm-svn: 135916
* Rename SourceManager::getInstantiationRange to getExpansionRange.Chandler Carruth2011-07-259-14/+14
| | | | llvm-svn: 135915
* Mechanically rename SourceManager::getInstantiationLoc andChandler Carruth2011-07-2524-67/+67
| | | | | | | | FullSourceLoc::getInstantiationLoc to ...::getExpansionLoc. This is part of the API and documentation update from 'instantiation' as the term for macros to 'expansion'. llvm-svn: 135914
* Add uwtable to the langref.Rafael Espindola2011-07-251-0/+8
| | | | llvm-svn: 135913
* Add an RS_Split2 stage used for loop prevention.Jakob Stoklund Olesen2011-07-251-15/+24
| | | | | | | | | | | | | | | | This mechanism already exists, but the RS_Split2 stage makes it clearer. When live range splitting creates ranges that may not be making progress, they are marked RS_Split2 instead of RS_New. These ranges may be split again, but only in a way that can be proven to make progress. For local ranges, that means they must be split into ranges used by strictly fewer instructions. For global ranges, region splitting is bypassed and the RS_Split2 ranges go straight to per-block splitting. llvm-svn: 135912
* Rename live range stages to better reflect how they are used.Jakob Stoklund Olesen2011-07-251-32/+40
| | | | | | | | | | | | The stage is used to control where a live range is going, not where it is coming from. Live ranges created by splitting will usually be marked RS_New, but some are marked RS_Spill to avoid wasting time trying to split them again. The old RS_Global and RS_Local stages are merged - they are really the same thing for local and global live ranges. llvm-svn: 135911
* Shorten some expressions by using ArrayRef::slice().Frits van Bommel2011-07-253-10/+5
| | | | llvm-svn: 135910
* Updated commentsMarshall Clow2011-07-251-2/+2
| | | | llvm-svn: 135909
* CMake: generalize the system that creates custom targets forOscar Fuentes2011-07-252-9/+25
| | | | | | tablegenning to all libraries and executables. llvm-svn: 135908
* www/get_started.html: Fix a phrase, "in the *build* directory* in the ↵NAKAMURA Takumi2011-07-251-1/+1
| | | | | | instructions of Visual Studio. Thanks to Andreas Bittel to point it out. llvm-svn: 135907
* Remove uses of std::vector from TypeBuilder.Jay Foad2011-07-251-51/+50
| | | | llvm-svn: 135906
* Use ArrayRef in the (protected) constructors of ConstantArray, ↵Jay Foad2011-07-252-30/+15
| | | | | | ConstantStruct and ConstantVector. llvm-svn: 135905
* Convert GetElementPtrInst to use ArrayRef.Jay Foad2011-07-2525-305/+100
| | | | llvm-svn: 135904
* http://llvm.org/bugs/show_bug.cgi?id=10469Howard Hinnant2011-07-242-0/+4
| | | | llvm-svn: 135897
* Optimization of string::operator< by M.E. O'Neill. Discussion in ↵Howard Hinnant2011-07-241-1/+11
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=10461 llvm-svn: 135893
* add link to 2010 dev mtgChris Lattner2011-07-241-2/+3
| | | | llvm-svn: 135892
* objc: clang should warn if redeclaration of methodsFariborz Jahanian2011-07-246-21/+182
| | | | | | | | | declared in protocol in the class qualified by the protocol have type conflicts. To reduce amount of noise, this is done when class is implemented. // rdar://9352731 llvm-svn: 135890
* switch Triple to take twines instead of stringrefs.Chris Lattner2011-07-242-25/+9
| | | | llvm-svn: 135889
* Add Twine support for characters, and switch twine to use a union internallyChris Lattner2011-07-243-54/+122
| | | | | | to eliminate some casting. llvm-svn: 135888
* Never extend live ranges for <undef> uses.Jakob Stoklund Olesen2011-07-241-1/+1
| | | | llvm-svn: 135886
* Correctly handle <undef> tied uses when rewriting after a split.Jakob Stoklund Olesen2011-07-242-8/+29
| | | | | | | | | | | This fixes PR10463. A two-address instruction with an <undef> use operand was incorrectly rewritten so the def and use no longer used the same register, violating the tie constraint. Fix this by always rewriting <undef> operands with the register a def operand would use. llvm-svn: 135885
* http://llvm.org/bugs/show_bug.cgi?id=10461Howard Hinnant2011-07-241-92/+2
| | | | llvm-svn: 135873
* Omit explicit length here, now that I've had a chance to test this with gcc.Frits van Bommel2011-07-241-1/+1
| | | | llvm-svn: 135867
* Set PPCII::MO_DARWIN_STUB only on MacOSX < 10.5.Roman Divacky2011-07-241-2/+2
| | | | llvm-svn: 135866
* Python synthetic children:Enrico Granata2011-07-2426-116/+1299
| | | | | | | | | | | | | | - you can now define a Python class as a synthetic children producer for a type the class must adhere to this "interface": def __init__(self, valobj, dict): def get_child_at_index(self, index): def get_child_index(self, name): then using type synth add -l className typeName (e.g. type synth add -l fooSynthProvider foo) (This is still WIP with lots to be added) A small test case is available also as reference llvm-svn: 135865
* lib/AST/CMakeLists.txt: Update LLVM_USED_LIBS, not to miss symbols with ↵NAKAMURA Takumi2011-07-231-1/+1
| | | | | | building shared lib. Thanks to Ryuta Suzuki. llvm-svn: 135864
* fix PR10415, tidying up IR representation of module level inline asmChris Lattner2011-07-232-0/+11
| | | | | | to avoid extraneous \n's. llvm-svn: 135862
* clarify that opaque is actually a struct type, PR10430Chris Lattner2011-07-231-5/+5
| | | | llvm-svn: 135861
* Extend libclang with clang_equalRanges, from Erik Verbruggen!Douglas Gregor2011-07-234-0/+18
| | | | llvm-svn: 135860
* Add a link-friendly name to the Clang extension acceptance criteriaDouglas Gregor2011-07-231-1/+1
| | | | llvm-svn: 135859
* Document the criteria for evaluating a proposed extension to Clang.Douglas Gregor2011-07-231-1/+30
| | | | llvm-svn: 135858
* Tests for explicit conversion operators, along with a fix to avoidDouglas Gregor2011-07-232-12/+155
| | | | | | | | | | considering explicit conversion operators when determining surrogate functions. Fixes PR10453. Note that there are a few test cases where Clang is still wrong because it does not implement DR899; see PR10456. Patch by Jonathan Sauer! llvm-svn: 135857
* how about that, StringRef doesn't allow any mutation, thanks toChris Lattner2011-07-231-4/+4
| | | | | | Frits for straightening me out. llvm-svn: 135856
* Move ArrayRef to LLVM.h and eliminate now-redundant qualifiers, patch by Jon ↵Chris Lattner2011-07-2319-39/+41
| | | | | | Mulder! llvm-svn: 135855
* http://llvm.org/bugs/show_bug.cgi?id=10455Howard Hinnant2011-07-231-2/+2
| | | | llvm-svn: 135854
* Unbreak the MSVC build, using namespace clang is required otherwise MSVC ↵Francois Pichet2011-07-231-0/+2
| | | | | | will not find raw_ostream. llvm-svn: 135853
* remove unneeded llvm:: namespace qualifiers on some core types now that ↵Chris Lattner2011-07-23243-2290/+2240
| | | | | | | | LLVM.h imports them into the clang namespace. llvm-svn: 135852
* clean up forward declarations of raw_ostream to use the new LLVM.hChris Lattner2011-07-2310-32/+15
| | | | | | patch by Jon Mulder! llvm-svn: 135851
* Add RAGreedy::calcCompactRegion.Jakob Stoklund Olesen2011-07-231-0/+46
| | | | | | | | | | | | | | | | This method computes the edge bundles that should be live when splitting around a compact region. This is independent of interference. The function returns false if the live range was already a compact region, or the compact region doesn't have any live bundles - it would be the same as splitting around basic blocks. Compact regions are computed using the normal spill placement code. We pretend there is interference in all live-through blocks that don't use the live range. This removes all edges from the Hopfield network used for spill placement, so it converges instantly. llvm-svn: 135847
* Fix bug in SplitEditor::splitLiveThroughBlock when switching registers.Jakob Stoklund Olesen2011-07-231-5/+14
| | | | | | | | | | | If there is no interference and no last split point, we cannot enterIntvBefore(Stop) - that function needs a real instruction. Use enterIntvAtEnd instead for that very easy case. This code doesn't currently run, it is needed by multi-way splitting. llvm-svn: 135846
* Prepare RAGreedy::growRegion for compact regions.Jakob Stoklund Olesen2011-07-231-1/+8
| | | | | | | | | | | | | | | A split candidate can have a null PhysReg which means that it doesn't map to a real interference pattern. Instead, pretend that all through blocks have interference. This makes it possible to generate compact regions where the live range doesn't go through blocks that don't use it. The live range will still be live between directly connected blocks with uses. Splitting around a compact region tends to produce a live range with a high spill weight, so it may evict a less dense live range. llvm-svn: 135845
* Add a simple method for marking blocks with interference in and out.Jakob Stoklund Olesen2011-07-232-0/+18
| | | | | | | | | | This method matches addLinks - All the listed blocks are considered to have interference, so they add a negative bias to their bundles. This could also be done by addConstraints, but that requires building a separate BlockConstraint array. llvm-svn: 135844
OpenPOWER on IntegriCloud