summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
* DIBuilder: support structs with vtable pointers in the same way as classesDavid Blaikie2013-02-251-4/+6
| | | | llvm-svn: 176004
* Add a field to the compile unit of where we plan on splitting outEric Christopher2013-02-222-2/+7
| | | | | | | the debug info for -gsplit-dwarf so we can encode that location in the skeleton cu. llvm-svn: 175933
* Add a TODO and explain when we can get rid of the isMain field.Eric Christopher2013-02-221-1/+1
| | | | llvm-svn: 175932
* Formatting.Eric Christopher2013-02-221-1/+1
| | | | llvm-svn: 175931
* An Optional<T> is pod-like if the inner type is.Benjamin Kramer2013-02-221-0/+6
| | | | llvm-svn: 175908
* Implement the NoBuiltin attribute.Bill Wendling2013-02-221-25/+2
| | | | | | | | The 'nobuiltin' attribute is applied to call sites to indicate that LLVM should not treat the callee function as a built-in function. I.e., it shouldn't try to replace that function with different code. llvm-svn: 175835
* Limit cast machinery to preserve const and not accept temporariesDavid Blaikie2013-02-211-5/+47
| | | | | | | | | | | | | | | | | | | | | | | After cleaning up the following type hierarchies: * TypeLoc: r175462 * SVal: r175594 * CFGElement: r175462 * ProgramPoint: r175812 that all invoked undefined behavior by causing a derived copy construction of a base object through an invalid cast (thus supporting code that relied on casting temporaries that were direct base objects) Clang/LLVM is now clean of casts of temporaries. So here's some fun SFINAE machinery (courtesy of Eli Friedman, with some porting back from C++11 to LLVM's traits by me) to cause compile-time failures if llvm::cast & friends are ever passed an rvalue. This should avoid a repeat of anything even remotely like PR14321/r168124. Thanks to Jordan Rose for the help with the various Static Analyzer related hierarchies that needed cleaning up, Eli for the SFINAE, Richard Smith, John McCall, Ted Kremenek, and Anna Zaks for their input/reviews/patience along the way. llvm-svn: 175819
* Clear the whole table including the tombstones, since the tombstone count willPedro Artigas2013-02-211-1/+1
| | | | | | | | be set to zero that is what it was intended. Should improve performance of the data structure when clear is invoked frequently (both compile time and memory usage). llvm-svn: 175799
* Move the eliminateCallFramePseudoInstr method from TargetRegisterInfoEli Bendersky2013-02-212-15/+15
| | | | | | | | | | | | | | | to TargetFrameLowering, where it belongs. Incidentally, this allows us to delete some duplicated (and slightly different!) code in TRI. There are potentially other layering problems that can be cleaned up as a result, or in a similar manner. The refactoring was OK'd by Anton Korobeynikov on llvmdev. Note: this touches the target interfaces, so out-of-tree targets may be affected. llvm-svn: 175788
* Make RAFast::UsedInInstr indexed by register units.Jakob Stoklund Olesen2013-02-211-0/+6
| | | | | | | | | | This fixes some problems with too conservative checking where we were marking all aliases of a register as used, and then also checking all aliases when allocating a register. <rdar://problem/13249625> llvm-svn: 175782
* Add move ctor/assignment to Optional<T>David Blaikie2013-02-211-0/+29
| | | | | | Code review feedback for r175580 by Jordan Rose. llvm-svn: 175729
* Correct spelling of 'enumerator'.David Blaikie2013-02-211-1/+1
| | | | | | Post commit code review feedback to r175705 from Jordan Rose. llvm-svn: 175724
* Make Optional<T>'s operator bool 'explicit' in C++11David Blaikie2013-02-212-1/+11
| | | | | | | Provides a general way to add 'explicit' for conversion operators (a no-op when compiling as C++98). llvm-svn: 175723
* ADT/Optional.h: Appease msvc. It reapplies r175626.NAKAMURA Takumi2013-02-211-1/+1
| | | | llvm-svn: 175710
* Provide a "None" value for convenience when using Optional<T>()David Blaikie2013-02-212-0/+29
| | | | | | | This implementation of NoneType/None does have some holes but I haven't found one that doesn't - open to improvement. llvm-svn: 175696
* MCParser: Update method names per coding guidelines.Jim Grosbach2013-02-201-19/+19
| | | | | | | | | | | | | | | | | | | s/AddDirectiveHandler/addDirectiveHandler/ s/ParseMSInlineAsm/parseMSInlineAsm/ s/ParseIdentifier/parseIdentifier/ s/ParseStringToEndOfStatement/parseStringToEndOfStatement/ s/ParseEscapedString/parseEscapedString/ s/EatToEndOfStatement/eatToEndOfStatement/ s/ParseExpression/parseExpression/ s/ParseParenExpression/parseParenExpression/ s/ParseAbsoluteExpression/parseAbsoluteExpression/ s/CheckForValidSection/checkForValidSection/ http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly No functional change intended. llvm-svn: 175675
* Update TargetLowering ivars for name policy.Jim Grosbach2013-02-201-14/+14
| | | | | | | | | | | http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly ivars should be camel-case and start with an upper-case letter. A few in TargetLowering were starting with a lower-case letter. No functional change intended. llvm-svn: 175667
* Use LiveRangeUpdater instead of mergeIntervalRanges.Jakob Stoklund Olesen2013-02-201-3/+0
| | | | | | | Performance is the same, but LiveRangeUpdater has a more flexible interface. llvm-svn: 175645
* Add a LiveRangeUpdater class.Jakob Stoklund Olesen2013-02-201-0/+58
| | | | | | | | | | | | | | | | | | Adding new segments to large LiveIntervals can be expensive because the LiveRange objects after the insertion point may need to be moved left or right. This can cause quadratic behavior when adding a large number of segments to a live range. The LiveRangeUpdater class allows the LIveInterval to be in a temporary invalid state while segments are being added. It maintains an internal gap in the LiveInterval when it is shrinking, and it has a spill area for new segments when the LiveInterval is growing. The behavior is similar to the existing mergeIntervalRanges() function, except it allocates less memory for the spill area, and the algorithm is turned inside out so the loop is driven by the clients. llvm-svn: 175644
* Add a default constructor for LiveRange.Jakob Stoklund Olesen2013-02-201-1/+2
| | | | | | | It is useful to be able to create temporary LiveRange object whose members are filled in later. llvm-svn: 175639
* Revert r175626, "ADT/Optional.h: Appease msvc."NAKAMURA Takumi2013-02-201-1/+1
| | | | | | Sorry, I didn't cover +Asserts, by accident. :( llvm-svn: 175633
* Whitespace.NAKAMURA Takumi2013-02-201-7/+7
| | | | llvm-svn: 175627
* ADT/Optional.h: Appease msvc.NAKAMURA Takumi2013-02-201-1/+1
| | | | llvm-svn: 175626
* Move the SplatByte helper to APInt and generalize it a bit.Benjamin Kramer2013-02-201-0/+11
| | | | llvm-svn: 175621
* Modify LiveInterval::addRange() to match the comment about what it returns.Cameron Zwarich2013-02-201-2/+2
| | | | llvm-svn: 175602
* Add SlotIndexes::repairIndexesInRange(), which repairs SlotIndexes after addingCameron Zwarich2013-02-201-0/+5
| | | | | | | | | | and removing instructions. The implementation seems more complicated than it needs to be, but I couldn't find something simpler that dealt with all of the corner cases. Also add a call to repairIndexesInRange() from repairIntervalsInRange(). llvm-svn: 175601
* Make SlotIndex::getEntry() return unsigned to match IndexListEntry.Cameron Zwarich2013-02-201-1/+1
| | | | llvm-svn: 175600
* Fix a misunderstanding about how RegMaskBlocks works. This was caught byCameron Zwarich2013-02-201-1/+1
| | | | | | | assertions in the register allocator when running 'make check' without LiveVariables. llvm-svn: 175599
* Rename llvm::Optional<T>::Reset to 'reset' as per LLVM naming conventions.David Blaikie2013-02-201-3/+3
| | | | | | Code review feedback on r175580 from Jordan Rose. llvm-svn: 175595
* [llvm-readobj] Add ELF .dynamic table dumping.Michael J. Spencer2013-02-201-9/+40
| | | | llvm-svn: 175592
* Remove unneeded #include.Jakub Staszak2013-02-201-1/+0
| | | | llvm-svn: 175584
* Fix #includes, so we include only what we really need.Jakub Staszak2013-02-201-2/+1
| | | | llvm-svn: 175581
* Allow llvm::Optional to work with types without default constructors.David Blaikie2013-02-201-11/+47
| | | | | | | | | This generalizes Optional to require less from the T type by using aligned storage for backing & placement new/deleting the T into it when necessary. Also includes unit tests. llvm-svn: 175580
* Move part of APInt implementation from header to cpp file. These methodsJakub Staszak2013-02-201-38/+5
| | | | | | | require call cpp file anyway, so we wouldn't gain anything by keeping them inline. llvm-svn: 175579
* ELF symbol table field st_other support, Jack Carter2013-02-191-0/+1
| | | | | | | | | | | | excluding visibility bits. Mips (o32 abi) specific e_header setting. EF_MIPS_ABI_O32 needs to be set in the ELF header flags for o32 abi output. Contributer: Reed Kotler llvm-svn: 175569
* ELF symbol table field st_other support, Jack Carter2013-02-191-2/+5
| | | | | | | | | | | | excluding visibility bits. Mips (Mips16) specific e_header setting. EF_MIPS_ARCH_ASE_M16 needs to be set in the ELF header flags for Mips16. Contributer: Reed Kotler llvm-svn: 175566
* ELF symbol table field st_other support, Jack Carter2013-02-191-3/+10
| | | | | | | | | | | excluding visibility bits. Mips (MicroMips) specific STO handling . The st_other field settig for STO_MIPS_MICROMIPS Contributer: Zoran Jovanovic llvm-svn: 175564
* ELF symbol table field st_other support, Jack Carter2013-02-193-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | excluding visibility bits. Generic STO handling at the Target level. The st_other field of the ELF symbol table is one byte in size. The first 2 bytes are used for generic visibility and are currently handled by llvm. The other six bits are processor specific and need to be set at the target level. A couple of notes: The new static methods for accessing and setting the "other" flags in include/llvm/MC/MCELF.h match the style guide and not the other methods in the file. I don't like the inconsistency, but feel I should follow the prescribed lowerUpper() convention. STO_ value definitions are not specified in gnu land as consistently as the STT_ and STB_ fields. Probably because the latter were defined in a standards doc and the former defined partially in code. I have stuck with the full byte definition of the flags. Contributer: Zoran Jovanovic llvm-svn: 175561
* Simplify code. No functionality change.Jakub Staszak2013-02-191-4/+2
| | | | llvm-svn: 175559
* Fix a bug in mayHaveSideEffects. Functions that do not return are now ↵Nadav Rotem2013-02-191-1/+7
| | | | | | | | considered as instructions with side effects. rdar://13227456 llvm-svn: 175553
* Remove my bogus MapVector::erase() with a narrower ::pop_back(), and add a ↵Douglas Gregor2013-02-191-7/+4
| | | | | | unit test. llvm-svn: 175538
* Fix initialization-order bug in llvm::Support::TimeValue. TimeValue::now() ↵Alexey Samsonov2013-02-191-6/+9
| | | | | | is explicitly called during module initialization of lib/Support/Process.cpp. It reads the field of global object PosixZeroTime, which is not guaranteed to be initialized at this point. Found by AddressSanitizer with -fsanitize=init-order option. llvm-svn: 175509
* Grammar.Eric Christopher2013-02-191-1/+1
| | | | llvm-svn: 175493
* Add some convenience methods for querying function attributes.Bill Wendling2013-02-181-0/+8
| | | | llvm-svn: 175469
* Use LLVM_DELETED_FUNCTION rather than '// do not implement' comments.David Blaikie2013-02-187-14/+12
| | | | | | | Also removes some redundant DNI comments on function declarations already using the macro. llvm-svn: 175466
* Support for HiPE-compatible code emission, patch by Yiannis Tsiouris.Benjamin Kramer2013-02-181-0/+4
| | | | llvm-svn: 175457
* Use llvm::cast instead of reinterpret_cast.Jakub Staszak2013-02-181-8/+8
| | | | | | | Also, GetElementPtrInst::getType() method returns SequentialType now, instead of PointerType. There wasn't any issue yet, so no testcase attached. llvm-svn: 175452
* Add front/back/erase to MapVector.Douglas Gregor2013-02-181-0/+15
| | | | llvm-svn: 175449
* Futureproof AttrBuild if we ever have more than 64 attr enum values.Benjamin Kramer2013-02-181-5/+5
| | | | | | | Currently we're at 34. Bitset should compile into virtually the same code as uint64_t here. llvm-svn: 175437
* Add `unsigned DISubprogram::getFlags() const` for DragonEgg.David Blaikie2013-02-181-0/+4
| | | | llvm-svn: 175430
OpenPOWER on IntegriCloud